新增验收报酬待解冻配置并修复待解冻结算漏入队与重复释放流水
This commit is contained in:
@@ -8,6 +8,7 @@ import {
|
||||
} from '../../repositories/worker-platform/index.js'
|
||||
import type { JsonObject } from '../../types/json.js'
|
||||
import { createHttpError } from '../../utils/http.js'
|
||||
import { getWorkerFinanceConfig } from './worker-finance-config-service.js'
|
||||
import { nowIso } from '../../utils/time.js'
|
||||
import { resolveAdminNotificationEntity } from '../admin/admin-notification-service.js'
|
||||
import {
|
||||
@@ -21,7 +22,6 @@ import {
|
||||
resolveWorkOrderOperationalStatus,
|
||||
} from './mappers.js'
|
||||
import { resolveWorkOrderRealtimeWorkerIds } from './admin-work-order-realtime-service.js'
|
||||
import { getWorkerFinanceConfig } from './worker-finance-config-service.js'
|
||||
import { getRequiredWorkOrder } from './worker-session-context-service.js'
|
||||
|
||||
export async function acceptAdminWorkOrder(workOrderId: number | string, actorName = '') {
|
||||
@@ -43,7 +43,7 @@ export async function acceptAdminWorkOrder(workOrderId: number | string, actorNa
|
||||
const now = nowIso()
|
||||
const { order: updated, failureReason } = await acceptWorkOrderAndSettle({
|
||||
workOrderId: workOrder.id,
|
||||
unfreezeDays: getWorkerFinanceConfig().depositUnfreezeDays,
|
||||
...resolveAcceptanceFinanceOptions(),
|
||||
now,
|
||||
actorType: 'admin',
|
||||
actorName,
|
||||
@@ -75,7 +75,7 @@ export async function acceptAdminWorkOrderShare(
|
||||
const result = await acceptWorkOrderShareAndSettle({
|
||||
workOrderId: Number(workOrderId),
|
||||
shareId: Number(shareId),
|
||||
unfreezeDays: getWorkerFinanceConfig().depositUnfreezeDays,
|
||||
...resolveAcceptanceFinanceOptions(),
|
||||
now: nowIso(),
|
||||
actorType: 'admin',
|
||||
actorName,
|
||||
@@ -104,6 +104,14 @@ export async function acceptAdminWorkOrderShare(
|
||||
return { order: mapWorkOrderAdmin(result.order), share: mapWorkOrderShare(result.share) }
|
||||
}
|
||||
|
||||
function resolveAcceptanceFinanceOptions() {
|
||||
const financeConfig = getWorkerFinanceConfig()
|
||||
return {
|
||||
unfreezeDays: financeConfig.depositUnfreezeDays,
|
||||
rewardUnfreezeEnabled: financeConfig.rewardUnfreezeEnabled,
|
||||
}
|
||||
}
|
||||
|
||||
export async function cancelAdminWorkOrderShare(
|
||||
workOrderId: number | string,
|
||||
shareId: number | string,
|
||||
|
||||
@@ -173,6 +173,7 @@ export async function submitWorkerOrderAcceptance(
|
||||
const { order: acceptedOrder, failureReason } = await acceptWorkOrderAndSettle({
|
||||
workOrderId: workOrder.id,
|
||||
unfreezeDays: getWorkerFinanceConfig().depositUnfreezeDays,
|
||||
rewardUnfreezeEnabled: getWorkerFinanceConfig().rewardUnfreezeEnabled,
|
||||
now,
|
||||
actorType: 'worker',
|
||||
actorName: worker.display_name || worker.username || '',
|
||||
@@ -452,6 +453,7 @@ async function submitWorkerSharingAcceptance(
|
||||
workOrderId: Number(workOrder.id),
|
||||
shareId: Number(result.share.id),
|
||||
unfreezeDays: getWorkerFinanceConfig().depositUnfreezeDays,
|
||||
rewardUnfreezeEnabled: getWorkerFinanceConfig().rewardUnfreezeEnabled,
|
||||
now,
|
||||
actorType: 'worker',
|
||||
actorName: worker.display_name || worker.username || '',
|
||||
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
|
||||
export type WorkerFinanceConfig = {
|
||||
depositUnfreezeDays: number
|
||||
rewardUnfreezeEnabled: boolean
|
||||
recharge: {
|
||||
enabled: boolean
|
||||
channelName: string
|
||||
@@ -56,6 +57,7 @@ export function normalizeWorkerFinanceConfig(rawValue: unknown): WorkerFinanceCo
|
||||
|
||||
return {
|
||||
depositUnfreezeDays: normalizeRangeInteger(source.depositUnfreezeDays, 3, 0, 30),
|
||||
rewardUnfreezeEnabled: source.rewardUnfreezeEnabled !== false,
|
||||
recharge: {
|
||||
enabled: typeof recharge.enabled === 'boolean' ? recharge.enabled : true,
|
||||
channelName: String(recharge.channelName || recharge.channel_name || '').trim(),
|
||||
@@ -80,6 +82,7 @@ export function normalizeWorkerFinanceConfig(rawValue: unknown): WorkerFinanceCo
|
||||
export function createDefaultWorkerFinanceConfig(): WorkerFinanceConfig {
|
||||
return {
|
||||
depositUnfreezeDays: 3,
|
||||
rewardUnfreezeEnabled: true,
|
||||
recharge: {
|
||||
enabled: true,
|
||||
channelName: '',
|
||||
@@ -101,6 +104,7 @@ export function createDefaultWorkerFinanceConfig(): WorkerFinanceConfig {
|
||||
function refreshWorkerFinanceConfig(config: WorkerFinanceConfig): WorkerFinanceConfig {
|
||||
return {
|
||||
depositUnfreezeDays: config.depositUnfreezeDays,
|
||||
rewardUnfreezeEnabled: config.rewardUnfreezeEnabled,
|
||||
recharge: {
|
||||
...config.recharge,
|
||||
qrCodeImage: config.recharge.qrCodeImage
|
||||
|
||||
Reference in New Issue
Block a user