Commit aff9aac3e81ad46ce1db4a828ef105302678a71e

Authored by huanggang
1 parent ea0f8e2c

check trade order api supported

cashier-boss/src/main/java/com/diligrp/cashier/boss/controller/CashierDeskController.java
@@ -53,6 +53,12 @@ public class CashierDeskController { @@ -53,6 +53,12 @@ public class CashierDeskController {
53 return Message.success(cashierDeskService.getCashierOrderByToken(token)); 53 return Message.success(cashierDeskService.getCashierOrderByToken(token));
54 } 54 }
55 55
  56 + @RequestMapping("/checkOrder")
  57 + public Message<?> checkOrder(@RequestParam("tradeId") String tradeId) {
  58 + cashierDeskService.checkTradeOrder(tradeId);
  59 + return Message.success();
  60 + }
  61 +
56 @RequestMapping("/orderPayment") 62 @RequestMapping("/orderPayment")
57 public Message<?> orderPayment(@RequestBody CashierPayment request) { 63 public Message<?> orderPayment(@RequestBody CashierPayment request) {
58 // 基本参数校验 64 // 基本参数校验
cashier-boss/src/main/java/com/diligrp/cashier/boss/service/ICashierDeskService.java
@@ -24,6 +24,11 @@ public interface ICashierDeskService { @@ -24,6 +24,11 @@ public interface ICashierDeskService {
24 CashierOrderVO getCashierOrderByToken(String token); 24 CashierOrderVO getCashierOrderByToken(String token);
25 25
26 /** 26 /**
  27 + * 检查交易订单是否能进行支付
  28 + */
  29 + void checkTradeOrder(String tradeId);
  30 +
  31 + /**
27 * 提交收银台支付 32 * 提交收银台支付
28 * 33 *
29 * @param payment - 支付信息 34 * @param payment - 支付信息
cashier-boss/src/main/java/com/diligrp/cashier/boss/service/impl/CashierDeskServiceImpl.java
@@ -98,6 +98,11 @@ public class CashierDeskServiceImpl implements ICashierDeskService { @@ -98,6 +98,11 @@ public class CashierDeskServiceImpl implements ICashierDeskService {
98 trade.getGoods(), trade.getMaxAmount(), orderToken.getRedirectUrl(), pipelineList); 98 trade.getGoods(), trade.getMaxAmount(), orderToken.getRedirectUrl(), pipelineList);
99 } 99 }
100 100
  101 + @Override
  102 + public void checkTradeOrder(String tradeId) {
  103 + cashierPaymentService.checkTradeOrder(tradeId);
  104 + }
  105 +
101 /** 106 /**
102 * 提交收银台支付 107 * 提交收银台支付
103 * 108 *
cashier-trade/src/main/java/com/diligrp/cashier/trade/service/ICashierPaymentService.java
@@ -17,6 +17,11 @@ public interface ICashierPaymentService { @@ -17,6 +17,11 @@ public interface ICashierPaymentService {
17 String doSubmit(Merchant merchant, CashierOrder cashierOrder); 17 String doSubmit(Merchant merchant, CashierOrder cashierOrder);
18 18
19 /** 19 /**
  20 + * 检查交易订单是否能进行支付
  21 + */
  22 + void checkTradeOrder(String tradeId);
  23 +
  24 + /**
20 * 收银台支付 25 * 收银台支付
21 * 26 *
22 * @param cashierPayment - 支付信息 27 * @param cashierPayment - 支付信息
@@ -38,7 +43,7 @@ public interface ICashierPaymentService { @@ -38,7 +43,7 @@ public interface ICashierPaymentService {
38 void closeTradeOrder(String tradeId); 43 void closeTradeOrder(String tradeId);
39 44
40 /** 45 /**
41 - * 查询交易订单状态 46 + * 查询支付状态
42 */ 47 */
43 OnlinePaymentResult queryPaymentState(String paymentId, String mode); 48 OnlinePaymentResult queryPaymentState(String paymentId, String mode);
44 49
cashier-trade/src/main/java/com/diligrp/cashier/trade/service/impl/CashierPaymentServiceImpl.java
@@ -103,6 +103,24 @@ public class CashierPaymentServiceImpl implements ICashierPaymentService { @@ -103,6 +103,24 @@ public class CashierPaymentServiceImpl implements ICashierPaymentService {
103 return tradeId; 103 return tradeId;
104 } 104 }
105 105
  106 + @Override
  107 + public void checkTradeOrder(String tradeId) {
  108 + TradeOrder tradeOrder = tradeAssistantService.findByTradeId(tradeId);
  109 + if (TradeState.PENDING.equalTo(tradeOrder.getState())) {
  110 + return;
  111 + }
  112 +
  113 + if (TradeState.SUCCESS.equalTo(tradeOrder.getState()) || TradeState.REFUND.equalTo(tradeOrder.getState())) {
  114 + throw new TradePaymentException(ErrorCode.OPERATION_NOT_ALLOWED, "订单已交易成功,不能重复支付");
  115 + }
  116 + if (TradeState.FAILED.equalTo(tradeOrder.getState())) {
  117 + throw new TradePaymentException(ErrorCode.OPERATION_NOT_ALLOWED, "订单已完成,不能进行支付");
  118 + }
  119 + if (TradeState.CLOSED.equalTo(tradeOrder.getState())) {
  120 + throw new TradePaymentException(ErrorCode.OPERATION_NOT_ALLOWED, "订单已关闭,不能进行支付");
  121 + }
  122 + }
  123 +
106 /** 124 /**
107 * 收银台支付 125 * 收银台支付
108 * 126 *
scripts/cashier-data.sql
@@ -13,7 +13,7 @@ VALUES (1001, 10014, 29, 2, &#39;微信支付&#39;, &#39;https://epos.ahrcu.com:3443&#39;, &#39;{&quot;me @@ -13,7 +13,7 @@ VALUES (1001, 10014, 29, 2, &#39;微信支付&#39;, &#39;https://epos.ahrcu.com:3443&#39;, &#39;{&quot;me
13 13
14 -- 中瑞园区卡支付通道, 根据环境配置不同的参数(服务地址、回调地址等) 14 -- 中瑞园区卡支付通道, 根据环境配置不同的参数(服务地址、回调地址等)
15 INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) 15 INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time)
16 -VALUES (1001, 10012, 19, 2, '园区卡支付', 'https://gateway.zr.zrgyl.com/pay-service', '{"outMchId": 9, "accountId": 118924}', 1, now(), now()); 16 +VALUES (1001, 10012, 19, 2, '园区卡支付', 'https://gateway.zr.zrgyl.com/pay-service', '{"outMchId": 9, "accountId": 133005}', 1, now(), now());
17 17
18 -- 高斯智达微信支付直连通道, 根据环境配置不同的参数(服务地址、回调地址等) 18 -- 高斯智达微信支付直连通道, 根据环境配置不同的参数(服务地址、回调地址等)
19 -- INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time) 19 -- INSERT INTO `dili_cashier`.upay_payment_pipeline(mch_id, pipeline_id, channel_id, type, name, uri, param, state, created_time, modified_time)