136 lines
3.7 KiB
Go
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
|
||
}
|