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]]