OrderPayControllerV2.java 9.3 KB

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