Exemplo n.º 1
0
        public async Task <IActionResult> UpdateTherapist([FromBody] ModifyTherapistRequestDto requestDto)
        {
            if (requestDto.ClassifyGuids.Count() <= 0)
            {
                return(Failed(ErrorCode.Empty, "所属大类未选择"));
            }

            if (requestDto.Tag?.Count() <= 0)
            {
                return(Failed(ErrorCode.Empty, "擅长需填写"));
            }

            if (string.Join("", requestDto.Tag).Length > 300)
            {
                return(Failed(ErrorCode.Empty, "擅长超过最大长度限制"));
            }

            if (requestDto?.MerchantProjectGuidList.Count() <= 0)
            {
                return(Failed(ErrorCode.Empty, "服务项目未选择"));
            }

            if (!string.IsNullOrEmpty(requestDto.Introduction))
            {
                if (requestDto.Introduction.Length > 500)
                {
                    return(Failed(ErrorCode.Empty, "个人简介超过最大长度限制"));
                }
            }

            var therapistBiz = new TherapistBiz();

            var model = await therapistBiz.GetModelAsync(requestDto.TherapistGuid);

            if (model is null)
            {
                return(Failed(ErrorCode.Empty, "服务人员不存在"));
            }

            var IsTherapistPhoneExist = therapistBiz.IsTherapistPhoneExist(requestDto.TherapistPhone, true, requestDto.TherapistGuid);

            if (IsTherapistPhoneExist)
            {
                return(Failed(ErrorCode.UserData, "该手机号已注册!"));
            }

            model.TherapistName   = requestDto.TherapistName;
            model.TherapistPhone  = requestDto.TherapistPhone;
            model.PortraitGuid    = requestDto.PortraitGuid;
            model.JobTitle        = requestDto.JobTitle;
            model.Introduction    = requestDto.Introduction;
            model.Tag             = JsonConvert.SerializeObject(requestDto.Tag);
            model.LastUpdatedBy   = UserID;
            model.LastUpdatedDate = DateTime.Now;

            var tpModelList = requestDto.MerchantProjectGuidList.Distinct().Select(d => new TherapistProjectModel()
            {
                TherapistProjectGuid = Guid.NewGuid().ToString("N"),
                TherapistGuid        = model.TherapistGuid,
                ProjectGuid          = d,
                CreatedBy            = UserID,
                CreationDate         = DateTime.Now,
                LastUpdatedBy        = UserID,
                LastUpdatedDate      = DateTime.Now,
                Enable = true
            }).ToList();

            var classifyModels = requestDto.ClassifyGuids.Distinct().Select(d => new MerchantTherapistClassifyModel()
            {
                TherapistClassifyGuid = Guid.NewGuid().ToString("N"),
                TherapistGuid         = model.TherapistGuid,
                ClassifyGuid          = d,
                CreatedBy             = UserID,
                CreationDate          = DateTime.Now,
                LastUpdatedBy         = UserID,
                LastUpdatedDate       = DateTime.Now,
                Enable  = true,
                OrgGuid = ""
            }).ToList();

            var result = therapistBiz.UpdateTherapist(model, tpModelList, classifyModels);

            return(result ? Success() : Failed(ErrorCode.DataBaseError, "更新失败,请检查!"));
        }