This commit is contained in:
2023-06-13 17:08:48 +08:00
parent 588ae8ebdc
commit 71f682d99a
17 changed files with 202 additions and 58 deletions
+60 -2
View File
@@ -2,9 +2,12 @@ package service
import (
"errors"
"github.com/gin-gonic/gin"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/model"
"hospital-admin-api/api/requests"
"hospital-admin-api/api/responses/roleResponse"
"hospital-admin-api/global"
)
type RoleService struct{}
@@ -85,7 +88,7 @@ func (r *RoleService) PutRoleStatus(roleId int64, roleStatus int) (bool, error)
// 获取请求角色数据
AdminRoleDao := dao.AdminRoleDao{}
adminRole, err := AdminRoleDao.GetAdminRoleFirstById(roleId)
if err != nil || adminRole.RoleId == 0 {
if err != nil || adminRole == nil {
return false, errors.New("非法操作")
}
@@ -107,7 +110,7 @@ func (r *RoleService) GetRole(roleId int64) (*roleResponse.GetRole, error) {
// 获取请求角色数据
AdminRoleDao := dao.AdminRoleDao{}
adminRole, err := AdminRoleDao.GetAdminRoleFirstById(roleId)
if err != nil || adminRole.RoleId == 0 {
if err != nil || adminRole == nil {
return nil, errors.New("非法操作")
}
@@ -128,3 +131,58 @@ func (r *RoleService) GetRole(roleId int64) (*roleResponse.GetRole, error) {
return GetRoleResponse, nil
}
// AddRole 新增角色
func (r *RoleService) AddRole(c *gin.Context, AddRoleRequest requests.AddRole) (bool, error) {
roleId := c.GetInt64("RoleId")
if roleId == 0 {
return false, errors.New("数据错误")
}
// 获取当前登陆用户数据
AdminRoleDao := dao.AdminRoleDao{}
adminRole, err := AdminRoleDao.GetAdminRoleFirstById(roleId)
if err != nil || adminRole == nil {
return false, errors.New("非法操作")
}
if AddRoleRequest.IsAdmin == 1 && adminRole.IsAdmin == 0 {
return false, errors.New("您当前为普通用户,无法添加管理员用户")
}
AdminMenuDao := dao.AdminMenuDao{}
// 判断菜单id
for _, menuId := range AddRoleRequest.MenuIds {
adminMenu, _ := AdminMenuDao.GetAdminMenuById(menuId)
if adminMenu == nil {
return false, errors.New("菜单错误")
}
}
// 开始事务
tx := global.Db.Begin()
// defer func() {
// if r := recover(); r != nil {
// tx.Rollback()
// }
// }()
// 新增角色
AdminRoleModel := &model.AdminRole{
RoleId: 10,
RoleName: AddRoleRequest.RoleName,
IsAdmin: AddRoleRequest.IsAdmin,
}
adminRole, err = AdminRoleDao.AddAdminRole(tx, AdminRoleModel)
if err != nil || adminRole == nil {
tx.Rollback()
return false, errors.New("非法操作")
}
tx.Commit()
// 新增角色菜单
return true, nil
}