通过mysql 的唯一索引异常的捕捉,来进行唯一判断,减少重复的代码
public PostRequestResult register(AccountRegisterDto dto) {
//员工code不能重复,其要被登录使用
try{
TbUser user = new TbUser();
user.add(dto);
this.userRepository.save(user);
//点击注册按钮生成code 和发送邮箱信息
String code = CodeUtil.generateUniqueCode();
String key = RedisConstant.REDIS_EMAIL_TIME+dto.getEmail();
redisUtil.set(key,code);
redisUtil.expire(key,60*10);
if (user.getId() != null) {
new Thread(new MailUtil(user.getId(),dto.getEmail(), code)).start();;
return ResopnseResultFactory.createPostResult(ResponseState.success, "创建成功");
} else {
return ResopnseResultFactory.createPostResult(ResponseState.error, "创建失败");
}
}catch (DataIntegrityViolationException e){
return ResponseResultFactory.createPostResult(ResponseState.repeat, "当前邮箱/手机已存在,请重新输入");
}
}