fix(merge): PR 集成 - fix merge 上传状态与易支付校验

在 #544、#545、#546 的原作者 merge commit 之后独立修复:保留上传 Promise、处理重复上传与复制失败、格式对齐,以及易支付网关、订单证据、签名、通知幂等与安全关单校验。同步重建六平台插件产物和包。

验证:前端 1832 tests、build/typecheck、lint、相关格式检查通过;财务 SQLite、支付、插件 RPC 与产物专项通过。后端全量出现一项未改动的素材删除 SQLite 表锁失败,单独复跑 3 次通过,保留全量未通过记录。浏览器与真实商户验收待完成。#543 因迁移历史与能力限制回退暂缓。
This commit is contained in:
ddCat
2026-09-20 05:18:16 +08:00
parent 6eaeddc77c
commit b7bd29c79a
20 changed files with 398 additions and 117 deletions

View File

@@ -10,14 +10,7 @@ import { Area, CartesianGrid, ComposedChart, Legend, Line, ResponsiveContainer,
import { useSearchParams } from "react-router";
import { ListToolbar, PaginationBar, AdminDataTable, AdminExportButton, AdminFilterChip, AdminStatusBadge, AdminTableEmpty, type AdminStatusTone } from "./admin-ui";
import {
exportAdminAnalytics,
getAdminAnalytics,
listAdminUsers,
type AdminReferenceData,
type AdminAnalytics,
type AnalyticsFilters,
} from "@/services/api/auth";
import { exportAdminAnalytics, getAdminAnalytics, listAdminUsers, type AdminReferenceData, type AdminAnalytics, type AnalyticsFilters } from "@/services/api/auth";
import { analyticsFinanceColumns, formatCredits, formatFinanceCost, formatFinanceMargin } from "./analytics-finance";
type Props = {
@@ -300,11 +293,26 @@ export default function AnalyticsPanel({ users, channels }: Props) {
<AnalyticsHealthCard
icon={<CircleDollarSign className="size-4" />}
label="费用统计(积分)"
value={finance ? <dl className="admin-analytics-finance-values">
<div><dt>收入</dt><dd>{formatCredits(finance.revenueMicrocredits)}</dd></div>
<div><dt>成本</dt><dd>{formatFinanceCost(finance)}</dd></div>
<div><dt>利润</dt><dd>{formatCredits(finance.profitMicrocredits)}</dd></div>
</dl> : "--"}
value={
finance ? (
<dl className="admin-analytics-finance-values">
<div>
<dt>收入</dt>
<dd>{formatCredits(finance.revenueMicrocredits)}</dd>
</div>
<div>
<dt>成本</dt>
<dd>{formatFinanceCost(finance)}</dd>
</div>
<div>
<dt>利润</dt>
<dd>{formatCredits(finance.profitMicrocredits)}</dd>
</div>
</dl>
) : (
"--"
)
}
detail={finance ? `已结算 ${finance.settledOrders} 笔 · 利润率 ${formatFinanceMargin(finance.profitMargin)}` : undefined}
tone={finance && (finance.costedOrders < finance.settledOrders || (finance.profitMicrocredits ?? 0) < 0) ? "warning" : "neutral"}
/>
@@ -390,7 +398,15 @@ export default function AnalyticsPanel({ users, channels }: Props) {
icon={<CircleDollarSign className="size-4" />}
label="成本覆盖订单"
value={finance ? `${finance.costedOrders}/${finance.settledOrders}` : "--"}
description={!finance ? "财务统计尚未返回" : finance.settledOrders ? (finance.costedOrders === finance.settledOrders ? "已结算订单成本完整" : `${finance.settledOrders - finance.costedOrders} 笔缺少成本快照或有效用量`) : "当前范围暂无已结算订单"}
description={
!finance
? "财务统计尚未返回"
: finance.settledOrders
? finance.costedOrders === finance.settledOrders
? "已结算订单成本完整"
: `${finance.settledOrders - finance.costedOrders} 笔缺少成本快照或有效用量`
: "当前范围暂无已结算订单"
}
tone={finance && finance.costedOrders < finance.settledOrders ? "warning" : "neutral"}
onClick={() => openAnalysis("models")}
/>
@@ -449,7 +465,6 @@ export default function AnalyticsPanel({ users, channels }: Props) {
]}
/>
</section>
</div>
);
}