114 lines
3.9 KiB
Go
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
|
||
}
|