spring声明式事务

来源:互联网 发布:手机淘宝导航怎么设置 编辑:程序博客网 时间:2024/05/22 15:04
@Transactional
public ServiceResult<YbUser> bindPhone(Integer uid, String phone) {
YbUserTemp yut = userTempDao.selectByKey(uid);
if(yut == null){
return generateResult(COMMONFAIL, "user does not register by wechat", null);
}
Gson gson = new Gson(); 
YbUser user = gson.fromJson(yut.getUserTemp(), YbUser.class);//将用户临时JSON字段获取为user对象
user.setPhone(phone);
//若已存在手机号码对应的用户,则将新用户的非空属性全部拷贝到以前的用户信息中去
YbUser user2 = userDao.findUser(phone);
if(user2 != null){
BeanUtils.copyProperties(user, user2, getNullPropertyNames(user));
userDao.updateNotNull(user2);
//删除用户临时信息
userTempDao.delete(uid);
return generateResult(user2);
}

//保存用户信息
userDao.save(user);
//删除用户临时信息
userTempDao.delete(uid);
return generateResult(user);
}
原创粉丝点击