81 lines
1.9 KiB
Go
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
|
|
}
|