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 } }