版权声明:转载请附带本文地址 https://blog.csdn.net/liuyifeng1920/article/details/71439321
直接上代码,SpringMVC做的控制层
要保证账户余额的变动和财务的流水表在同一个事物内。
/**
* 加款或者减款
* @param model
* @return
*/
@RequestMapping("updateYuE")
public String toEdit(Model model,HttpServletRequest request,final String id,final String userName,final String realName,final String operationType,final String money,final String operationNote) {
//非空验证
if(StringUtils.isEmpty(id)||StringUtils.isEmpty(userName)||StringUtils.isEmpty(operationType)||StringUtils.isEmpty(money)){
return "/background/framework/failed";
}
final User attribute = (User) request.getSession().getAttribute("userSession");
Db.tx(new IAtom() {
//在执行run的过程中,如果有异常将回滚,或者return false 将回滚
@Override
public boolean run() throws SQLException {
//代理师账户加款减款的流水的日志表
UseraFlow useraFlow= new UseraFlow();
useraFlow.setOperator(attribute.getUserName());//获取当前后台登录用户名
useraFlow.setOperationType(operationType);
useraFlow.setOperationNote(operationNote);
useraFlow.setMoney(money);
useraFlow.setUseraId(id);//代理师id
useraFlow.setUserName(userName);
useraFlow.setRealName(realName);
useraFlow.save();
/*int a =10/0;*///测试回滚
if(operationType.equals("1")){//加款
Db.update("UPDATE t_usera SET daiKuanYongJin = daiKuanYongJin + ? WHERE id = ? ",money,id);
}else if(operationType.equals("0")){//减款
Db.update("UPDATE t_usera SET daiKuanYongJin = daiKuanYongJin - ? WHERE id = ? ",money,id);
}
return true;
}
});
return "redirect:toList.html";
}