示例#1
0
        /// <summary>
        /// 根据条件分页获取列表
        /// </summary>
        /// <param name="page">查询实体</param>
        /// <returns></returns>
        public async Task <PagedResultDto <TrainUserExperienceListOutputDto> > GetListByUser(GetTrainUserExperienceListInput input)
        {
            var users           = new List <long>();
            var organizeManager = Abp.AbpBootstrapper.Create <Abp.Modules.AbpModule>().IocManager.IocContainer.Resolve <WorkFlowOrganizationUnitsManager>();
            var train           = _trainRepository.GetAll().FirstOrDefault(x => x.Id == input.TrainId);
            var arr             = train.JoinUser.Split(',');

            foreach (var item in arr)
            {
                var userId    = Convert.ToInt64(item.Replace("u_", ""));
                var organUser = organizeManager.GetChargeLeader(userId);
                var lId       = !string.IsNullOrEmpty(organUser) ? MemberPerfix.RemovePrefix(organUser).ToLong() : 0;
                if (lId == AbpSession.UserId.Value)
                {
                    users.Add(userId);
                }
            }


            var query = from a in _repository.GetAll().Where(x => !x.IsDeleted && x.TrainId == input.TrainId && x.Type == TrainExperienceType.Train && users.Contains(x.UserId))
                        join b in _userRepository.GetAll() on a.UserId equals b.Id
                        select new TrainUserExperienceListOutputDto()
            {
                Id           = a.Id,
                UserId       = a.UserId,
                UserName     = b.Name,
                TrainId      = a.TrainId,
                Experience   = a.Experience,
                Approval     = a.Approval,
                CreationTime = a.CreationTime
            };
            var toalCount = await query.CountAsync();

            var ret = await query.OrderByDescending(r => r.CreationTime).PageBy(input).ToListAsync();

            return(new PagedResultDto <TrainUserExperienceListOutputDto>(toalCount, ret));
        }
示例#2
0
        /// <summary>
        /// 根据条件分页获取列表
        /// </summary>
        /// <param name="page">查询实体</param>
        /// <returns></returns>
        public async Task <PagedResultDto <TrainUserExperienceSumOutputDto> > GetList(GetTrainUserExperienceListInput input)
        {
            var train = _trainRepository.GetAll().FirstOrDefault(x => x.Id == input.TrainId);

            if (train == null)
            {
                throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "该数据不存在。");
            }
            var users = train.JoinUser.Split(',').ToArray().Select(x => Convert.ToInt64(x.Replace("u_", "")));
            var query = from a in users
                        join b in _userRepository.GetAll() on a equals b.Id
                        let ex = _repository.GetAll().Where(x => !x.IsDeleted && x.TrainId == input.TrainId && x.UserId == a && x.Type == TrainExperienceType.Train).FirstOrDefault()
                                 select new TrainUserExperienceSumOutputDto()
            {
                Id           = ex?.Id,
                UserId       = a,
                UserName     = b.Name,
                TrainId      = input.TrainId,
                Experience   = ex?.Experience,
                Approval     = ex?.Approval,
                CreationTime = ex?.CreationTime,
                IsOver       = ex != null
            };
            var toalCount = query.Count();
            var ret       = query.OrderByDescending(x => x.IsOver).OrderByDescending(r => r.CreationTime).ToList();

            return(new PagedResultDto <TrainUserExperienceSumOutputDto>(toalCount, ret));
        }