Files
hospital-admin-api/api/dto/UserDoctorInfo.go
T

170 lines
5.7 KiB
Go

package dto
import (
"fmt"
"hospital-admin-api/api/model"
"hospital-admin-api/utils"
"strings"
)
type UserDoctorInfoDto 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"` // 签名图片
RegisterCert string `json:"register_cert"` // 电子注册证
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
}
func GetUserDoctorInfoDto(m *model.UserDoctorInfo) *UserDoctorInfoDto {
var licenseCert []string
if m.LicenseCert != "" {
result := strings.Split(m.LicenseCert, ",")
if len(result) > 0 {
for _, v := range result {
v = utils.AddOssDomain(v)
licenseCert = append(licenseCert, v)
}
}
}
var qualificationCert []string
if m.QualificationCert != "" {
result := strings.Split(m.QualificationCert, ",")
if len(result) > 0 {
for _, v := range result {
v = utils.AddOssDomain(v)
qualificationCert = append(qualificationCert, v)
}
}
}
var workCert []string
if m.WorkCert != "" {
result := strings.Split(m.WorkCert, ",")
if len(result) > 0 {
for _, v := range result {
v = utils.AddOssDomain(v)
workCert = append(workCert, v)
}
}
}
var multiPointImages []string
if m.MultiPointImages != "" {
result := strings.Split(m.MultiPointImages, ",")
if len(result) > 0 {
for _, v := range result {
multiPointImages = append(multiPointImages, v)
}
}
}
return &UserDoctorInfoDto{
DoctorInfoId: fmt.Sprintf("%d", m.DoctorInfoId),
UserId: fmt.Sprintf("%d", m.UserId),
DoctorId: fmt.Sprintf("%d", m.DoctorId),
CardType: m.CardType,
CardName: m.CardName,
CardNameMask: m.CardNameMask,
CardNumMask: m.CardNumMask,
LicenseCert: licenseCert,
QualificationCert: qualificationCert,
QualificationCertNum: m.QualificationCertNum,
WorkCert: workCert,
MultiPointImages: multiPointImages,
IdCardFront: utils.AddOssDomain(m.IdCardFront),
IdCardBack: utils.AddOssDomain(m.IdCardBack),
SignImage: utils.AddOssDomain(m.SignImage),
RegisterCert: utils.AddOssDomain(m.RegisterCert),
}
}
func GetUserDoctorInfoListDto(m []*model.UserDoctorInfo) []UserDoctorInfoDto {
// 处理返回值
responses := make([]UserDoctorInfoDto, len(m))
if len(m) > 0 {
for i, v := range m {
var licenseCert []string
if v.LicenseCert != "" {
result := strings.Split(v.LicenseCert, ",")
if len(result) > 0 {
for _, v := range result {
v = utils.AddOssDomain(v)
licenseCert = append(licenseCert, v)
}
}
}
var qualificationCert []string
if v.QualificationCert != "" {
result := strings.Split(v.QualificationCert, ",")
if len(result) > 0 {
for _, v := range result {
v = utils.AddOssDomain(v)
qualificationCert = append(qualificationCert, v)
}
}
}
var workCert []string
if v.WorkCert != "" {
result := strings.Split(v.WorkCert, ",")
if len(result) > 0 {
for _, v := range result {
v = utils.AddOssDomain(v)
workCert = append(workCert, v)
}
}
}
var multiPointImages []string
if v.MultiPointImages != "" {
result := strings.Split(v.MultiPointImages, ",")
if len(result) > 0 {
for _, v := range result {
multiPointImages = append(multiPointImages, v)
}
}
}
response := UserDoctorInfoDto{
DoctorInfoId: fmt.Sprintf("%d", v.DoctorInfoId),
UserId: fmt.Sprintf("%d", v.UserId),
DoctorId: fmt.Sprintf("%d", v.DoctorId),
CardType: v.CardType,
CardName: v.CardName,
CardNameMask: v.CardNameMask,
CardNumMask: v.CardNumMask,
LicenseCert: licenseCert,
QualificationCert: qualificationCert,
QualificationCertNum: v.QualificationCertNum,
WorkCert: workCert,
MultiPointImages: multiPointImages,
IdCardFront: utils.AddOssDomain(v.IdCardFront),
IdCardBack: utils.AddOssDomain(v.IdCardBack),
SignImage: utils.AddOssDomain(v.SignImage),
RegisterCert: utils.AddOssDomain(v.RegisterCert),
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}