fix: 在requestParams上清除空字符串,修复phone唯一索引冲突

This commit is contained in:
OpenCode
2026-07-22 22:54:57 +08:00
parent 5024d53095
commit ef9c06edf6
@@ -43,14 +43,14 @@ public class AdminUserInfoController extends BaseController<UserInfoService, Use
protected R update(@RequestBody UserInfoEntity t, @RequestAttribute JSONObject requestParams) {
Long id = t.getId();
if (id != null) {
if (t.getPhone() != null && t.getPhone().isEmpty()) {
t.setPhone(null);
if (requestParams.getStr("phone", "").isEmpty()) {
requestParams.set("phone", null);
}
if (t.getUsername() != null && t.getUsername().isEmpty()) {
t.setUsername(null);
if (requestParams.getStr("username", "").isEmpty()) {
requestParams.set("username", null);
}
if (t.getEmail() != null && t.getEmail().isEmpty()) {
t.setEmail(null);
if (requestParams.getStr("email", "").isEmpty()) {
requestParams.set("email", null);
}
UserInfoEntity before = userInfoService.getById(id);
if (before != null) {
@@ -58,16 +58,18 @@ public class AdminUserInfoController extends BaseController<UserInfoService, Use
coolCache.del("app:userDetails:" + id);
}
if (ObjUtil.isNotEmpty(before.getUsername())) {
t.setUsername(null);
requestParams.set("username", null);
}
if (ObjUtil.isEmpty(before.getUsername())) {
t.setEmail(null);
requestParams.set("email", null);
}
if (ObjUtil.isNotEmpty(t.getEmail()) && !ObjUtil.equals(t.getEmail(), before.getEmail())) {
userInfoService.checkEmailUnique(t.getEmail(), id);
String newEmail = requestParams.getStr("email");
if (newEmail != null && !newEmail.isEmpty() && !ObjUtil.equals(newEmail, before.getEmail())) {
userInfoService.checkEmailUnique(newEmail, id);
}
if (ObjUtil.isNotEmpty(t.getUsername()) && !ObjUtil.equals(t.getUsername(), before.getUsername())) {
userInfoService.checkUsernameUnique(t.getUsername(), id);
String newUsername = requestParams.getStr("username");
if (newUsername != null && !newUsername.isEmpty() && !ObjUtil.equals(newUsername, before.getUsername())) {
userInfoService.checkUsernameUnique(newUsername, id);
}
}
}