diff --git a/api/requests/role.go b/api/requests/role.go index b96da67..deeb4ec 100644 --- a/api/requests/role.go +++ b/api/requests/role.go @@ -22,19 +22,19 @@ type PutRoleStatus struct { // AddRole 新增角色 type AddRole struct { - RoleName string `json:"role_name" form:"role_name" validate:"required" label:"角色名称"` - IsAdmin int `json:"is_admin" form:"is_admin" validate:"oneof=0 1" label:"是否管理员"` // (0:否 1:是) - MenuIds []int64 `json:"menu_ids" form:"menu_ids" validate:"required" label:"菜单"` + RoleName string `json:"role_name" form:"role_name" validate:"required" label:"角色名称"` + IsAdmin int `json:"is_admin" form:"is_admin" validate:"oneof=0 1" label:"是否管理员"` // (0:否 1:是) + MenuIds []string `json:"menu_ids" form:"menu_ids" validate:"required" label:"菜单"` } // PutRole 修改角色 type PutRole struct { - RoleName string `json:"role_name" form:"role_name" validate:"required" label:"角色名称"` - IsAdmin int `json:"is_admin" form:"is_admin" validate:"oneof=0 1" label:"是否管理员"` // (0:否 1:是) - MenuIds []int64 `json:"menu_ids" form:"menu_ids" validate:"required" label:"菜单"` + RoleName string `json:"role_name" form:"role_name" validate:"required" label:"角色名称"` + IsAdmin int `json:"is_admin" form:"is_admin" validate:"oneof=0 1" label:"是否管理员"` // (0:否 1:是) + MenuIds []string `json:"menu_ids" form:"menu_ids" validate:"required" label:"菜单"` } // DeleteRole 删除角色 type DeleteRole struct { - RoleIds []int64 `json:"role_ids" form:"role_ids" validate:"required" label:"角色id"` + RoleIds []string `json:"role_ids" form:"role_ids" validate:"required" label:"角色id"` } diff --git a/api/responses/roleResponse/role.go b/api/responses/roleResponse/role.go index b2dc337..b2d15ec 100644 --- a/api/responses/roleResponse/role.go +++ b/api/responses/roleResponse/role.go @@ -20,11 +20,11 @@ type GetRoleMenuList struct { // GetRole 角色详情 type GetRole struct { - MenuIds []int64 `json:"menu_ids"` // 菜单id - RoleId int64 `json:"role_id"` // 角色id - RoleName string `json:"role_name"` // 角色名称 - RoleStatus int `json:"role_status"` // 角色状态(1:正常 2:禁用) - IsAdmin int `json:"is_admin"` // 是否管理员(0:否 1:是) + MenuIds []string `json:"menu_ids"` // 菜单id + 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:是) } // GetRolePage 获取角色列表-分页 diff --git a/api/service/role.go b/api/service/role.go index ad8d671..66a3df0 100644 --- a/api/service/role.go +++ b/api/service/role.go @@ -131,9 +131,23 @@ func (r *RoleService) GetRole(roleId int64) (*roleResponse.GetRole, error) { return nil, errors.New("角色权限菜单获取失败") } + // 处理返回数据 + // 转换int64为string + var menuIdsString []string + for _, menuId := range menuIds { + menuId := strconv.FormatInt(menuId, 10) + menuIdsString = append(menuIdsString, menuId) + } + + // 转换int64为string + RoleId := strconv.FormatInt(adminRole.RoleId, 10) + if err != nil { + return nil, errors.New("数据错误") + } + GetRoleResponse := &roleResponse.GetRole{ - MenuIds: menuIds, - RoleId: adminRole.RoleId, + MenuIds: menuIdsString, + RoleId: RoleId, RoleName: adminRole.RoleName, RoleStatus: adminRole.RoleStatus, IsAdmin: adminRole.IsAdmin, @@ -164,6 +178,12 @@ func (r *RoleService) AddRole(c *gin.Context, AddRoleRequest requests.AddRole) ( // 判断菜单id for _, menuId := range AddRoleRequest.MenuIds { + // 将字符串转换为int64类型 + menuId, err := strconv.ParseInt(menuId, 10, 64) + if err != nil { + return false, errors.New("菜单错误") + } + adminMenu, _ := AdminMenuDao.GetAdminMenuById(menuId) if adminMenu == nil { return false, errors.New("菜单错误") @@ -193,6 +213,13 @@ func (r *RoleService) AddRole(c *gin.Context, AddRoleRequest requests.AddRole) ( // 新增角色菜单 AdminRoleMenuDao := dao.AdminRoleMenuDao{} for _, menuId := range AddRoleRequest.MenuIds { + // 将字符串转换为int64类型 + menuId, err := strconv.ParseInt(menuId, 10, 64) + if err != nil { + tx.Rollback() + return false, errors.New("菜单错误") + } + AdminRoleMenuModel := &model.AdminRoleMenu{ RoleID: adminRole.RoleId, MenuID: menuId, @@ -232,6 +259,12 @@ func (r *RoleService) PutRole(c *gin.Context, requestRoleId int64, PutRoleReques // 判断菜单id for _, menuId := range PutRoleRequest.MenuIds { + // 将字符串转换为int64类型 + menuId, err := strconv.ParseInt(menuId, 10, 64) + if err != nil { + return false, errors.New("菜单错误") + } + adminMenu, _ := AdminMenuDao.GetAdminMenuById(menuId) if adminMenu == nil { return false, errors.New("菜单错误") @@ -266,6 +299,13 @@ func (r *RoleService) PutRole(c *gin.Context, requestRoleId int64, PutRoleReques // 新增角色菜单 for _, menuId := range PutRoleRequest.MenuIds { + // 将字符串转换为int64类型 + menuId, err := strconv.ParseInt(menuId, 10, 64) + if err != nil { + tx.Rollback() + return false, errors.New("新增失败") + } + AdminRoleMenuModel := &model.AdminRoleMenu{ RoleID: requestRoleId, MenuID: menuId, @@ -313,6 +353,12 @@ func (r *RoleService) DeleteRole(c *gin.Context, DeleteRoleRequest requests.Dele }() for _, v := range DeleteRoleRequest.RoleIds { + // 将字符串转换为int64类型 + v, err := strconv.ParseInt(v, 10, 64) + if err != nil { + return false, errors.New("菜单错误") + } + if v == adminRole.RoleId { tx.Rollback() return false, errors.New("非法操作,请勿删除自己所属角色")