public IActionResult GetTasks(long sessionId, [FromQuery] SearchSelectSeatTaskReqs search) { search.SessionId = sessionId; ApiResult <PagedData <SelectSeatTaskResp> > taskResult = _selectSeatTaskService.Search(search); if (taskResult.Status != ResultStatus.SUCCESS) { return(Ok(new ApiResult <object>(ResultStatus.FAIL, "队列查询异常"))); } ApiResult <IEnumerable <ApplicantResp> > applicants = _activityService.GetApplicants(taskResult.Result.Records.Select(x => x.WizardId).ToArray()); ApiResult <IEnumerable <SeatResp> > seatList = _seatService.GetBySession(sessionId); return(Ok(new { taskResult.Result.PageNow, taskResult.Result.PageSize, taskResult.Result.TotalCount, Records = taskResult.Result.Records.Select(x => { ApplicantResp applicant = applicants.Result.FirstOrDefault(o => o.WizardId == x.WizardId); IEnumerable <string> seats = seatList.Result.Where(o => x.SeatNos != null && o.SeatNo.IsIn(x.SeatNos)).Select(o => o.Position[0] + "排" + o.Position[1] + "坐"); return new { x.TaskId, x.SerialNo, applicant?.Mobile, applicant?.RealName, x.WechatName, Seats = seats, x.WizardId, StatusDesc = x.Status.GetName(), x.Status, x.SeatNos, x.SessionId, x.BeginTime, x.EndTime }; }) })); }
public IActionResult ExportSeatResult(long sessionId) { var search = new SearchSelectSeatTaskReqs() { SessionId = sessionId, Status = SelectTaskStatus.已完成, PageSize = int.MaxValue }; ApiResult <IEnumerable <SelectSeatTaskResp> > taskResult = _selectSeatTaskService.GetTaskList(search); if (taskResult.Status != ResultStatus.SUCCESS) { return(Ok(new ApiResult <object>(ResultStatus.FAIL, "队列查询异常"))); } ApiResult <IEnumerable <ApplicantResp> > applicants = _activityService.GetApplicants(taskResult.Result.Select(x => x.WizardId).ToArray()); ApiResult <IEnumerable <SeatResp> > seatList = _seatService.GetBySession(sessionId); byte[] buffer = ExcelHelper.ExportExcel(taskResult.Result.Select(x => { ApplicantResp applicant = applicants.Result.FirstOrDefault(o => o.WizardId == x.WizardId); IEnumerable <string> seats = seatList.Result.Where(o => x.SeatNos != null && o.SeatNo.IsIn(x.SeatNos)) .Select(o => o.Position[0] + "排" + o.Position[1] + "坐"); return(new { PhoneSuffix = applicant.Mobile.Substring(7, 4), x.SerialNo, applicant?.Mobile, applicant?.RealName, x.Total, Seats = string.Join(",", seats) }); }).OrderBy(x => x.PhoneSuffix)); return(File(buffer, "application/ms-excel", $"导出座位表{DateTime.Now:yyyyMMddhhmmss}.xlsx")); }