hospital-admin-api/api/dto/PatientFamily.go
2023-09-28 08:40:43 +08:00

169 lines
6.4 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}