feat(base): 添加用户唯一性校验功能

在更新用户信息时,新增对用户唯一性字段的校验逻辑。通过遍历UniqueKey配置,
检查当前更新的字段值是否已存在于其他用户记录中,避免重复数据的产生。
```
This commit is contained in:
2025-10-14 20:15:58 +08:00
parent 68d1a1355e
commit 64c7bc204a

View File

@@ -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() {