wangqifan 3 ani în urmă
părinte
comite
b9049ce08d

+ 18 - 7
src/main/java/com/izouma/nineth/web/SandPayController.java

@@ -4,8 +4,11 @@ import cn.com.sandpay.cashier.sdk.CertUtil;
 import cn.com.sandpay.cashier.sdk.CryptoUtil;
 import cn.com.sandpay.cashier.sdk.CryptoUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.izouma.nineth.config.GeneralProperties;
 import com.izouma.nineth.config.GeneralProperties;
+import com.izouma.nineth.domain.Order;
 import com.izouma.nineth.enums.PayMethod;
 import com.izouma.nineth.enums.PayMethod;
 import com.izouma.nineth.event.OrderNotifyEvent;
 import com.izouma.nineth.event.OrderNotifyEvent;
+import com.izouma.nineth.exception.BusinessException;
+import com.izouma.nineth.repo.OrderRepo;
 import com.izouma.nineth.service.*;
 import com.izouma.nineth.service.*;
 import com.izouma.nineth.utils.SnowflakeIdWorker;
 import com.izouma.nineth.utils.SnowflakeIdWorker;
 import com.izouma.nineth.enums.SandPayMethod;
 import com.izouma.nineth.enums.SandPayMethod;
@@ -27,12 +30,13 @@ import java.nio.charset.StandardCharsets;
 @AllArgsConstructor
 @AllArgsConstructor
 public class SandPayController {
 public class SandPayController {
 
 
-    private SandPayService     sandPayService;
-    private SnowflakeIdWorker  snowflakeIdWorker;
-    private GeneralProperties  generalProperties;
-    private RocketMQTemplate   rocketMQTemplate;
-    private GiftOrderService   giftOrderService;
-    private MintOrderService   mintOrderService;
+    private SandPayService    sandPayService;
+    private SnowflakeIdWorker snowflakeIdWorker;
+    private GeneralProperties generalProperties;
+    private RocketMQTemplate  rocketMQTemplate;
+    private GiftOrderService  giftOrderService;
+    private MintOrderService  mintOrderService;
+    private OrderRepo         orderRepo;
 
 
     @PostMapping("/notify")
     @PostMapping("/notify")
     public Object notifyOrder(HttpServletRequest req, HttpServletResponse resp) {
     public Object notifyOrder(HttpServletRequest req, HttpServletResponse resp) {
@@ -64,7 +68,8 @@ public class SandPayController {
                         switch (type) {
                         switch (type) {
                             case "order":
                             case "order":
                                 rocketMQTemplate.syncSend(generalProperties.getOrderNotifyTopic(),
                                 rocketMQTemplate.syncSend(generalProperties.getOrderNotifyTopic(),
-                                        new OrderNotifyEvent(id, PayMethod.SANDPAY, payOrderCode, System.currentTimeMillis()));
+                                        new OrderNotifyEvent(id, PayMethod.SANDPAY, payOrderCode, System
+                                                .currentTimeMillis()));
                                 break;
                                 break;
                             case "gift":
                             case "gift":
                                 giftOrderService.giftNotify(id, PayMethod.SANDPAY, payOrderCode);
                                 giftOrderService.giftNotify(id, PayMethod.SANDPAY, payOrderCode);
@@ -84,4 +89,10 @@ public class SandPayController {
         }
         }
         return null;
         return null;
     }
     }
+
+    @PostMapping("/refund")
+    public void refund(Long orderId) {
+        Order order = orderRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
+        sandPayService.refund(order.getTransactionId(), order.getTotalPrice());
+    }
 }
 }

+ 15 - 16
src/main/vue/src/views/AdapayMerchantList.vue

@@ -110,22 +110,22 @@
 
 
         <el-dialog title="订单退款" :visible.sync="showRefundDialog" width="650px">
         <el-dialog title="订单退款" :visible.sync="showRefundDialog" width="650px">
             <el-form label-position="right" label-width="100px">
             <el-form label-position="right" label-width="100px">
-                <el-form-item label="商户">
-                    <el-select v-model="merchantId">
-                        <el-option
-                            v-for="item in tableData"
-                            :label="item.name"
-                            :value="item.id"
-                            :key="item.id"
-                        ></el-option>
-                    </el-select>
-                </el-form-item>
+<!--                <el-form-item label="商户">-->
+<!--                    <el-select v-model="merchantId">-->
+<!--                        <el-option-->
+<!--                            v-for="item in tableData"-->
+<!--                            :label="item.name"-->
+<!--                            :value="item.id"-->
+<!--                            :key="item.id"-->
+<!--                        ></el-option>-->
+<!--                    </el-select>-->
+<!--                </el-form-item>-->
                 <el-form-item label="订单流水号">
                 <el-form-item label="订单流水号">
                     <el-input v-model="orderId"></el-input>
                     <el-input v-model="orderId"></el-input>
                 </el-form-item>
                 </el-form-item>
-                <el-form-item v-if="refundResult" label="结果">
-                    <pre v-html="refundResult" style="line-height: 1.5"></pre>
-                </el-form-item>
+<!--                <el-form-item v-if="refundResult" label="结果">-->
+<!--                    <pre v-html="refundResult" style="line-height: 1.5"></pre>-->
+<!--                </el-form-item>-->
             </el-form>
             </el-form>
             <div slot="footer">
             <div slot="footer">
                 <el-button @click="refund" :loading="querying">退款</el-button>
                 <el-button @click="refund" :loading="querying">退款</el-button>
@@ -271,14 +271,13 @@ export default {
                 .then(() => {
                 .then(() => {
                     this.querying = true;
                     this.querying = true;
                     this.$http
                     this.$http
-                        .post('/adapayMerchant/refund', {
-                            id: this.merchantId,
+                        .post('/sandPay/refund', {
                             orderId: this.orderId
                             orderId: this.orderId
                         })
                         })
                         .then(res => {
                         .then(res => {
                             this.querying = false;
                             this.querying = false;
                             console.log(res);
                             console.log(res);
-                            this.refundResult = JSON.stringify(res, null, 4);
+                            // this.refundResult = JSON.stringify(res, null, 4);
                         })
                         })
                         .catch(e => {
                         .catch(e => {
                             this.querying = false;
                             this.querying = false;