| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package com.qlm.controller.shanghu.service;
- import java.util.Date;
- import com.jfinal.aop.Before;
- import com.jfinal.plugin.activerecord.Db;
- import com.jfinal.plugin.activerecord.Record;
- import com.jfinal.plugin.activerecord.tx.Tx;
- import com.qlm.tools.WxUtil;
- import com.qlm.view.ResultMsg;
- public class BillServcie {
- /**
- *
- * @param userId 用户ID
- * @param money 金额
- * @param type 1减少 2增加
- */
- @Before(Tx.class)
- public ResultMsg modifyMoney(int userId,int money ,int type){
- money = money*100;
- ResultMsg resultMsg = new ResultMsg();
- boolean status = false;
- String msg = "";
- if(money == 0){
- msg = "金额不能为空";
- resultMsg.setMsg(msg);
- return resultMsg;
- }
- long newVersion = System.currentTimeMillis();
- Record t_user_balance = Db.findFirst("select * from t_user_balance where user_id = ?",userId);
- if(t_user_balance != null){
- String oldVersion = t_user_balance.getStr("version");
- if(type == 1){
- int update = Db.update("update t_user_balance set balance = balance-"+money +" ,version = ? where user_id = ? and version = ? and balance>="+money,newVersion,userId,oldVersion);
- if(update == 1){
- status = true;
- }else{
- msg = "修改失败";
- }
- }else{
- int update = Db.update("update t_user_balance set balance = balance+"+money +" ,version = ? where user_id = ? and version = ?",newVersion,userId,oldVersion);
- if(update == 1){
- status = true;
- }else{
- msg = "修改失败";
- }
- }
- }else{
- if(type == 1){
- msg = "余额不足";
- }else{
- Record info = new Record();
- info.set("user_id", userId).set("balance", money).set("version", newVersion);
- Db.save("t_user_balance", info);
- status = true;
- }
- }
- if(status){
- Record jilu = new Record();
- t_user_balance = Db.findFirst("select * from t_user_balance where user_id = ?",userId);
- Object balance = t_user_balance.get("balance");
- jilu.set("create_time", new Date()).set("amount", money).set("user_id",userId)
- .set("balance", balance).set("type_", type);
- resultMsg.set("balance", WxUtil.hbValue(WxUtil.parseInt(balance+"")));
- Db.save("t_user_bill", jilu);
- }
- resultMsg.setMsg(msg);
- resultMsg.setStatus(status);
- return resultMsg;
- }
- }
|