huangzd1997
d3b499b596
feat(admin): 店铺重复检查导出「站点」列改「国家」中文显示;撞款抽屉按点击处定位
...
- 导出 CSV 列头 站点→国家,值映射中文(DE德国/UK英国/FR法国/IT意大利/ES西班牙,未知回退原值)
- 撞款详情抽屉以触发元素为垂直锚点并钳制在视口内,不再贴区块/页面顶部导致看不见需上滑
- 同步 Java 静态托管副本;更新 Java/Python 相关断言
2026-09-05 01:53:12 +08:00
huangzd1997
02cff8ea63
task-175: Python 回调/代理超时与重试契约冻结(只读确认,Python 零改动)+ 8 条断言
...
- 锁定 Python→Java HTTP 面(admin_api._get_backend_java_session/_proxy_backend_java):默认 timeout=10、HTTPAdapter(max_retries=0)、超时/失败转 502
- 断言 Java aiimage.http-client.* 治理不外溢到 Python(非测试 Python 无引用、代理签名超时为字面量)
- 纯测试,不改任何生产 Python 代码
2026-09-04 23:25:59 +08:00
huangzd1997
5ee99f9441
fix(admin): Flask 代理转发 Java 默认携带内部令牌与 operatorId
...
Build Backend JAR / build (push) Has been cancelled
A1 收敛后 Java 管理接口普遍要求 require* 身份,而浏览器打到 15124 的
请求不带 Java JWT/aiimage_token Cookie,list_shop_manages 等裸代理调用
只转发浏览器 Cookie,被 Java 判未登录,生产后台店铺列表报「加载失败:
未登录」。_proxy_backend_java 默认补 X-Internal-Token(凭 Flask 侧会话
校验通过的管理员身份)+ 自动注入当前操作用户 operatorId,修复同批全部
裸代理调用的 401;显式传身份参数或 use_internal_token=False 可绕过,
供转发浏览器原始 JWT 的场景。新增回归测试锁定默认行为。
2026-09-04 16:08:34 +08:00
huangzd1997
05bda8915a
feat(admin): 店铺数据重复检查撞款抽屉样式优化与导入测试按钮
...
Build Backend JAR / build (push) Has been cancelled
- 撞款详情抽屉:上架时间默认降序(晚到早)、去掉列头(按时间升序)小括号、加宽至 760px、
去掉全屏遮罩(底层仍可点击)、抽屉贴到「撞款详情」区块位置而非浏览器顶部
- 修复抽屉 fixed 定位失效:.tab-panel.active 入场动画带 transform 会成为包含块,
打开时把 drawer mask 挂到 body 下恢复视口定位
- 新增导入(新增-测试)/ 导入(删除-测试)按钮与上传弹窗,对应后端端点
/api/admin/shop-data-crawl/duplicate-check-import(ADD=按店名替换基线记录、DELETE=移除该店记录)
- 新增 ShopDataDuplicateCheckImportService 导入服务(复用 WorkbookParser/Aggregator,与扫描共用 Redis 锁)
- 新增 3 个单测:导入替换重聚合、删除移除、无基线报错
- _preview_mock.py 加入 .gitignore(本地预览工具不入库)
2026-09-04 12:25:31 +08:00
huangzd1997
8241cd704e
feat(admin): A1 管理后台收敛 Java 单后台完整实现并修复 guard 误拦内部令牌
...
Build Backend JAR / build (push) Has been cancelled
- Java 补齐后台全部迁移差集:shopduplicatecheck 店铺数据重复检查模块(V108 扫描表+查询/扫描服务)、
PinyinAbbrUtil 拼音缩写、ImageHistory 接口调整为内部可用、AdminUser 支持内部令牌操作并放宽列表上限
- Flask 后台 admin_api.py 路由收敛转发 Java、admin.html/admin.js 适配新后台形态
- AdminApiGuardFilter 对可信 X-Internal-Token 放行(controller 自校验兜底),修复客户端仅凭
内部令牌调用 /api/admin/shop-manages/credential 被误拦 401
- 测试:AdminApiGuardFilterTest 补可信/假令牌用例;AdminUserServiceTest 补菜单权限 mock;
shopduplicatecheck 新增查询/聚合/CSV 单测
2026-09-04 11:30:09 +08:00
huangzd1997
1474f69c73
后台管理菜单改为服务端按权限渲染:修复刷新时先显示全量菜单再折叠的闪烁
...
Build Backend JAR / build (push) Has been cancelled
- main.py admin_page 调用 _load_current_backend_menu_items 取当前用户权限菜单,
经 render_html 传入模板;Java 权限接口不可用时降级不渲染(避免展示越权菜单)
- admin.html 删除写死的 16 个静态菜单按钮,改为 Jinja2 按权限渲染分组菜单,
渲染成功时 nav 带 data-server-rendered 标记,失败显示轻量占位
- admin.js loadAdminMenus 识别 data-server-rendered 后直接绑定事件并激活,
不再请求 /current-user/menus 重渲染(保留 API 兜底路径)
2026-09-04 00:31:04 +08:00
huangzd1997
11dba90780
登录页品牌标识换为 logo 图片:auth-brand-mark 与登录卡片展示 logo_thumb.png
Build Backend JAR / build (push) Has been cancelled
2026-09-04 00:16:19 +08:00
huangzd1997
d0db577a9c
后台店铺数据重复检查独立成菜单:删除店铺导入测试、新增撞款详情卡片区
...
- 删除「店铺导入测试」菜单及全部实现:admin.html 面板、admin.js 逻辑、
admin_api.py 路由/常量/权限映射、Java 默认菜单
- 「店铺数据记录」页内子 tab 移除,只保留店铺数据列表
- 「店铺管理」下新增「店铺数据重复检查」菜单(V106 导入测试菜单保留并新增
V107 清理 + 幂等插入新菜单,Java 清单同步)
- 新面板:筛选/指标卡/店铺上架分布/矩阵表格/撞款详情卡片区(同 ASIN 跨店
上架明细,查看明细开抽屉,上架时间倒序)
- 重复扫描结果改为 MySQL 缓存 + 每日定时扫描(start_duplicate_scan_scheduler)
- 新增 test_admin_shop_data_duplicate_check.py 单元测试
2026-09-04 00:16:14 +08:00
huangzd1997
672b9f9b46
后台店铺数据重复ASIN:全选移至表头、Tab总数、独立筛选、按ASIN分组表格展示
...
Build Backend JAR / build (push) Has been cancelled
- 列表全选复选框从工具栏移到表格表头,事件委托处理动态元素
- 重复ASIN Tab 标题加总数(XX 为重复 ASIN 数量)
- 重复ASIN 筛选独立:ASIN/店铺/国家/上架时间(开始+结束),与原店铺数据筛选互不影响
- 后端支持 asin/shop_name/country/date_from/date_to 参数:
行级筛选命中 ASIN 后展示完整记录(含其他店铺,跨店语义更直观)
- 日期文本归一化(支持 2026年8月19日 上午4:34 中文格式)
- 按 ASIN 分组表格展示:ASIN/店铺数/记录条数/品牌/对应店铺/国家/上架时间/操作,
详情展开显示每条记录的店铺/分组/国家/日期/价格/品牌
- 修复 _shop_data_crawl_fetch_result_bytes 兼容 result_id 列别名(生产首个真实调用报 KeyError)
- 新增单测:筛选语义、日期归一化、record_count
2026-09-03 09:32:25 +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
152ea6eec0
下线店铺管理-检测店铺密码功能:后台 UI 按钮/徽标、Python 代理路由、Java 接口与 service 全套移除,V105 迁移删除 biz_shop_credential_check 表及历史记录
Build Backend JAR / build (push) Has been cancelled
2026-09-02 16:55:54 +08:00
huangzd1997
f18d488cea
查询ASIN/最低价ASIN:精简新增弹窗
...
Build Backend JAR / build (push) Has been cancelled
- 国家由多选下拉改为单选,一次录入一个站点的 ASIN
- 店铺名改为按分组联动的下拉,移除带分页表格的「选择店铺」二级弹窗
- 表单压成两行(分组/店铺名/国家 + ASIN[/最低价]),按钮文案改为「保存」
- 保存成功后保留分组/店铺/国家,仅清空 ASIN 并聚焦,便于连续录入
- 清理随之失效的死代码:选择店铺弹窗 JS、按国家渲染输入框的 render/collect
函数、.field-with-action/.skip-price-entry 等无引用 CSS
- admin.js 版本号改为 asin-create-v4,避免新 HTML 命中旧 JS 缓存
提交报文格式不变(countries:[code] + asin_mappings:{code:asin}),后端无需改动
2026-09-01 13:39:50 +08:00
huangzd1997
ac2b15d72f
去重数据汇总:按钮文案改为新增导入/删除导入
Build Backend JAR / build (push) Has been cancelled
2026-09-01 13:01:50 +08:00
huangzd1997
fa5a59e5cd
task-116: 后台管理新增/导入表单弹窗化 + 分组管理独立菜单与UI优化 + 轻量进度端点
...
Build Backend JAR / build (push) Has been cancelled
- 后台管理页(admin)所有面板的新增/导入表单改为弹窗操作,原有字段 ID 全部保留、提交逻辑不变;导入删除入口不再触发二次确认拦截
- 分组管理升级为独立菜单(V102 + schema initializer),移除 5 个面板内的管理分组按钮;分组列表改为蓝白主题、增加权限分组横幅
- Python 侧 group-manage 权限守卫(_ensure_backend_menu_access 补充 group-manage)
- 引入 V101(biz_task_file_job 复合索引)+ 新增 TaskProgressLight/TaskFileJob 轻量端点与进度聚合作
- 前端 progress-light / page-separated-loads / dispatch-guard 共享模块及单元测试
2026-09-01 12:54:13 +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
c8cd851b2f
feat: 外观专利改直连 LLM(DeepSeek/Gemini)、无效ASIN菜单更名 BRAND_DB、紫鸟店铺索引场景化
...
Build Backend JAR / build (push) Has been cancelled
- AppearancePatent:Coze 工作流切换为 llm-host 直连模型(title/appearance 双模型、行并发、重试),配置键迁移并保留旧环境变量兜底
- InvalidAsinDataMapper 补充按值+品牌唯一键查询
- ZiniaoShopIndexService 新增店铺分类/索引场景
- V98:无效ASIN菜单 rename 补充 BRAND_DB;docs 架构优化规划
- 配套单测更新
2026-08-31 17:04:59 +08:00
huangzd1997
26f4bb3f25
后台菜单重构:菜单类型分组排序(软件在前/后台在后)、新增同类型末尾排序;任务中心分组移除,视频任务记录归入记录与版本、店铺数据记录归入店铺管理;界面名词优化(菜单权限配置/去重数据汇总/无效ASIN数据/视频任务记录/店铺数据记录/生成记录)
Build Backend JAR / build (push) Has been cancelled
2026-08-31 01:48:05 +08:00
huangzd1997
42bbf4904e
feat-admin-ui-interaction
Build Backend JAR / build (push) Has been cancelled
2026-08-30 22:09:22 +08:00
huangzd1997
97ae8a7c51
店铺数据抓取累计文件改为店铺级共享,按国家覆盖更新
...
同店同日在不同账号下产生多份互不相干的累计文件(唯一键含 user_id),
后台管理页每店只显示最新一份,其他账号抓的国家看起来丢失。
- V95 迁移:加 shop_key/country_codes_json/compensation_done 列,按店铺
合并存量 daily_file 与成员行,唯一键改为 (shop_key, business_date)
- DailyFileService:findForUpdate/findOlder/acquireLock 去 user 维度,
店铺级锁跨账号串行
- TaskService:聚合按店铺定位;applyCountryCoverage 按国家覆盖(本次
回传的国家替换旧行,未更新的国家保留);启动补偿组件按成员快照重建
合并文件并回填国家列表
- 管理页:country_codes 改从 daily_file.country_codes_json 取,行数用
累计文件实际值
2026-08-30 16:30:09 +08:00
huangzd1997
d643ae156a
后台用户管理菜单权限目录:加载增加自动重试与失败提示/重新加载,创建编辑失败时自动恢复
Build Backend JAR / build (push) Has been cancelled
2026-08-27 05:09:40 -04:00
huangzd1997
338493ecaa
安全加固:CORS白名单、JWT密钥自动生成、SSRF防护、路径遍历与错误信息泄露修复
Build Backend JAR / build (push) Has been cancelled
2026-08-25 18:05:28 +08:00
huangzd1997
a659132469
去重总数据国家限定五国并优化筛选布局
...
- 国家仅保留德国/英国/法国/意大利/西班牙,移除美国及US映射
- 保留服务器已有 V90 迁移,新增 V91 添加 country 列及索引
- ASIN列表筛选区改为两行布局:查询条件+按钮在上,日期+导出在下
2026-08-24 00:03:28 +08:00
huangzd1997
8712df2645
后台去重数据新增国家
2026-08-23 22:50:58 +08:00
supernijia
159d52194c
更新任务存储、权限与货源查询流程
Build Backend JAR / build (push) Has been cancelled
2026-08-22 21:23:01 +08:00
supernijia
5b1ccad40e
后台更新 服务优化
Build Backend JAR / build (push) Failing after 16m54s
2026-08-11 14:50:21 +08:00
supernijia
38216a1885
处理后台新需求
Build Backend JAR / build (push) Failing after 16m58s
2026-08-09 20:08:39 +08:00
supernijia
f7e26ee266
Merge branch 'master' of https://git.aishufu.top/super/crawler-plugin
Build Backend JAR / build (push) Failing after 4s
2026-08-06 01:11:58 +08:00
supernijia
28e7fce11c
新需求更新 同步更新
2026-08-06 01:11:54 +08:00
123buzhidao56
a821d306ac
上传
Build Backend JAR / build (push) Failing after 1m31s
2026-08-03 09:26:00 +08:00
123buzhidao56
4775748447
modified: backend/ali_oss.py
...
modified: backend/config.py
2026-07-31 14:36:08 +08:00
supernijia
7c3c9e53a0
菜单修改优化
2026-07-28 13:40:19 +08:00
super
bca1335dc6
后端优化,增加新需求
2026-07-21 19:53:47 +08:00
super
ba48bbc6af
更新ASIN库新需求
2026-07-20 20:12:38 +08:00
super
cbde22ec79
视频任务管理更新
2026-07-19 22:23:26 +08:00
super
69784b8d32
添加新需求
2026-07-16 13:12:46 +08:00
super
aab4ce942c
更新带货视频工作流接口和页面
2026-07-09 00:27:49 +08:00
super
021b0c618b
修复图片下载问题
2026-06-16 22:19:55 +08:00
super
f44110fae5
新增数字人版本管理
2026-06-14 19:00:55 +08:00
super
e98a1a1207
feat: update task routing and coze handling
2026-06-03 17:14:50 +08:00
super
9835831415
更新地址 更新后端
2026-05-29 22:53:44 +08:00
super
266c0f17c1
完成这个地址替换
2026-05-29 19:35:55 +08:00
super
2ed1250604
增加公共下载进度、增加接收SKU、密钥分别存放
2026-05-28 16:41:20 +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
a4e4745921
更新处理相关内容
2026-05-09 00:20:52 +08:00
super
01bae23df5
修复商品风险多店铺问题
2026-04-30 21:31:11 +08:00
super
b073bbe97d
Merge branch 'master' of https://gitee.com/TeaCodeNice/crawler-plugin
2026-04-30 11:38:13 +08:00
super
c6ecfb5b77
优化后台业务
2026-04-30 11:36:58 +08:00
koko
46e55fa623
Stop tracking generated Python bytecode
...
Generated __pycache__ files were already ignored in some paths but remained tracked in the repository, which caused merge noise and binary conflicts. This removes the tracked bytecode from the index and adds an explicit recursive ignore rule so future Python runs do not reintroduce them.
Constraint: Existing repository history already tracked pycache files across app, backend, and source_code
Rejected: Delete local pycache directories from disk | only repository tracking needed to be removed
Confidence: high
Scope-risk: narrow
Directive: Do not force-add __pycache__ or *.pyc files unless there is a documented runtime packaging reason
Tested: git ls-files shows no remaining paths containing __pycache__/
Not-tested: Application runtime; change only affects tracked generated artifacts and ignore rules
2026-04-28 20:57:53 +08:00