BillServcie.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.qlm.controller.shanghu.service;
  2. import java.util.Date;
  3. import com.jfinal.aop.Before;
  4. import com.jfinal.plugin.activerecord.Db;
  5. import com.jfinal.plugin.activerecord.Record;
  6. import com.jfinal.plugin.activerecord.tx.Tx;
  7. import com.qlm.tools.WxUtil;
  8. import com.qlm.view.ResultMsg;
  9. public class BillServcie {
  10. /**
  11. *
  12. * @param userId 用户ID
  13. * @param money 金额
  14. * @param type 1减少 2增加
  15. */
  16. @Before(Tx.class)
  17. public ResultMsg modifyMoney(int userId,int money ,int type){
  18. money = money*100;
  19. ResultMsg resultMsg = new ResultMsg();
  20. boolean status = false;
  21. String msg = "";
  22. if(money == 0){
  23. msg = "金额不能为空";
  24. resultMsg.setMsg(msg);
  25. return resultMsg;
  26. }
  27. long newVersion = System.currentTimeMillis();
  28. Record t_user_balance = Db.findFirst("select * from t_user_balance where user_id = ?",userId);
  29. if(t_user_balance != null){
  30. String oldVersion = t_user_balance.getStr("version");
  31. if(type == 1){
  32. int update = Db.update("update t_user_balance set balance = balance-"+money +" ,version = ? where user_id = ? and version = ? and balance>="+money,newVersion,userId,oldVersion);
  33. if(update == 1){
  34. status = true;
  35. }else{
  36. msg = "修改失败";
  37. }
  38. }else{
  39. int update = Db.update("update t_user_balance set balance = balance+"+money +" ,version = ? where user_id = ? and version = ?",newVersion,userId,oldVersion);
  40. if(update == 1){
  41. status = true;
  42. }else{
  43. msg = "修改失败";
  44. }
  45. }
  46. }else{
  47. if(type == 1){
  48. msg = "余额不足";
  49. }else{
  50. Record info = new Record();
  51. info.set("user_id", userId).set("balance", money).set("version", newVersion);
  52. Db.save("t_user_balance", info);
  53. status = true;
  54. }
  55. }
  56. if(status){
  57. Record jilu = new Record();
  58. t_user_balance = Db.findFirst("select * from t_user_balance where user_id = ?",userId);
  59. Object balance = t_user_balance.get("balance");
  60. jilu.set("create_time", new Date()).set("amount", money).set("user_id",userId)
  61. .set("balance", balance).set("type_", type);
  62. resultMsg.set("balance", WxUtil.hbValue(WxUtil.parseInt(balance+"")));
  63. Db.save("t_user_bill", jilu);
  64. }
  65. resultMsg.setMsg(msg);
  66. resultMsg.setStatus(status);
  67. return resultMsg;
  68. }
  69. }