Files
hospital-admin-api/api/dto/User.go
T
2024-03-21 14:35:05 +08:00

114 lines
3.9 KiB
Go

package dto
import (
"fmt"
"hospital-admin-api/api/model"
"hospital-admin-api/utils"
)
type UserDto struct {
UserID string `json:"user_id"` // 主键
UserName string `json:"user_name"` // 用户名称
UserAccount string `json:"user_account"` // 账号
Mobile string `json:"mobile"` // 手机号
WxMobile string `json:"wx_mobile"` // 微信手机号
UserType int `json:"user_type"` // 用户类型(1:患者 2:医师 3:药师)
UserStatus int `json:"user_status"` // 状态(0:禁用 1:正常 2:删除)
RegisterMethod int `json:"register_method"` // 注册方式(1:微信小程序)
Age uint `json:"age"` // 年龄
Sex int `json:"sex"` // 性别(0:未知 1:男 2:女)
Email string `json:"email"` // 邮箱
Avatar string `json:"avatar"` // 头像
IsOnline int `json:"is_online"` // 是否在线(0:不在线 1:在线)
LoginAt model.LocalTime `json:"login_at"` // 小程序登陆时间
ImLoginAt model.LocalTime `json:"im_login_at"` // im登陆时间
LoginIp string `json:"login_ip"` // 登陆ip
CreatedBy string `json:"created_by"` // 创建者id(后台用户表id null:自己注册)
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
}
func GetUserDto(m *model.User) *UserDto {
return &UserDto{
UserID: fmt.Sprintf("%d", m.UserId),
UserName: m.UserName,
UserAccount: m.UserAccount,
Mobile: m.Mobile,
WxMobile: m.WxMobile,
UserType: m.UserType,
UserStatus: m.UserStatus,
RegisterMethod: m.RegisterMethod,
Age: m.Age,
Sex: m.Sex,
Email: m.Email,
Avatar: utils.AddOssDomain(m.Avatar),
IsOnline: m.IsOnline,
LoginAt: m.LoginAt,
ImLoginAt: m.ImLoginAt,
LoginIp: m.LoginIp,
CreatedBy: m.CreatedBy,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
func GetMaskUserDto(m *model.User) *UserDto {
return &UserDto{
UserID: fmt.Sprintf("%d", m.UserId),
UserName: m.UserName,
UserAccount: m.UserAccount,
Mobile: utils.MaskPhoneStr(m.Mobile),
WxMobile: utils.MaskPhoneStr(m.WxMobile),
UserType: m.UserType,
UserStatus: m.UserStatus,
RegisterMethod: m.RegisterMethod,
Age: m.Age,
Sex: m.Sex,
Email: m.Email,
Avatar: utils.AddOssDomain(m.Avatar),
IsOnline: m.IsOnline,
LoginAt: m.LoginAt,
ImLoginAt: m.ImLoginAt,
LoginIp: m.LoginIp,
CreatedBy: m.CreatedBy,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
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,
UserAccount: v.UserAccount,
Mobile: v.Mobile,
WxMobile: v.WxMobile,
UserType: v.UserType,
UserStatus: v.UserStatus,
RegisterMethod: v.RegisterMethod,
Age: v.Age,
Sex: v.Sex,
Email: v.Email,
Avatar: utils.AddOssDomain(v.Avatar),
IsOnline: v.IsOnline,
LoginAt: v.LoginAt,
ImLoginAt: v.ImLoginAt,
LoginIp: v.LoginIp,
CreatedBy: v.CreatedBy,
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}