126 lines
3.2 KiB
Go
126 lines
3.2 KiB
Go
package controller
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"hospital-admin-api/api/dao"
|
|
"hospital-admin-api/api/requests"
|
|
"hospital-admin-api/api/responses"
|
|
"hospital-admin-api/api/responses/userResponse"
|
|
"hospital-admin-api/global"
|
|
"hospital-admin-api/utils"
|
|
"strconv"
|
|
)
|
|
|
|
type User struct{}
|
|
|
|
// GetUserPage 获取用户列表-分页
|
|
func (r *User) GetUserPage(c *gin.Context) {
|
|
UserRequest := requests.UserRequest{}
|
|
if err := c.ShouldBind(&UserRequest.GetUserPage); err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
// 参数验证
|
|
if err := global.Validate.Struct(UserRequest.GetUserPage); err != nil {
|
|
responses.FailWithMessage(utils.Translate(err), c)
|
|
return
|
|
}
|
|
|
|
if UserRequest.GetUserPage.Page == 0 {
|
|
UserRequest.GetUserPage.Page = 1
|
|
}
|
|
|
|
if UserRequest.GetUserPage.PageSize == 0 {
|
|
UserRequest.GetUserPage.PageSize = 20
|
|
}
|
|
|
|
// 获取当前登陆用户数据
|
|
|
|
AdminUserDao := dao.AdminUserDao{}
|
|
adminUser, total, err := AdminUserDao.GetAdminUserPageSearch(UserRequest.GetUserPage, UserRequest.GetUserPage.Page, UserRequest.GetUserPage.PageSize)
|
|
|
|
if err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
// 处理返回值
|
|
getUserPageResponses := make([]userResponse.GetUserPage, len(adminUser))
|
|
|
|
if len(adminUser) > 0 {
|
|
for i, v := range adminUser {
|
|
var Role *userResponse.GetUserPageRole
|
|
if v.Role != nil {
|
|
Role = &userResponse.GetUserPageRole{
|
|
RoleId: strconv.FormatInt(v.Role.RoleId, 10),
|
|
RoleName: v.Role.RoleName,
|
|
}
|
|
}
|
|
|
|
var Dept *userResponse.GetUserPageDept
|
|
if v.Dept != nil {
|
|
Dept = &userResponse.GetUserPageDept{
|
|
DeptId: strconv.FormatInt(v.Dept.DeptId, 10),
|
|
DeptName: v.Dept.DeptName,
|
|
}
|
|
}
|
|
|
|
var Post *userResponse.GetUserPagePost
|
|
if v.Post != nil {
|
|
Post = &userResponse.GetUserPagePost{
|
|
PostId: strconv.FormatInt(v.Post.PostId, 10),
|
|
PostName: v.Post.PostName,
|
|
}
|
|
}
|
|
|
|
// 将原始结构体转换为新结构体
|
|
getUserPageResponse := userResponse.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: 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
|
|
}
|
|
}
|
|
|
|
result := make(map[string]interface{})
|
|
result["page"] = UserRequest.GetUserPage.Page
|
|
result["page_size"] = UserRequest.GetUserPage.PageSize
|
|
result["total"] = total
|
|
result["data"] = getUserPageResponses
|
|
responses.OkWithData(result, c)
|
|
}
|
|
|
|
// AddUser 新增用户
|
|
func (r *User) AddUser(c *gin.Context) {
|
|
UserRequest := requests.UserRequest{}
|
|
if err := c.ShouldBind(&UserRequest.GetUserPage); err != nil {
|
|
responses.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
// 参数验证
|
|
if err := global.Validate.Struct(UserRequest.GetUserPage); err != nil {
|
|
responses.FailWithMessage(utils.Translate(err), c)
|
|
return
|
|
}
|
|
}
|