Files
hospital-admin-api/api/dto/AdminUser.go
T
2023-09-28 08:40:43 +08:00

136 lines
3.7 KiB
Go

package dto
import (
"fmt"
"hospital-admin-api/api/model"
"hospital-admin-api/utils"
"strconv"
)
type AdminUserDto struct {
UserID string `json:"user_id"` // 主键id
Access string `json:"access"` // 账号
Status int `json:"status"` // 状态(1:正常 2:审核中 3:审核失败)
IsDeleted int `json:"is_deleted"` // 是否被删除(0:否 1:是)
IsDisabled int `json:"is_disabled"` // 是否被禁用(0:否 1:是)
NickName string `json:"nick_name"` // 昵称
Phone string `json:"phone"` // 手机号
Avatar string `json:"avatar"` // 头像
Sex int `json:"sex"` // 性别(1:男 2:女)
Email string `json:"email"` // 邮箱
RoleID string `json:"role_id"` // 角色id
DeptID string `json:"dept_id"` // 部门id
PostID string `json:"post_id"` // 岗位id
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
AdminRole *AdminRoleDto `json:"role"` // 角色
AdminDept *AdminDeptDto `json:"dept"` // 部门
AdminPost *AdminPostDto `json:"post"` // 岗位
}
func GetAdminUserDto(m *model.AdminUser) *AdminUserDto {
return &AdminUserDto{
UserID: fmt.Sprintf("%d", m.UserID),
Access: m.Access,
Status: m.Status,
IsDeleted: m.IsDeleted,
IsDisabled: m.IsDisabled,
NickName: m.NickName,
Phone: m.Phone,
Avatar: utils.AddOssDomain(m.Avatar),
Sex: m.Sex,
Email: m.Email,
RoleID: fmt.Sprintf("%d", m.RoleID),
DeptID: fmt.Sprintf("%d", m.DeptID),
PostID: fmt.Sprintf("%d", m.PostID),
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
func GetAdminUserListDto(m []*model.AdminUser) []*AdminUserDto {
// 处理返回值
responses := make([]*AdminUserDto, len(m))
if len(m) > 0 {
for i, v := range m {
response := &AdminUserDto{
UserID: fmt.Sprintf("%d", v.UserID),
Access: v.Access,
Status: v.Status,
IsDeleted: v.IsDeleted,
IsDisabled: v.IsDisabled,
NickName: v.NickName,
Phone: v.Phone,
Avatar: utils.AddOssDomain(v.Avatar),
Sex: v.Sex,
Email: v.Email,
RoleID: fmt.Sprintf("%d", v.RoleID),
DeptID: fmt.Sprintf("%d", v.DeptID),
PostID: fmt.Sprintf("%d", v.PostID),
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
// 角色
if v.Role != nil {
response = response.LoadAdminRole(v.Role)
}
// 部门
if v.Dept != nil {
response = response.LoadAdminDept(v.Dept)
}
// 岗位
if v.Post != nil {
response = response.LoadAdminPost(v.Post)
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}
// LoadAdminRole 角色
func (r *AdminUserDto) LoadAdminRole(m *model.AdminRole) *AdminUserDto {
if m != nil {
adminRoleDto := &AdminRoleDto{
RoleId: strconv.FormatInt(m.RoleId, 10),
RoleName: m.RoleName,
}
r.AdminRole = adminRoleDto
}
return r
}
// LoadAdminDept 部门
func (r *AdminUserDto) LoadAdminDept(m *model.AdminDept) *AdminUserDto {
if m != nil {
adminDeptDto := &AdminDeptDto{
DeptId: fmt.Sprintf("%d", m.DeptId), // 部门id
DeptName: m.DeptName, // 部门名称
}
r.AdminDept = adminDeptDto
}
return r
}
// LoadAdminPost 岗位
func (r *AdminUserDto) LoadAdminPost(m *model.AdminPost) *AdminUserDto {
if m != nil {
adminPostDto := &AdminPostDto{
PostId: fmt.Sprintf("%d", m.PostId),
PostName: m.PostName,
}
r.AdminPost = adminPostDto
}
return r
}