package dto import ( "fmt" "hospital-admin-api/api/model" ) type PharmacyDoctorDto struct { DoctorPharmacyId string `json:"doctor_pharmacy_id"` // 绑定关系id DoctorId string `json:"doctor_id"` // 医生id UserId string `json:"user_id"` // 用户id UserName string `json:"user_name"` // 医生姓名 Avatar string `json:"avatar"` // 头像 DoctorTitle int `json:"doctor_title"` // 职称代码 DoctorTitleName string `json:"doctor_title_name"` // 职称名称 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 HospitalName string `json:"hospital_name"` // 医院名称 Mobile string `json:"mobile"` // 手机号 IsDefault int `json:"is_default"` // 是否为默认药房(0:否 1:是) Status int `json:"status"` // 状态(1:正常) BindTime model.LocalTime `json:"bind_time"` // 绑定时间 } var doctorTitleMap = map[int]string{ 1: "主任医师", 2: "主任中医师", 3: "副主任医师", 4: "副主任中医师", 5: "主治医师", 6: "住院医师", } func GetPharmacyDoctorDto(m *model.DoctorPharmacy) *PharmacyDoctorDto { if m == nil { return nil } dto := &PharmacyDoctorDto{ DoctorPharmacyId: fmt.Sprintf("%d", m.DoctorPharmacyId), DoctorId: fmt.Sprintf("%d", m.DoctorId), IsDefault: m.IsDefault, Status: m.Status, BindTime: m.CreatedAt, } if m.UserDoctor != nil { dto.UserId = fmt.Sprintf("%d", m.UserDoctor.UserId) dto.UserName = m.UserDoctor.UserName dto.Avatar = m.UserDoctor.Avatar dto.DoctorTitle = m.UserDoctor.DoctorTitle dto.DoctorTitleName = doctorTitleMap[m.UserDoctor.DoctorTitle] dto.DepartmentCustomId = fmt.Sprintf("%d", m.UserDoctor.DepartmentCustomId) dto.DepartmentCustomName = m.UserDoctor.DepartmentCustomName dto.DepartmentCustomMobile = m.UserDoctor.DepartmentCustomMobile dto.HospitalId = fmt.Sprintf("%d", m.UserDoctor.HospitalID) if m.UserDoctor.Hospital != nil { dto.HospitalName = m.UserDoctor.Hospital.HospitalName } if m.UserDoctor.User != nil { dto.Mobile = m.UserDoctor.User.Mobile } } return dto } func GetPharmacyDoctorListDto(list []*model.DoctorPharmacy) []PharmacyDoctorDto { res := make([]PharmacyDoctorDto, len(list)) for i, v := range list { res[i] = *GetPharmacyDoctorDto(v) } return res } // GetDoctorTitleName 获取医生职称名称 func GetDoctorTitleName(title int) string { return doctorTitleMap[title] } // BoundPharmacySimpleDto 医生绑定的药房简要信息 type BoundPharmacySimpleDto struct { PharmacyId string `json:"pharmacy_id"` PharmacyName string `json:"pharmacy_name"` PharmacyCode string `json:"pharmacy_code"` IsDefault int `json:"is_default"` } // AffectedDoctorItemDto 受影响的医生明细 type AffectedDoctorItemDto struct { DoctorId string `json:"doctor_id"` DoctorPharmacyId string `json:"doctor_pharmacy_id"` UserId string `json:"user_id"` UserName string `json:"user_name"` Mobile string `json:"mobile"` DoctorTitleName string `json:"doctor_title_name"` HospitalId string `json:"hospital_id"` HospitalName string `json:"hospital_name"` DepartmentCustomId string `json:"department_custom_id"` DepartmentCustomName string `json:"department_custom_name"` IsDefault int `json:"is_default"` // 在当前待下线药房是否为默认(1:是 0:否) OtherBoundPharmacies []BoundPharmacySimpleDto `json:"other_bound_pharmacies"` // 该医生名下绑定的其他可用药房 } // PharmacyAffectedDoctorsDto 下线预检受影响医生列表响应 type PharmacyAffectedDoctorsDto struct { PharmacyId string `json:"pharmacy_id"` PharmacyName string `json:"pharmacy_name"` PharmacyCode string `json:"pharmacy_code"` Status int `json:"status"` DefaultDoctorCount int64 `json:"default_doctor_count"` TotalDoctorCount int64 `json:"total_doctor_count"` DoctorList []AffectedDoctorItemDto `json:"doctor_list"` }