修正返回目录
This commit is contained in:
+62
-251
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user