package v1 import ( "hospital-open-api/api/dao" dtoV1 "hospital-open-api/api/dto/v1" "hospital-open-api/api/model" requestsV1 "hospital-open-api/api/requests/v1" ) // UserDoctorService 医生 type UserDoctorService struct { } // GetDoctor 获取医生详情 func (r *UserDoctorService) GetDoctor(req requestsV1.GetDoctor) (g *dtoV1.UserDoctorDto, err error) { // 获取数据 userDoctorDao := dao.UserDoctorDao{} userDoctor, err := userDoctorDao.GetUserDoctor(req) if err != nil && userDoctor == nil { return nil, err } if len(userDoctor.DoctorInquiryConfig) > 0 { // 获取医生是否可处方图标展示状态 userDoctor.MultiPointStatus, _ = r.GetDoctorMultiPointEnable(userDoctor.DoctorInquiryConfig) } // 处理返回值 g = dtoV1.GetDoctorDto(userDoctor) // 加载用户数据 g.LoadUserAttr(userDoctor.User) // 加载医院名称 g.LoadHospitalName(userDoctor.Hospital) // 加载问诊配置数据 g.LoadDoctorInquiryConfig(userDoctor.DoctorInquiryConfig) return g, nil } // GetMultiDoctor 获取多点执业医生详情 func (r *UserDoctorService) GetMultiDoctor(req requestsV1.GetMultiDoctor) (g *dtoV1.MultiUserDoctorDto, err error) { // 获取数据 userDoctorDao := dao.UserDoctorDao{} userDoctor, err := userDoctorDao.GetMultiUserDoctor(req) if err != nil && userDoctor == nil { return nil, err } // 处理返回值 g = dtoV1.GetMultiDoctorDto(userDoctor) if err != nil { return nil, err } // 加载用户数据 g.LoadUserAttr(userDoctor.User) // 加载医院名称 g.LoadHospitalName(userDoctor.Hospital) // 维护是否多点执业字段 return g, nil } // GetDoctorMultiPointEnable 获取医生是否可处方图标展示状态 func (r *UserDoctorService) GetDoctorMultiPointEnable(m []*model.DoctorInquiryConfig) (int, error) { if len(m) > 0 { for _, config := range m { if config.InquiryType == 4 && config.InquiryMode == 1 && config.IsEnable == 1 { return 1, nil } } } return 0, nil }