Commit Graph

105 Commits

Author SHA1 Message Date
huangzd1997 30b8c910e8 feat(web): 桌面端前端 Web 独立部署适配——浏览器降级桥+登录态引导+页面动态修正
- 新增 web-fallback.ts:无 pywebview 时以浏览器能力降级(文件选择/上传/模板下载/配置),
  其余桌面能力(enqueue_json/vc_*/folder 选择等)保持 undefined 交由页面既有请在本地客户端中打开提示
- 新增 ensure-auth.ts:无 uid 时经 /newApi/check_login 恢复登录态,无 token/失效跳登录页;
  21 个入口 main.ts 挂载前先引导(桌面端已注入 uid 时零开销)
- pywebview.ts:getPywebviewApi() 在纯浏览器环境返回降级桥;新增 isDesktopRuntime 标志
  (首页更新面板/退出链接据此区分桌面与 Web);hasPywebview 语义修正为真实桥判定
- 登录页跳转、首页登出链接、品牌检测页 hasBridge 判定(select_brand_folder 存在性)适配 Web
2026-09-07 16:35:19 +08:00
huangzd1997 d2301db292 feat(frontend-vue): 亚马逊运营工具台与新功能页接入——新版工具台(amazon-console+tool-catalog)、品牌检测/ASIN变体采集/查询ASIN 三个工具页 Vue 化并对接既有后端与桌面桥接;桌面首页/登录页 Vue 化(沿用旧视觉);补充 vc_*/get_device_id/save_file_from_url 桥类型、dev 代理;品牌默认勾选排名+FBM;修正 query-asin 标题
含未提交新版改造累积:Brand*Tab 套入工具台壳(AmazonToolPageShell/AmazonTopBar)与目录/权限联动。
2026-09-07 11:06:05 +08:00
huangzd1997 417a2bf831 后台店铺数据记录页新增 Tab 切换与重复 ASIN 分析;task-169/170 HTTP 客户端配置接入;dedupe/brand 相关改造
Build Backend JAR / build (push) Has been cancelled
- 管理后台:店铺数据记录改为列表分页展示(去任务号/文件列/累计标题,'最新'改'更新时间'),新增'重复 ASIN' Tab 按跨店聚合展示 ASIN/店铺/分组/国家/日期/价格;修复失败/进行中任务被过滤不显示的问题
- task-169: BrandCheckHttpConfigResolver 从 aiimage.http-client.* 读取品牌检查超时/重试(默认同现状、钳制),附 8 条测试
- task-170: surefire 内存调整为 1536m
- dedupe: DedupeRunService 重构(事务边界/进度)、新增 DedupeRunProgressVo、Controller 与结果 VO 调整,PermissionMenuService 相应适配
- brand/dedupe 前端:BrandDedupeTab/BrandPatrolDeleteTab 改造、新增 CountrySelector 组件与 country-options、类型与接口端对齐、测试更新
- 移除无引用文件:backend/static/logo.jpg、prompts/
2026-09-03 01:57:41 +08:00
huangzd1997 759f0b15d8 task-101: 上传/解析/入队三道前端拦截,阻止坏数据卡死 Python 自动化
Build Backend JAR / build (push) Has been cancelled
新增 shared/dispatch-guard.ts(纯 TS 校验,可单测)与 dispatch-guard-ui.ts
(ElMessageBox 弹窗层),在数据流的三个位置设闸:

- 选文件:空选择、非 xlsx/xls/csv、空路径直接拦;重复文件弹确认
- 解析结果:taskId 非法、totalRows 为 0、整批行被丢弃、需要分组却无分组直接拦;
  部分行被丢弃弹确认后才允许推送
- 入队前:结构不符、必填字段缺失、items/groups/country_codes 为空数组、
  行数页数为 0、JSON 不安全值(NaN/Infinity/BigInt/循环引用/数组洞)

覆盖 11 个推 Python 队列的 Tab 与 dedupe/split/convert 三个纯 Java Tab。
闸位按 Tab 挑选以免留下孤儿后端状态:collect-data 校验前置到
activateCollectDataTask 之前(任务保持 PENDING 无需回滚)、product-risk 的国家
检查提到建任务之前;已建任务后才拦下的复用各 Tab 原有失败补偿路径。

两处边界:对象属性 undefined 放行(taskNo 这类可选字段是惯用写法),只拦数组
元素 undefined 与数组洞;price-track 的 asin_rows_by_country 仅在 mode=asin
时要求非空,status 模式下 loadAsinRowsForAppClient 本就返回 {}。

