public async Task <IActionResult> UploadHealthReport([FromBody] CreateOrUpdateHealthReportRequestDto request)
        {
            var healthBiz = new HealthBiz();

            if (string.IsNullOrEmpty(request.UserGuid))
            {
                return(Failed(ErrorCode.Empty, "请指定检验报告所属会员"));
            }

            var userBiz   = new UserBiz();
            var userModel = await userBiz.GetAsync(request.UserGuid);

            if (userModel is null || !userModel.Enable)
            {
                return(Failed(ErrorCode.Empty, "指定会员不存在"));
            }

            if (string.IsNullOrEmpty(request.Suggestion) && request.Suggestion.Length > 1000)
            {
                return(Failed(ErrorCode.Empty, "报告建议超过最大长度限制"));
            }

            if (request.Attachments is null || request.Attachments.Count <= 0)
            {
                return(Failed(ErrorCode.Empty, "请上传报告附件"));
            }

            if (await healthBiz.CheckReportName(request.ReportName))
            {
                return(Failed(ErrorCode.Empty, $"报告名称“{request.ReportName}”已存在"));
            }

            var model = new ConsumerHealthReportModel()
            {
                ReportGuid    = Guid.NewGuid().ToString("N"),
                ReportName    = request.ReportName,
                UserGuid      = request.UserGuid,
                Suggestion    = request.Suggestion,
                LastUpdatedBy = UserID,
                CreatedBy     = UserID
            };

            (List <ConsumerHealthReportDetailModel> detailModels, string errorMsg) = FilterReportAttachments(request.Attachments, model.ReportGuid);

            if (detailModels is null && !string.IsNullOrEmpty(errorMsg))
            {
                return(Failed(ErrorCode.Empty, errorMsg));
            }

            var result = await healthBiz.CreateHealthReport(model, detailModels.ToList());

            return(result ? Success() : Failed(ErrorCode.DataBaseError, "上传检验报告失败"));
        }
Пример #2
0
        /// <summary>
        /// 上传检验报告
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <bool> CreateHealthReport(ConsumerHealthReportModel model,
                                                    List <ConsumerHealthReportDetailModel> detailModels)
        {
            return(await MySqlHelper.TransactionAsync(async (conn, tran) =>
            {
                await conn.InsertAsync <string, ConsumerHealthReportModel>(model);

                detailModels.InsertBatch();

                return true;
            }));
        }
Пример #3
0
        /// <summary>
        /// 编辑检验报告
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <bool> UpdateHealthReport(ConsumerHealthReportModel model,
                                                    List <ConsumerHealthReportDetailModel> detailModels)
        {
            var reportGuids = new string[] { model.ReportGuid };

            return(await MySqlHelper.TransactionAsync(async (conn, tran) =>
            {
                await conn.UpdateAsync(model);

                await conn.DeleteListAsync <ConsumerHealthReportDetailModel>("where report_guid in @reportGuids", new
                {
                    reportGuids
                });

                detailModels.InsertBatch(conn);

                return true;
            }));
        }