Commit Graph

121 Commits

Author SHA1 Message Date
huangzd1997 df8255c41e task-123(记录与版本中心): 实现历史记录分页加载
新增 history-model.ts(历史行 snake 解析) 与 history-api.ts(GET /api/admin/history)。

TDD: task-123.test.ts 8 用例 RED→GREEN。
2026-09-05 17:31:29 +08:00
huangzd1997 103cb28a1f task-122(记录与版本中心): 实现历史记录筛选条件
新增 records/history-filter.ts:筛选草稿/已应用快照与变更回首页。

TDD: task-122.test.ts 8 用例 RED→GREEN。
2026-09-05 17:30:35 +08:00
huangzd1997 467c72efb4 task-121(记录与版本中心): 定义历史记录 DTO
新增 src/pages/records/history-dto.ts:历史记录类型/分页筛选归一与 snake
查询序列化,历史页与版本/公开接口分离。

TDD: task-121.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:29:53 +08:00
huangzd1997 818eed0cb5 task-120(任务与重复分析中心): 完成任务与重复检查真实验收
live 验收(8/8, api.aishufu.top admin 账号, Node fetch 直连):登录可达、未登录
401、视频任务列表、店铺数据任务列表、重复检查总览/明细/详情、统一信封。
2026-09-05 17:28:13 +08:00
huangzd1997 1acb93ff1c task-119(任务与重复分析中心): 实现重复检查导入/导出状态
新增 duplicate-import-export.ts:导入结果摘要/导入参数归一与导出查询构建。

TDD: task-119.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:27:50 +08:00
huangzd1997 9b21e1f22e task-118(任务与重复分析中心): 实现重复检查详情抽屉
duplicate-model.ts 增加 DuplicateDetail 解析与详情分页负载解析,duplicate-api.ts
增加 fetchDuplicateDetail(GET /duplicate-check-detail)。

TDD: task-118.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:26:54 +08:00
huangzd1997 479cc449d6 task-117(任务与重复分析中心): 实现重复检查明细列表
新增 duplicate-filter.ts(明细筛选 snake 查询) 与 parseDuplicateItemsPage/
fetchDuplicateItems(GET /duplicate-check-items)。

TDD: task-117.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:25:41 +08:00
huangzd1997 b5a1a51403 task-116(任务与重复分析中心): 实现重复检查分布视图
新增 duplicate-distribution.ts:按国家/站点聚合撞款分布与撞款 ASIN top 店铺。

TDD: task-116.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:24:34 +08:00
huangzd1997 61b2d7152d task-115(任务与重复分析中心): 实现重复检查总览指标
新增 duplicate-model.ts(总览/店铺分布/明细项/出现记录 snake 解析) 与
duplicate-api.ts(fetchDuplicateOverview GET /duplicate-check-overview)。

TDD: task-115.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:23:12 +08:00
huangzd1997 c919780875 task-114(任务与重复分析中心): 实现店铺数据任务权限配置
shop-data-api.ts 增加 fetch/saveShopDataTaskPermissions(GET|PUT /api/admin/
shop-data-crawl-task-permissions),复用 task-permission 解析与保存负载。

TDD: task-114.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:21:39 +08:00
huangzd1997 69f6965c93 task-113(任务与重复分析中心): 实现店铺数据任务批量下载
新增 shop-data-download.ts(打包请求体 result_ids + 下载 job 状态),
shop-data-api.ts 增加 requestShopDataZipDownload(POST /download-zip, blob)。

TDD: task-113.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:20:39 +08:00
huangzd1997 40463772c5 task-112(任务与重复分析中心): 实现店铺数据任务批量选择
新增 shop-data-selection.ts:店铺数据结果 result_id 选择集(字符串兼容)的
纯切换/批量操作。

TDD: task-112.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:19:32 +08:00
huangzd1997 137af44ae8 task-111(任务与重复分析中心): 实现店铺数据任务分页刷新
新增 shop-data-list-state.ts:店铺数据任务分页信息派生与可批量选择结果行
(result_id)展平,供后续批量下载复用。

TDD: task-111.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:18:47 +08:00
huangzd1997 cb1490ccc2 task-110(任务与重复分析中心): 实现店铺数据任务列表
新增 shop-data-model.ts(按店铺分组任务列表 + 结果文件行解析) 与
shop-data-api.ts(GET /api/admin/shop-data-crawl-tasks 加载适配)。

