146 lines
4.8 KiB
Go
146 lines
4.8 KiB
Go
package userResponse
|
||
|
||
import (
|
||
"hospital-admin-api/api/model"
|
||
"hospital-admin-api/config"
|
||
"strconv"
|
||
)
|
||
|
||
// getUserPage 获取用户列表-分页
|
||
type getUserPage 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"` // 修改时间
|
||
Role *getUserPageRole `json:"role"` // 角色
|
||
Dept *getUserPageDept `json:"dept"` // 部门
|
||
Post *getUserPagePost `json:"post"` // 岗位
|
||
}
|
||
|
||
type getUserPageRole struct {
|
||
RoleId string `json:"role_id"` // 角色id
|
||
RoleName string `json:"role_name"` // 角色名称
|
||
}
|
||
|
||
type getUserPageDept struct {
|
||
DeptId string `json:"dept_id"` // 部门id
|
||
DeptName string `json:"dept_name"` // 部门名称
|
||
}
|
||
|
||
type getUserPagePost struct {
|
||
PostId string `json:"post_id"` // 岗位id
|
||
PostName string `json:"post_name"` // 岗位名称
|
||
}
|
||
|
||
// getUser 用户详情
|
||
type getUser struct {
|
||
UserID string `json:"user_id"`
|
||
Access string `json:"access"`
|
||
Status int `json:"status"`
|
||
IsDeleted int `json:"is_deleted"`
|
||
IsDisabled int `json:"is_disabled"`
|
||
NickName string `json:"nick_name"`
|
||
Phone string `json:"phone"`
|
||
Avatar string `json:"avatar"`
|
||
Sex int `json:"sex"`
|
||
Email string `json:"email"`
|
||
RoleID string `json:"role_id"`
|
||
DeptID string `json:"dept_id"`
|
||
PostID string `json:"post_id"`
|
||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
||
}
|
||
|
||
// GetUserPageResponse 获取用户列表-分页
|
||
func GetUserPageResponse(adminUser []*model.AdminUser) []getUserPage {
|
||
// 处理返回值
|
||
getUserPageResponses := make([]getUserPage, len(adminUser))
|
||
|
||
if len(adminUser) > 0 {
|
||
for i, v := range adminUser {
|
||
var role *getUserPageRole
|
||
if v.Role != nil {
|
||
role = &getUserPageRole{
|
||
RoleId: strconv.FormatInt(v.Role.RoleId, 10),
|
||
RoleName: v.Role.RoleName,
|
||
}
|
||
}
|
||
|
||
var dept *getUserPageDept
|
||
if v.Dept != nil {
|
||
dept = &getUserPageDept{
|
||
DeptId: strconv.FormatInt(v.Dept.DeptId, 10),
|
||
DeptName: v.Dept.DeptName,
|
||
}
|
||
}
|
||
|
||
var post *getUserPagePost
|
||
if v.Post != nil {
|
||
post = &getUserPagePost{
|
||
PostId: strconv.FormatInt(v.Post.PostId, 10),
|
||
PostName: v.Post.PostName,
|
||
}
|
||
}
|
||
|
||
// 将原始结构体转换为新结构体
|
||
getUserPageResponse := getUserPage{
|
||
UserID: strconv.Itoa(int(v.UserID)),
|
||
Access: v.Access,
|
||
Status: v.Status,
|
||
IsDeleted: v.IsDeleted,
|
||
IsDisabled: v.IsDisabled,
|
||
NickName: v.NickName,
|
||
Phone: v.Phone,
|
||
Avatar: config.C.Oss.OssCustomDomainName + "/" + v.Avatar,
|
||
Sex: v.Sex,
|
||
Email: v.Email,
|
||
RoleID: strconv.Itoa(int(v.RoleID)),
|
||
DeptID: strconv.Itoa(int(v.DeptID)),
|
||
PostID: strconv.Itoa(int(v.PostID)),
|
||
CreatedAt: v.CreatedAt,
|
||
UpdatedAt: v.UpdatedAt,
|
||
Role: role,
|
||
Dept: dept,
|
||
Post: post,
|
||
}
|
||
|
||
// 将转换后的结构体添加到新切片中
|
||
getUserPageResponses[i] = getUserPageResponse
|
||
}
|
||
}
|
||
|
||
return getUserPageResponses
|
||
}
|
||
|
||
// GetUserResponse 用户详情
|
||
func GetUserResponse(adminUser *model.AdminUser) *getUser {
|
||
return &getUser{
|
||
UserID: strconv.FormatInt(adminUser.UserID, 10),
|
||
Access: adminUser.Access,
|
||
Status: adminUser.Status,
|
||
IsDeleted: adminUser.IsDeleted,
|
||
IsDisabled: adminUser.IsDisabled,
|
||
NickName: adminUser.NickName,
|
||
Phone: adminUser.Phone,
|
||
Avatar: config.C.Oss.OssCustomDomainName + "/" + adminUser.Avatar,
|
||
Sex: adminUser.Sex,
|
||
Email: adminUser.Email,
|
||
RoleID: strconv.FormatInt(adminUser.RoleID, 10),
|
||
DeptID: strconv.FormatInt(adminUser.DeptID, 10),
|
||
PostID: strconv.FormatInt(adminUser.PostID, 10),
|
||
CreatedAt: adminUser.CreatedAt,
|
||
UpdatedAt: adminUser.UpdatedAt,
|
||
}
|
||
}
|