OrderPayControllerV2.java 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. package com.izouma.nineth.web;
  2. import com.izouma.nineth.domain.Order;
  3. import com.izouma.nineth.enums.OrderStatus;
  4. import com.izouma.nineth.exception.BusinessException;
  5. import com.izouma.nineth.repo.OrderRepo;
  6. import com.izouma.nineth.service.OrderPayService;
  7. import com.izouma.nineth.service.SandPayService;
  8. import com.izouma.nineth.utils.SecurityUtils;
  9. import io.swagger.annotations.ApiOperation;
  10. import lombok.AllArgsConstructor;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.stereotype.Controller;
  13. import org.springframework.ui.Model;
  14. import org.springframework.web.bind.annotation.RequestMapping;
  15. import org.springframework.web.bind.annotation.RequestMethod;
  16. import org.springframework.web.bind.annotation.RequestParam;
  17. import org.springframework.web.bind.annotation.ResponseBody;
  18. import java.math.BigDecimal;
  19. import java.util.Map;
  20. @Controller
  21. @RequestMapping({"/payOrder/v2", "/pay/v2"})
  22. @Slf4j
  23. @AllArgsConstructor
  24. public class OrderPayControllerV2 {
  25. private final OrderRepo orderRepo;
  26. private final SandPayService sandPayService;
  27. private final OrderPayService orderPayService;
  28. @RequestMapping(value = "/alipay")
  29. @ResponseBody
  30. public String payOrderAlipayH5(Long id) {
  31. return orderPayService.payOrder(id);
  32. }
  33. @RequestMapping(value = "/alipay_wx")
  34. public String payOrderAlipayWx(Long id, Model model) {
  35. Order order = orderRepo.findById(id).orElseThrow(new BusinessException("订单不存在"));
  36. if (order.getStatus() != OrderStatus.NOT_PAID) {
  37. return "redirect:/9th/store";
  38. }
  39. String payUrl = orderPayService.payOrder(id);
  40. model.addAttribute("payUrl", payUrl);
  41. model.addAttribute("orderId", id);
  42. return "AlipayHtml";
  43. }
  44. @RequestMapping(value = "/balance")
  45. @ResponseBody
  46. public void payOrderBalance(@RequestParam Long id, @RequestParam String tradeCode) {
  47. orderPayService.payOrderBalance(id, SecurityUtils.getAuthenticatedUser().getId(), tradeCode);
  48. }
  49. @ApiOperation("衫德h5快捷")
  50. @RequestMapping(value = "/sandQuick", produces = "text/html")
  51. @ResponseBody
  52. public String sandQuick(@RequestParam Long id) {
  53. return orderPayService.payOrderQuick(id);
  54. }
  55. @ApiOperation("衫德h5快捷+绑卡")
  56. @RequestMapping(value = "/sandQuickBind", produces = "text/html")
  57. @ResponseBody
  58. public String sandQuickBind(@RequestParam Long id) {
  59. return orderPayService.payOrderQuickBind(id);
  60. }
  61. @ApiOperation("首信易协议支付")
  62. @RequestMapping(value = "/agreement")
  63. @ResponseBody
  64. public Map<String, Object> agreement(@RequestParam Long id, String bindCardId) {
  65. return orderPayService.payOrderAgreement(id, bindCardId);
  66. }
  67. @ApiOperation("首信易协议支付确认(通用)")
  68. @RequestMapping(value = "/confirmAgreement")
  69. @ResponseBody
  70. public void confirmAgreement(@RequestParam String requestId, @RequestParam String paymentOrderId,
  71. @RequestParam String code) {
  72. orderPayService.confirmOrderAgreement(requestId, paymentOrderId, code);
  73. }
  74. @RequestMapping(value = "/gift/alipay")
  75. @ResponseBody
  76. public String payGiftOrderAlipayH5(Long id) {
  77. return orderPayService.payGiftOrder(id);
  78. }
  79. @RequestMapping(value = "/gift/alipay_wx")
  80. public String payGiftOrderAlipayWx(Long id, Model model) {
  81. String payUrl = orderPayService.payGiftOrder(id);
  82. model.addAttribute("payUrl", payUrl);
  83. model.addAttribute("orderId", id);
  84. return "AlipayHtml";
  85. }
  86. @RequestMapping(value = "/gift/balance")
  87. @ResponseBody
  88. public void payGiftOrderBalance(@RequestParam Long id, @RequestParam String tradeCode) {
  89. orderPayService.payGiftBalance(id, SecurityUtils.getAuthenticatedUser().getId(), tradeCode);
  90. }
  91. @RequestMapping(value = "/gift/sandQuick", produces = "text/html")
  92. @ResponseBody
  93. public String payGiftQuick(@RequestParam Long id) {
  94. return orderPayService.payGiftQuick(id);
  95. }
  96. @RequestMapping(value = "/gift/sandQuickBind", produces = "text/html")
  97. @ResponseBody
  98. public String payGiftQuickBind(@RequestParam Long id) {
  99. return orderPayService.payGiftQuickBind(id);
  100. }
  101. @RequestMapping(value = "/gift/agreement")
  102. @ResponseBody
  103. public Map<String, Object> payGiftAgreement(@RequestParam Long id, String bindCardId) {
  104. return orderPayService.payGiftOrderAgreement(id, bindCardId);
  105. }
  106. @RequestMapping(value = "/mint/alipay")
  107. @ResponseBody
  108. public String payMintOrderAlipayH5(Long id) {
  109. return orderPayService.payMintOrder(id);
  110. }
  111. @RequestMapping(value = "/mint/alipay_wx")
  112. public String payMintOrderAlipayWx(Long id, Model model) {
  113. String payUrl = orderPayService.payMintOrder(id);
  114. model.addAttribute("payUrl", payUrl);
  115. model.addAttribute("orderId", id);
  116. return "AlipayHtml2";
  117. }
  118. @RequestMapping(value = "/mint/sandQuick", produces = "text/html")
  119. @ResponseBody
  120. public String payMintQuick(@RequestParam Long id) {
  121. return orderPayService.payMintQuick(id);
  122. }
  123. @RequestMapping(value = "/mint/sandQuickBind", produces = "text/html")
  124. @ResponseBody
  125. public String payMintQuickBind(@RequestParam Long id) {
  126. return orderPayService.payMintQuickBind(id);
  127. }
  128. @RequestMapping(value = "/mint/balance")
  129. @ResponseBody
  130. public void payMintOrderBalance(@RequestParam Long id, @RequestParam String tradeCode) {
  131. orderPayService.payMintOrderBalance(id, SecurityUtils.getAuthenticatedUser().getId(), tradeCode);
  132. }
  133. @RequestMapping(value = "/mint/agreement")
  134. @ResponseBody
  135. public Map<String, Object> payMintAgreement(@RequestParam Long id, String bindCardId) {
  136. return orderPayService.payMintOrderAgreement(id, bindCardId);
  137. }
  138. @RequestMapping("/recharge")
  139. @ResponseBody
  140. public String recharge(@RequestParam BigDecimal amount) {
  141. return orderPayService.recharge(SecurityUtils.getAuthenticatedUser().getId(), amount);
  142. }
  143. @RequestMapping(value = "/recharge/agreement")
  144. @ResponseBody
  145. public Map<String, Object> payRechargeAgreement(@RequestParam Long userId, @RequestParam BigDecimal amount,
  146. String bindCardId) {
  147. return orderPayService.rechargeAgreement(userId, amount, bindCardId);
  148. }
  149. @RequestMapping(value = "/recharge/sandQuick", produces = "text/html")
  150. @ResponseBody
  151. public String payRechargeQuick(@RequestParam Long userId, @RequestParam BigDecimal amount) {
  152. return orderPayService.rechargeQuick(userId, amount);
  153. }
  154. @RequestMapping(value = "/recharge/sandQuickBind", produces = "text/html")
  155. @ResponseBody
  156. public String payRechargeQuickBind(@RequestParam Long userId, @RequestParam BigDecimal amount) {
  157. return orderPayService.rechargeQuickBind(userId, amount);
  158. }
  159. @RequestMapping(value = "/auction/alipay", method = RequestMethod.GET)
  160. @ResponseBody
  161. public String payAuctionOrderAlipayH5(Long id) {
  162. return orderPayService.payAuctionOrder(id);
  163. }
  164. @RequestMapping(value = "/auction/alipay_wx", method = RequestMethod.GET)
  165. public String payAuctionOrderAlipayWx(Long id, Model model) {
  166. String payUrl = orderPayService.payAuctionOrder(id);
  167. model.addAttribute("payUrl", payUrl);
  168. model.addAttribute("orderId", id);
  169. return "AlipayHtml";
  170. }
  171. @RequestMapping(value = "/auction/sandQuick", method = RequestMethod.GET, produces = "text/html")
  172. @ResponseBody
  173. public String payAuctionQuick(@RequestParam Long id) {
  174. return orderPayService.payAuctionQuick(id);
  175. }
  176. @RequestMapping(value = "/auction/sandQuickBind", produces = "text/html")
  177. @ResponseBody
  178. public String payAuctionQuickBind(@RequestParam Long id) {
  179. return orderPayService.payAuctionQuickBind(id);
  180. }
  181. @RequestMapping(value = "/auction/balance")
  182. @ResponseBody
  183. public void payAuctionOrderBalance(@RequestParam Long id, @RequestParam String tradeCode) {
  184. orderPayService.payAuctionOrderBalance(id, SecurityUtils.getAuthenticatedUser().getId(), tradeCode);
  185. }
  186. @RequestMapping(value = "/auction/agreement")
  187. @ResponseBody
  188. public Map<String, Object> payAuctionAgreement(@RequestParam Long id, String bindCardId) {
  189. return orderPayService.payAuctionOrderAgreement(id, bindCardId);
  190. }
  191. }