顺带修复 similar-asin / appearance-patent 的 selectFiles 缺少 try/catch,
上传失败会残留上一批文件与解析结果。

测试:tests/dispatch-guard.test.ts 新增 37 个 test_task_101_* 用例。
2026-09-01 12:53:12 +08:00
huangzd1997 e2607ab723 task-98: 移除 similar-asin/appearance-patent 模块 Coze,状态机与共享组件改名 LLM
Build Backend JAR / build (push) Has been cancelled
- similarasin/appearancepatent 模块全部 Coze 工作流调用改走 direct-LLM(已确认唯一运行路径)
- 共享组件改名:CozeTaskQueueGate→TaskQueueGate、CozeGroupResultPropagator→GroupResultPropagator
- 状态机改名:biz_task_scope_state 的 coze_* 列→llm_*、stateJson coze 键→llm(V100 迁移已应用生产)
- 删除 biz_coze_credential 表、CozeCredential* 类、SimilarAsinCozeClient、AppearancePatentCozeClient→LlmClient
- 前端 brand 页 Coze 文案→LLM;Python 后端删除 cozepy 依赖与死配置
- 修复 TaskResultFileJobWorker 启动失败:TaskFileJobConfig 注册 ResultFileJobHandlerRegistry 与 13 个 handler bean(含 validateCoverage 启动校验)
2026-09-01 02:20:50 +08:00
huangzd1997 6600bfaa99 task-88: 解析结果前端只接收预览数据,避免大 payload 进入响应式对象
新增纯 TS 预览裁剪 parse-preview:把解析 Vo 裁剪为摘要字段
(taskId/行数统计/开关/prompt),items/groups 整包剔除,可按
previewRowLimit/previewGroupLimit 有界保留样本行供表格展示。输入
对象永不修改,taskId 非法 fail-fast,属性读取抛错时零部分结果。
BrandSimilarAsinTab 的 parseFiles 改为只接收裁剪后的预览(保留
200 行样本),数千行 items 不再进入 Vue 响应式 ref。8 个测试覆盖
默认、批量、幂等、空、单元素、截断溢出、非法输入与 getter 故障。
2026-08-30 22:55:27 +08:00
huangzd1997 25d5a5a5e3 task-85: 优化 Similar ASIN 轮询与文件生成等待,避免重复 force 请求
新增纯 TS force 节流守卫 asin-force-throttle:为每个 taskId 维护 TTL
冷却窗口,窗口内不重复发 force 请求(避免反复触发后端生成文件),到期
后允许重试,任务终态后 clear 立即释放记录。BrandSimilarAsinTab 的
refreshTaskProgress 改为按 pendingFileTaskIds 逐项查守卫决定本轮是否
带 force,请求成功后整批进入冷却。8 个测试覆盖默认、批量、幂等、空、
单元素、200 任务溢出、非法输入与时钟故障恢复。
2026-08-30 22:49:45 +08:00
huangzd1997 5caca86ad1 task-84: 优化店铺抓取队列状态合并,消除 historyItems 的线性重复查找
新增纯 TS 合并模块 merge-history-items:以 taskId→行列表 二级索引替代
原 mergeProgress 的 [...map.values()].find() 全表扫描(O(n×m)→O(n+m))。
命中语义与原实现一致(taskId 相同且 resultId 相同或 incoming 无
resultId),命中后删除旧 key 写入新 key,shopName 变化不再留下幽灵
重复条目,同批内后到条目可命中先到新增。BrandShopDataCrawlTab 的
mergeProgress 改用该模块。9 个测试覆盖默认、批量、幂等、空、单元素、
maxItems 限流、非法输入、keyOf 故障零变更与幽灵条目场景。
2026-08-30 22:47:41 +08:00
huangzd1997 79596a970c 采集数据进度条改为按关键词计算:processedRows/totalRows,标签改为关键词进度
Build Backend JAR / build (push) Has been cancelled
2026-08-28 11:43:51 +08:00
huangzd1997 ea0a319c27 品牌页前端工具菜单新增「ASIN变体采集」入口
Build Backend JAR / build (push) Has been cancelled
2026-08-27 05:10:51 -04:00
huangzd1997 7b238522ed 去重导出列固定顺序为 id/ASIN/国家/价格/品牌;QueryAsin 按店铺加载数据并修正前端回退逻辑
Build Backend JAR / build (push) Has been cancelled
2026-08-25 22:38:38 +08:00
huangzd1997 c287fe01a8 品牌去重默认勾选列调整为 id/ASIN/国家/价格/品牌
Build Backend JAR / build (push) Has been cancelled
2026-08-25 22:05:35 +08:00
huangzd1997 7b81b7aa01 品牌去重默认勾选列调整为 ASIN/国家/价格/SKU ID/品牌
Build Backend JAR / build (push) Has been cancelled
2026-08-25 22:00:33 +08:00
huangzd1997 a11f44664f 还原ASIN变体采集入口,仅保留变体分析移除
Build Backend JAR / build (push) Has been cancelled
2026-08-24 23:21:53 +08:00
huangzd1997 9ba7181212 导航变体分析改为ASIN变体采集入口,修复AiAssetDropzone类型
Build Backend JAR / build (push) Has been cancelled
2026-08-24 23:20:54 +08:00
huangzd1997 5acf3c79ed 移除品牌页导航栏的变体分析入口
Build Backend JAR / build (push) Has been cancelled
2026-08-24 22:48:03 +08:00
huangzd1997 205b0b71b4 数据去重默认勾选列增加品牌/SKU ID/发货类型
Build Backend JAR / build (push) Has been cancelled
2026-08-24 20:13:14 +08:00
supernijia 159d52194c 更新任务存储、权限与货源查询流程
Build Backend JAR / build (push) Has been cancelled
2026-08-22 21:23:01 +08:00
supernijia 7a7f1dfa21 完善任务存储、权限及货源查询流程
Build Backend JAR / build (push) Has been cancelled
2026-08-14 22:49:15 +08:00
supernijia 38216a1885 处理后台新需求
Build Backend JAR / build (push) Failing after 16m58s
2026-08-09 20:08:39 +08:00
supernijia 28e7fce11c 新需求更新 同步更新 2026-08-06 01:11:54 +08:00
supernijia 7c3c9e53a0 菜单修改优化 2026-07-28 13:40:19 +08:00
supernijia 4ddb8b47b0 完成上架相关优化、oss迁移 2026-07-25 17:57:34 +08:00
supernijia 8ab36b1aaf 上架需求增加 2026-07-25 09:58:29 +08:00
super cbde22ec79 视频任务管理更新 2026-07-19 22:23:26 +08:00
super 8543dad514 修复后端BUG 2026-07-14 22:11:19 +08:00
super aab4ce942c 更新带货视频工作流接口和页面 2026-07-09 00:27:49 +08:00
super 0ecf5cd45a 后端优化修复问题 2026-06-18 18:53:16 +08:00
super ac19637ad6 处理修复BUG 2026-06-14 16:48:20 +08:00
super 8672668c33 处理下载为公共模块 2026-06-12 13:40:29 +08:00
super 17236265c6 修复删除asinBUG 2026-06-11 20:37:05 +08:00
super c9efdf8b0e 修复菜单消失 2026-06-10 17:52:58 +08:00
super c3d43aa26a 更新新需求-采集 2026-06-09 21:07:50 +08:00
super 967eedcad7 提交更新 2026-06-08 18:31:55 +08:00
super eeb27e21ed 删除本地APP项目 2026-06-08 11:49:46 +08:00
super c85e5b278f 新增内容,新增拉起软件层 2026-06-08 09:19:15 +08:00
super 8ab647c419 提交更改 2026-06-05 21:25:03 +08:00
super ea37d82d73 合并分支 2026-05-31 09:28:48 +08:00
super 225d13fb6e 提交优化更新 2026-05-29 16:49:18 +08:00
super 2ed1250604 增加公共下载进度、增加接收SKU、密钥分别存放 2026-05-28 16:41:20 +08:00
super ca4a2cd07a python端登录完成 2026-05-27 12:41:59 +08:00
super 1e087c1aae 提交登录修改 2026-05-23 18:32:45 +08:00
super 73d25fcbcb 提交一些更改 2026-05-20 09:05:28 +08:00
super 14db1e0cb1 修改完善这个专利部分 2026-05-15 16:06:12 +08:00
super e4e01c1686 软件前端更新 2026-05-12 23:25:12 +08:00
super 0d78d63437 后台管理接口修复 后端BUG修复 2026-05-12 21:03:42 +08:00
super 5c990e651e 提交货源采集更新 2026-05-10 01:00:08 +08:00
super a4e4745921 更新处理相关内容 2026-05-09 00:20:52 +08:00
super e5d0b2d9ab 提交打包 2026-05-07 16:21:35 +08:00
super 8cd1a4e2b1 更新外观模块 2026-05-06 22:41:26 +08:00