package dto import ( "fmt" "hepa-calc-admin-api/api/model" "hepa-calc-admin-api/utils" "time" ) // UserDto 用户表 type UserDto struct { UserId string `json:"user_id"` // 用户id UserName string `json:"user_name"` // 用户名称 Mobile string `json:"mobile"` // 手机号 UserStatus int `json:"user_status"` // 状态(1:正常 2:禁用) RegisterSource int `json:"register_source"` // 注册来源(1:app注册 2:公众号注册) OpenId string `json:"open_id"` // 用户微信标识 UnionId string `json:"union_id"` // 微信开放平台标识 Age *uint `json:"age"` // 年龄 Sex uint `json:"sex"` // 性别(0:未知 1:男 2:女) Avatar string `json:"avatar"` // 头像 IsMember int `json:"is_member"` // 是否会员(0:否 1:是) MemberExpireDate *time.Time `json:"member_expire_date"` // 会员到期时间(非会员时为null) LoginAt model.LocalTime `json:"login_at"` // 登陆时间 LoginIp string `json:"login_ip"` // 登陆ip CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 IsInfoComplete int `json:"is_info_complete"` // 信息完善状态 0:否 1:是 } // GetUserListDto 列表 func GetUserListDto(m []*model.User) []*UserDto { // 处理返回值 responses := make([]*UserDto, len(m)) if len(m) > 0 { for i, v := range m { response := &UserDto{ UserId: fmt.Sprintf("%d", v.UserId), UserName: v.UserName, Mobile: v.Mobile, UserStatus: v.UserStatus, RegisterSource: v.RegisterSource, Age: v.Age, Sex: uint(v.Sex), Avatar: utils.AddOssDomain(v.Avatar), IsMember: v.IsMember, MemberExpireDate: v.MemberExpireDate, LoginAt: v.LoginAt, LoginIp: v.LoginIp, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, } // 加载信息完善状态 if v.UserInfo != nil { response = response.LoadIsInfoComplete(v.UserInfo) } // 将转换后的结构体添加到新切片中 responses[i] = response } } return responses } // GetUserDto 详情-问题 func GetUserDto(m *model.User) *UserDto { return &UserDto{ UserId: fmt.Sprintf("%d", m.UserId), UserName: m.UserName, Mobile: m.Mobile, UserStatus: m.UserStatus, RegisterSource: m.RegisterSource, Age: m.Age, Sex: uint(m.Sex), Avatar: utils.AddOssDomain(m.Avatar), IsMember: m.IsMember, MemberExpireDate: m.MemberExpireDate, LoginAt: m.LoginAt, LoginIp: m.LoginIp, CreatedAt: m.CreatedAt, UpdatedAt: m.UpdatedAt, } } // LoadIsInfoComplete 加载信息完善状态 func (r *UserDto) LoadIsInfoComplete(m *model.UserInfo) *UserDto { if m != nil { if m.DiseaseClassId != 0 && m.FamilyHistoryId != 0 { r.IsInfoComplete = 1 } } return r }