97 lines
3.3 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"
"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"` // 注册来源1app注册 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
}