TDD: task-110.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:17:58 +08:00
huangzd1997 88d3bfb8b2 task-109(任务与重复分析中心): 实现店铺数据任务筛选
新增 shop-data-filter.ts:店铺名/分组/国家/创建时间区间筛选归一与 snake
查询序列化,页大小钳制 [10,100]。

TDD: task-109.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:15:49 +08:00
huangzd1997 77d049990c task-108(任务与重复分析中心): 实现视频任务数据范围权限配置
新增 task-permission.ts(授权用户列表解析/已授权 id/保存负载/变更判定),
image-video-api.ts 增加 fetch/saveImageVideoPermissions(GET|PUT /image-video-
task-permissions)。

TDD: task-108.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:14:38 +08:00
huangzd1997 a1e466030b task-107(任务与重复分析中心): 实现视频任务下载失败摘要
新增 image-video-download-feedback.ts:zip 文件名 Content-Disposition 解析与
按成功/失败计数生成下载结果摘要(全失败/部分失败提示)。

TDD: task-107.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:11:47 +08:00
huangzd1997 d2ef1ce4d8 task-106(任务与重复分析中心): 实现视频任务批量下载任务
新增 image-video-download.ts(选择键解析/打包请求体/响应头计数/下载 job 状态),
image-video-api.ts 增加 requestVideoZipDownload(POST /download-zip, blob)。

TDD: task-106.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:11:00 +08:00
huangzd1997 64f9ac54cf task-105(任务与重复分析中心): 实现视频任务批量选择
新增 src/pages/tasks/image-video-selection.ts:卡片选择的纯 Set 操作
(切换/批量/全选判定/半选判定)。

TDD: task-105.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:10:08 +08:00
huangzd1997 a816bfa899 task-104(任务与重复分析中心): 实现视频任务详情展示
image-video-model.ts 增加 ImageVideoDetail 与 parseImageVideoDetail(脱敏 request/
submit_response/result + error_message/archived_at),image-video-api.ts 增加
fetchImageVideoTaskDetail(GET /api/admin/image-video-tasks/{id})。

TDD: task-104.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:08:58 +08:00
huangzd1997 cb8e092cc6 task-100(店铺中心): 完成店铺中心真实 API 验收
live 验收(8/8 通过, 对 api.aishufu.top:18080 admin 账号, Node fetch 直连):
登录可达、未登录 401、shop-keys 列表(camel)、shop-manages 列表+shopName 筛选
(仅掩码密码)、分组选项、无效店铺取凭证被拒、统一信封,均经真实响应与项目
解析器验证。
2026-09-05 17:07:24 +08:00
huangzd1997 841430cd6c task-103(任务与重复分析中心): 实现视频任务列表/卡片加载
新增 image-video-model.ts(snake 任务行解析、videos 安全地址与展平为视频卡片)
与 image-video-api.ts(GET /api/admin/image-video-tasks 加载适配)。

TDD: task-103.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:05:28 +08:00
huangzd1997 602c2118d3 task-102(任务与重复分析中心): 实现视频任务筛选状态
新增 src/pages/tasks/image-video-filter.ts:用户名/user/状态/executeId/
提交时间区间筛选归一与 snake 查询序列化,页大小钳制 [10,100]。

TDD: task-102.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:02:25 +08:00
huangzd1997 a877488f8f task-101(任务与重复分析中心): 定义统一任务状态和结果文件类型
新增 src/pages/tasks/task-model.ts:TaskStatus 归一(含同义词/终态判定)、
TaskId/ResultId 字符串兼容品牌类型与 ResultFileDescriptor 解析(snake/camel)。

TDD: task-101.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 17:01:08 +08:00
huangzd1997 bf0cecef88 task-99(店铺中心): 实现店铺中心响应式表格
新增 shop-table-layout.ts:店铺/密钥列表列定义与按视口宽度筛选可见列,
店铺名/操作等关键列任意宽度保留。

TDD: task-99.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:53:47 +08:00
huangzd1997 25ebd667f1 task-98(店铺中心): 实现店铺中心通用筛选栏
新增 shop-filter-bar-state.ts:筛选草稿→已应用快照与重置语义,筛选变更标记
回到第 1 页重新加载;纯逻辑可测。

TDD: task-98.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:52:46 +08:00
huangzd1997 085f352320 task-97(店铺中心): 实现店铺数据空状态和错误状态
新增 shop-list-feedback.ts:店铺/密钥列表空态文案(含筛选无结果)与请求错误
归一为可展示文案。

