feat(pdd-ui): 新增管理后台拼多多店铺CRUD与Cookie有效性实时检测功能

1. 订单快照优化 (pdd-order-mapper.ts):
   - 在 item_snapshot_json 中完整保留拼多多原始报文快照全量字段,确保无信息截断。

2. 后端 Cookie 有效性校验接口 (pdd-client.ts, platform-config/pdd.ts):
   - 新增 PddClient.testCookie 与 POST /api/v1/admin/platform-config/pdd/test-cookie 接口。
   - 支持通过轻量接口请求即时测试 Cookie 合法性,精准识别有效状态(返回在线订单数)与失效/频控状态。

3. 前端管理面板开发 (PddPlatformPanel.tsx, AdminPlatformShopsPage.tsx):
   - 在平台配置页面新增【拼多多 (PDD)】专属 Tab 面板。
   - 提供拼多多全局同步开关与轮询间隔配置。
   - 支持店铺完整 CRUD:添加店铺、编辑店铺、删除店铺、启用/停用切换。
   - 支持弹窗内即时【测试此 Cookie 有效性】(无需先保存即可验证)及列表行内一键测活与单店铺立即同步。
This commit is contained in:
yml2213
2026-09-12 14:27:40 +08:00
parent 424c320183
commit 44e752d205
9 changed files with 814 additions and 12 deletions
@@ -5,3 +5,4 @@ export * from './kuaishou-feifei'
export * from './affiliate-dash'
export * from './cloudtentacles'
export * from './fulfillment-routing'
export * from './pdd'
@@ -0,0 +1,49 @@
/**
* Pinduoduo Admin Platform Config Service
* 拼多多后台平台配置、店铺 CRUD 与 CK 校验 HTTP 服务
*/
import { apiDelete, apiGet, apiPost } from '@/lib/http'
import type {
AdminPddConfig,
AdminPddStoreItem,
AdminPddTestCookieResult,
AdminPddSyncResult,
AdminPddSyncAllResponse,
} from '@/types/admin/platform-config'
export function fetchAdminPddConfig() {
return apiGet<AdminPddConfig>('/api/v1/admin/platform-config/pdd')
}
export function saveAdminPddConfig(payload: AdminPddConfig) {
return apiPost<AdminPddConfig>('/api/v1/admin/platform-config/pdd', payload)
}
export function saveAdminPddStore(shopId: string, payload: Partial<AdminPddStoreItem>) {
return apiPost<AdminPddStoreItem>(
`/api/v1/admin/platform-config/pdd/stores/${encodeURIComponent(shopId)}`,
payload,
)
}
export function deleteAdminPddStore(shopId: string) {
return apiDelete<AdminPddConfig>(
`/api/v1/admin/platform-config/pdd/stores/${encodeURIComponent(shopId)}`,
)
}
export function testAdminPddCookie(payload: {
cookie?: string
userAgent?: string
shopId?: string
}) {
return apiPost<AdminPddTestCookieResult>('/api/v1/admin/platform-config/pdd/test-cookie', payload)
}
export function triggerAdminPddSync(payload: { shopId?: string; pageSize?: number } = {}) {
return apiPost<AdminPddSyncAllResponse | AdminPddSyncResult>(
'/api/v1/admin/platform-config/pdd/sync',
payload,
)
}