Commit 9ce6111e 9ce6111ef1bcb63da62d05c3e99b2855c515c496 by xianghan

1.优化

1 parent bee83e21
......@@ -170,13 +170,87 @@ public class UserOperationServiceImpl implements UserOperationService {
String headimgurl = resources.getHeadimgurl();
Integer sex = resources.getSex();
// 检查小屏账户是否存在
UserWeixinDTO userWeixinDTO = this.findFirstByUnionIdAndAppIdAndOpenId(unionId, appId, openId);
if (Objects.nonNull(userWeixinDTO.getId())) {
// 账户和会员都存在
UserWeixinDTO userWeixinDTO = this.findFirstByAppIdAndOpenId(appId, openId);
if (Objects.nonNull(userWeixinDTO.getId()) && Objects.nonNull(userWeixinDTO.getMemberId())) {
log.error("createWeixinUserAndMember ==>> result ==>> [{}]", userWeixinDTO);
throw new BadRequestException(GlobeExceptionMsg.OPERATION_FORBID + "==>> " + GlobeExceptionMsg.ENTITY_ALREADY_EXISTS);
}
// 账号存在但无会员
if (Objects.nonNull(userWeixinDTO.getId()) && Objects.isNull(userWeixinDTO.getMemberId())) {
// 当前用户的任意微信app,因为同一unionId的会员是唯一的
UserWeixinDTO _userWeixinDTO = this.findFirstByUnionId(unionId);
if (Objects.nonNull(_userWeixinDTO.getId())) {
if (Objects.nonNull(_userWeixinDTO.getMemberId())) {
// 有其他账号的话,将此账号与对应的会员进行绑定
MemberDTO memberDTO = this.findMemberById(_userWeixinDTO.getMemberId());
userWeixinDTO.setMemberId(memberDTO.getId());
userWeixinDTO.setMemberCode(memberDTO.getCode());
if (StringUtils.isBlank(userWeixinDTO.getUnionid())) {
userWeixinDTO.setUnionid(unionId);
}
UserWeixin userWeixin = new UserWeixin();
BeanUtils.copyProperties(userWeixinDTO, userWeixin);
UserWeixinDTO _userWeixinDTO1 = this.updateWeixin(userWeixin);
return _userWeixinDTO1;
} else {
// 有其他账号但都无会员,新建会员并将此账号绑定新建的这个会员
Member _member =
MemberBuilder.build(LocalConstants.MEMBER_PLATFORM_TYPE_WEIXIN,
headimgurl, nickname, 0, sex);
MemberDTO memberDTO = this.createMember(_member);
if (Objects.nonNull(memberDTO)) {
userWeixinDTO.setMemberId(memberDTO.getId());
userWeixinDTO.setMemberCode(memberDTO.getCode());
if (StringUtils.isBlank(userWeixinDTO.getUnionid())) {
userWeixinDTO.setUnionid(unionId);
}
UserWeixin userWeixin = new UserWeixin();
BeanUtils.copyProperties(userWeixinDTO, userWeixin);
UserWeixinDTO _userWeixinDTO1 = this.updateWeixin(userWeixin);
return _userWeixinDTO1;
}
}
} else {
// 该账号存在但无其他账号,新建会员
Member _member =
MemberBuilder.build(LocalConstants.MEMBER_PLATFORM_TYPE_WEIXIN,
headimgurl, nickname, 0, sex);
MemberDTO memberDTO = this.createMember(_member);
if (Objects.nonNull(memberDTO)) {
userWeixinDTO.setMemberId(memberDTO.getId());
userWeixinDTO.setMemberCode(memberDTO.getCode());
if (StringUtils.isBlank(userWeixinDTO.getUnionid())) {
userWeixinDTO.setUnionid(unionId);
}
UserWeixin userWeixin = new UserWeixin();
BeanUtils.copyProperties(userWeixinDTO, userWeixin);
UserWeixinDTO _userWeixinDTO1 = this.updateWeixin(userWeixin);
return _userWeixinDTO1;
}
}
}
// 无账号
if (Objects.isNull(userWeixinDTO.getId())) {
// 当前用户的任意微信app,因为同一unionId的会员是唯一的
UserWeixinDTO _userWeixinDTO = this.findFirstByUnionId(unionId);
if (Objects.nonNull(_userWeixinDTO.getId())) {
......@@ -227,6 +301,9 @@ public class UserOperationServiceImpl implements UserOperationService {
}
return userWeixinDTO;
}
/**
* 服务号登录
......@@ -1114,11 +1191,21 @@ public class UserOperationServiceImpl implements UserOperationService {
* @param openId
* @return
*/
private UserWeixinDTO findFirstByUnionIdAndAppIdAndOpenId( String unionId,String appId, String openId) {
private UserWeixinDTO findFirstByUnionIdAndAppIdAndOpenId(String unionId, String appId, String openId) {
return this.userWeixinService.findFirstByUnionIdAndAppIdAndOpenId(unionId,appId,openId);
}
/**
* 获取小屏账户
* @param appId
* @param openId
* @return
*/
private UserWeixinDTO findFirstByAppIdAndOpenId(String appId, String openId) {
return this.userWeixinService.findFirstByAppIdAndOpenId(appId, openId);
}
/**
*
* @param member
* @return
......