feat: 球局开始前2小时内不能退出

This commit is contained in:
2025-12-09 17:26:58 +08:00
parent 8712115b1e
commit 3cc014a277

View File

@@ -1,19 +1,23 @@
import dayjs from "dayjs";
import { OrderStatus, CancelType, RefundStatus } from "@/services/orderService"; import { OrderStatus, CancelType, RefundStatus } from "@/services/orderService";
export function getOrderStatus(orderData) { 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) { if (!order_no) {
return 'none' return 'none'
} }
const { start_time } = game_info
const unPay = order_status === OrderStatus.PENDING && ([CancelType.NONE].includes(cancel_type)); const unPay = order_status === OrderStatus.PENDING && ([CancelType.NONE].includes(cancel_type));
const refund = [RefundStatus.SUCCESS].includes(refund_status); const refund = [RefundStatus.SUCCESS].includes(refund_status);
const refunding = [RefundStatus.PENDING].includes(refund_status); const refunding = [RefundStatus.PENDING].includes(refund_status);
const expired = const expired =
order_status === OrderStatus.FINISHED; order_status === OrderStatus.FINISHED;
const frozen = dayjs().add(2, 'h').isAfter(dayjs(start_time))
const canceled = [CancelType.TIMEOUT, CancelType.USER].includes(cancel_type); 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 // scene: list、detail
@@ -59,6 +63,7 @@ export function generateOrderActions(orderData, actions, scene) {
['canceled', [deleteOrder, gameDetail]], ['canceled', [deleteOrder, gameDetail]],
['expired', [deleteOrder, gameDetail]], ['expired', [deleteOrder, gameDetail]],
['progress', [quitGame, gameDetail]], ['progress', [quitGame, gameDetail]],
['start', [gameDetail]],
['refund', [deleteOrder, gameDetail]], ['refund', [deleteOrder, gameDetail]],
['refunding', [gameDetail]], ['refunding', [gameDetail]],
['unpay', [cancelOrder, payNow]] ['unpay', [cancelOrder, payNow]]
@@ -71,6 +76,7 @@ export function generateOrderActions(orderData, actions, scene) {
['canceled', [deleteOrder, gameDetail]], ['canceled', [deleteOrder, gameDetail]],
['expired', [gameDetail, deleteOrder]], ['expired', [gameDetail, deleteOrder]],
['progress', [gameDetail, quitGame]], ['progress', [gameDetail, quitGame]],
['start', [gameDetail]],
['refund', [deleteOrder, gameDetail]], ['refund', [deleteOrder, gameDetail]],
['refunding', [gameDetail]], ['refunding', [gameDetail]],
['unpay', [cancelOrder]] ['unpay', [cancelOrder]]