81 lines
1.9 KiB
Go

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
}