TDD: task-97.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:51:51 +08:00
huangzd1997 6368ee376f task-96(店铺中心): 实现店铺账号字段校验
新增 shop-manage-field-validators.ts:分组/店铺名/商城/账号/密码逐字段校验
与汇总,错误文案与后端 NotBlank/Size 规则一致。

TDD: task-96.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:51:13 +08:00
huangzd1997 29641e20a7 task-95(店铺中心): 实现店铺删除确认
新增 shop-manage-delete.ts(删除确认文案 + 删除后目标页回退) 并在
shop-manage-api.ts 增加 deleteShopManage(DELETE /api/admin/shop-manages/{id})。

TDD: task-95.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:50:16 +08:00
huangzd1997 0a1e778ef6 task-94(店铺中心): 实现店铺凭证明文短时展示
新增 shop-credential-reveal.ts:复用 secret-mask 会话,店铺密码读取后默认
5 秒短时展示,读取失败/离开即清空,明文不写持久化/日志。

TDD: task-94.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:49:25 +08:00
huangzd1997 7fa9b5ccf3 task-93(店铺中心): 实现店铺凭证字段分离
新增 shop-credential-model.ts:凭证明文仅经凭证端点解码且落 SensitiveString,
与列表行(仅掩码)字段分离;shop-manage-api.ts 增加 fetchShopCredential
(GET /api/admin/shop-manages/{id}/credential?shop_name=…)。

TDD: task-93.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:48:26 +08:00
huangzd1997 813ab5db7b task-92(店铺中心): 实现编辑店铺表单
新增 shop-manage-edit-form.ts(店铺行预填编辑字段,密码掩码不回填需重录),
补充 toShopManageUpdateRequest(不含 createdById),并在 shop-manage-api.ts 增加
submitUpdateShopManage(PUT /api/admin/shop-manages/{id})。

TDD: task-92.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:47:01 +08:00
huangzd1997 58ea911d66 task-91(店铺中心): 实现新增店铺表单
新增 shop-manage-form-model.ts(分组/店铺名/商城/账号/密码校验与 camel 创建
请求体,密码按敏感字段处理) 并在 shop-manage-api.ts 增加 submitCreateShopManage
(POST /api/admin/shop-manages,createdById 由当前会话提供)。

TDD: task-91.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:45:45 +08:00
huangzd1997 9293cd0976 task-90(店铺中心): 实现店铺分组选项加载
新增 shop-group-model.ts(ShopManageGroupItemVo 下拉项解析) 并在
shop-manage-api.ts 增加 fetchShopManageGroups(GET /api/admin/shop-manages/groups,
后端限定普通管理员可访问分组)。

TDD: task-90.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:44:47 +08:00
huangzd1997 6ccd5ce1af task-89(店铺中心): 实现店铺筛选和分页
新增 shop-manage-list-state.ts:分组/店铺名筛选归一与激活判断、列表参数/
查询序列化及分页信息派生;与 DTO 分页钳制对齐。

TDD: task-89.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:43:37 +08:00
huangzd1997 42722d0cc6 task-88(店铺中心): 实现店铺列表加载
新增 shop-manage-model.ts(ShopManagePageVo camel 解析,仅保留密码掩码)
与 shop-manage-api.ts(GET /api/admin/shop-manages 加载适配)。

TDD: task-88.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:42:34 +08:00
huangzd1997 bef09cb5b5 task-87(店铺中心): 实现密钥删除确认和刷新
新增 shop-key-delete.ts(删除确认文案 + 删除后目标页回退) 并在 shop-key-api.ts
增加 deleteShopKey(DELETE /api/admin/shop-keys/{id})。

TDD: task-87.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:41:37 +08:00
huangzd1997 9060464afd task-86(店铺中心): 实现密钥敏感字段掩码
新增 secret-mask.ts:店铺密钥令牌等凭证明文默认掩码展示,主动点击后按可注入
时间短时揭示、超时清空;明文不写入全局状态/持久化存储/地址栏/日志。

TDD: task-86.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:40:39 +08:00
huangzd1997 be6a17d4bd task-85(店铺中心): 实现编辑店铺密钥表单
新增 shop-key-edit-model.ts(由列表行预填备注/紫鸟账号/令牌,令牌仅内存内
沿用) 并在 shop-key-api.ts 增加 updateShopKey(PUT /api/admin/shop-keys/{id})。

