删除咸鱼旧链路

This commit is contained in:
yml
2026-05-25 21:46:39 +08:00
parent 9aafddd624
commit e7aa194dde
142 changed files with 539 additions and 17373 deletions
-2
View File
@@ -16,7 +16,6 @@ export type { AdminDashboardSummary } from './dashboard'
// Orders types
export type {
AdminOrderBindingSummary,
AdminOrderAgisoAutoDeliverySummary,
AdminOrderListItem,
AdminOrderDetail,
} from './orders'
@@ -24,7 +23,6 @@ export type {
// Tasks types
export type {
AdminTaskBindingSummary,
AdminAgisoAutoDeliveryStatus,
AdminTaskListItem,
AdminTaskOperations,
AdminTaskActionResponse,
-9
View File
@@ -1,5 +1,4 @@
import type { AdminTaskListItem } from './tasks'
import type { AdminAgisoAutoDeliveryStatus } from './tasks'
export interface AdminOrderBindingSummary {
totalTaskCount: number
@@ -13,13 +12,6 @@ export interface AdminOrderBindingSummary {
userBindingStatus: string
}
export interface AdminOrderAgisoAutoDeliverySummary extends AdminAgisoAutoDeliveryStatus {
totalTaskCount: number
deliveredTaskCount: number
sourceTaskId: number | null
sourceTaskNo: string
}
export interface AdminOrderListItem {
orderId: number
provider: string
@@ -74,7 +66,6 @@ export interface AdminOrderDetail {
itemSummary: string
rawPayload: Record<string, unknown>
bindingSummary: AdminOrderBindingSummary
agisoAutoDelivery: AdminOrderAgisoAutoDeliverySummary | null
}
items: Array<{
orderItemId: number
-12
View File
@@ -6,17 +6,6 @@ export interface AdminTaskBindingSummary {
roleKeys: string[]
}
export interface AdminAgisoAutoDeliveryStatus {
status: string
trigger: string
reason: string
platformOrderId: string
responseStatus: number
errorMessage: string
requestId: string
updatedAt: string | null
}
export interface AdminTaskListItem {
taskId: number
taskNo: string
@@ -46,7 +35,6 @@ export interface AdminTaskListItem {
inventoryCredentialType: string
claimToken: string
screenshotPath: string
agisoAutoDelivery: AdminAgisoAutoDeliveryStatus | null
}
export interface AdminTaskOperations {
+1 -69
View File
@@ -61,9 +61,6 @@ export function formatTaskEventType(eventType: string) {
claim_redeem_code_invalid: "兑换码错误",
claim_redeem_inventory_replaced: "已切换新兑换码",
claim_redeem_completed: "兑换链路完成",
agiso_auto_delivery_success: "咸鱼自动发货成功",
agiso_auto_delivery_failed: "咸鱼自动发货失败",
agiso_auto_delivery_skipped: "咸鱼自动发货已跳过",
};
return formatStatusWithRaw(eventType, labelMap);
@@ -96,48 +93,6 @@ export function formatRedeemResolutionStatus(value: string) {
: value || "-";
}
export function formatAutoDeliveryTrigger(value: string) {
const normalized = String(value || "").trim();
switch (normalized) {
case "claim_redeemed":
return "用户兑换完成后触发";
case "manual_dispatch_completed":
return "人工履约完成后触发";
case "task_delivered":
return "任务交付完成后触发";
default:
return normalized || "-";
}
}
export function formatAutoDeliveryReason(value: string) {
const normalized = String(value || "").trim();
switch (normalized) {
case "waiting_other_tasks":
return "订单下仍有任务未完成交付";
case "already_sent":
return "该订单已经执行过自动发货";
case "auto_delivery_disabled":
return "自动发货开关已关闭";
case "missing_config":
return "缺少 Agiso 自动发货配置";
case "request_failed":
return "Agiso 接口返回失败";
case "request_error":
return "请求 Agiso 接口时发生异常";
case "delivery_not_confirmed":
return "接口返回成功,但订单状态未确认进入已发货";
case "task_not_delivered":
return "当前任务尚未进入已交付状态";
case "not_supported":
return "当前订单不支持 Agiso 咸鱼自动发货";
default:
return normalized || "-";
}
}
export function formatKuaishouRoleInfoLabel(value: string) {
const normalized = String(value || "").trim();
@@ -177,9 +132,7 @@ export function formatTaskEventPayload(payload: Record<string, unknown>) {
: "",
payload.deliveryReference ? `单号 ${payload.deliveryReference}` : "",
payload.platformOrderId ? `平台单 ${payload.platformOrderId}` : "",
payload.trigger
? `触发 ${formatAutoDeliveryTrigger(String(payload.trigger || ""))}`
: "",
payload.trigger ? `触发 ${payload.trigger}` : "",
payload.reason ? `原因 ${payload.reason}` : "",
payload.purchaseTriggered === true ? "已触发购买" : "",
payload.usedKnapsack === true ? "使用背包库存" : "",
@@ -211,24 +164,3 @@ export function formatBindingCountSummary(summary: {
}) {
return `${summary.totalBindingCount} 条 · 预占 ${summary.reservedBindingCount} · 已消费 ${summary.consumedBindingCount} · 已释放 ${summary.releasedBindingCount}`;
}
export function resolveTaskAutoDeliveryStatus(task: {
agisoAutoDelivery?: { status?: string } | null;
deliveryStatus: string;
}) {
if (task.agisoAutoDelivery?.status) return task.agisoAutoDelivery.status;
return task.deliveryStatus === "delivered" ? "pending" : "waiting";
}
export function formatTaskAutoDeliveryReason(task: {
agisoAutoDelivery?: { errorMessage?: string; reason?: string } | null;
deliveryStatus: string;
}) {
if (task.agisoAutoDelivery?.errorMessage)
return task.agisoAutoDelivery.errorMessage;
if (task.agisoAutoDelivery?.reason)
return formatAutoDeliveryReason(task.agisoAutoDelivery.reason);
return task.deliveryStatus === "delivered"
? "当前任务已交付,等待订单统一自动发货"
: "当前任务尚未完成交付";
}
+1 -1
View File
@@ -34,7 +34,7 @@ export const adminInventoryStatusOptions = [
export const adminInventoryCredentialTypeOptions = [
{ label: '全部凭据类型', value: '' },
{ label: '腾讯兑换码(自动领取)', value: 'tencent_code' },
{ label: '兑换码(领取链路', value: 'tencent_code' },
{ label: '卡号卡密', value: 'card_password' },
{ label: '账号密码', value: 'account_password' },
{ label: '激活链接', value: 'activation_link' },
@@ -6,11 +6,8 @@ import AdminStatusTag from '@/components/admin/AdminStatusTag.vue'
import { fetchAdminOrderDetail } from '@/services/admin'
import type { AdminOrderDetail } from '@/types/admin'
import {
formatAutoDeliveryReason,
formatBindingRoleSummary,
formatBindingCountSummary,
resolveTaskAutoDeliveryStatus,
formatTaskAutoDeliveryReason,
} from '@/utils/admin-display'
import { formatAdminDateTime } from '@/utils/admin-time'
import { formatAdminWebhookEventType } from '@/utils/admin-webhook'
@@ -116,26 +113,6 @@ function formatSpecSummary(spec: Record<string, unknown>) {
{{ detail.order.bindingSummary.releasedBindingCount }}</small
>
</el-card>
<el-card v-if="detail.order.agisoAutoDelivery" shadow="never" class="info-tile">
<span>自动发货</span>
<div class="tile-tag-line">
<AdminStatusTag :status="detail.order.agisoAutoDelivery.status" />
</div>
<strong>
{{
detail.order.agisoAutoDelivery.errorMessage ||
formatAutoDeliveryReason(detail.order.agisoAutoDelivery.reason) ||
'全部任务交付后会自动触发'
}}
</strong>
<small>
已交付 {{ detail.order.agisoAutoDelivery.deliveredTaskCount }}/{{
detail.order.agisoAutoDelivery.totalTaskCount
}}
· 最近执行
{{ formatAdminDateTime(detail.order.agisoAutoDelivery.updatedAt) }}
</small>
</el-card>
</div>
<el-table :data="[detail.order]" size="small" :show-header="false">
@@ -199,16 +176,6 @@ function formatSpecSummary(spec: Record<string, unknown>) {
<AdminStatusTag :status="row.userBindingStatus" />
</template>
</el-table-column>
<el-table-column label="自动发货">
<template #default="{ row }">
<div class="tile-tag-line">
<AdminStatusTag :status="resolveTaskAutoDeliveryStatus(row)" />
</div>
<div class="binding-copy">
{{ formatTaskAutoDeliveryReason(row) }}
</div>
</template>
</el-table-column>
<el-table-column label="库存绑定">
<template #default="{ row }">
<div>{{ formatBindingCountSummary(row.bindingSummary) }}</div>
@@ -13,7 +13,6 @@ import {
import AdminTaskKuaishouCloudPanel from './components/AdminTaskKuaishouCloudPanel.vue'
import AdminTaskActionBar from './components/AdminTaskActionBar.vue'
import AdminTaskAutoDeliverySection from './components/AdminTaskAutoDeliverySection.vue'
import AdminTaskEventsSection from './components/AdminTaskEventsSection.vue'
import AdminTaskHeroSection from './components/AdminTaskHeroSection.vue'
import AdminTaskInfoSection from './components/AdminTaskInfoSection.vue'
@@ -42,8 +41,6 @@ const {
submitManualDispatch,
copyText,
openExternalLink,
resolveTaskAutoDeliveryStatus,
resolveTaskAutoDeliverySummary,
} = useAdminTaskDetail()
const {
@@ -152,13 +149,6 @@ onMounted(loadDetail)
@open-bind-url="openExternalLink"
/>
<AdminTaskAutoDeliverySection
v-if="detail.order?.provider === 'agiso' && detail.order?.platform === 'xianyu'"
:detail="detail"
:auto-delivery-status="resolveTaskAutoDeliveryStatus(detail)"
:auto-delivery-summary="resolveTaskAutoDeliverySummary(detail)"
/>
<AdminTaskRedeemResolutionSection v-if="detail.redeemResolution" :detail="detail" />
<AdminTaskInventoryBindingsSection
@@ -1,66 +0,0 @@
<script setup lang="ts">
import AdminStatusTag from '@/components/admin/AdminStatusTag.vue'
import type { AdminTaskDetail } from '@/types/admin'
import { formatAutoDeliveryReason, formatAutoDeliveryTrigger } from '@/utils/admin-display'
import { formatAdminDateTime } from '@/utils/admin-time'
interface Props {
detail: AdminTaskDetail
autoDeliveryStatus: string
autoDeliverySummary: string
}
defineProps<Props>()
</script>
<template>
<el-card shadow="never" class="section-card">
<h3>咸鱼自动发货</h3>
<p class="section-copy">这里展示这条任务最近一次触发咸鱼自动发货的状态原因和接口回执摘要</p>
<div class="redeem-summary-grid">
<el-card shadow="never" class="metric-card">
<span>当前状态</span>
<div class="auto-delivery-tag-line">
<AdminStatusTag :status="autoDeliveryStatus" />
</div>
</el-card>
<el-card shadow="never" class="metric-card">
<span>触发来源</span>
<strong>{{
formatAutoDeliveryTrigger(detail.task.agisoAutoDelivery?.trigger || '')
}}</strong>
</el-card>
<el-card shadow="never" class="metric-card">
<span>最近执行</span>
<strong>{{ formatAdminDateTime(detail.task.agisoAutoDelivery?.updatedAt) }}</strong>
</el-card>
<el-card shadow="never" class="metric-card">
<span>接口回执</span>
<strong>
{{
detail.task.agisoAutoDelivery?.requestId ||
(detail.task.agisoAutoDelivery?.responseStatus
? `HTTP ${detail.task.agisoAutoDelivery.responseStatus}`
: '-')
}}
</strong>
</el-card>
</div>
<div class="auto-delivery-note">
<p>{{ autoDeliverySummary }}</p>
<p v-if="detail.task.agisoAutoDelivery?.reason">
原因{{ formatAutoDeliveryReason(detail.task.agisoAutoDelivery.reason) }}
</p>
<p v-if="detail.task.agisoAutoDelivery?.responseStatus">
HTTP{{ detail.task.agisoAutoDelivery.responseStatus }}
</p>
<p v-if="detail.task.agisoAutoDelivery?.requestId">
请求 ID{{ detail.task.agisoAutoDelivery.requestId }}
</p>
</div>
</el-card>
</template>
<style scoped src="../AdminTaskDetail.css"></style>
@@ -186,30 +186,6 @@ export function useAdminTaskDetail() {
window.open(text, '_blank', 'noopener,noreferrer')
}
function resolveTaskAutoDeliveryStatus(taskDetail: AdminTaskDetail) {
if (taskDetail.task.agisoAutoDelivery?.status) {
return taskDetail.task.agisoAutoDelivery.status
}
return taskDetail.task.deliveryStatus === 'delivered' ? 'pending' : 'waiting'
}
function resolveTaskAutoDeliverySummary(taskDetail: AdminTaskDetail) {
const autoDelivery = taskDetail.task.agisoAutoDelivery
if (autoDelivery?.errorMessage) {
return autoDelivery.errorMessage
}
if (autoDelivery?.reason) {
return autoDelivery.reason
}
return taskDetail.task.deliveryStatus === 'delivered'
? '当前任务已交付,等待订单下其他任务完成后统一自动发货'
: '当前任务尚未完成交付,暂不会触发自动发货'
}
onBeforeUnmount(clearScreenshotPreview)
return {
@@ -230,7 +206,5 @@ export function useAdminTaskDetail() {
submitManualDispatch,
copyText,
openExternalLink,
resolveTaskAutoDeliveryStatus,
resolveTaskAutoDeliverySummary,
}
}