```
feat(base): 添加用户唯一性校验功能 在更新用户信息时,新增对用户唯一性字段的校验逻辑。通过遍历UniqueKey配置, 检查当前更新的字段值是否已存在于其他用户记录中,避免重复数据的产生。 ```
This commit is contained in:
@@ -164,7 +164,20 @@ func (s *BaseSysUserService) ServiceUpdate(ctx context.Context, req *cool.Update
|
||||
err = gerror.New("禁止禁用超级管理员")
|
||||
return
|
||||
}
|
||||
|
||||
if s.UniqueKey != nil {
|
||||
for k, v := range s.UniqueKey {
|
||||
if rMap[k] != nil {
|
||||
count, err := cool.DBM(s.Model).Where(k, rMap[k]).WhereNot("id", userId).Count()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if count > 0 {
|
||||
err = gerror.New(v)
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 如果请求的password不为空并且密码加密后的值有变动,说明要修改密码
|
||||
var rPassword = r.Get("password", "").String()
|
||||
if rPassword != "" && rPassword != userInfo["password"].String() {
|
||||
|
||||
Reference in New Issue
Block a user