角色int64转string

This commit is contained in:
wucongxing 2023-06-28 18:20:21 +08:00
parent b4e18e23e3
commit 39c28a6ecf
3 changed files with 60 additions and 14 deletions

View File

@ -24,17 +24,17 @@ type PutRoleStatus struct {
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:"菜单"`
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:"菜单"`
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"`
}

View File

@ -20,8 +20,8 @@ type GetRoleMenuList struct {
// GetRole 角色详情
type GetRole struct {
MenuIds []int64 `json:"menu_ids"` // 菜单id
RoleId int64 `json:"role_id"` // 角色id
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:是)

View File

@ -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("非法操作,请勿删除自己所属角色")