|
|
@ -155,21 +155,62 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void register(RegisterFormDTO formDTO) { |
|
|
|
//0.校验验证码是否正确
|
|
|
|
String smsCodeKey = RedisKeys.getLoginSmsCodeKey(LoginConstant.APP_PUBLIC, LoginConstant.CLIENT_MP, formDTO.getPhone()); |
|
|
|
String rightSmsCode = (String) redisUtils.get(smsCodeKey); |
|
|
|
if (!formDTO.getSmsCode().equals(rightSmsCode)) { |
|
|
|
logger.error(String.format("验证码错误code[%s],msg[%s]", EpmetErrorCode.MOBILE_CODE_ERROR.getCode(), EpmetErrorCode.MOBILE_CODE_ERROR.getMsg())); |
|
|
|
throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode()); |
|
|
|
} |
|
|
|
|
|
|
|
//1.根据手机号查询到用户信息,判断用户是否存
|
|
|
|
List<PaUserDTO> userList = paUserDao.selectUserByPhone(formDTO.getPhone()); |
|
|
|
if (null != userList && userList.size() > NumConstant.ZERO) { |
|
|
|
throw new RenException(PaConstant.PHONE_EXCEPTION); |
|
|
|
} |
|
|
|
|
|
|
|
//2.校验验证码是否正确
|
|
|
|
String smsCodeKey = RedisKeys.getLoginSmsCodeKey(LoginConstant.APP_PUBLIC, LoginConstant.CLIENT_MP, formDTO.getPhone()); |
|
|
|
String rightSmsCode = (String) redisUtils.get(smsCodeKey); |
|
|
|
if (!formDTO.getSmsCode().equals(rightSmsCode)) { |
|
|
|
logger.error(String.format("验证码错误code[%s],msg[%s]", EpmetErrorCode.MOBILE_CODE_ERROR.getCode(), EpmetErrorCode.MOBILE_CODE_ERROR.getMsg())); |
|
|
|
throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode()); |
|
|
|
//2.根据token中的userId查询pa_user表数据,根据手机号是否为空判断后续是新增还是更新user数据
|
|
|
|
PaUserEntity paUserEntity = paUserDao.selectById(formDTO.getUserId()); |
|
|
|
|
|
|
|
//3.手机号不为空说明是同一个微信用户用第二个手机号注册,手机为空说明当前微信用户用第一个手机号注册
|
|
|
|
if(null != paUserEntity.getPhone() && StringUtils.isNotBlank(paUserEntity.getPhone())){ |
|
|
|
//手机号不为空说明是同一个微信用户用第二个手机号注册,新增user和user_wechat表数据
|
|
|
|
//3-1.user表新增数据
|
|
|
|
PaUserEntity userEntity = new PaUserEntity(); |
|
|
|
userEntity.setPhone(formDTO.getPhone()); |
|
|
|
userEntity.setRealName(formDTO.getSurName()); |
|
|
|
userEntity.setGender(formDTO.getGender().toString()); |
|
|
|
if (paUserDao.insert(userEntity) < NumConstant.ONE) { |
|
|
|
throw new RenException(PaConstant.SAVE_USER_EXCEPTION); |
|
|
|
} |
|
|
|
|
|
|
|
//3-2.根据token中的userId查询用户的微信信息
|
|
|
|
PaUserWechatDTO dto = new PaUserWechatDTO(); |
|
|
|
dto.setUserId(formDTO.getUserId()); |
|
|
|
PaUserWechatEntity wechatEntity = paUserWechatDao.selectWechatByUserId(dto); |
|
|
|
if (null == wechatEntity) { |
|
|
|
throw new RenException(PaConstant.SELECT_WECHAT_EXCEPTION); |
|
|
|
} |
|
|
|
|
|
|
|
//3-3.新增用户微信信息
|
|
|
|
wechatEntity.setUserId(userEntity.getId()); |
|
|
|
if (paUserWechatDao.insert(wechatEntity) < NumConstant.ONE) { |
|
|
|
throw new RenException(PaConstant.SAVE_WECHAT_EXCEPTION); |
|
|
|
} |
|
|
|
|
|
|
|
//3-4.访问记录表新增数据
|
|
|
|
PaUserVisitedEntity visitedEntity = new PaUserVisitedEntity(); |
|
|
|
visitedEntity.setUserId(userEntity.getId()); |
|
|
|
visitedEntity.setWxOpenId(wechatEntity.getWxOpenId()); |
|
|
|
visitedEntity.setOpenId(wechatEntity.getWxOpenId()); |
|
|
|
visitedEntity.setPhone(formDTO.getPhone()); |
|
|
|
if (paUserVisitedDao.insert(visitedEntity) < NumConstant.ONE) { |
|
|
|
throw new RenException(PaConstant.SAVE_VISITED_EXCEPTION); |
|
|
|
} |
|
|
|
|
|
|
|
//3.pa_user表更新数据
|
|
|
|
}else { |
|
|
|
//手机为空说明当前微信用户用第一个手机号注册,更新user表数据
|
|
|
|
//3-1.pa_user表更新数据
|
|
|
|
PaUserEntity userEntity = new PaUserEntity(); |
|
|
|
userEntity.setId(formDTO.getUserId()); |
|
|
|
userEntity.setPhone(formDTO.getPhone()); |
|
|
@ -179,7 +220,7 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust |
|
|
|
throw new RenException(PaConstant.UPDATE_USER_EXCEPTION); |
|
|
|
} |
|
|
|
|
|
|
|
//2.访问记录表新增数据
|
|
|
|
//3-2.访问记录表新增数据
|
|
|
|
PaUserWechatDTO dto = new PaUserWechatDTO(); |
|
|
|
dto.setUserId(formDTO.getUserId()); |
|
|
|
PaUserWechatEntity wechatEntity = paUserWechatDao.selectWechatByUserId(dto); |
|
|
@ -196,6 +237,8 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @return |
|
|
|
* @Author sun |
|
|
|