|
|
@ -593,6 +593,7 @@ public class UserController { |
|
|
final String sessionKey = jsonObject.get("session_key").getAsString(); |
|
|
final String sessionKey = jsonObject.get("session_key").getAsString(); |
|
|
final String openId = jsonObject.get("openid").getAsString(); |
|
|
final String openId = jsonObject.get("openid").getAsString(); |
|
|
final String unionid = jsonObject.get("unionid").getAsString(); |
|
|
final String unionid = jsonObject.get("unionid").getAsString(); |
|
|
|
|
|
log.info("微信登录的传参==openId==:{};unionid==:{}",openId,unionid); |
|
|
// 判断是否绑定用户
|
|
|
// 判断是否绑定用户
|
|
|
User wechatUser = null; |
|
|
User wechatUser = null; |
|
|
final Map<String, Object> resultMap = new HashMap<>(); |
|
|
final Map<String, Object> resultMap = new HashMap<>(); |
|
|
@ -600,12 +601,26 @@ public class UserController { |
|
|
wechatUser = userService.findByUnionid(unionid); |
|
|
wechatUser = userService.findByUnionid(unionid); |
|
|
}else{ |
|
|
}else{ |
|
|
wechatUser = userService.findById(wechatVo.getUserId()); |
|
|
wechatUser = userService.findById(wechatVo.getUserId()); |
|
|
|
|
|
if (wechatUser == null) { |
|
|
|
|
|
// 如果根据userid没查到,再根据unionid查询一遍
|
|
|
|
|
|
wechatUser = userService.findByUnionid(unionid); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (wechatUser == null) { |
|
|
if (wechatUser == null) { |
|
|
|
|
|
log.info("微信登录未根据userid和unionid查询到用户,准备新增用户userId:{};unionid:{}",wechatVo.getUserId(),unionid); |
|
|
try { |
|
|
try { |
|
|
// 新增用户信息
|
|
|
// 新增用户信息
|
|
|
wechatUser = new User(); |
|
|
wechatUser = new User(); |
|
|
wechatUser.setStatus(UserConstant.USER_STATUS_NORMAL); |
|
|
wechatUser.setStatus(UserConstant.USER_STATUS_NORMAL); |
|
|
|
|
|
// 去掉特殊符号(只保留字母和数字)
|
|
|
|
|
|
String cleanedOpenid = openId.replaceAll("[^a-zA-Z0-9]", ""); |
|
|
|
|
|
// 截取前 10 位,作为username
|
|
|
|
|
|
String username = cleanedOpenid.length() > 10 ? cleanedOpenid.substring(0, 10) : cleanedOpenid; |
|
|
|
|
|
wechatUser.setUsername(username); |
|
|
|
|
|
final String encryptPass = new BCryptPasswordEncoder().encode("123456"); |
|
|
|
|
|
wechatUser.setPassword(encryptPass); |
|
|
|
|
|
wechatUser.setType(UserConstant.USER_TYPE_CUSTOM); |
|
|
wechatUser = userService.save(wechatUser); |
|
|
wechatUser = userService.save(wechatUser); |
|
|
// 设置用户角色
|
|
|
// 设置用户角色
|
|
|
final UserRole userRole = new UserRole(); |
|
|
final UserRole userRole = new UserRole(); |
|
|
@ -630,6 +645,12 @@ public class UserController { |
|
|
} else { |
|
|
} else { |
|
|
// 更新客户信息,绑定登录用户
|
|
|
// 更新客户信息,绑定登录用户
|
|
|
customerService.updateUserId(wechatVo.getCustomId(), wechatUser.getId()); |
|
|
customerService.updateUserId(wechatVo.getCustomId(), wechatUser.getId()); |
|
|
|
|
|
final String type = wechatUser.getType(); |
|
|
|
|
|
if (!type.contains(UserConstant.USER_TYPE_CUSTOM)) { |
|
|
|
|
|
// 不包含,赋予下游客户身份
|
|
|
|
|
|
final String newUserType = StringUtils.isEmpty(type) ? UserConstant.USER_TYPE_CUSTOM : type + ',' + UserConstant.USER_TYPE_CUSTOM; |
|
|
|
|
|
wechatUser.setType(newUserType); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
wechatUser.setUnionid(unionid); |
|
|
wechatUser.setUnionid(unionid); |
|
|
wechatUser.setWechatName(wechatVo.getWechatName()); |
|
|
wechatUser.setWechatName(wechatVo.getWechatName()); |
|
|
@ -688,6 +709,7 @@ public class UserController { |
|
|
wechatUser.setUnionid(unionid); |
|
|
wechatUser.setUnionid(unionid); |
|
|
wechatUser.setOfficialAccountOpenid(openid); |
|
|
wechatUser.setOfficialAccountOpenid(openid); |
|
|
wechatUser.setStatus(UserConstant.USER_STATUS_NORMAL); |
|
|
wechatUser.setStatus(UserConstant.USER_STATUS_NORMAL); |
|
|
|
|
|
wechatUser.setType(UserConstant.USER_TYPE_CUSTOM); |
|
|
wechatUser = userService.save(wechatUser); |
|
|
wechatUser = userService.save(wechatUser); |
|
|
// 设置用户角色
|
|
|
// 设置用户角色
|
|
|
final UserRole userRole = new UserRole(); |
|
|
final UserRole userRole = new UserRole(); |
|
|
|