116 lines
4.2 KiB
Go
116 lines
4.2 KiB
Go
package dto
|
||
|
||
import (
|
||
"fmt"
|
||
"hepa-calc-admin-api/api/model"
|
||
"hepa-calc-admin-api/utils"
|
||
)
|
||
|
||
// 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 *int `json:"sex"` // 性别(0:未知 1:男 2:女)
|
||
Avatar string `json:"avatar"` // 头像
|
||
IsMember int `json:"is_member"` // 是否会员(0:否 1:是)
|
||
MemberExpireDate *model.LocalTime `json:"member_expire_date"` // 会员到期时间(非会员时为null)
|
||
SingleSubmitCount int `json:"single_submit_count"` // 单项提交次数(提交个人信息进行了算算的人次)
|
||
SinglePayCount int `json:"single_pay_count"` // 单项支付次数(查看报告的人次)
|
||
MemberBuyCount int `json:"member_buy_count"` // 会员购买次数
|
||
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 bool `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: &v.Sex,
|
||
Avatar: utils.AddOssDomain(v.Avatar),
|
||
IsMember: v.IsMember,
|
||
MemberExpireDate: v.MemberExpireDate,
|
||
SingleSubmitCount: v.SingleSubmitCount,
|
||
SinglePayCount: v.SinglePayCount,
|
||
MemberBuyCount: v.MemberBuyCount,
|
||
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: &m.Sex,
|
||
Avatar: utils.AddOssDomain(m.Avatar),
|
||
IsMember: m.IsMember,
|
||
MemberExpireDate: m.MemberExpireDate,
|
||
SingleSubmitCount: m.SingleSubmitCount,
|
||
SinglePayCount: m.SinglePayCount,
|
||
MemberBuyCount: m.MemberBuyCount,
|
||
LoginAt: m.LoginAt,
|
||
LoginIp: m.LoginIp,
|
||
CreatedAt: m.CreatedAt,
|
||
UpdatedAt: m.UpdatedAt,
|
||
}
|
||
}
|
||
|
||
// LoadIsInfoComplete 加载信息完善状态
|
||
func (r *UserDto) LoadIsInfoComplete(m *model.UserInfo) *UserDto {
|
||
isCompleteInfo := false
|
||
if m != nil {
|
||
if m.Height == "" {
|
||
isCompleteInfo = false
|
||
} else if m.Weight == "" {
|
||
isCompleteInfo = false
|
||
} else if m.IsFamilyHistory == nil {
|
||
isCompleteInfo = false
|
||
} else if m.ProvinceId == "" {
|
||
isCompleteInfo = false
|
||
} else {
|
||
isCompleteInfo = true
|
||
}
|
||
}
|
||
|
||
r.IsInfoComplete = isCompleteInfo
|
||
return r
|
||
}
|