瀏覽代碼

不及时返回支付状态的逻辑修改

licc 1 月之前
父節點
當前提交
c19f99fba3
共有 4 個文件被更改,包括 21 次插入17 次删除
  1. 2 2
      src/api/order.ts
  2. 7 7
      src/views/order/console.vue
  3. 7 7
      src/views/order/index.vue
  4. 5 1
      src/views/orders/list.vue

+ 2 - 2
src/api/order.ts

@@ -52,11 +52,11 @@ export function orderPay(params?: any) {
     return request.get({ url: '/order/pay', params })
 }
 export function queryPayStatus(params?: any) {
-    return request.post({ url: '/sqb/query', params })
+    return request.post({ url: '/order/query', params })
 }
 
 export function cancelOrder(params?: any) {
-    return request.post({ url: '/sqb/cancel', params })
+    return request.post({ url: '/order/cancel', params })
 }
 
 export function deskOrderedDishListAll(params?: any) {

+ 7 - 7
src/views/order/console.vue

@@ -432,9 +432,9 @@ const handleScanInput = (event: KeyboardEvent) => {
         orderPay({ oid: params.number, code: code })
           .then((res) => {
             console.log(res)
-            if (res.data) {
+            if (res != null) {
               console.log('支付中')
-              return queryPayStatusWithRetry(res.data)
+              return queryPayStatusWithRetry(res)
                   .then((paySuccess) => {
                     if (paySuccess) {
                       feedback.notifySuccess('成功结账' + orderData.payAmount + '元')
@@ -468,7 +468,7 @@ const handleScanInput = (event: KeyboardEvent) => {
 }
 
 // 定义查询支付状态的函数
-const queryPayStatusWithRetry = (sn: string): Promise<boolean> => {
+const queryPayStatusWithRetry = (data): Promise<boolean> => {
     const intervals = [3000, 5000, 10000]
     let currentIndex = 0
     payingDialogVisible.value = true
@@ -476,9 +476,9 @@ const queryPayStatusWithRetry = (sn: string): Promise<boolean> => {
     const tryQuery = () => {
         return new Promise<boolean>((resolve) => {
             setTimeout(() => {
-                queryPayStatus({ sn })
+                queryPayStatus({ orderId: data.orderId,sn: data.sn })
                     .then((result) => {
-                        if (result.success) {
+                        if (result.result_code == '200' && result.biz_response.data.order_status == 'SUCCESS') {
                             resolve(true)
                         } else if (currentIndex < intervals.length - 1) {
                             currentIndex++
@@ -502,9 +502,9 @@ const queryPayStatusWithRetry = (sn: string): Promise<boolean> => {
     return tryQuery().then((success) => {
         payingDialogVisible.value = false
         if (!success) {
-            return cancelOrder({ sn })
+            return cancelOrder({ orderId: data.orderId,sn: data.sn })
                 .then(() => {
-                    feedback.notifyWarning('支付超时,订单已自动撤销')
+                    feedback.notifyWarning('支付超时,已自动撤销本次支付')
                     return false
                 })
                 .catch((error) => {

+ 7 - 7
src/views/order/index.vue

@@ -215,9 +215,9 @@ const handleScanInput = (event: KeyboardEvent) => {
         orderPay({ oid: currentDesk.oid, code: code })
           .then((res) => {
             console.log(res)
-            if (res.data) {
+            if (res != null) {
               console.log('支付中')
-              return queryPayStatusWithRetry(res.data)
+              return queryPayStatusWithRetry(res)
                   .then((paySuccess) => {
                     if (paySuccess) {
                       feedback.notifySuccess('成功结账' + currentDesk.amount + '元')
@@ -251,7 +251,7 @@ const handleScanInput = (event: KeyboardEvent) => {
 }
 
 // 定义查询支付状态的函数
-const queryPayStatusWithRetry = (sn: string): Promise<boolean> => {
+const queryPayStatusWithRetry = (data): Promise<boolean> => {
     const intervals = [3000, 5000, 10000]
     let currentIndex = 0
     payingDialogVisible.value = true
@@ -259,9 +259,9 @@ const queryPayStatusWithRetry = (sn: string): Promise<boolean> => {
     const tryQuery = () => {
         return new Promise<boolean>((resolve) => {
             setTimeout(() => {
-                queryPayStatus({ sn })
+                queryPayStatus({ orderId: data.orderId,sn: data.sn })
                     .then((result) => {
-                        if (result.success) {
+                        if (result.result_code == '200' && result.biz_response.data.order_status == 'SUCCESS') {
                             resolve(true)
                         } else if (currentIndex < intervals.length - 1) {
                             currentIndex++
@@ -285,9 +285,9 @@ const queryPayStatusWithRetry = (sn: string): Promise<boolean> => {
     return tryQuery().then((success) => {
         payingDialogVisible.value = false
         if (!success) {
-            return cancelOrder({ sn })
+            return cancelOrder({ orderId: data.orderId,sn: data.sn })
                 .then(() => {
-                    feedback.notifyWarning('支付超时,订单已自动撤销')
+                    feedback.notifyWarning('支付超时,已自动撤销本次支付')
                     return false
                 })
                 .catch((error) => {

+ 5 - 1
src/views/orders/list.vue

@@ -158,7 +158,7 @@
             <template #footer>
                 <span class="dialog-footer">
                     <el-button @click="refundDialogVisible = false">取 消</el-button>
-                    <el-button type="primary" @click="confirmRefund">确 定</el-button>
+                    <el-button type="primary" :loading="refundLoading" @click="confirmRefund">确 定</el-button>
                 </span>
             </template>
         </el-dialog>
@@ -218,6 +218,8 @@
         amount: number;
         status: number; id: any;
     };
+    // 添加loading状态变量
+    const refundLoading = ref(false)
     // 修改refund函数
     const refund = async (row: any) => {
         refundDialogVisible.value = true
@@ -233,6 +235,7 @@
             if(refundAmount.value > (refundOrder.payAmount || refundOrder.amount)){
                 return feedback.msgError('退款金额不能大于订单实付金额')
             }
+            refundLoading.value = true
             const res = await refundReq({ orderId: refundOrder.id, payAmount: refundAmount.value })
             if (res) {
                 feedback.msgSuccess('退款成功')
@@ -248,6 +251,7 @@
         } catch (error) {
             console.error('退款失败:', error)
         } finally {
+            refundLoading.value = false
             refundDialogVisible.value = false
         }
     }