同时成功,要么同时失败
java代码实现
启动类上加注解
以注册为例
*/
public String insert(RegisterInfo registerInfo) {
//判断手机号是否正确
boolean mobile = Validator.isMobile(registerInfo.getTel());
if (!mobile){
throw new BizException(401,"手机号不正确");
}
//判断验证码是否正确
// String code = registerInfo.getCode();
// Integer mapCode = map.get(registerInfo.getTel());
// if (!Integer.valueOf(code).equals(mapCode)){
// throw new BizException(455,"验证码不正确");
// }
if (!Integer.valueOf(1111).equals(1111)){
throw new BizException(455,"验证码不正确");
}
//判断验证码是否已经存在redis中
Integer count = valueOperations.get("sms.code" + 1111);
if (count != null){
throw new BizException(456,"验证码已存在");
}
//判断手机号是否已经被注册
Member member1 = memberDao.selectByTel(registerInfo.getTel());
if (ObjectUtil.isNotEmpty(member1)){
throw new BizException(610,"手机号已经被注册");
}
//可以注册
Member member = new Member();
member.setTel(registerInfo.getTel());
member.setPassword(registerInfo.getPassword());
member.setNickName(registerInfo.getNickName()==null? registerInfo.getTel() : registerInfo.getNickName());
member.setRegisterTime(LocalDateTime.now());
RegisterService poxy=(RegisterService)AopContext.currentProxy();
poxy.memberRegister(member);
@Transactional
public void memberRegister(Member member) {
Integer num1 = memberDao.insert(member);
if (num1 !=1){
log.error("注册失败!!!!");
throw new BizException(614,"注册失败");
}
MemberInfo memberInfo = MemberInfo.builder()
.id(member.getId())
.jd(0)
.birthday(new Date())
.level(0)
.plusFlag(Byte.valueOf("0"))
.build();
Integer num2 = memberInfoDao.insert(memberInfo);
if (num2!= 1){
log.error("注册失败!!!!");
throw new BizException(614,"注册失败");
}
}