ReserveController.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package com.iamberry.wechat.handles.reserve;
  2. import com.iamberry.wechat.core.entity.WechatUtils;
  3. import com.iamberry.wechat.core.entity.member.Member;
  4. import com.iamberry.wechat.core.entity.pay.PayResult;
  5. import com.iamberry.wechat.core.entity.rent.ChannelAccess;
  6. import com.iamberry.wechat.core.entity.rent.ReserveOrder;
  7. import com.iamberry.wechat.face.pay.PayService;
  8. import com.iamberry.wechat.face.reserve.ReserveService;
  9. import com.iamberry.wechat.tools.*;
  10. import nl.bitwalker.useragentutils.Browser;
  11. import nl.bitwalker.useragentutils.OperatingSystem;
  12. import nl.bitwalker.useragentutils.UserAgent;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Controller;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RequestParam;
  18. import org.springframework.web.bind.annotation.ResponseBody;
  19. import javax.servlet.http.HttpServletRequest;
  20. import java.util.Date;
  21. /**
  22. * @author 献
  23. * @company 深圳爱贝源科技有限公司
  24. * @date 2017/7/10 9:11
  25. * @tel 18271840547
  26. * @website www.iamberry.com
  27. */
  28. @Deprecated
  29. @Controller
  30. @RequestMapping("/wechat/rent")
  31. public class ReserveController {
  32. @Autowired
  33. private ReserveService reserveService;
  34. @Autowired
  35. private PayService payService;
  36. @ResponseBody
  37. @RequestMapping("/log_access")
  38. public ResponseJson accessLog(@RequestParam("channel_id") String channelId, HttpServletRequest request) {
  39. Member member = WechatUtils.getUserBySession(request);
  40. // 解析用户User-Agent
  41. UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
  42. // 浏览器名称
  43. Browser browser = userAgent.getBrowser();
  44. // 访问的系统
  45. OperatingSystem os = userAgent.getOperatingSystem();
  46. // 创建访问对象
  47. ChannelAccess access = new ChannelAccess();
  48. access.setAccessDeviceModel(os.getName());
  49. access.setAccessIsMobile(os.isMobileDevice() ? 1 : 2);
  50. access.setAccessDeviceType(os.getDeviceType().getName());
  51. access.setAccessBrowser(browser.getName());
  52. access.setUserOpenid(member.getUserOpenid());
  53. // access.setUserOpenid("hexiugang");
  54. access.setAccessCreateTime(new Date());
  55. String tempId = com.iamberry.jwt.AES.decrypt(StringUtils.replace(channelId, "*", "\\"));
  56. access.setChannelId(Integer.parseInt(tempId == null ? "0" : tempId));
  57. reserveService.addAccess(access);
  58. return ResponseJson.SUCCESS;
  59. }
  60. @ResponseBody
  61. @RequestMapping("/sub_order")
  62. public ResponseJson subOrder(ReserveOrder order, HttpServletRequest request) {
  63. Member member = WechatUtils.getUserBySession(request);
  64. order.setReserveOpenid(member.getUserOpenid());
  65. // order.setReserveOpenid("o3G6nw_3cxE7CINzCT1or2f6dxL4");
  66. order.setReserveStatus(1);
  67. order.setReservePayMoney(9900);
  68. // 校验参数
  69. ValidationResult result = ValidationUtils.validateEntity(order);
  70. if (result.isHasErrors()) {
  71. return new ResponseJson(200, "FAILURE", 500).addResponseKeyValue("pay_error", result.getErrorMsgList().get(0));
  72. }
  73. reserveService.addOrder(order);
  74. if (order.getReserveOrderid() == null) {
  75. return ResponseJson.FAILURE.addResponseKeyValue("pay_error", "支付失败,请重试!");
  76. }
  77. PayResult res = payService.requestPay(order.getReserveOpenid(),
  78. "YD-000000" + order.getReserveOrderid(), Integer.parseInt(NameUtils.getConfig("reserve_pay_money")), "美国WaterO净水机", NameUtils.getConfig("RESERVE_PAY_CALLBACK"));
  79. if (res.isPaySuccess()) {
  80. return ResponseJson.SUCCESS.addResponseKeyValue("pay_data", res.getPayData()).addResponseKeyValue("order_id", order.getReserveOrderid());
  81. } else {
  82. return ResponseJson.FAILURE.addResponseKeyValue("pay_error", res.getPayData());
  83. }
  84. }
  85. @ResponseBody
  86. @RequestMapping("/check_order_pay")
  87. public ResponseJson checkOrderPay(@RequestParam("order_id")Integer id) {
  88. ReserveOrder order = reserveService.getOrder(id);
  89. if (order == null) {
  90. return ResponseJson.FAILURE;
  91. }
  92. if (order.getReserveStatus() != 2) {
  93. // 支付失败
  94. return ResponseJson.FAILURE;
  95. }
  96. return ResponseJson.SUCCESS;
  97. }
  98. }