新增获取角色列表,调整文件结构
This commit is contained in:
parent
c4d8dd6791
commit
4a9c5b9c4d
@ -26,15 +26,15 @@ func (b *Basic) GetCaptcha(c *gin.Context) {
|
||||
|
||||
// Login 登陆
|
||||
func (b *Basic) Login(c *gin.Context) {
|
||||
var login requests.Login
|
||||
var basicRequest requests.BasicRequest
|
||||
|
||||
if err := c.ShouldBind(&login); err != nil {
|
||||
if err := c.ShouldBind(&basicRequest.Login); err != nil {
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
// 参数验证
|
||||
if err := global.Validate.Struct(login); err != nil {
|
||||
if err := global.Validate.Struct(basicRequest.Login); err != nil {
|
||||
responses.FailWithMessage(utils.Translate(err), c)
|
||||
return
|
||||
}
|
||||
@ -48,8 +48,8 @@ func (b *Basic) Login(c *gin.Context) {
|
||||
// }
|
||||
|
||||
// 登陆
|
||||
Basic := service.Basic{}
|
||||
token, err := Basic.Login(login)
|
||||
BasicService := service.BasicService{}
|
||||
token, err := BasicService.Login(basicRequest.Login)
|
||||
if err != nil {
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
|
||||
@ -2,8 +2,12 @@ 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/service"
|
||||
"hospital-admin-api/global"
|
||||
"hospital-admin-api/utils"
|
||||
)
|
||||
|
||||
type Role struct{}
|
||||
@ -17,8 +21,8 @@ func (r *Role) GetRoleMenuList(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 登陆
|
||||
Role := service.Role{}
|
||||
roleMenuList, err := Role.GetRoleMenuList(roleId)
|
||||
RoleService := service.RoleService{}
|
||||
roleMenuList, err := RoleService.GetRoleMenuList(roleId)
|
||||
if err != nil {
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
@ -31,3 +35,37 @@ func (r *Role) GetRoleMenuList(c *gin.Context) {
|
||||
|
||||
responses.OkWithData(roleMenuList, c)
|
||||
}
|
||||
|
||||
// GetRoleList 获取角色列表
|
||||
func (r *Role) GetRoleList(c *gin.Context) {
|
||||
var 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
|
||||
}
|
||||
|
||||
if RoleRequest.GetRoleList.Page == 0 {
|
||||
RoleRequest.GetRoleList.Page = 1
|
||||
}
|
||||
|
||||
if RoleRequest.GetRoleList.PageSize == 0 {
|
||||
RoleRequest.GetRoleList.PageSize = 20
|
||||
}
|
||||
|
||||
AdminRoleDao := dao.AdminRoleDao{}
|
||||
adminRole, err := AdminRoleDao.GetAdminRolePageSearch(RoleRequest.GetRoleList.RoleName, RoleRequest.GetRoleList.Page, RoleRequest.GetRoleList.PageSize)
|
||||
if err != nil || len(adminRole) == 0 {
|
||||
responses.Ok(c)
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
|
||||
responses.OkWithData(adminRole, c)
|
||||
}
|
||||
|
||||
@ -5,10 +5,10 @@ import (
|
||||
"hospital-admin-api/global"
|
||||
)
|
||||
|
||||
type AdminMenu struct {
|
||||
type AdminMenuDao struct {
|
||||
}
|
||||
|
||||
func (r *AdminMenu) GetAdminMenuList() (m []*model.AdminMenu, err error) {
|
||||
func (r *AdminMenuDao) GetAdminMenuList() (m []*model.AdminMenu, err error) {
|
||||
err = global.Db.Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -16,7 +16,7 @@ func (r *AdminMenu) GetAdminMenuList() (m []*model.AdminMenu, err error) {
|
||||
return m, nil
|
||||
}
|
||||
|
||||
func (r *AdminMenu) GetAdminMenuListSortOrderNum() (m []*model.AdminMenu, err error) {
|
||||
func (r *AdminMenuDao) GetAdminMenuListSortOrderNum() (m []*model.AdminMenu, err error) {
|
||||
err = global.Db.Order("order_num asc").Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@ -5,12 +5,12 @@ import (
|
||||
"hospital-admin-api/global"
|
||||
)
|
||||
|
||||
type AdminMenuApi struct {
|
||||
type AdminMenuApiDao struct {
|
||||
}
|
||||
|
||||
// GetAdminMenuApiListByMenuID 获取菜单api-菜单id
|
||||
// menuId 菜单id
|
||||
func (r *AdminMenuApi) GetAdminMenuApiListByMenuID(menuId int64) (m []*model.AdminMenuApi, err error) {
|
||||
func (r *AdminMenuApiDao) GetAdminMenuApiListByMenuID(menuId int64) (m []*model.AdminMenuApi, err error) {
|
||||
err = global.Db.Where("menu_id = ?", menuId).Preload("API").Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@ -5,15 +5,34 @@ import (
|
||||
"hospital-admin-api/global"
|
||||
)
|
||||
|
||||
type AdminRole struct {
|
||||
type AdminRoleDao struct {
|
||||
}
|
||||
|
||||
// GetAdminRoleFirstById 角色id获取用户角色
|
||||
// roleId 角色id
|
||||
func (r *AdminRole) GetAdminRoleFirstById(roleId int64) (m model.AdminRole, err error) {
|
||||
func (r *AdminRoleDao) GetAdminRoleFirstById(roleId int64) (m model.AdminRole, err error) {
|
||||
err = global.Db.First(&m, roleId).Error
|
||||
if err != nil {
|
||||
return m, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetAdminRolePageSearch 搜索角色列表-分页
|
||||
func (r *AdminRoleDao) GetAdminRolePageSearch(roleName string, page, pageSize int) (m []model.AdminRole, err error) {
|
||||
// 计算偏移量
|
||||
offset := (page - 1) * pageSize
|
||||
|
||||
if roleName != "" {
|
||||
err = global.Db.Where("role_name = ?", roleName).Offset(offset).Limit(pageSize).Find(&m).Error
|
||||
if err != nil {
|
||||
return m, err
|
||||
}
|
||||
} else {
|
||||
err = global.Db.Offset(offset).Limit(pageSize).Find(&m).Error
|
||||
if err != nil {
|
||||
return m, err
|
||||
}
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
@ -5,12 +5,12 @@ import (
|
||||
"hospital-admin-api/global"
|
||||
)
|
||||
|
||||
type AdminRoleMenu struct {
|
||||
type AdminRoleMenuDao struct {
|
||||
}
|
||||
|
||||
// GetAdminRoleMenuListByRoleId 获取角色菜单-角色id
|
||||
// roleId 角色id
|
||||
func (r *AdminRoleMenu) GetAdminRoleMenuListByRoleId(roleId int64) (m []*model.AdminRoleMenu, err error) {
|
||||
func (r *AdminRoleMenuDao) GetAdminRoleMenuListByRoleId(roleId int64) (m []*model.AdminRoleMenu, err error) {
|
||||
err = global.Db.Where("role_id = ?", roleId).Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -19,7 +19,7 @@ func (r *AdminRoleMenu) GetAdminRoleMenuListByRoleId(roleId int64) (m []*model.A
|
||||
}
|
||||
|
||||
// GetAdminRoleMenuListWithMenuByRoleId 获取角色菜单
|
||||
func (r *AdminRoleMenu) GetAdminRoleMenuListWithMenuByRoleId(roleId int64) (m []*model.AdminRoleMenu, err error) {
|
||||
func (r *AdminRoleMenuDao) GetAdminRoleMenuListWithMenuByRoleId(roleId int64) (m []*model.AdminRoleMenu, err error) {
|
||||
err = global.Db.Where("role_id = ?", roleId).Preload("Menu").Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@ -5,12 +5,12 @@ import (
|
||||
"hospital-admin-api/global"
|
||||
)
|
||||
|
||||
type AdminUser struct {
|
||||
type AdminUserDao struct {
|
||||
}
|
||||
|
||||
// GetAdminUserFirstById 获取用户数据-用户id
|
||||
// roleId 用户id
|
||||
func (r *AdminUser) GetAdminUserFirstById(userId int64) (m model.AdminUser, err error) {
|
||||
func (r *AdminUserDao) GetAdminUserFirstById(userId int64) (m model.AdminUser, err error) {
|
||||
err = global.Db.First(&m, userId).Error
|
||||
if err != nil {
|
||||
return m, err
|
||||
@ -19,7 +19,7 @@ func (r *AdminUser) GetAdminUserFirstById(userId int64) (m model.AdminUser, err
|
||||
}
|
||||
|
||||
// GetAdminUserFirstByAccess 获取用户数据-用户账号
|
||||
func (r *AdminUser) GetAdminUserFirstByAccess(username string) (m model.AdminUser, err error) {
|
||||
func (r *AdminUserDao) GetAdminUserFirstByAccess(username string) (m model.AdminUser, err error) {
|
||||
err = global.Db.Where("access = ?", username).First(&m).Error
|
||||
if err != nil {
|
||||
return m, err
|
||||
|
||||
@ -29,7 +29,7 @@ func Auth() gin.HandlerFunc {
|
||||
}
|
||||
|
||||
// 获取用户数据
|
||||
AdminUserDao := dao.AdminUser{}
|
||||
AdminUserDao := dao.AdminUserDao{}
|
||||
adminUser, err := AdminUserDao.GetAdminUserFirstById(userId)
|
||||
if err != nil || adminUser.UserID == 0 {
|
||||
responses.FailWithMessage("用户数据错误", c)
|
||||
@ -50,7 +50,7 @@ func Auth() gin.HandlerFunc {
|
||||
}
|
||||
|
||||
// 获取角色数据
|
||||
AdminRoleDao := dao.AdminRole{}
|
||||
AdminRoleDao := dao.AdminRoleDao{}
|
||||
adminRole, err := AdminRoleDao.GetAdminRoleFirstById(roleId)
|
||||
if err != nil || adminRole.RoleId == 0 {
|
||||
responses.FailWithMessage("用户数据错误", c)
|
||||
@ -65,7 +65,7 @@ func Auth() gin.HandlerFunc {
|
||||
}
|
||||
|
||||
// 获取角色菜单id
|
||||
AdminRoleMenuDao := dao.AdminRoleMenu{}
|
||||
AdminRoleMenuDao := dao.AdminRoleMenuDao{}
|
||||
adminRoleMenu, _ := AdminRoleMenuDao.GetAdminRoleMenuListByRoleId(roleId)
|
||||
if adminRoleMenu == nil {
|
||||
c.JSON(http.StatusForbidden, gin.H{
|
||||
@ -80,7 +80,7 @@ func Auth() gin.HandlerFunc {
|
||||
var apiPermissions = make(map[string]bool)
|
||||
|
||||
// 获取菜单对应api
|
||||
AdminMenuApiDao := dao.AdminMenuApi{}
|
||||
AdminMenuApiDao := dao.AdminMenuApiDao{}
|
||||
for _, v := range adminRoleMenu {
|
||||
AdminMenuApi, _ := AdminMenuApiDao.GetAdminMenuApiListByMenuID(v.MenuID)
|
||||
if AdminMenuApi == nil {
|
||||
|
||||
@ -7,7 +7,7 @@ type AdminMenu struct {
|
||||
MenuName string `gorm:"column:menu_name;type:varchar(30);comment:菜单名称" json:"menu_name"`
|
||||
ParentId int64 `gorm:"column:parent_id;type:int(10);default:0;comment:父菜单ID(0表示一级)" json:"parent_id"`
|
||||
MenuStatus int `gorm:"column:menu_status;type:tinyint(1);default:1;comment:菜单状态(0:隐藏 1:正常)此优先级最高" json:"menu_status"`
|
||||
MenuType int `gorm:"column:menu_type;type:tinyint(1);comment:菜单类型(1:模块 2:菜单 2:按钮)" json:"menu_type"`
|
||||
MenuType int `gorm:"column:menu_type;type:tinyint(1);comment:菜单类型(1:模块 2:菜单 3:按钮)" json:"menu_type"`
|
||||
Permission string `gorm:"column:permission;type:varchar(255);comment:标识" json:"permission"`
|
||||
OrderNum int `gorm:"column:order_num;type:int(4);default:0;comment:显示顺序" json:"order_num"`
|
||||
Icon string `gorm:"column:icon;type:varchar(255);comment:图标地址" json:"icon"`
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package requests
|
||||
|
||||
type Basic struct {
|
||||
type BasicRequest struct {
|
||||
Login // 登陆
|
||||
}
|
||||
|
||||
|
||||
12
api/requests/role.go
Normal file
12
api/requests/role.go
Normal file
@ -0,0 +1,12 @@
|
||||
package requests
|
||||
|
||||
type RoleRequest struct {
|
||||
GetRoleList // 获取角色列表
|
||||
}
|
||||
|
||||
// GetRoleListRequest 获取角色列表
|
||||
type GetRoleList struct {
|
||||
RoleName string `json:"role_name" form:"role_name" label:"角色名称"`
|
||||
Page int `json:"page" form:"page" label:"页码"`
|
||||
PageSize int `json:"page_size" form:"page_size" label:"每页个数"`
|
||||
}
|
||||
@ -6,7 +6,7 @@ type RoleMenuList struct {
|
||||
MenuName string `json:"menu_name"` // 菜单名称
|
||||
ParentId int64 `json:"parent_id"` // 父菜单ID(0表示一级)
|
||||
MenuStatus int `json:"menu_status"` // 菜单状态(0:隐藏 1:正常)此优先级最高
|
||||
MenuType int `json:"menu_type"` // 菜单类型(1:模块 2:菜单 2:按钮)
|
||||
MenuType int `json:"menu_type"` // 菜单类型(1:模块 2:菜单 3:按钮)
|
||||
Permission string `json:"permission"` // 标识
|
||||
OrderNum int `json:"order_num"` // 显示顺序
|
||||
Icon string `json:"icon"` // 图标地址
|
||||
|
||||
@ -74,5 +74,9 @@ func privateRouter(r *gin.Engine, api controller.Api) {
|
||||
{
|
||||
// 获取角色菜单列表
|
||||
base1Group.GET("menu", api.Role.GetRoleMenuList)
|
||||
|
||||
// 获取角色列表
|
||||
base1Group.GET("list", api.Role.GetRoleList)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -10,19 +10,19 @@ import (
|
||||
"hospital-admin-api/utils"
|
||||
)
|
||||
|
||||
type Basic struct{}
|
||||
type BasicService struct{}
|
||||
|
||||
// Login 登陆
|
||||
func (b *Basic) Login(login requests.Login) (basicResponse.Login, error) {
|
||||
func (b *BasicService) Login(LoginRequest requests.Login) (basicResponse.Login, error) {
|
||||
// 获取用户信息
|
||||
AdminUserDao := dao.AdminUser{}
|
||||
adminUser, err := AdminUserDao.GetAdminUserFirstByAccess(login.Access)
|
||||
AdminUserDao := dao.AdminUserDao{}
|
||||
adminUser, err := AdminUserDao.GetAdminUserFirstByAccess(LoginRequest.Access)
|
||||
if err != nil || adminUser.UserID == 0 {
|
||||
return basicResponse.Login{}, errors.New("用户名或密码错误")
|
||||
}
|
||||
|
||||
// 检测用户密码
|
||||
password := md5.Sum([]byte(login.Password + adminUser.Salt))
|
||||
password := md5.Sum([]byte(LoginRequest.Password + adminUser.Salt))
|
||||
// 将哈希值转换为16进制字符串
|
||||
passwordString := hex.EncodeToString(password[:])
|
||||
|
||||
|
||||
@ -6,18 +6,18 @@ import (
|
||||
"hospital-admin-api/api/responses/roleResponse"
|
||||
)
|
||||
|
||||
type Role struct{}
|
||||
type RoleService struct{}
|
||||
|
||||
// GetRoleMenuList 获取角色菜单
|
||||
func (r *Role) GetRoleMenuList(roleId int64) ([]*roleResponse.RoleMenuList, error) {
|
||||
AdminRoleMenuDao := dao.AdminRoleMenu{}
|
||||
func (r *RoleService) GetRoleMenuList(roleId int64) ([]*roleResponse.RoleMenuList, error) {
|
||||
AdminRoleMenuDao := dao.AdminRoleMenuDao{}
|
||||
adminRoleMenu, _ := AdminRoleMenuDao.GetAdminRoleMenuListByRoleId(roleId)
|
||||
if adminRoleMenu == nil {
|
||||
return []*roleResponse.RoleMenuList{}, nil
|
||||
}
|
||||
|
||||
// 获取全部菜单
|
||||
AdminMenuDao := dao.AdminMenu{}
|
||||
AdminMenuDao := dao.AdminMenuDao{}
|
||||
adminMenu, _ := AdminMenuDao.GetAdminMenuListSortOrderNum()
|
||||
if adminMenu == nil {
|
||||
return []*roleResponse.RoleMenuList{}, nil
|
||||
@ -38,7 +38,7 @@ func (r *Role) GetRoleMenuList(roleId int64) ([]*roleResponse.RoleMenuList, erro
|
||||
return menuTree, nil
|
||||
}
|
||||
|
||||
// 构建菜单树
|
||||
// 获取角色菜单-构建菜单树
|
||||
func buildMenuTree(menuIds []int64, menuData []*model.AdminMenu) []*roleResponse.RoleMenuList {
|
||||
menuMap := make(map[int64]*roleResponse.RoleMenuList)
|
||||
rootNodes := make([]*roleResponse.RoleMenuList, 0)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package service
|
||||
|
||||
type AdminUser struct {
|
||||
type AdminUserService struct {
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user