refactor(): 优化用户密码更新逻辑
parent
15ffa41a95
commit
093e8f39ef
|
|
@ -489,15 +489,11 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
|
|||
|
||||
@Override
|
||||
public void changePassword(Long id, String password) {
|
||||
//修改这个手机号下所有密码
|
||||
UserDO userDO = getById(id);
|
||||
if (userDO == null) {
|
||||
return;
|
||||
}
|
||||
String phone = userDO.getPhone();
|
||||
|
||||
List<UserDO> userDOList = getListByPhone(phone, null);
|
||||
for (UserDO userDO1 : userDOList) {
|
||||
for (UserDO userDO1 : listUsersForPasswordUpdate(userDO)) {
|
||||
userChangePassword(userDO1.getId(), password);
|
||||
}
|
||||
}
|
||||
|
|
@ -609,17 +605,27 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
|
|||
}
|
||||
}
|
||||
|
||||
//修改多个密码
|
||||
String phone = oldUserDO.getPhone();
|
||||
|
||||
List<UserDO> userDOList = getListByPhone(phone, null);
|
||||
for (UserDO userDO1 : userDOList) {
|
||||
// 有手机号则同步修改同手机号账号,无手机号则只改当前账号
|
||||
for (UserDO userDO1 : listUsersForPasswordUpdate(oldUserDO)) {
|
||||
userChangePassword(userDO1.getId(), userDO.getNewPassword());
|
||||
}
|
||||
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
|
||||
public Boolean updateFaceUrl(UserDO userDO) {
|
||||
return updateById(userDO);
|
||||
|
|
|
|||
Loading…
Reference in New Issue