diff --git a/api/dao/userDoctor.go b/api/dao/userDoctor.go index 9e32d2b..410bb85 100644 --- a/api/dao/userDoctor.go +++ b/api/dao/userDoctor.go @@ -384,6 +384,39 @@ func (r *UserDoctorDao) GetUserDoctorListSearch(req requests.GetUserDoctorList) query = query.Where("user_name LIKE ?", "%"+req.UserName+"%") } + // 实名认证状态 + if req.IDCardStatus != nil { + query = query.Where("idcard_status = ?", req.IDCardStatus) + } + + // 身份认证状态 + if req.IdenAuthStatus != nil { + query = query.Where("iden_auth_status = ?", req.IdenAuthStatus) + } + + // 医生多点执业认证状态 + if req.MultiPointStatus != nil { + query = query.Where("multi_point_status = ?", req.MultiPointStatus) + } + + // 是否已绑定结算银行卡 + if req.IsBindBank != nil { + query = query.Where("is_bind_bank = ?", req.IsBindBank) + } + + // 医生问诊配置 + if req.UnInquiryType != "" { + result := strings.Split(req.UnInquiryType, ",") + if len(result) > 0 { + subQuery := global.Db.Model(&model.DoctorInquiryConfig{}). + Where("gdxz_doctor_inquiry_config.doctor_id = gdxz_user_doctor.doctor_id"). + Where("gdxz_doctor_inquiry_config.inquiry_type NOT IN (?)", req.UnInquiryType). + Where("gdxz_doctor_inquiry_config.inquiry_mode = ?", req.InquiryMode) + + query = query.Where("EXISTS (?)", subQuery) + } + } + // 排序 query = query.Order("created_at desc") diff --git a/api/requests/userDoctor.go b/api/requests/userDoctor.go index 973e91d..e004eeb 100644 --- a/api/requests/userDoctor.go +++ b/api/requests/userDoctor.go @@ -130,5 +130,11 @@ type PutMulti struct { // GetUserDoctorList 获取医生列表 type GetUserDoctorList struct { - UserName string `json:"user_name" form:"user_name" label:"医生姓名"` + UserName string `json:"user_name" form:"user_name" label:"医生姓名"` + IDCardStatus *int `json:"idcard_status" form:"idcard_status" label:"身份证状态"` // (0:未认证 1:认证通过 2:认证失败) + IdenAuthStatus *int `json:"iden_auth_status" form:"iden_auth_status" label:"认证状态"` // (0:未认证 1:认证通过 2:审核中 3:认证失败) + MultiPointStatus *int `json:"multi_point_status" form:"multi_point_status" label:"多点执业状态"` // 医生多点执业认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) + IsBindBank *int `json:"is_bind_bank" form:"is_bind_bank" label:"是否已绑定结算银行卡"` // (0:否 1:是) + UnInquiryType string `json:"un_inquiry_type" form:"un_inquiry_type" label:"非查询问诊类型"` // 逗号分隔(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测) + InquiryMode int `json:"inquiry_mode" form:"inquiry_mode" validate:"required" label:"问诊方式"` // (1:图文 2:视频 3:语音 4:电话 5:会员) }