Ejemplo n.º 1
0
        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
                    };
                })
            }));
        }
Ejemplo n.º 2
0
        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"));
        }