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; } }