feat(接单): 好友赠送冷却支持分钟单位
This commit is contained in:
@@ -9,6 +9,7 @@ export type WorkOrderAcceptanceMode =
|
||||
|
||||
export const DEFAULT_GIFT_COOLDOWN_HOURS = 72
|
||||
export const MAX_GIFT_COOLDOWN_HOURS = 24 * 30
|
||||
export const MAX_GIFT_COOLDOWN_MINUTES = MAX_GIFT_COOLDOWN_HOURS * 60
|
||||
|
||||
/** 好友赠送模式的落库阶段;gift_ready 由 gift_available_at 到点后实时计算,不落库。 */
|
||||
export const WORK_ORDER_GIFT_PHASE = {
|
||||
@@ -33,11 +34,18 @@ export function isFriendGiftAcceptanceMode(value: unknown): boolean {
|
||||
return normalizeWorkOrderAcceptanceMode(value) === WORK_ORDER_ACCEPTANCE_MODE.FRIEND_GIFT
|
||||
}
|
||||
|
||||
/** 冷却小时数收敛到 [0, 30 天],默认 3 天。 */
|
||||
/** 冷却小时数收敛到 [0, 30 天],默认 3 天。0 用于选择按分钟配置。 */
|
||||
export function normalizeWorkOrderGiftCooldownHours(value: unknown): number {
|
||||
const hours = Number(value)
|
||||
if (!Number.isFinite(hours) || hours <= 0) return DEFAULT_GIFT_COOLDOWN_HOURS
|
||||
return Math.min(MAX_GIFT_COOLDOWN_HOURS, Math.max(1, Math.round(hours)))
|
||||
if (!Number.isFinite(hours) || hours < 0) return DEFAULT_GIFT_COOLDOWN_HOURS
|
||||
return Math.min(MAX_GIFT_COOLDOWN_HOURS, Math.round(hours))
|
||||
}
|
||||
|
||||
/** 按分钟配置时的总分钟数,最大 30 天。 */
|
||||
export function normalizeWorkOrderGiftCooldownMinutes(value: unknown): number {
|
||||
const minutes = Number(value)
|
||||
if (!Number.isFinite(minutes)) return 0
|
||||
return Math.min(MAX_GIFT_COOLDOWN_MINUTES, Math.max(0, Math.round(minutes)))
|
||||
}
|
||||
|
||||
export type WorkOrderGiftSource = {
|
||||
|
||||
Reference in New Issue
Block a user