|
|
@@ -181,10 +181,10 @@ public class H5AuthServiceImpl implements H5AuthService {
|
|
|
throw new RuntimeException("密码不能为空");
|
|
|
}
|
|
|
|
|
|
- // 根据openid查询用户
|
|
|
- LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(User::getOpenid, dto.getOpenid());
|
|
|
- User user = userMapper.selectOne(wrapper);
|
|
|
+ // 先根据手机号查询用户(支持小程序注册的用户在H5登录)
|
|
|
+ LambdaQueryWrapper<User> phoneWrapper = new LambdaQueryWrapper<>();
|
|
|
+ phoneWrapper.eq(User::getPhone, phone);
|
|
|
+ User user = userMapper.selectOne(phoneWrapper);
|
|
|
|
|
|
if (user == null) {
|
|
|
// 新用户注册
|
|
|
@@ -207,15 +207,22 @@ public class H5AuthServiceImpl implements H5AuthService {
|
|
|
userMapper.insert(user);
|
|
|
log.info("创建新用户成功,userId: {}, phone: {}", user.getId(), phone);
|
|
|
} else {
|
|
|
- // 老用户登录,验证手机号和密码
|
|
|
- if (!phone.equals(user.getPhone())) {
|
|
|
- throw new RuntimeException("手机号不正确");
|
|
|
- }
|
|
|
-
|
|
|
+ // 老用户登录,验证密码
|
|
|
if (!dto.getPassword().equals(user.getPassword())) {
|
|
|
throw new RuntimeException("密码不正确");
|
|
|
}
|
|
|
|
|
|
+ // 如果用户没有H5的openid,则更新(支持小程序用户首次在H5登录)
|
|
|
+ if (user.getOpenid() == null || user.getOpenid().isEmpty()) {
|
|
|
+ user.setOpenid(dto.getOpenid());
|
|
|
+ if (dto.getUnionid() != null && (user.getUnionid() == null || user.getUnionid().isEmpty())) {
|
|
|
+ user.setUnionid(dto.getUnionid());
|
|
|
+ }
|
|
|
+ user.setUpdateTime(LocalDateTime.now());
|
|
|
+ userMapper.updateById(user);
|
|
|
+ log.info("更新用户H5 openid,userId: {}", user.getId());
|
|
|
+ }
|
|
|
+
|
|
|
log.info("老用户登录成功,userId: {}", user.getId());
|
|
|
}
|
|
|
|