TDD: task-85.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:39:04 +08:00
huangzd1997 72a8f75dc5 task-84(店铺中心): 实现新增店铺密钥表单
新增 shop-key-form-model.ts(备注/紫鸟账号/令牌校验与 camel 请求体序列化,
镜像 Java NotBlank/Size 规则,令牌去 Bearer 前缀) 并在 shop-key-api.ts 增加
submitCreateShopKey(POST /api/admin/shop-keys)。

TDD: task-84.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:38:02 +08:00
huangzd1997 119095a57b task-83(店铺中心): 实现店铺密钥筛选和分页
新增 shop-keys-list-state.ts:密钥页本地关键词过滤(备注名/紫鸟账号)与分页
信息派生(页码钳制/首末/前后页)。Java 密钥接口无服务端筛选,搜索在已加载
当前页行上本地过滤,纯逻辑可测。

TDD: task-83.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:36:19 +08:00
huangzd1997 8c6088bdc9 task-82(店铺中心): 实现店铺密钥列表加载
新增 shop-key-model.ts(ShopKeyPageVo camel 解析、白名单状态归一、snake
兜底) 与 shop-key-api.ts(GET /api/admin/shop-keys 加载适配);纯逻辑解析、
页面不内联请求。

TDD: task-82.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:34:26 +08:00
huangzd1997 93033e94db task-81(店铺中心): 定义店铺和店铺密钥 DTO
新增 src/pages/shop/shop-dto.ts 纯逻辑 DTO:ShopKeyItem/ShopSummary/
ShopCredential/SensitiveString 等类型边界与分页归一/查询序列化(店铺接口
camelCase);凭证明文与紫鸟令牌按敏感字段建模,禁止进入通用日志。

TDD: task-81.test.ts 8 用例先 RED 后 GREEN。
2026-09-05 16:32:08 +08:00
huangzd1997 7ccabf859f task-80(ASIN 数据中心): 完成 ASIN 数据中心真实流程验收
live 验收(8/8 通过, 对 api.aishufu.top:18080 admin 账号): 登录可达性、
未登录 401、query-asin 列表+筛选(camel)、skip-price 列表(snake)、去重汇总
列表、商品类目树、类目新建→删除可逆写循环, 均经真实响应与项目解析器验证。
2026-09-05 16:21:45 +08:00
huangzd1997 3828c90b4c task-79(ASIN 数据中心): 实现商品类目新增/编辑/导出
POST /api/admin/product-category + PUT /product-category/{id} 保存适配
(名称必填/排序可选非负整数校验), 导出 URL(keyword), 8 个契约测试。
2026-09-05 16:17:15 +08:00
huangzd1997 a46c35f01d task-78(ASIN 数据中心): 实现商品类目树加载和搜索
GET /api/admin/product-categories(+keyword) 树(嵌套 children/path/level/
childCount)与 /product-categories/search 分页搜索解析, 9 个契约测试。
2026-09-05 16:15:56 +08:00
huangzd1997 c1d6ce6d20 task-77(ASIN 数据中心): 实现最低价 ASIN 详情编辑抽屉
抽屉副标题/5 国家草稿(ASIN+最低价)与变更差异(清空 ASIN→删除, 仅清价→
update)纯逻辑, 保存走 PUT/DELETE /api/admin/skip-price-asins/{id}/countries/{country},
10 个契约测试。
2026-09-05 16:14:22 +08:00
huangzd1997 d9b1b980ca task-76(ASIN 数据中心): 实现最低价 ASIN 导入与删除导入
POST /api/admin/skip-price-asins/import、/delete-import(file+group_id
必填) 启动 + GET 进度轮询, 复用新增通用导入进度模型(含 deletedCount),
8 个契约测试。
2026-09-05 16:12:47 +08:00
huangzd1997 43c7c03aee task-75(ASIN 数据中心): 实现最低价 ASIN 列表和筛选
GET /api/admin/skip-price-asins 列表解析(SkipPriceAsinPageVo, 每店铺
5 国家 ASIN+最低价) + 分组/店铺名/ASIN/国家/最低价区间筛选 snake 序列化,
新增共享国家字典, 9 个契约测试。
2026-09-05 16:11:43 +08:00
huangzd1997 ad6658e490 task-74(ASIN 数据中心): 实现查询 ASIN 详情抽屉
抽屉副标题/5 国家草稿与变更差异(空值→删除)纯逻辑, 保存走 PUT/DELETE
/api/admin/query-asins/{id}/countries/{country}, 9 个契约测试。
2026-09-05 16:09:31 +08:00