Browse Source

用户认证相关修改

feature/dangjian
yujintao 6 years ago
parent
commit
9c03580214
  1. 46
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  2. 8
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

46
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java

@ -612,11 +612,13 @@ public class AppUserServiceImpl implements AppUserService {
try {
wxMaJscode2SessionResult = wxMaServiceUtils.normalWxMaService().jsCode2SessionInfo(wxCode);
} catch (WxErrorException e) {
e.printStackTrace();
log.error("->[getMaOpenId]::error[{}]", "解析微信code失败");
if (e.getError().getErrorCode() == 40163) {
throw new RenException("禁止重复提交,请刷新页面后重试");
}
}
if (null == wxMaJscode2SessionResult) {
throw new RenException("解析微信用户信息失败");
} else if (StringUtils.isBlank(wxMaJscode2SessionResult.getOpenid())) {
if (null == wxMaJscode2SessionResult || StringUtils.isBlank(wxMaJscode2SessionResult.getOpenid())) {
throw new RenException("获取微信openid失败");
}
return wxMaJscode2SessionResult;
@ -900,26 +902,30 @@ public class AppUserServiceImpl implements AppUserService {
String wxCode = infoDto.getWxCode();
String iv = infoDto.getIv();
String encryptedData = infoDto.getEncryptedData();
if (StringUtils.isNotBlank(wxCode) && StringUtils.isNotBlank(iv) && StringUtils.isNotBlank(encryptedData)) {
WxMaUserInfo wxMaUserInfo = null;
String decrypt = null;
try {
decrypt = WxMaCryptUtils.decrypt(this.getUserSessionKey(wxCode), encryptedData, iv);
if (StringUtils.isNotBlank(decrypt)) {
wxMaUserInfo = JSONObject.parseObject(decrypt, WxMaUserInfo.class);
if (StringUtils.isNotBlank(wxCode)) {
// 解析微信用户openid
WxMaJscode2SessionResult maJscode2SessionResult = getWxMaUser(wxCode);
userDto.setWxOpenId(maJscode2SessionResult.getOpenid());
// 解析微信用户加密数据
if (StringUtils.isNotBlank(iv) && StringUtils.isNotBlank(encryptedData)) {
WxMaUserInfo wxMaUserInfo = null;
String decrypt = null;
try {
decrypt = WxMaCryptUtils.decrypt(maJscode2SessionResult.getSessionKey(), encryptedData, iv);
if (StringUtils.isNotBlank(decrypt)) {
wxMaUserInfo = JSONObject.parseObject(decrypt, WxMaUserInfo.class);
}
} catch (Exception e) {
log.error("解析或组装用户微信信息失败,用户id:::::{},解密数据:::::{}", userId, decrypt);
log.error(e.getMessage());
}
} catch (Exception e) {
log.error("解析或组装用户微信信息失败,用户id:::::{},解密数据:::::{}", userId, decrypt);
log.error(e.getMessage());
}
if (null == wxMaUserInfo || StringUtils.isBlank(wxMaUserInfo.getUnionId())) {
throw new RenException("解析微信数据失败,请刷新后重试");
if (null == wxMaUserInfo || StringUtils.isBlank(wxMaUserInfo.getUnionId())) {
throw new RenException("解析微信数据失败,请刷新后重试");
}
userDto.setWxUnionId(wxMaUserInfo.getUnionId());
userDto.setFaceImg(wxMaUserInfo.getAvatarUrl());
}
userDto.setWxUnionId(wxMaUserInfo.getUnionId());
userDto.setFaceImg(wxMaUserInfo.getAvatarUrl());
}
EpdcCompleteAppUserDTO completeAppUserDto = ConvertUtils.sourceToTarget(userDto, EpdcCompleteAppUserDTO.class);
return this.packageUserCompleteInfo(completeAppUserDto, userState);
}

8
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

@ -648,16 +648,18 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
// 数据库已有的用户信息
// 查询此用户是否已经注册并且完善了用户信息
UserDTO findUser = this.selectUserByWxInfo(completeAppUser.getWxOpenId(), completeAppUser.getWxUnionId());
UserEntity findUser = baseDao.selectById(completeAppUser.getId());
/*UserDTO findUser = this.selectUserByWxInfo(completeAppUser.getWxOpenId(), completeAppUser.getWxUnionId());
if (null == findUser) {
throw new RenException("无法匹配用户信息,请先注册");
}
if (!findUser.getId().equals(completeAppUser.getId())) {
this.deleteById(completeAppUser.getId());
completeAppUser.setId(findUser.getId());
}
}*/
UserEntity userEntity = ConvertUtils.sourceToTarget(completeAppUser, UserEntity.class);
userEntity.setWxOpenId(StringUtils.isBlank(userEntity.getWxOpenId()) ? null : userEntity.getWxOpenId());
userEntity.setWxUnionId(StringUtils.isBlank(userEntity.getWxUnionId()) ? null : userEntity.getWxUnionId());
userEntity.setFaceImg(StringUtils.isBlank(userEntity.getFaceImg()) ? null : userEntity.getFaceImg());
if (findUser.getState().equals(AppUserStatesEnum.STATE_INFORMATION_NOT_PASSED.value())) {

Loading…
Cancel
Save