42 lines
1.0 KiB
Go
42 lines
1.0 KiB
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
"hospital-admin-api/api/dao"
|
|
"hospital-admin-api/api/dto"
|
|
)
|
|
|
|
type PatientFamilyService struct {
|
|
}
|
|
|
|
// GetPatientFamily 家庭成员详情
|
|
func (r *PatientFamilyService) GetPatientFamily(familyId int64) (g *dto.PatientFamilyDto, err error) {
|
|
patientFamilyDao := dao.PatientFamilyDao{}
|
|
patientFamily, err := patientFamilyDao.GetPatientFamilyById(familyId)
|
|
if err != nil || patientFamily == nil {
|
|
return nil, errors.New("就诊人错误")
|
|
}
|
|
|
|
// 获取患者数据
|
|
userPatientDao := dao.UserPatientDao{}
|
|
userPatient, err := userPatientDao.GetUserPatientPreloadById(patientFamily.PatientId)
|
|
if err != nil || userPatient == nil {
|
|
return nil, errors.New("患者错误")
|
|
}
|
|
|
|
// 获取用户数据
|
|
userDao := dao.UserDao{}
|
|
user, err := userDao.GetUserById(userPatient.UserId)
|
|
if err != nil || user == nil {
|
|
return nil, errors.New("用户错误")
|
|
}
|
|
|
|
// 处理返回数据
|
|
g = dto.GetPatientFamilyDto(patientFamily)
|
|
|
|
// 加载用户数据-加密
|
|
g.LoadMaskUser(user)
|
|
|
|
return g, nil
|
|
}
|