新增获取用户列表-分页

This commit is contained in:
wucongxing 2023-06-28 08:37:59 +08:00
parent c8fd746540
commit e33721fcd8
9 changed files with 167 additions and 30 deletions

View File

@ -5,4 +5,5 @@ type Api struct {
Basic // 基础数据 Basic // 基础数据
Role // 角色数据 Role // 角色数据
Menu // 菜单数据 Menu // 菜单数据
User // 用户数据
} }

View File

@ -39,29 +39,29 @@ func (r *Role) GetRoleMenuList(c *gin.Context) {
responses.OkWithData(roleMenuList, c) responses.OkWithData(roleMenuList, c)
} }
// GetRolePage 搜索角色列表 // GetRolePage 获取角色列表-分页
func (r *Role) GetRolePage(c *gin.Context) { func (r *Role) GetRolePage(c *gin.Context) {
if err := c.ShouldBind(&RoleRequest.GetRoleList); err != nil { if err := c.ShouldBind(&RoleRequest.GetRolePage); err != nil {
responses.FailWithMessage(err.Error(), c) responses.FailWithMessage(err.Error(), c)
return return
} }
// 参数验证 // 参数验证
if err := global.Validate.Struct(RoleRequest.GetRoleList); err != nil { if err := global.Validate.Struct(RoleRequest.GetRolePage); err != nil {
responses.FailWithMessage(utils.Translate(err), c) responses.FailWithMessage(utils.Translate(err), c)
return return
} }
if RoleRequest.GetRoleList.Page == 0 { if RoleRequest.GetRolePage.Page == 0 {
RoleRequest.GetRoleList.Page = 1 RoleRequest.GetRolePage.Page = 1
} }
if RoleRequest.GetRoleList.PageSize == 0 { if RoleRequest.GetRolePage.PageSize == 0 {
RoleRequest.GetRoleList.PageSize = 20 RoleRequest.GetRolePage.PageSize = 20
} }
AdminRoleDao := dao.AdminRoleDao{} AdminRoleDao := dao.AdminRoleDao{}
adminRole, total, err := AdminRoleDao.GetAdminRolePageSearch(RoleRequest.GetRoleList.RoleName, RoleRequest.GetRoleList.Page, RoleRequest.GetRoleList.PageSize) adminRole, total, err := AdminRoleDao.GetAdminRolePageSearch(RoleRequest.GetRolePage.RoleName, RoleRequest.GetRolePage.Page, RoleRequest.GetRolePage.PageSize)
if err != nil { if err != nil {
responses.FailWithMessage(err.Error(), c) responses.FailWithMessage(err.Error(), c)
@ -70,8 +70,8 @@ func (r *Role) GetRolePage(c *gin.Context) {
} }
result := make(map[string]interface{}) result := make(map[string]interface{})
result["page"] = RoleRequest.GetRoleList.Page result["page"] = RoleRequest.GetRolePage.Page
result["page_size"] = RoleRequest.GetRoleList.PageSize result["page_size"] = RoleRequest.GetRolePage.PageSize
result["total"] = total result["total"] = total
result["data"] = adminRole result["data"] = adminRole
responses.OkWithData(result, c) responses.OkWithData(result, c)

52
api/controller/user.go Normal file
View File

@ -0,0 +1,52 @@
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/global"
"hospital-admin-api/utils"
)
type User struct{}
var UserRequest requests.UserRequest
// GetUserPage 获取用户列表-分页
func (r *User) GetUserPage(c *gin.Context) {
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)
c.Abort()
return
}
result := make(map[string]interface{})
result["page"] = UserRequest.GetUserPage.Page
result["page_size"] = UserRequest.GetUserPage.PageSize
result["total"] = total
result["data"] = adminUser
responses.OkWithData(result, c)
}

View File

@ -36,7 +36,7 @@ func (r *AdminRoleDao) AddAdminRole(tx *gorm.DB, model *model.AdminRole) (*model
return model, nil return model, nil
} }
// GetAdminRolePageSearch 搜索角色列表-分页 // GetAdminRolePageSearch 获取角色列表-分页
func (r *AdminRoleDao) GetAdminRolePageSearch(roleName string, page, pageSize int) (m []*model.AdminRole, total int64, err error) { func (r *AdminRoleDao) GetAdminRolePageSearch(roleName string, page, pageSize int) (m []*model.AdminRole, total int64, err error) {
var totalRecords int64 var totalRecords int64

View File

@ -3,6 +3,7 @@ package dao
import ( import (
"gorm.io/gorm" "gorm.io/gorm"
"hospital-admin-api/api/model" "hospital-admin-api/api/model"
"hospital-admin-api/api/requests"
"hospital-admin-api/global" "hospital-admin-api/global"
) )
@ -63,3 +64,49 @@ func (r *AdminUserDao) GetAdminUserList(maps interface{}) (m []*model.AdminUser,
} }
return m, nil return m, nil
} }
// GetAdminUserPageSearch 获取用户列表-分页
func (r *AdminUserDao) GetAdminUserPageSearch(getUserPage requests.GetUserPage, page, pageSize int) (m []*model.AdminUser, total int64, err error) {
var totalRecords int64
// 构建查询条件
query := global.Db.Model(&model.AdminUser{}).Preload("Role")
if getUserPage.PostName != "" {
query = query.Preload("Post", "post_name like ?", "%"+getUserPage.PostName+"%")
}
if getUserPage.DeptName != "" {
query = query.Preload("Dept", "dept_name like ?", "%"+getUserPage.DeptName+"%")
}
if getUserPage.NickName != "" {
query = query.Where("nick_name = ?", getUserPage.NickName)
}
if getUserPage.Phone != "" {
query = query.Where("phone = ?", getUserPage.Phone)
}
if getUserPage.Status != 0 {
query = query.Where("status = ?", getUserPage.Status)
}
if getUserPage.DeptId != 0 {
query = query.Where("dept_id = ?", getUserPage.DeptId)
}
if getUserPage.PostId != 0 {
query = query.Where("post_id = ?", getUserPage.PostId)
}
// 查询总数量
if err := query.Count(&totalRecords).Error; err != nil {
return nil, 0, err
}
err = query.Scopes(model.Paginate(page, pageSize)).Find(&m).Error
if err != nil {
return nil, 0, err
}
return m, totalRecords, nil
}

