refactor(): 优化用户密码更新逻辑

dev_update_pd
lishiwei 2026-07-30 09:26:45 +08:00
parent 15ffa41a95
commit 093e8f39ef
1 changed files with 16 additions and 10 deletions

View File

@ -489,15 +489,11 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
@Override @Override
public void changePassword(Long id, String password) { public void changePassword(Long id, String password) {
//修改这个手机号下所有密码
UserDO userDO = getById(id); UserDO userDO = getById(id);
if (userDO == null) { if (userDO == null) {
return; return;
} }
String phone = userDO.getPhone(); for (UserDO userDO1 : listUsersForPasswordUpdate(userDO)) {
List<UserDO> userDOList = getListByPhone(phone, null);
for (UserDO userDO1 : userDOList) {
userChangePassword(userDO1.getId(), password); userChangePassword(userDO1.getId(), password);
} }
} }
@ -609,17 +605,27 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
} }
} }
//修改多个密码 // 有手机号则同步修改同手机号账号,无手机号则只改当前账号
String phone = oldUserDO.getPhone(); for (UserDO userDO1 : listUsersForPasswordUpdate(oldUserDO)) {
List<UserDO> userDOList = getListByPhone(phone, null);
for (UserDO userDO1 : userDOList) {
userChangePassword(userDO1.getId(), userDO.getNewPassword()); userChangePassword(userDO1.getId(), userDO.getNewPassword());
} }
return Response.buildSuccess(); return Response.buildSuccess();
} }
/**
*
*/
private List<UserDO> listUsersForPasswordUpdate(UserDO userDO) {
if (StringUtils.hasText(userDO.getPhone())) {
List<UserDO> userDOList = getListByPhone(userDO.getPhone(), null);
if (CollUtil.isNotEmpty(userDOList)) {
return userDOList;
}
}
return Collections.singletonList(userDO);
}
@Override @Override
public Boolean updateFaceUrl(UserDO userDO) { public Boolean updateFaceUrl(UserDO userDO) {
return updateById(userDO); return updateById(userDO);