From 97963146162f26d9b0b14cc0d7bb9ffb9edf0aef Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Mon, 3 Jul 2023 15:59:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A7=92=E8=89=B2=E5=88=97?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E5=B2=97=E4=BD=8D=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/post.go | 37 +++++++++++++++++++ api/controller/role.go | 58 ++++++++++++++++++++++++------ api/dao/adminPost.go | 12 +++---- api/dao/adminRole.go | 9 +++++ api/requests/post.go | 8 ++++- api/requests/role.go | 6 ++++ api/responses/postResponse/post.go | 33 +++++++++++++++++ api/responses/roleResponse/role.go | 40 ++++++++++++++++++++- api/router/router.go | 7 ++-- 9 files changed, 189 insertions(+), 21 deletions(-) diff --git a/api/controller/post.go b/api/controller/post.go index b990983..47344a8 100644 --- a/api/controller/post.go +++ b/api/controller/post.go @@ -207,3 +207,40 @@ func (r *Post) PutPost(c *gin.Context) { } responses.Ok(c) } + +// GetPostList 获取岗位列表 +func (r *Post) GetPostList(c *gin.Context) { + roleRequest := requests.PostRequest{} + if err := c.ShouldBind(&roleRequest.GetPostList); err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + // 参数验证 + if err := global.Validate.Struct(roleRequest.GetPostList); err != nil { + responses.FailWithMessage(utils.Translate(err), c) + return + } + + adminPostDao := dao.AdminPostDao{} + + maps := make(map[string]interface{}) + if roleRequest.GetPostList.PostName != "" { + maps["post_name"] = roleRequest.GetPostList.PostName + } + adminPosts, err := adminPostDao.GetAdminPostList(maps) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + if len(adminPosts) == 0 { + responses.Ok(c) + return + } + + // 处理返回值 + getPostListResponses := postResponse.GetPostListResponse(adminPosts) + + responses.OkWithData(getPostListResponses, c) +} diff --git a/api/controller/role.go b/api/controller/role.go index 61a43b8..b7b2b33 100644 --- a/api/controller/role.go +++ b/api/controller/role.go @@ -222,14 +222,14 @@ func (r *Role) GetRole(c *gin.Context) { // PutRole 修改角色 func (r *Role) PutRole(c *gin.Context) { - RoleRequest := requests.RoleRequest{} - if err := c.ShouldBindJSON(&RoleRequest.PutRole); err != nil { + roleRequest := requests.RoleRequest{} + if err := c.ShouldBindJSON(&roleRequest.PutRole); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 - if err := global.Validate.Struct(RoleRequest.PutRole); err != nil { + if err := global.Validate.Struct(roleRequest.PutRole); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } @@ -248,7 +248,7 @@ func (r *Role) PutRole(c *gin.Context) { } // 判断菜单数据是否为空 - if len(RoleRequest.PutRole.MenuIds) == 0 { + if len(roleRequest.PutRole.MenuIds) == 0 { responses.FailWithMessage("请为角色添加菜单", c) return } @@ -267,8 +267,7 @@ func (r *Role) PutRole(c *gin.Context) { } // 业务处理 - RoleService := service.RoleService{} - _, err = RoleService.PutRole(c, roleId, RoleRequest.PutRole) + _, err = roleService.PutRole(c, roleId, roleRequest.PutRole) if err != nil { responses.FailWithMessage(err.Error(), c) return @@ -278,24 +277,61 @@ func (r *Role) PutRole(c *gin.Context) { // DeleteRole 删除角色-批量 func (r *Role) DeleteRole(c *gin.Context) { - RoleRequest := requests.RoleRequest{} - if err := c.ShouldBindJSON(&RoleRequest.DeleteRole); err != nil { + roleRequest := requests.RoleRequest{} + if err := c.ShouldBindJSON(&roleRequest.DeleteRole); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 - if err := global.Validate.Struct(RoleRequest.DeleteRole); err != nil { + if err := global.Validate.Struct(roleRequest.DeleteRole); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } // 业务处理 - RoleService := service.RoleService{} - _, err := RoleService.DeleteRole(c, RoleRequest.DeleteRole) + roleService := service.RoleService{} + _, err := roleService.DeleteRole(c, roleRequest.DeleteRole) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) } + +// GetRoleList 获取角色列表 +func (r *Role) GetRoleList(c *gin.Context) { + roleRequest := requests.RoleRequest{} + if err := c.ShouldBind(&roleRequest.GetRoleList); err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + // 参数验证 + if err := global.Validate.Struct(roleRequest.GetRoleList); err != nil { + responses.FailWithMessage(utils.Translate(err), c) + return + } + + adminRoleDao := dao.AdminRoleDao{} + + maps := make(map[string]interface{}) + if roleRequest.GetRoleList.RoleName != "" { + maps["role_name"] = roleRequest.GetRoleList.RoleName + } + adminRoles, err := adminRoleDao.GetAdminRoleList(maps) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + if len(adminRoles) == 0 { + responses.Ok(c) + return + } + + // 处理返回值 + getRoleListResponses := roleResponse.GetRoleListResponse(adminRoles) + + responses.OkWithData(getRoleListResponses, c) +} diff --git a/api/dao/adminPost.go b/api/dao/adminPost.go index 09fa31c..9b24a5f 100644 --- a/api/dao/adminPost.go +++ b/api/dao/adminPost.go @@ -37,16 +37,16 @@ func (r *AdminPostDao) AddAdminPost(tx *gorm.DB, model *model.AdminPost) (*model } // DeleteAdminPostById 删除岗位-岗位id -func (r *AdminPostDao) DeleteAdminPostById(tx *gorm.DB, deptId int64) error { - if err := tx.Delete(&model.AdminPost{}, deptId).Error; err != nil { +func (r *AdminPostDao) DeleteAdminPostById(tx *gorm.DB, postId int64) error { + if err := tx.Delete(&model.AdminPost{}, postId).Error; err != nil { return err } return nil } // EditAdminPostById 修改岗位-岗位id -func (r *AdminPostDao) EditAdminPostById(tx *gorm.DB, deptId int64, data interface{}) error { - err := tx.Model(&model.AdminPost{}).Where("post_id = ?", deptId).Updates(data).Error +func (r *AdminPostDao) EditAdminPostById(tx *gorm.DB, postId int64, data interface{}) error { + err := tx.Model(&model.AdminPost{}).Where("post_id = ?", postId).Updates(data).Error if err != nil { return err } @@ -61,8 +61,8 @@ func (r *AdminPostDao) GetAdminPostPageSearch(getPostPage requests.GetPostPage, query := global.Db.Model(&model.AdminPost{}) query = query.Where("post_status = ? ", 1) - if getPostPage.DeptName != "" { - query = query.Where("post_name like ?", "%"+getPostPage.DeptName+"%") + if getPostPage.PostName != "" { + query = query.Where("post_name like ?", "%"+getPostPage.PostName+"%") } // 查询总数量 diff --git a/api/dao/adminRole.go b/api/dao/adminRole.go index a7dec5a..b176d04 100644 --- a/api/dao/adminRole.go +++ b/api/dao/adminRole.go @@ -83,3 +83,12 @@ func (r *AdminRoleDao) EditAdminRoleByIdWithStruct(tx *gorm.DB, roleId int64, mo } return nil } + +// GetAdminRoleList 获取角色列表 +func (r *AdminRoleDao) GetAdminRoleList(maps interface{}) (m []*model.AdminRole, err error) { + err = global.Db.Where(maps).Find(&m).Error + if err != nil { + return nil, err + } + return m, nil +} diff --git a/api/requests/post.go b/api/requests/post.go index b891127..7acd4c6 100644 --- a/api/requests/post.go +++ b/api/requests/post.go @@ -2,6 +2,7 @@ package requests type PostRequest struct { GetPostPage // 获取岗位列表-分页 + GetPostList // 获取岗位列表 AddPost // 新增岗位 DeletePost // 删除岗位-批量 PutPost // 修改岗位 @@ -14,11 +15,16 @@ type AddPost struct { // GetPostPage 获取岗位列表-分页 type GetPostPage struct { - DeptName string `json:"post_name" form:"post_name" label:"api名称"` + PostName string `json:"post_name" form:"post_name" label:"岗位名称"` Page int `json:"page" form:"page" label:"页码"` PageSize int `json:"page_size" form:"page_size" label:"每页个数"` } +// GetPostList 获取岗位列表 +type GetPostList struct { + PostName string `json:"post_name" form:"post_name" label:"岗位名称"` +} + // DeletePost 删除岗位-批量 type DeletePost struct { PostIds []string `json:"post_ids" form:"post_ids" validate:"required" label:"岗位id"` diff --git a/api/requests/role.go b/api/requests/role.go index deeb4ec..0a21f1f 100644 --- a/api/requests/role.go +++ b/api/requests/role.go @@ -2,6 +2,7 @@ package requests type RoleRequest struct { GetRolePage // 获取角色列表-分页 + GetRoleList // 获取角色列表 PutRoleStatus // 角色禁用/启用 AddRole // 新增角色 PutRole // 修改角色 @@ -15,6 +16,11 @@ type GetRolePage struct { PageSize int `json:"page_size" form:"page_size" label:"每页个数"` } +// GetRoleList 获取角色列表 +type GetRoleList struct { + RoleName string `json:"role_name" form:"role_name" label:"角色名称"` +} + // PutRoleStatus 角色禁用/启用 type PutRoleStatus struct { RoleStatus int `json:"role_status" form:"role_status" validate:"oneof=1 2" label:"角色状态"` // (1:正常 2:禁用) diff --git a/api/responses/postResponse/post.go b/api/responses/postResponse/post.go index 1725b63..3117dbe 100644 --- a/api/responses/postResponse/post.go +++ b/api/responses/postResponse/post.go @@ -14,6 +14,15 @@ type getPostPage struct { UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间 } +// getPostList 获取岗位列表 +type getPostList struct { + PostId string `json:"post_id"` // 主键id + PostName string `json:"post_name"` // 岗位名称 + PostStatus int `json:"post_status"` // 岗位状态(1:正常 2:删除) + CreatedAt model.LocalTime `json:"created_at"` // 创建时间 + UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间 +} + // GetPost 岗位详情 type GetPost struct { PostId string `json:"post_id"` // 主键id @@ -57,3 +66,27 @@ func GetPostResponse(adminPost *model.AdminPost) *GetPost { UpdatedAt: adminPost.UpdatedAt, } } + +// GetPostListResponse 获取角色列表 +func GetPostListResponse(adminPost []*model.AdminPost) []getPostList { + // 处理返回值 + getPostListResponses := make([]getPostList, len(adminPost)) + + if len(adminPost) > 0 { + for i, v := range adminPost { + // 将原始结构体转换为新结构体 + getPostListResponse := getPostList{ + PostId: strconv.Itoa(int(v.PostId)), + PostName: v.PostName, + PostStatus: v.PostStatus, + CreatedAt: v.CreatedAt, + UpdatedAt: v.UpdatedAt, + } + + // 将转换后的结构体添加到新切片中 + getPostListResponses[i] = getPostListResponse + } + } + + return getPostListResponses +} diff --git a/api/responses/roleResponse/role.go b/api/responses/roleResponse/role.go index b2d15ec..65d5133 100644 --- a/api/responses/roleResponse/role.go +++ b/api/responses/roleResponse/role.go @@ -1,6 +1,9 @@ package roleResponse -import "hospital-admin-api/api/model" +import ( + "hospital-admin-api/api/model" + "strconv" +) // GetRoleMenuList 角色菜单列表 type GetRoleMenuList struct { @@ -36,3 +39,38 @@ type GetRolePage struct { CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间 } + +// GetRoleList 获取角色列表 +type GetRoleList struct { + RoleId string `json:"role_id"` // 角色id + RoleName string `json:"role_name"` // 角色名称 + RoleStatus int `json:"role_status"` // 角色状态(1:正常 2:禁用) + IsAdmin int `json:"is_admin"` // 是否管理员(0:否 1:是) + CreatedAt model.LocalTime `json:"created_at"` // 创建时间 + UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间 +} + +// GetRoleListResponse 获取角色列表 +func GetRoleListResponse(adminRole []*model.AdminRole) []GetRoleList { + // 处理返回值 + getRoleListResponses := make([]GetRoleList, len(adminRole)) + + if len(adminRole) > 0 { + for i, v := range adminRole { + // 将原始结构体转换为新结构体 + getRoleListResponse := GetRoleList{ + RoleId: strconv.Itoa(int(v.RoleId)), + RoleName: v.RoleName, + RoleStatus: v.RoleStatus, + IsAdmin: v.IsAdmin, + CreatedAt: v.CreatedAt, + UpdatedAt: v.UpdatedAt, + } + + // 将转换后的结构体添加到新切片中 + getRoleListResponses[i] = getRoleListResponse + } + } + + return getRoleListResponses +} diff --git a/api/router/router.go b/api/router/router.go index 0b86792..8c78e97 100644 --- a/api/router/router.go +++ b/api/router/router.go @@ -91,8 +91,8 @@ func privateRouter(r *gin.Engine, api controller.Api) { // 删除角色-批量 roleGroup.DELETE("", api.Role.DeleteRole) - // 获取角色列表-分页 - // roleGroup.GET("list", api.Role.GetRoleList) + // 获取角色列表 + roleGroup.GET("/list", api.Role.GetRoleList) } // 菜单 @@ -200,6 +200,9 @@ func privateRouter(r *gin.Engine, api controller.Api) { // 修改岗位 postGroup.PUT("/:post_id", api.Post.PutPost) + + // 获取岗位列表 + postGroup.GET("/list", api.Post.GetPostList) } // 医生管理