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

111 lines
3.4 KiB
Go
Raw 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 UserPatientDto struct {
PatientId string `json:"patient_id"` // 主键id
UserId string `json:"user_id"` // 用户id;NOT NULL
UserName string `json:"user_name"` // 用户名称
Status *int `json:"status"` // 状态0:禁用 1:正常 2:删除)
Avatar string `json:"avatar"` // 头像
Mobile string `json:"mobile"` // 手机号
DisableReason string `json:"disable_reason"` // 禁用理由
PatientFamilyCount int `json:"patient_family_count"` // 家庭成员数量
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
PatientFamily []*PatientFamilyMaskDto `json:"patient_family"` // 家庭成员
UserShipAddress []*UserShipAddressDto `json:"user_ship_address"` // 收货地址
}
func GetUserPatientDto(m *model.UserPatient) *UserPatientDto {
return &UserPatientDto{
PatientId: fmt.Sprintf("%d", m.PatientId),
UserId: fmt.Sprintf("%d", m.UserId),
UserName: m.UserName,
Status: &m.Status,
Avatar: utils.AddOssDomain(m.Avatar),
DisableReason: m.DisableReason,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
func GetUserPatientListDto(m []*model.UserPatient) []*UserPatientDto {
// 处理返回值
responses := make([]*UserPatientDto, len(m))
if len(m) > 0 {
for i, v := range m {
response := &UserPatientDto{
PatientId: fmt.Sprintf("%d", v.PatientId),
UserId: fmt.Sprintf("%d", v.UserId),
UserName: v.UserName,
Status: &v.Status,
Avatar: utils.AddOssDomain(v.Avatar),
DisableReason: v.DisableReason,
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
// 加载家庭成员数量
response.LoadPatientFamilyCount(v.PatientFamily)
// 加载患者手机号
response.LoadPatientMaskMobile(v.User)
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}
// LoadPatientFamilyCount 加载家庭成员数量
func (r *UserPatientDto) LoadPatientFamilyCount(m []*model.PatientFamily) *UserPatientDto {
if len(m) > 0 {
r.PatientFamilyCount = len(m)
}
return r
}
// LoadPatientMaskMobile 加载患者加密手机号
func (r *UserPatientDto) LoadPatientMaskMobile(m *model.User) *UserPatientDto {
if m != nil {
r.Mobile = utils.MaskPhoneStr(m.Mobile)
}
return r
}
// LoadPatientMobile 加载患者手机号
func (r *UserPatientDto) LoadPatientMobile(m *model.User) *UserPatientDto {
if m != nil {
r.Mobile = m.Mobile
}
return r
}
// LoadUserShipAddress 加载用户收货地址
func (r *UserPatientDto) LoadUserShipAddress(m []*model.UserShipAddress) *UserPatientDto {
if len(m) > 0 {
d := GetUserShipAddressListDto(m)
r.UserShipAddress = d
}
return r
}
// LoadMaskPatientFamily 加载家庭成员数据-加密
func (r *UserPatientDto) LoadMaskPatientFamily(m []*model.PatientFamily) *UserPatientDto {
if len(m) > 0 {
d := GetPatientFamilyMaskListDto(m)
r.PatientFamily = d
}
return r
}