public IQueryable <Task> Search(TaskSearchRequest searchRequest, Guid companyGuid) => _dbContext .Tasks .AsNoTracking() .NotDeleted() .ForCompany(companyGuid) .ForBaord(searchRequest.BoardGuid) .ForTicket(searchRequest.TicketGuid) .AsQueryable();
public async Task <IActionResult> Search([FromQuery] TaskSearchRequest model) { if (ModelState.IsValid) { InitUserCredentials(); var results = _mapper.Map(_taskService.Search(model, CompanyGuid), new List <TaskResponse>()); var response = new TaskSearchResponse() { Data = results }; return(Ok(response)); } return(new NoContentResult()); }
public BaseDataProvider <Task> ListTask(TaskSearchRequest search, TaskPaginationRequest request) { IQueryable <Task> query = this._context.Tasks; if (search.DataFrom != null && search.DataTo != null) { query = query.Where(t => t.DateFoTask >= search.DataFrom && t.DateFoTask <= search.DataTo); } //if (search.DataFrom != null) //{ // query = query.Where(t => t.DateFoTask >= search.DataFrom); //} if (search.Title != null) { query = query.Where(t => EF.Functions.Like(t.Title, "%" + search.Title + "%")); } return(new BaseDataProvider <Task>(query, request)); }
public ActionResult GetTasks([FromQuery] TaskSearchRequest request, [FromQuery] TaskPaginationRequest paginator) { return(this.Ok(this._eFRepository.ListTask(request, paginator))); }
/// <summary> /// 获取K币任务列表 /// </summary> /// <param name="user"></param> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <PagingResponseMessage <TaskItemResponse> > GetKcoinTaskListAsync(UserInfo user, TaskSearchRequest request, CancellationToken cancellationToken = default(CancellationToken)) { var periodId = request.PeriodId; var response = new PagingResponseMessage <TaskItemResponse>(); var querySql = @"SELECT uuid() uuid, t.Id, t.PeriodId, t.TaskName, t.TaskTntro, t.UserNumber, t.CreateTime, CONCAT(u.UserName, '-', u.GroupName) CreateUser, t.Score, t.LootTime, t.TaskState FROM jf_taskinfo as t LEFT JOIN jf_userinfo as u on t.CreateUser = u.Id"; var whereSql = $" WHERE t.IsDelete = FALSE && t.ExamineState = 2 && t.PeriodId = '{periodId}'"; var orderSql = @" ORDER BY FIELD(t.`TaskState`, 1, 0, 2, 3), (CASE t.TaskState WHEN 0 THEN t.LootTime WHEN 1 THEN t.LootTime END), (CASE t.TaskState WHEN 2 THEN t.CreateTime WHEN 3 THEN t.CreateTime END ) DESC "; // 筛选 191209-任务名称、发布人、发布时间(End>CreateTime>=Start)、任务状态搜索 if (!string.IsNullOrWhiteSpace(request.TaskName)) { whereSql += $@" && t.TaskName LIKE '%{request.TaskName.Trim()}%'"; } if (!string.IsNullOrWhiteSpace(request.CreateUser)) { whereSql += $@" && CONCAT(u.UserName, '-', u.GroupName) LIKE '%{request.CreateUser.Trim()}%'"; } if (request.CreateTimeStart != null) { whereSql += $@" && t.CreateTime >= '{request.CreateTimeStart?.ToString("yyyy-MM-dd HH:mm:ss")}'"; } if (request.CreateTimeEnd != null) { whereSql += $@" && t.CreateTime < '{request.CreateTimeEnd?.ToString("yyyy-MM-dd HH:mm:ss")}'"; } if (request.TaskState != null) { whereSql += $@" && t.TaskState = {request.TaskState}"; } response.PageIndex = request.PageIndex; response.PageSize = request.PageSize; response.TotalCount = await _iTaskStore.TaskItems.FromSql(querySql + whereSql + orderSql).CountAsync(cancellationToken); var limitSql = $@" LIMIT {request.PageIndex * request.PageSize}, {request.PageSize}"; var reList = await _iTaskStore.TaskItems.FromSql(querySql + whereSql + orderSql + limitSql).ToListAsync(); // 数据组装 // 19-12-10 任务接取人列表 var taskIds = reList.Select(a => a.Id); var taskUsers = await(from tu in _iTaskStore.GetTaskUsers() where taskIds.Contains(tu.TaskId) join u in _iUserStore.GetUserInfos() on tu.UserId equals u.Id select new TaskItemResponse.TaskUserDetails5 { TaskId = tu.TaskId, UserId = tu.UserId, UserName = u.UserName, OrganizationName = u.OrganizationName, GroupName = u.GroupName, }) //.OrderBy(a => a.TaskId) //// 20200107-修复-王森 一个格子里面显示两行每行3个总共6个人,多的不显示 //.Take(6) .ToListAsync(cancellationToken); //任务人员关系表 var taskUserIdQuery = _iTaskStore.GetTaskUsers().Where(w => taskIds.Contains(w.TaskId)).Select(s => s.UserId); //参与人员积分(任务对应赛季的积分) var scoreInfoList = await _iTaskStore.GetScoreInfos().Where(w => taskUserIdQuery.Contains(w.UserId) && w.PeriodId == periodId).ToListAsync(); //称号信息 var titleList = await _iTaskStore.GetScoreTitles().Where(w => !w.IsDelete && w.PeriodId == periodId).ToListAsync(); titleList.ForEach(fo => fo.Icon = _config["FileUrl"] + fo.Icon); taskUsers.ForEach(task => { task.ScoreTitle = (titleList.FirstOrDefault(fi => fi.StartScore <= scoreInfoList.First(f => f.UserId == task.UserId).Score&& fi.EndScore >= scoreInfoList.First(f => f.UserId == task.UserId).Score)?.Title) ?? "未知称号"; task.Icon = titleList.FirstOrDefault(fi => fi.StartScore <= scoreInfoList.First(f => f.UserId == task.UserId).Score&& fi.EndScore >= scoreInfoList.First(f => f.UserId == task.UserId).Score)?.Icon; }); reList.ForEach(fo => fo.TaskUsers = taskUsers.Where(a => a.TaskId == fo.Id)); response.Extension = reList; return(response); }
public async Task <PagingResponseMessage <TaskItemResponse> > KcoinTaskList(Models.UserInfo user, [FromBody] TaskSearchRequest request) { var response = new PagingResponseMessage <TaskItemResponse>(); Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})K币任务列表,请求参数为:\r\n{JsonHelper.ToJson(request)}"); if (!ModelState.IsValid) { response.Code = ResponseCodeDefines.ModelStateInvalid; response.Message = ModelState.GetAllErrors(); Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})K币任务列表,模型验证失败:\r\n{response.Message ?? ""}"); return(response); } try { return(await _taskManager.GetKcoinTaskListAsync(user, request, HttpContext.RequestAborted)); } catch (Exception e) { Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})K币任务列表,报错:{e.Message}\r\n{e.StackTrace}"); response.Code = ResponseCodeDefines.ServiceError; response.Message = e.Message; return(response); } }