DepositController.java 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. package modules.deposit;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.jfinal.aop.Before;
  4. import com.jfinal.aop.Inject;
  5. import common.interceptor.LoginInterceptor;
  6. import common.interceptor.empty.EmptyInterface;
  7. import common.interceptor.role.RequiredRoleInterface;
  8. import common.model.User;
  9. import common.utils.http.MyController;
  10. import common.utils.http.MyRet;
  11. import modules.user.UserController;
  12. import modules.user.UserService;
  13. public class DepositController extends MyController {
  14. @Inject
  15. DepositService service;
  16. @Inject
  17. UserService userService;
  18. public void hello() {
  19. renderJson(MyRet.ok(service.hello()));
  20. }
  21. // // 微信充值回调地址
  22. // public void deposited() {
  23. // String originalBody = HttpKit.readData(getRequest());
  24. // AppConfig.LOGGER.info("wechat notify {}", originalBody);
  25. //
  26. // // 保证每条回调都保存到数据库
  27. // Deposit deposit = new Deposit();
  28. // deposit.setCreateTime(System.currentTimeMillis());
  29. // deposit.setWxOriginal(originalBody);
  30. // deposit.setIsDeleted(0);
  31. //
  32. // // 获取回调通知中的相关数据
  33. // String wechatPaySerial = getRequest().getHeader("Wechatpay-Serial");
  34. // String wechatpayNonce = getRequest().getHeader("Wechatpay-Nonce");
  35. // String wechatSignature = getRequest().getHeader("Wechatpay-Signature");
  36. // String wechatTimestamp = getRequest().getHeader("Wechatpay-Timestamp");
  37. //
  38. // try {
  39. // // 解析完成
  40. // Transaction tx = WeChatService.parseTransaction(originalBody, wechatPaySerial, wechatpayNonce, wechatSignature, wechatTimestamp);
  41. // Json json = Json.getJson();
  42. // String txJson = json.toJson(tx);
  43. //
  44. // // 商户下单时传入的商户系统内部订单号。
  45. // String orderNo = tx.getOutTradeNo();
  46. // // 获取库中存放的tx
  47. // Deposit dbDeposit = service.findDepositByWxOrderNo(orderNo);
  48. // // 付款数量
  49. // Integer paymentAmount = tx.getAmount().getTotal();
  50. // // 状态描述
  51. // String status = tx.getTradeState().toString();
  52. //
  53. // if (dbDeposit == null) {
  54. // deposit.setWxDecrypted(txJson);
  55. // deposit.setWxOrderStatus(status);
  56. // deposit.setDescription("未提前入库的订单,wx:" + tx.getTradeStateDesc());
  57. // deposit.setAmount(paymentAmount);
  58. // deposit.save();
  59. //
  60. // AppConfig.LOGGER.warn("未提前入库的订单 {}", deposit);
  61. // } else {
  62. // deposit = dbDeposit;
  63. //
  64. // // 记录解密后的信息
  65. // deposit.setAmount(paymentAmount);
  66. // deposit.setWxDecrypted(txJson);
  67. //
  68. // // 不要重复处理已存在的充值单号,并且要加款成功
  69. // if (StrKit.isBlank(deposit.getWxOrderStatus())) {
  70. // User user = userService.findUserById(deposit.getUserId() + "");
  71. //
  72. // // 记录订单状态
  73. // deposit.setWxOrderStatus(tx.getTradeState().toString());
  74. //
  75. // // 有充值信息但是未找到充值者
  76. // if (user == null) {
  77. // deposit.setDescription("未找到充值者,wx:" + tx.getTradeStateDesc());
  78. // } else {
  79. // // 判断订单状态
  80. // if (tx.getTradeState() == Transaction.TradeStateEnum.SUCCESS) {
  81. // // 如果充值成功,对用户进行充值
  82. // user.setBalance(user.getBalance() + paymentAmount);
  83. // user.update();
  84. //
  85. // deposit.setDescription("用户充值成功,wx:" + tx.getTradeStateDesc());
  86. // } else {
  87. // deposit.setDescription("用户充值失败,wx:" + tx.getTradeStateDesc());
  88. // }
  89. // }
  90. // }
  91. //
  92. // // 充值记录入库
  93. // deposit.update();
  94. //
  95. // AppConfig.LOGGER.info("入库成功 {}", deposit);
  96. // }
  97. //
  98. // // 成功入库后给微信的回调信息
  99. // getResponse().setStatus(200);
  100. // renderText("");
  101. // } catch (Exception e) {
  102. // // 回调日志入库
  103. // if (StrKit.notBlank(wechatPaySerial, wechatpayNonce, wechatSignature, wechatTimestamp)) {
  104. // deposit.save();
  105. // }
  106. //
  107. // Map<String, Object> responseJson = new HashMap<>();
  108. // responseJson.put("code", "FAIL");
  109. // responseJson.put("message", "回调失败 " + e.getMessage());
  110. //
  111. // AppConfig.LOGGER.error("回调失败 {}", e.getMessage());
  112. //
  113. // // 返回500错误码
  114. // getResponse().setStatus(500);
  115. // renderJson(responseJson);
  116. // }
  117. // }
  118. // // 创建微信支付订单
  119. // @Before(LoginInterceptor.class)
  120. // @EmptyInterface({"amount"})
  121. // public void create() {
  122. // JSONObject requestBodyJson = MyController.getJsonModelByRequestAndType(getRequest(), JSONObject.class);
  123. //
  124. // // 获取支付数量(分)
  125. // String amountStr = requestBodyJson.getString("amount");
  126. // int amount;
  127. // try {
  128. // amount = Integer.parseInt(amountStr);
  129. //
  130. // if (amount <= 0) {
  131. // renderJson(MyRet.fail("支付数量(amount)期待是正整数,你传的是: " + amountStr));
  132. // return;
  133. // }
  134. // } catch (Exception e) {
  135. // renderJson(MyRet.fail("支付数量(amount)格式不正确: " + e.getMessage()));
  136. // return;
  137. // }
  138. //
  139. // // 获取公网ip地址
  140. // String ip = IpAddressUtil.getClientIpAddress(this);
  141. //
  142. // // 获取当前用户
  143. // User user = userService.findUserByMobileNumber(getSessionAttr("mobile_number"));
  144. //
  145. // // 创建并返回支付链接给前端
  146. // renderJson(service.createDepositOrder(amount, ip, user.getId()));
  147. // }
  148. @Before(LoginInterceptor.class)
  149. @EmptyInterface({"page_size", "page_number"})
  150. public void list() {
  151. JSONObject requestBodyJson = MyController.getJsonModelByRequestAndType(getRequest(), JSONObject.class);
  152. // 页面大小
  153. String pageSizeStr = requestBodyJson.getString("page_size");
  154. int pageSizeInt;
  155. try {
  156. pageSizeInt = Integer.parseInt(pageSizeStr);
  157. if (pageSizeInt <= 0) {
  158. renderJson(MyRet.fail("页面大小(page_size)期待是正整数,你传的是: " + pageSizeStr));
  159. return;
  160. }
  161. } catch (Exception e) {
  162. renderJson(MyRet.fail("页面大小(page_size)格式不正确: " + e.getMessage()));
  163. return;
  164. }
  165. // 页码
  166. String pageNumberStr = requestBodyJson.getString("page_number");
  167. int pageNumberInt;
  168. try {
  169. pageNumberInt = Integer.parseInt(pageNumberStr);
  170. if (pageNumberInt <= 0) {
  171. renderJson(MyRet.fail("页码(page_number)期待是正整数,你传的是: " + pageNumberStr));
  172. return;
  173. }
  174. } catch (Exception e) {
  175. renderJson(MyRet.fail("页码(page_number)格式不正确: " + e.getMessage()));
  176. return;
  177. }
  178. User user = userService.findUserByMobileNumber(getSessionAttr("mobile_number"));
  179. renderJson(service.list(pageNumberInt, pageSizeInt, user.getId()));
  180. }
  181. @Before(LoginInterceptor.class)
  182. @RequiredRoleInterface({UserController.ROLE_CHECK_ADMIN, UserController.ROLE_SUPER_ADMIN})
  183. @EmptyInterface({"page_size", "page_number"})
  184. public void listByAdmin() {
  185. JSONObject requestBodyJson = MyController.getJsonModelByRequestAndType(getRequest(), JSONObject.class);
  186. // 页面大小
  187. String pageSizeStr = requestBodyJson.getString("page_size");
  188. int pageSizeInt;
  189. try {
  190. pageSizeInt = Integer.parseInt(pageSizeStr);
  191. if (pageSizeInt <= 0) {
  192. renderJson(MyRet.fail("页面大小(page_size)期待是正整数,你传的是: " + pageSizeStr));
  193. return;
  194. }
  195. } catch (Exception e) {
  196. renderJson(MyRet.fail("页面大小(page_size)格式不正确: " + e.getMessage()));
  197. return;
  198. }
  199. // 页码
  200. String pageNumberStr = requestBodyJson.getString("page_number");
  201. int pageNumberInt;
  202. try {
  203. pageNumberInt = Integer.parseInt(pageNumberStr);
  204. if (pageNumberInt <= 0) {
  205. renderJson(MyRet.fail("页码(page_number)期待是正整数,你传的是: " + pageNumberStr));
  206. return;
  207. }
  208. } catch (Exception e) {
  209. renderJson(MyRet.fail("页码(page_number)格式不正确: " + e.getMessage()));
  210. return;
  211. }
  212. renderJson(service.list(pageNumberInt, pageSizeInt, null));
  213. }
  214. }