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 }