修正返回目录

This commit is contained in:
2023-09-28 08:40:43 +08:00
parent aedf61c31b
commit 70c35e0ce6
84 changed files with 3579 additions and 2007 deletions
+62 -251
View File
@@ -3,14 +3,9 @@ package service
import (
"errors"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/dto"
"hospital-admin-api/api/model"
"hospital-admin-api/api/requests"
"hospital-admin-api/api/responses/doctorBankCardResponse"
"hospital-admin-api/api/responses/doctorExpertiseResponse"
"hospital-admin-api/api/responses/hospitalResponse"
"hospital-admin-api/api/responses/userDoctorInfoResponse"
"hospital-admin-api/api/responses/userDoctorResponse"
"hospital-admin-api/api/responses/userResponse"
"hospital-admin-api/config"
"hospital-admin-api/extend/ca"
"hospital-admin-api/extend/tencentIm"
@@ -26,7 +21,7 @@ type UserDoctorService struct {
}
// GetUserDoctor 医生详情
func (r *UserDoctorService) GetUserDoctor(doctorId int64) (getUserDoctorResponse *userDoctorResponse.GetUserDoctor, err error) {
func (r *UserDoctorService) GetUserDoctor(doctorId int64) (getUserDoctorResponse *dto.UserDoctorDto, err error) {
// 获取医生数据
userDoctorDao := dao.UserDoctorDao{}
userDoctor, err := userDoctorDao.GetUserDoctorPreloadById(doctorId)
@@ -43,69 +38,29 @@ func (r *UserDoctorService) GetUserDoctor(doctorId int64) (getUserDoctorResponse
}
// 获取医生银行卡
doctorBankCard, err := userDoctorService.GetUserDoctorBankByDoctorId(doctorId)
if err != nil {
doctorBankCardDao := dao.DoctorBankCardDao{}
doctorBankCard, err := doctorBankCardDao.GetDoctorBankCardByDoctorId(doctorId)
if err != nil && doctorBankCard == nil {
return nil, errors.New(err.Error())
}
// 处理返回值
var userDoctorInfo *userDoctorInfoResponse.UserDoctorInfo
if userDoctor.UserDoctorInfo != nil {
userDoctorInfo = userDoctorInfoResponse.UserDoctorInfoResponse(userDoctor.UserDoctorInfo)
}
getUserDoctorResponse = dto.GetUserDoctorDto(userDoctor)
// 医院
var hospital *hospitalResponse.Hospital
if userDoctor.Hospital != nil {
hospital = hospitalResponse.HospitalResponse(userDoctor.Hospital)
}
// 加载用户
getUserDoctorResponse.LoadUser(userDoctor.User)
// 用户
var user *userResponse.User
if userDoctor.User != nil {
user = userResponse.UserResponse(userDoctor.User)
}
// 加载医院
getUserDoctorResponse.LoadHospital(userDoctor.Hospital)
getUserDoctorResponse = &userDoctorResponse.GetUserDoctor{
DoctorID: strconv.Itoa(int(userDoctor.DoctorId)),
UserID: strconv.Itoa(int(userDoctor.UserId)),
UserName: userDoctor.UserName,
Status: userDoctor.Status,
IDCardStatus: userDoctor.Status,
IdenAuthStatus: userDoctor.IdenAuthStatus,
IdenAuthTime: userDoctor.IdenAuthTime,
IdenAuthFailReason: userDoctor.IdenAuthFailReason,
MultiPointStatus: userDoctor.MultiPointStatus,
MultiPointTime: userDoctor.MultiPointTime,
MultiPointFailReason: userDoctor.MultiPointFailReason,
IsBindBank: userDoctor.IsBindBank,
IsRecommend: userDoctor.IsRecommend,
Avatar: utils.AddOssDomain(userDoctor.Avatar),
DoctorTitle: userDoctor.DoctorTitle,
DepartmentCustomID: strconv.Itoa(int(userDoctor.DepartmentCustomId)),
DepartmentCustomName: userDoctor.DepartmentCustomName,
DepartmentCustomMobile: userDoctor.DepartmentCustomMobile,
HospitalID: strconv.Itoa(int(userDoctor.HospitalID)),
ServedPatientsNum: userDoctor.ServedPatientsNum,
PraiseRate: userDoctor.PraiseRate,
AvgResponseTime: userDoctor.AvgResponseTime,
NumberOfFans: userDoctor.NumberOfFans,
IsImgExpertReception: userDoctor.IsImgExpertReception,
IsImgWelfareReception: userDoctor.IsImgWelfareReception,
IsImgQuickReception: userDoctor.IsImgQuickReception,
IsPlatformDeepCooperation: userDoctor.IsPlatformDeepCooperation,
IsSysDiagnoCooperation: userDoctor.IsSysDiagnoCooperation,
QrCode: utils.AddOssDomain(userDoctor.QrCode),
BeGoodAt: userDoctor.BeGoodAt,
BriefIntroduction: userDoctor.BriefIntroduction,
CreatedAt: userDoctor.CreatedAt,
UpdatedAt: userDoctor.UpdatedAt,
User: user,
Hospital: hospital,
UserDoctorInfo: userDoctorInfo,
DoctorExpertise: doctorExpertise, // 专长
DoctorBankCard: doctorBankCard, // 银行卡
}
// 加载医生专长
getUserDoctorResponse.DoctorExpertise = doctorExpertise
// 加载医生银行卡
getUserDoctorResponse.LoadDoctorBankCard(doctorBankCard)
// 加载医生详情
getUserDoctorResponse.LoadUserDoctorInfo(userDoctor.UserDoctorInfo)
return getUserDoctorResponse, nil
}
@@ -1114,7 +1069,7 @@ func (r *UserDoctorService) AddUserDoctor(userId string, req requests.AddUserDoc
}
// GetUserDoctorExpertiseByDoctorId 获取医生专长
func (r *UserDoctorService) GetUserDoctorExpertiseByDoctorId(doctorId int64) ([]*doctorExpertiseResponse.DoctorExpertise, error) {
func (r *UserDoctorService) GetUserDoctorExpertiseByDoctorId(doctorId int64) ([]*dto.DoctorExpertiseDto, error) {
DiseaseClassExpertiseDao := dao.DiseaseClassExpertiseDao{}
// 获取医生专长
@@ -1124,96 +1079,31 @@ func (r *UserDoctorService) GetUserDoctorExpertiseByDoctorId(doctorId int64) ([]
return nil, errors.New("用户数据错误")
}
doctorExpertisesResponses := make([]*doctorExpertiseResponse.DoctorExpertise, len(doctorExpertises))
// 处理返回值
responses := make([]*dto.DoctorExpertiseDto, len(doctorExpertises))
if len(doctorExpertises) > 0 {
for i, v := range doctorExpertises {
response := dto.GetDoctorExpertiseDto(v)
// 获取专长
diseaseClassExpertise, err := DiseaseClassExpertiseDao.GetDiseaseClassExpertiseById(v.ExpertiseId)
if err != nil || diseaseClassExpertise == nil {
return nil, errors.New("专长数据错误")
}
doctorExpertisesResponse := &doctorExpertiseResponse.DoctorExpertise{
DoctorId: strconv.FormatInt(doctorId, 10),
ExpertiseId: strconv.FormatInt(v.ExpertiseId, 10),
ExpertiseName: diseaseClassExpertise.ExpertiseName,
}
response.LoadExpertiseName(diseaseClassExpertise)
// 将转换后的结构体添加到新切片中
doctorExpertisesResponses[i] = doctorExpertisesResponse
responses[i] = response
}
}
return doctorExpertisesResponses, nil
}
// GetUserDoctorBankByDoctorId 获取医生银行卡
func (r *UserDoctorService) GetUserDoctorBankByDoctorId(doctorId int64) (doctorBankCardResponse.DoctorBankCard, error) {
var doctorExpertisesResponse doctorBankCardResponse.DoctorBankCard
// 获取医生银行卡
doctorBankCardDao := dao.DoctorBankCardDao{}
doctorBankCard, err := doctorBankCardDao.GetDoctorBankCardByDoctorId(doctorId)
if err != nil && doctorBankCard == nil {
return doctorExpertisesResponse, nil
}
doctorExpertisesResponse = doctorBankCardResponse.DoctorBankCard{
BankCardId: strconv.FormatInt(doctorBankCard.BankCardId, 10),
DoctorId: strconv.FormatInt(doctorBankCard.DoctorId, 10),
BankId: strconv.FormatInt(doctorBankCard.BankId, 10),
BankCardCodeMask: doctorBankCard.BankCardCodeMask,
ProvinceId: doctorBankCard.ProvinceId,
Province: doctorBankCard.Province,
CityId: doctorBankCard.CityId,
City: doctorBankCard.City,
CountyId: doctorBankCard.CountyId,
County: doctorBankCard.County,
}
return doctorExpertisesResponse, nil
}
// GetDoctorIdenFailReasonByDoctorId 获取医生审核失败原因
func (r *UserDoctorService) GetDoctorIdenFailReasonByDoctorId(doctorId int64) (*userDoctorResponse.IdenAuthFailReason, error) {
doctorIdenFailDao := dao.DoctorIdenFailDao{}
doctorIdenFail, err := doctorIdenFailDao.GetDoctorIdenFailListByDoctorId(doctorId)
if err != nil {
return nil, errors.New(err.Error())
}
var idenAuthFailReason userDoctorResponse.IdenAuthFailReason
if len(doctorIdenFail) > 0 {
for _, v := range doctorIdenFail {
switch v.FieldName {
case "avatar":
idenAuthFailReason.AvatarReason = v.FailReason
case "department_custom_mobile":
idenAuthFailReason.DepartmentCustomMobileReason = v.FailReason
case "department_custom_name":
idenAuthFailReason.DepartmentCustomNameReason = v.FailReason
case "brief_introduction":
idenAuthFailReason.BriefIntroductionReason = v.FailReason
case "be_good_at":
idenAuthFailReason.BeGoodAtReason = v.FailReason
case "license_cert":
idenAuthFailReason.LicenseCertReason = v.FailReason
case "qualification_cert":
idenAuthFailReason.QualificationCertReason = v.FailReason
case "work_cert":
idenAuthFailReason.WorkCertReason = v.FailReason
default:
return nil, errors.New("审核失败原因数据错误")
}
}
}
return &idenAuthFailReason, nil
return responses, nil
}
// GetUserDoctorPending 身份审核-医生详情
func (r *UserDoctorService) GetUserDoctorPending(doctorId int64) (g *userDoctorResponse.GetUserDoctorPending, err error) {
func (r *UserDoctorService) GetUserDoctorPending(doctorId int64) (g *dto.UserDoctorPendingDto, err error) {
// 获取医生数据
userDoctorDao := dao.UserDoctorDao{}
userDoctor, err := userDoctorDao.GetUserDoctorPreloadById(doctorId)
@@ -1230,59 +1120,29 @@ func (r *UserDoctorService) GetUserDoctorPending(doctorId int64) (g *userDoctorR
}
// 获取医生审核失败原因
var IdenAuthFailReason *userDoctorResponse.IdenAuthFailReason
if userDoctor.IdenAuthStatus == 3 {
IdenAuthFailReason, err = userDoctorService.GetDoctorIdenFailReasonByDoctorId(doctorId)
if err != nil {
return nil, errors.New(err.Error())
}
doctorIdenFailDao := dao.DoctorIdenFailDao{}
doctorIdenFail, err := doctorIdenFailDao.GetDoctorIdenFailListByDoctorId(doctorId)
if err != nil {
return nil, errors.New(err.Error())
}
// 处理返回值
var userDoctorInfo *userDoctorInfoResponse.UserDoctorInfo
if userDoctor.UserDoctorInfo != nil {
userDoctorInfo = userDoctorInfoResponse.UserDoctorInfoResponse(userDoctor.UserDoctorInfo)
}
g = dto.GetUserDoctorPendingDto(userDoctor)
// 医院
var hospital *hospitalResponse.Hospital
if userDoctor.Hospital != nil {
hospital = hospitalResponse.HospitalResponse(userDoctor.Hospital)
}
// 加载用户
g.LoadUser(userDoctor.User)
// 用户
var user *userResponse.User
if userDoctor.User != nil {
user = userResponse.UserResponse(userDoctor.User)
}
// 加载医院
g.LoadHospital(userDoctor.Hospital)
g = &userDoctorResponse.GetUserDoctorPending{
DoctorID: strconv.Itoa(int(userDoctor.DoctorId)),
UserID: strconv.Itoa(int(userDoctor.UserId)),
UserName: userDoctor.UserName,
Status: userDoctor.Status,
IDCardStatus: userDoctor.Status,
IdenAuthStatus: userDoctor.IdenAuthStatus,
IdenAuthTime: userDoctor.IdenAuthTime,
IdenAuthFailReason: IdenAuthFailReason,
Avatar: utils.AddOssDomain(userDoctor.Avatar),
DoctorTitle: userDoctor.DoctorTitle,
DepartmentCustomID: strconv.Itoa(int(userDoctor.DepartmentCustomId)),
DepartmentCustomName: userDoctor.DepartmentCustomName,
DepartmentCustomMobile: userDoctor.DepartmentCustomMobile,
HospitalID: strconv.Itoa(int(userDoctor.HospitalID)),
BeGoodAt: userDoctor.BeGoodAt,
BriefIntroduction: userDoctor.BriefIntroduction,
IsPlatformDeepCooperation: userDoctor.IsPlatformDeepCooperation,
IsEnterpriseDeepCooperation: userDoctor.IsEnterpriseDeepCooperation,
IsSysDiagnoCooperation: userDoctor.IsSysDiagnoCooperation,
IsRecommend: userDoctor.IsRecommend,
CreatedAt: userDoctor.CreatedAt,
UpdatedAt: userDoctor.UpdatedAt,
User: user,
Hospital: hospital,
UserDoctorInfo: userDoctorInfo,
DoctorExpertise: doctorExpertise, // 专长
}
// 加载医生专长
g.DoctorExpertise = doctorExpertise
// 加载医生详情
g.LoadUserDoctorInfo(userDoctor.UserDoctorInfo)
// 加载医生审核失败原因
g.IdenAuthFailReason = dto.GetIdenAuthFailReasonDto(doctorIdenFail)
return g, nil
}
@@ -1508,7 +1368,7 @@ func (r *UserDoctorService) PutUserDoctorPending(doctorId int64, req requests.Pu
}
// GetMulti 多点-医生详情
func (r *UserDoctorService) GetMulti(doctorId int64) (g *userDoctorResponse.GetMulti, err error) {
func (r *UserDoctorService) GetMulti(doctorId int64) (g *dto.UserDoctorDto, err error) {
// 获取医生数据
userDoctorDao := dao.UserDoctorDao{}
userDoctor, err := userDoctorDao.GetUserDoctorPreloadById(doctorId)
@@ -1517,46 +1377,16 @@ func (r *UserDoctorService) GetMulti(doctorId int64) (g *userDoctorResponse.GetM
}
// 处理返回值
var userDoctorInfo *userDoctorInfoResponse.UserDoctorInfo
if userDoctor.UserDoctorInfo != nil {
userDoctorInfo = userDoctorInfoResponse.UserDoctorInfoResponse(userDoctor.UserDoctorInfo)
}
g = dto.GetUserDoctorDto(userDoctor)
// 医院
var hospital *hospitalResponse.Hospital
if userDoctor.Hospital != nil {
hospital = hospitalResponse.HospitalResponse(userDoctor.Hospital)
}
// 加载用户
g.LoadUser(userDoctor.User)
// 用户
var user *userResponse.User
if userDoctor.User != nil {
user = userResponse.UserResponse(userDoctor.User)
}
// 加载医院
g.LoadHospital(userDoctor.Hospital)
g = &userDoctorResponse.GetMulti{
DoctorID: strconv.Itoa(int(userDoctor.DoctorId)),
UserID: strconv.Itoa(int(userDoctor.UserId)),
UserName: userDoctor.UserName,
Status: userDoctor.Status,
IDCardStatus: userDoctor.Status,
MultiPointStatus: userDoctor.MultiPointStatus,
MultiPointTime: userDoctor.MultiPointTime,
MultiPointFailReason: userDoctor.MultiPointFailReason,
Avatar: utils.AddOssDomain(userDoctor.Avatar),
DoctorTitle: userDoctor.DoctorTitle,
DepartmentCustomID: strconv.Itoa(int(userDoctor.DepartmentCustomId)),
DepartmentCustomName: userDoctor.DepartmentCustomName,
DepartmentCustomMobile: userDoctor.DepartmentCustomMobile,
HospitalID: strconv.Itoa(int(userDoctor.HospitalID)),
BeGoodAt: userDoctor.BeGoodAt,
BriefIntroduction: userDoctor.BriefIntroduction,
CreatedAt: userDoctor.CreatedAt,
UpdatedAt: userDoctor.UpdatedAt,
User: user,
Hospital: hospital,
UserDoctorInfo: userDoctorInfo,
}
// 加载医生详情
g.LoadUserDoctorInfo(userDoctor.UserDoctorInfo)
return g, nil
}
@@ -1739,8 +1569,8 @@ func (r *UserDoctorService) PutMulti(doctorId int64, req requests.PutMulti) (boo
return true, nil
}
// GetOrderInquiryUserDoctor 获取医生数据-问诊订单
func (r *UserDoctorService) GetOrderInquiryUserDoctor(doctorId int64) (u *userDoctorResponse.OrderInquiryUserDoctor, err error) {
// GetUserDoctorById 获取医生数据-医生id
func (r *UserDoctorService) GetUserDoctorById(doctorId int64) (g *dto.UserDoctorDto, err error) {
if doctorId == 0 {
return nil, nil
}
@@ -1750,33 +1580,14 @@ func (r *UserDoctorService) GetOrderInquiryUserDoctor(doctorId int64) (u *userDo
return nil, errors.New("医生数据错误")
}
// 医院
var hospital *hospitalResponse.Hospital
if userDoctor.Hospital != nil {
hospital = hospitalResponse.HospitalResponse(userDoctor.Hospital)
}
// 处理返回值
g = dto.GetUserDoctorDto(userDoctor)
var userDoctorInfo *userDoctorInfoResponse.UserDoctorInfo
if userDoctor.UserDoctorInfo != nil {
userDoctorInfo = userDoctorInfoResponse.UserDoctorInfoResponse(userDoctor.UserDoctorInfo)
}
// 加载医院
g.LoadHospital(userDoctor.Hospital)
u = &userDoctorResponse.OrderInquiryUserDoctor{
DoctorID: strconv.Itoa(int(userDoctor.DoctorId)),
UserID: strconv.Itoa(int(userDoctor.UserId)),
UserName: userDoctor.UserName,
Status: userDoctor.Status,
IDCardStatus: userDoctor.Status,
MultiPointStatus: userDoctor.MultiPointStatus,
Avatar: utils.AddOssDomain(userDoctor.Avatar),
DoctorTitle: userDoctor.DoctorTitle,
DepartmentCustomName: userDoctor.DepartmentCustomName,
HospitalID: strconv.Itoa(int(userDoctor.HospitalID)),
CreatedAt: userDoctor.CreatedAt,
UpdatedAt: userDoctor.UpdatedAt,
Hospital: hospital,
UserDoctorInfo: userDoctorInfo,
}
// 加载医生详情
g.LoadUserDoctorInfo(userDoctor.UserDoctorInfo)
return u, nil
return g, nil
}