新增医生详情

This commit is contained in:
2023-07-04 16:08:04 +08:00
parent 0078b06b40
commit 4848f9d957
12 changed files with 379 additions and 13 deletions
@@ -0,0 +1,51 @@
package hospitalResponse
import (
"hospital-admin-api/api/model"
"strconv"
)
type Hospital struct {
HospitalID string `json:"hospital_id"` // 主键id
HospitalName string `json:"hospital_name"` // 医院名称
HospitalStatus int `json:"hospital_status"` // 状态(0:禁用 1:正常 2:删除)
HospitalLevelName string `json:"hospital_level_name"` // 医院等级名称
PostCode string `json:"post_code"` // 邮政编码
Telephone string `json:"telephone"` // 电话
ProvinceID int `json:"province_id"` // 省份id
Province string `json:"province"` // 省份
CityID int `json:"city_id"` // 城市id
City string `json:"city"` // 城市
CountyID int `json:"county_id"` // 区县id
County string `json:"county"` // 区县
Address string `json:"address"` // 地址
Latitude string `json:"latitude"` // 纬度
Longitude string `json:"longitude"` // 经度
Description string `json:"description"` // 简介
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
}
// HospitalResponse 医院
func HospitalResponse(hospital *model.Hospital) *Hospital {
return &Hospital{
HospitalID: strconv.FormatInt(hospital.HospitalID, 10),
HospitalName: hospital.HospitalName,
HospitalStatus: hospital.HospitalStatus,
HospitalLevelName: hospital.HospitalLevelName,
PostCode: hospital.PostCode,
Telephone: hospital.HospitalName,
ProvinceID: hospital.ProvinceId,
Province: hospital.Province,
CityID: hospital.CityId,
City: hospital.City,
CountyID: hospital.CountyId,
County: hospital.County,
Address: hospital.Address,
Latitude: hospital.Lat,
Longitude: hospital.HospitalName,
Description: hospital.Desc,
CreatedAt: hospital.CreatedAt,
UpdatedAt: hospital.UpdatedAt,
}
}
@@ -0,0 +1,92 @@
package userDoctorInfoResponse
import (
"hospital-admin-api/api/model"
"hospital-admin-api/config"
"strconv"
"strings"
)
type UserDoctorInfo struct {
DoctorInfoId string `json:"doctor_info_id"` // 主键
UserId string `json:"user_id"` // 用户id
DoctorId string `json:"doctor_id"` // 医生id
CardType int `json:"card_type"` // 类型(1:身份证 2:护照 3:港澳通行证 4:台胞证);NOT NULL
CardName string `json:"card_name"` // 证件姓名
CardNameMask string `json:"card_name_mask"` // 证件姓名(掩码)
CardNumMask string `json:"card_num_mask"` // 证件号码(掩码)
LicenseCert []string `json:"license_cert"` // 医师执业证(逗号分隔)
QualificationCert []string `json:"qualification_cert"` // 医师资格证(逗号分隔)
QualificationCertNum string `json:"qualification_cert_num"` // 医师资格证号(逗号分隔)
WorkCert []string `json:"work_cert"` // 医师工作证(逗号分隔)
MultiPointImages []string `json:"multi_point_images"` // 多点执业备案信息(逗号分隔)
IdCardFront string `json:"id_card_front"` // 身份证正面图片
IdCardBack string `json:"id_card_back"` // 身份证背面图片
SignImage string `json:"sign_image"` // 签名图片
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
}
// UserDoctorInfoResponse 医生详情
func UserDoctorInfoResponse(userDoctorInfo *model.UserDoctorInfo) *UserDoctorInfo {
var licenseCert []string
if userDoctorInfo.LicenseCert != "" {
result := strings.Split(userDoctorInfo.LicenseCert, ",")
if len(result) > 0 {
for _, v := range result {
v = config.C.Oss.OssCustomDomainName + v
licenseCert = append(licenseCert, v)
}
}
}
var qualificationCert []string
if userDoctorInfo.QualificationCert != "" {
result := strings.Split(userDoctorInfo.QualificationCert, ",")
if len(result) > 0 {
for _, v := range result {
v = config.C.Oss.OssCustomDomainName + v
qualificationCert = append(qualificationCert, v)
}
}
}
var workCert []string
if userDoctorInfo.WorkCert != "" {
result := strings.Split(userDoctorInfo.WorkCert, ",")
if len(result) > 0 {
for _, v := range result {
v = config.C.Oss.OssCustomDomainName + v
workCert = append(workCert, v)
}
}
}
var multiPointImages []string
if userDoctorInfo.MultiPointImages != "" {
result := strings.Split(userDoctorInfo.MultiPointImages, ",")
if len(result) > 0 {
for _, v := range result {
multiPointImages = append(multiPointImages, v)
}
}
}
return &UserDoctorInfo{
DoctorInfoId: strconv.FormatInt(userDoctorInfo.DoctorInfoId, 10),
UserId: strconv.FormatInt(userDoctorInfo.UserId, 10),
DoctorId: strconv.FormatInt(userDoctorInfo.DoctorId, 10),
CardType: userDoctorInfo.CardType,
CardName: userDoctorInfo.CardName,
CardNameMask: userDoctorInfo.CardNameMask,
CardNumMask: userDoctorInfo.CardNumMask,
LicenseCert: licenseCert,
QualificationCert: qualificationCert,
QualificationCertNum: userDoctorInfo.QualificationCertNum,
WorkCert: workCert,
MultiPointImages: multiPointImages,
IdCardFront: config.C.Oss.OssCustomDomainName + "/" + userDoctorInfo.IdCardFront,
IdCardBack: config.C.Oss.OssCustomDomainName + "/" + userDoctorInfo.IdCardBack,
SignImage: config.C.Oss.OssCustomDomainName + "/" + userDoctorInfo.SignImage,
}
}
@@ -2,6 +2,9 @@ package userDoctorResponse
import (
"hospital-admin-api/api/model"
"hospital-admin-api/api/responses/hospitalResponse"
"hospital-admin-api/api/responses/userDoctorInfoResponse"
"hospital-admin-api/api/responses/userResponse"
"hospital-admin-api/config"
"strconv"
)
@@ -43,6 +46,50 @@ type getUserDoctorPage struct {
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
}
// getUserDoctor 医生详情
type getUserDoctor struct {
DoctorID string `json:"doctor_id"` // 主键id
UserID string `json:"user_id"` // 用户id
UserName string `json:"user_name"` // 用户名称
OpenID string `json:"open_id"` // 微信open_id
UnionID string `json:"union_id"` // 微信开放平台唯一标识
WxSessionKey string `json:"wx_session_key"` // 微信会话密钥
Status int `json:"status"` // 状态(0:禁用 1:正常 2:删除)
IDCardStatus int `json:"idcard_status"` // 实名认证状态(0:未认证 1:认证通过 2:认证失败)
IdenAuthStatus int `json:"iden_auth_status"` // 身份认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败)
IdenAuthTime model.LocalTime `json:"iden_auth_time"` // 审核时间
IdenAuthFailReason string `json:"iden_auth_fail_reason"` // 身份认证失败原因
MultiPointStatus int `json:"multi_point_status"` // 医生多点执业认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败)
MultiPointTime model.LocalTime `json:"multi_point_time"` // 审核时间
MultiPointFailReason string `json:"multi_point_fail_reason"` // 多点执业认证失败原因
IsBindBank int `json:"is_bind_bank"` // 是否已绑定结算银行卡(0:否 1:是)
IsRecommend int `json:"is_recommend"` // 是否首页推荐(0:否 1:是)
Avatar string `json:"avatar"` // 头像
DoctorTitle int `json:"doctor_title"` // 医生职称(1:主任医师 2:主任中医师 3:副主任医师 4:副主任中医师 5:主治医师 6:住院医师)
DepartmentCustomID string `json:"department_custom_id"` // 科室id-自定义
DepartmentCustomName string `json:"department_custom_name"` // 科室名称(如未自己输入,填入标准科室名称)
DepartmentCustomMobile string `json:"department_custom_mobile"` // 科室电话
HospitalID string `json:"hospital_id"` // 所属医院id
ServedPatientsNum int `json:"served_patients_num"` // 服务患者数量(订单结束时统计)
PraiseRate float64 `json:"praise_rate"` // 好评率(百分制。订单平均评价中超过4-5分的订单总数 / 总订单数 * 5)
AvgResponseTime float64 `json:"avg_response_time"` // 平均响应时间(分钟制)
NumberOfFans uint `json:"number_of_fans"` // 被关注数量
IsOnline int `json:"is_online"` // 是否在线(0:不在线 1:在线)
IsImgExpertReception int `json:"is_img_expert_reception"` // 是否参加专家图文接诊(0:否 1:是)
IsImgWelfareReception int `json:"is_img_welfare_reception"` // 是否参加公益图文问诊(0:否 1:是)
IsImgQuickReception int `json:"is_img_quick_reception"` // 是否参加快速图文接诊(0:否 1:是)
IsPlatformDeepCooperation int `json:"is_platform_deep_cooperation"` // 是否平台深度合作医生(0:否 1:是)
IsEnterpriseDeepCooperation int `json:"is_enterprise_deep_cooperation"` // 是否企业深度合作医生(0:否 1:是)
QrCode string `json:"qr_code"` // 分享二维码
BeGoodAt string `json:"be_good_at"` // 擅长
BriefIntroduction string `json:"brief_introduction"` // 医生简介
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
User *userResponse.User `json:"user"` // 用户
Hospital *hospitalResponse.Hospital `json:"hospital"` // 医院
UserDoctorInfo *userDoctorInfoResponse.UserDoctorInfo `json:"user_doctor_info"` // 医生详情
}
// GetUserDoctorPageResponse 获取用户列表-分页
func GetUserDoctorPageResponse(userDoctor []*model.UserDoctor) []getUserDoctorPage {
// 处理返回值
@@ -100,3 +147,59 @@ func GetUserDoctorPageResponse(userDoctor []*model.UserDoctor) []getUserDoctorPa
return getUserPageResponses
}
// GetUserDoctorResponse 医生详情
func GetUserDoctorResponse(userDoctor *model.UserDoctor) *getUserDoctor {
var userDoctorInfo *userDoctorInfoResponse.UserDoctorInfo
if userDoctor.UserDoctorInfo != nil {
userDoctorInfo = userDoctorInfoResponse.UserDoctorInfoResponse(userDoctor.UserDoctorInfo)
}
// 医院
var hospital *hospitalResponse.Hospital
if userDoctor.Hospital != nil {
hospital = hospitalResponse.HospitalResponse(userDoctor.Hospital)
}
// 用户
var user *userResponse.User
if userDoctor.User != nil {
user = userResponse.UserResponse(userDoctor.User)
}
// 将原始结构体转换为新结构体
return &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: config.C.Oss.OssCustomDomainName + "/" + 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,
CreatedAt: userDoctor.CreatedAt,
UpdatedAt: userDoctor.UpdatedAt,
User: user,
Hospital: hospital,
UserDoctorInfo: userDoctorInfo,
}
}
+46
View File
@@ -0,0 +1,46 @@
package userResponse
import (
"hospital-admin-api/api/model"
"hospital-admin-api/config"
"strconv"
)
type User struct {
UserID string `json:"user_id"` // 主键
UserName string `json:"user_name"` // 用户名称
UserAccount string `json:"user_account"` // 账号
Mobile string `json:"mobile"` // 手机号
WxMobile string `json:"wx_mobile"` // 微信手机号
UserType int `json:"user_type"` // 用户类型(1:患者 2:医师 3:药师)
UserStatus int `json:"user_status"` // 状态(0:禁用 1:正常 2:删除)
RegisterMethod int `json:"register_method"` // 注册方式(1:微信小程序)
Age uint `json:"age"` // 年龄
Sex int `json:"sex"` // 性别(0:未知 1:男 2:女)
Avatar string `json:"avatar"` // 头像
LoginIP string `json:"login_ip"` // 登陆ip
LastLoginAt model.LocalTime `json:"last_login_at"` // 最后登陆时间
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
}
// UserResponse 用户详情
func UserResponse(user *model.User) *User {
return &User{
UserID: strconv.FormatInt(user.UserId, 10),
UserName: user.UserName,
UserAccount: user.UserAccount,
Mobile: user.Mobile,
WxMobile: user.WxMobile,
UserType: user.UserType,
UserStatus: user.UserStatus,
RegisterMethod: user.RegisterMethod,
Age: user.Age,
Sex: user.Sex,
Avatar: config.C.Oss.OssCustomDomainName + "/" + user.Avatar,
LoginIP: user.LoginIp,
LastLoginAt: user.LastLoginAt,
CreatedAt: user.CreatedAt,
UpdatedAt: user.UpdatedAt,
}
}