From 3cc014a277a48e674d0641850b6708ba62024ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=9D=B0?= Date: Tue, 9 Dec 2025 17:26:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=90=83=E5=B1=80=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E5=89=8D2=E5=B0=8F=E6=97=B6=E5=86=85=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E9=80=80=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/orderActions.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/utils/orderActions.ts b/src/utils/orderActions.ts index 02b094e..eb6b3b6 100644 --- a/src/utils/orderActions.ts +++ b/src/utils/orderActions.ts @@ -1,19 +1,23 @@ +import dayjs from "dayjs"; import { OrderStatus, CancelType, RefundStatus } from "@/services/orderService"; export function getOrderStatus(orderData) { - const { order_status, cancel_type, refund_status, order_no } = orderData + const { order_status, cancel_type, refund_status, order_no, game_info } = orderData if (!order_no) { return 'none' } + const { start_time } = game_info const unPay = order_status === OrderStatus.PENDING && ([CancelType.NONE].includes(cancel_type)); const refund = [RefundStatus.SUCCESS].includes(refund_status); const refunding = [RefundStatus.PENDING].includes(refund_status); const expired = order_status === OrderStatus.FINISHED; + const frozen = dayjs().add(2, 'h').isAfter(dayjs(start_time)) + const canceled = [CancelType.TIMEOUT, CancelType.USER].includes(cancel_type); - return unPay ? 'unpay' : refund ? 'refund' : canceled ? 'canceled' : expired ? 'expired' : refunding ? 'refunding' : 'progress' + return unPay ? 'unpay' : refund ? 'refund' : canceled ? 'canceled' : expired ? 'expired' : refunding ? 'refunding' : frozen ? 'start' : 'progress' } // scene: list、detail @@ -59,6 +63,7 @@ export function generateOrderActions(orderData, actions, scene) { ['canceled', [deleteOrder, gameDetail]], ['expired', [deleteOrder, gameDetail]], ['progress', [quitGame, gameDetail]], + ['start', [gameDetail]], ['refund', [deleteOrder, gameDetail]], ['refunding', [gameDetail]], ['unpay', [cancelOrder, payNow]] @@ -71,6 +76,7 @@ export function generateOrderActions(orderData, actions, scene) { ['canceled', [deleteOrder, gameDetail]], ['expired', [gameDetail, deleteOrder]], ['progress', [gameDetail, quitGame]], + ['start', [gameDetail]], ['refund', [deleteOrder, gameDetail]], ['refunding', [gameDetail]], ['unpay', [cancelOrder]]