package dto import ( "fmt" "hospital-admin-api/api/model" "hospital-admin-api/utils" ) type PatientFamilyDto struct { FamilyId string `json:"family_id"` // 主键id PatientId string `json:"patient_id"` // 患者id Relation *int `json:"relation"` // 与患者关系(1:本人 2:父母 3:爱人 4:子女 5:亲戚 6:其他) Status *int `json:"status"` // 状态(1:正常 2:删除) IsDefault *int `json:"is_default"` // 是否默认(0:否 1:是) CardName string `json:"card_name"` // 姓名 CardNameMask string `json:"card_name_mask"` // 姓名(掩码) Mobile string `json:"mobile"` // 电话 MobileMask string `json:"mobile_mask"` // 电话(掩码) Type *int `json:"type"` // 身份类型(1:身份证 2:护照 3:港澳通行证 4:台胞证) IdNumber string `json:"id_number"` // 证件号码 IdNumberMask string `json:"id_number_mask"` // 证件号码(掩码) Sex *int `json:"sex"` // 性别(0:未知 1:男 2:女) Age int `json:"age"` // 年龄 ProvinceId string `json:"province_id"` // 省份id Province string `json:"province"` // 省份 CityId string `json:"city_id"` // 城市id City string `json:"city"` // 城市 CountyId string `json:"county_id"` // 区县id County string `json:"county"` // 区县 Height string `json:"height"` // 身高(cm) Weight string `json:"weight"` // 体重(kg) MaritalStatus *int `json:"marital_status"` // 婚姻状况(0:未婚 1:已婚 2:离异) NationId string `json:"nation_id"` // 民族 NationName string `json:"nation_name"` // 民族名称 JobId string `json:"job_id"` // 职业 JobName string `json:"job_name"` // 职业名称 UserName string `json:"user_name"` // 账号名称 User *UserDto `json:"user"` // 用户 CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 } type PatientFamilyMaskDto struct { FamilyId string `json:"family_id"` // 主键id PatientId string `json:"patient_id"` // 患者id Relation *int `json:"relation"` // 与患者关系(1:本人 2:父母 3:爱人 4:子女 5:亲戚 6:其他) Status *int `json:"status"` // 状态(1:正常 2:删除) IsDefault *int `json:"is_default"` // 是否默认(0:否 1:是) CardNameMask string `json:"card_name_mask"` // 姓名(掩码) MobileMask string `json:"mobile_mask"` // 电话(掩码) IdNumberMask string `json:"id_number_mask"` // 证件号码(掩码) Sex *int `json:"sex"` // 性别(0:未知 1:男 2:女) Age int `json:"age"` // 年龄 CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 } func GetPatientFamilyMaskDto(m *model.PatientFamily) *PatientFamilyMaskDto { return &PatientFamilyMaskDto{ FamilyId: fmt.Sprintf("%d", m.FamilyId), PatientId: fmt.Sprintf("%d", m.PatientId), Relation: m.Relation, Status: &m.Status, IsDefault: &m.IsDefault, CardNameMask: m.CardNameMask, IdNumberMask: m.IdNumberMask, Sex: &m.Sex, Age: m.Age, CreatedAt: m.CreatedAt, UpdatedAt: m.UpdatedAt, } } func GetPatientFamilyMaskListDto(m []*model.PatientFamily) []*PatientFamilyMaskDto { // 处理返回值 responses := make([]*PatientFamilyMaskDto, len(m)) if len(m) > 0 { for i, v := range m { response := &PatientFamilyMaskDto{ FamilyId: fmt.Sprintf("%d", v.FamilyId), PatientId: fmt.Sprintf("%d", v.PatientId), Relation: v.Relation, Status: &v.Status, IsDefault: &v.IsDefault, CardNameMask: v.CardNameMask, IdNumberMask: v.IdNumberMask, Sex: &v.Sex, Age: v.Age, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, } // 将转换后的结构体添加到新切片中 responses[i] = response } } return responses } func GetPatientFamilyDto(m *model.PatientFamily) *PatientFamilyDto { return &PatientFamilyDto{ FamilyId: fmt.Sprintf("%d", m.FamilyId), PatientId: fmt.Sprintf("%d", m.PatientId), Relation: m.Relation, Status: &m.Status, IsDefault: &m.IsDefault, CardName: m.CardName, CardNameMask: m.CardNameMask, MobileMask: m.MobileMask, Type: &m.Type, IdNumberMask: m.IdNumberMask, Sex: &m.Sex, Age: m.Age, ProvinceId: fmt.Sprintf("%d", m.ProvinceId), Province: m.Province, CityId: fmt.Sprintf("%d", m.CityId), City: m.City, CountyId: fmt.Sprintf("%d", m.CountyId), County: m.County, Height: m.Height, Weight: m.Weight, MaritalStatus: &m.MaritalStatus, NationId: fmt.Sprintf("%d", m.NationId), NationName: m.NationName, JobId: fmt.Sprintf("%d", m.JobId), JobName: m.JobName, CreatedAt: m.CreatedAt, UpdatedAt: m.UpdatedAt, } } func GetPatientFamilyListDto(m []*model.PatientFamily) []*PatientFamilyDto { // 处理返回值 responses := make([]*PatientFamilyDto, len(m)) if len(m) > 0 { for i, v := range m { response := &PatientFamilyDto{ FamilyId: fmt.Sprintf("%d", v.FamilyId), PatientId: fmt.Sprintf("%d", v.PatientId), Relation: v.Relation, Status: &v.Status, CardName: v.CardName, MobileMask: utils.MaskPhoneStr(v.UserPatient.User.Mobile), UserName: v.UserPatient.UserName, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, } // 将转换后的结构体添加到新切片中 responses[i] = response } } return responses } // LoadMaskUser 加载用户数据-加密 func (r *PatientFamilyDto) LoadMaskUser(m *model.User) *PatientFamilyDto { if m != nil { userDto := GetMaskUserDto(m) r.User = userDto } return r }