View File

@ -18,6 +18,9 @@ type AdminUser struct {
RoleID int64 `gorm:"column:role_id;type:bigint(19);comment:'角色表'" json:"role_id"` RoleID int64 `gorm:"column:role_id;type:bigint(19);comment:'角色表'" json:"role_id"`
DeptID int64 `gorm:"column:dept_id;type:bigint(19);comment:'部门id'" json:"dept_id"` DeptID int64 `gorm:"column:dept_id;type:bigint(19);comment:'部门id'" json:"dept_id"`
PostID int64 `gorm:"column:post_id;type:bigint(19);comment:'岗位id'" json:"post_id"` PostID int64 `gorm:"column:post_id;type:bigint(19);comment:'岗位id'" json:"post_id"`
Role *AdminRole `gorm:"foreignKey:RoleID"` // 角色
Dept *AdminMenu `gorm:"foreignKey:DeptID"` // 部门
Post *AdminPost `gorm:"foreignKey:PostID"` // 岗位
} }
func (m *AdminUser) TableName() string { func (m *AdminUser) TableName() string {

View File

@ -1,15 +1,15 @@
package requests package requests
type RoleRequest struct { type RoleRequest struct {
GetRoleList // 获取角色列表 GetRolePage // 获取角色列表-分页
PutRoleStatus // 角色禁用/启用 PutRoleStatus // 角色禁用/启用
AddRole // 新增角色 AddRole // 新增角色
PutRole // 修改角色 PutRole // 修改角色
DeleteRole // 修改角色 DeleteRole // 修改角色
} }
// GetRoleList 获取角色列表 // GetRolePage 获取角色列表-分页
type GetRoleList struct { type GetRolePage struct {
RoleName string `json:"role_name" form:"role_name" label:"角色名称"` RoleName string `json:"role_name" form:"role_name" label:"角色名称"`
Page int `json:"page" form:"page" label:"页码"` Page int `json:"page" form:"page" label:"页码"`
PageSize int `json:"page_size" form:"page_size" label:"每页个数"` PageSize int `json:"page_size" form:"page_size" label:"每页个数"`

18
api/requests/user.go Normal file
View File

@ -0,0 +1,18 @@
package requests
type UserRequest struct {
GetUserPage // 获取用户列表-分页
}
// GetUserPage 获取用户列表-分页
type GetUserPage struct {
PostName string `json:"post_name" form:"post_name" label:"岗位名称"`
DeptName string `json:"dept_name" form:"dept_name" label:"部门名称"`
NickName string `json:"nick_name" form:"nick_name" label:"用户昵称"`
Phone string `json:"phone" form:"phone" label:"手机号"`
Status int `json:"status" form:"status" label:"用户状态"` // 1:正常 2:审核中 3:审核失败)
DeptId int64 `json:"dept_id" form:"dept_id" label:"部门"`
PostId int64 `json:"post_id" form:"post_id" label:"岗位"`
Page int `json:"page" form:"page" label:"页码"`
PageSize int `json:"page_size" form:"page_size" label:"每页个数"`
}

View File

@ -75,7 +75,7 @@ func privateRouter(r *gin.Engine, api controller.Api) {
// 获取登陆角色菜单列表 // 获取登陆角色菜单列表
roleGroup.GET("menu", api.Role.GetRoleMenuList) roleGroup.GET("menu", api.Role.GetRoleMenuList)
// 搜索角色列表-分页 // 获取角色列表-分页
roleGroup.GET("", api.Role.GetRolePage) roleGroup.GET("", api.Role.GetRolePage)
// 角色禁用/启用 // 角色禁用/启用
@ -109,4 +109,20 @@ func privateRouter(r *gin.Engine, api controller.Api) {
// 删除菜单-批量 // 删除菜单-批量
menuGroup.DELETE("", api.Menu.DeleteMenu) menuGroup.DELETE("", api.Menu.DeleteMenu)
} }
// 用户
userGroup := adminGroup.Group("/user")
{
// 获取用户列表-分页
userGroup.GET("", api.User.GetUserPage)
// 新增用户
userGroup.POST("", api.User.GetUserPage)
// 修改用户
userGroup.PUT("/:menu_id", api.User.GetUserPage)
// 删除用户-批量
userGroup.DELETE("", api.User.GetUserPage)
}
} }