|
@@ -95,7 +95,13 @@ func (r *Role) List(ctx context.Context, req entity.RoleListReq) (*entity.RoleRe
|
|
|
// Add 新增角色
|
|
|
func (r *Role) Add(ctx context.Context, req entity.RoleAddReq) *code.Result {
|
|
|
// 验证角色名称是否已存在
|
|
|
- if !r.checkRoleNameExist(req.Name) {
|
|
|
+ exist, err := r.CheckRoleNameExist(req.Name)
|
|
|
+ if err != nil {
|
|
|
+ mhayaLogger.Warnf("Add CheckRoleNameExist error:%v", ctx.Err())
|
|
|
+ return common.NewResult(code.InternalError)
|
|
|
+ }
|
|
|
+
|
|
|
+ if exist {
|
|
|
return common.NewResult(code.RoleNameExistError)
|
|
|
}
|
|
|
|
|
@@ -155,8 +161,8 @@ func (r *Role) Update(ctx context.Context, req entity.RoleUpdateReq) *code.Resul
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-// checkRoleNameExist 检查角色名称是否已存在
|
|
|
-func (r *Role) checkRoleNameExist(name string) bool {
|
|
|
+// CheckRoleNameExist 检查角色名称是否已存在
|
|
|
+func (r *Role) CheckRoleNameExist(name string) (bool, error) {
|
|
|
// 创建带超时的上下文
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
|
defer cancel()
|
|
@@ -167,14 +173,17 @@ func (r *Role) checkRoleNameExist(name string) bool {
|
|
|
filter := bson.M{"name": name}
|
|
|
|
|
|
// 执行查询
|
|
|
- if err := collection.FindOne(ctx, filter).Err(); err != nil {
|
|
|
+ err := collection.FindOne(ctx, filter).Err()
|
|
|
+ if err != nil {
|
|
|
if errors.Is(err, mongo.ErrNoDocuments) {
|
|
|
mhayaLogger.Warnf("No document found with role name: %s", name)
|
|
|
- return true
|
|
|
+ return false, nil
|
|
|
}
|
|
|
- return false
|
|
|
+
|
|
|
+ return false, err
|
|
|
}
|
|
|
- return false
|
|
|
+
|
|
|
+ return true, nil
|
|
|
}
|
|
|
|
|
|
// Del 删除角色
|