huangzd1997
|
08e78ebe55
|
fix(shop-data-crawl): 累计档迁独立桶 shufu-shop-data 脱离默认桶30天过期规则+修复批量下载zip恒失败——① 新增 aiimage.oss.shop-data-bucket(默认 shufu-shop-data):上传侧 resolveBucket 按 SHOP_DATA_CRAWL、读取/删除/直链侧 bucketForObjectKey 按 result/shop_data_crawl/ 前缀双路路由(DB 里存的是裸 objectKey 不含桶名,key 不变故存量对象 mc mirror 即无缝切换),configuredBuckets 纳入新桶,启动自检未配置时告警 ② 批量下载 zip 原直接把 df.result_file_url 当绝对 URL(URI.create().toURL()),裸 objectKey 必抛 no protocol 导致整包 100% 失败,改由 loadDownloadRows 统一走 generateFreshDownloadUrl 拼直链 ③ 补 OssStorageServiceTest 5 用例覆盖此前零覆盖的上传选桶/裸key前缀路由
|
2026-09-10 14:31:00 +08:00 |
|
huangzd1997
|
96e93944d9
|
fix(patrol-delete): 删除条件为空的任务四层拦截——①前端启动前拦截(不再先创建后失败,避免任务残留执行中)并创建时上传delete_conditions ②Java服务端校验删除条件非空(旧版本/直调兜底) ③Python端空条件直接按失败上报,不再逐店空转
|
2026-09-09 18:59:45 +08:00 |
|
huangzd1997
|
b3f7b81b9c
|
fix(similar-asin): 货源结果图回WPS DISPIMG并修正协议,WPS打开不再#REF/破损
task-284 曾把图片协议改为 WPS DISPIMG(cellimages.xml),WPS 打开显示 #REF;
9/8 切回 Excel 365 richData 单元格图片后,WPS(用户主环境,12.1 实测)仍不识别,
单元格显示为 #VALUE! 错误值即图片破损。
根因:两套协议都只被单方支持——DISPIMG 是 WPS 私有协议,richData 是 Excel 365 私有协议。
本次回到 WPS DISPIMG(WPS 原生),并修复 WpsCellImageWriter 三处与 WPS 原生产物不一致的
协议细节(此前即 #REF 根因,已在 WPS 12.1.0.28505 实测三图渲染正常):
1. [Content_Types].xml 应为 application/vnd.wps-officedocument.cellimage+xml
2. workbook.xml.rels 关系类型应为 wps.cn/officeDocument/2020/cellImage
3. 公式格需 f t=shared ref + v=公式字符串(POI 输出裸 <f> 且引号转义为 ",
patch 阶段统一规范化;保留原格样式)
另 spPr 补 a:xfrm(原图尺寸)/a:noFill/a:ln w=9525(实测样本对齐);
patch 幂等(重复 patch 不再 duplicate entry);失败图留空不再写 URL 文本。
新增 WpsCellImageWriterProtocolTest 锁死协议契约防回归。
|
2026-09-09 14:25:41 +08:00 |
|
huangzd1997
|
11d1951c7f
|
fix(collect-data): 品牌检测查询失败不再写入无效品牌表,避免故障期误杀永久拉黑
线上 task-27265 采集结果 0 行的根因:.env 缺 export 导致 Java 请求
16890 不带 X-Token 全线 422 -> 整批 queryFailed,而 filterByBrandCheck
把 queryFailed 与 rejected 一并写入 biz_invalid_asin_data,故障品牌被
永久拉黑,后续任务同品牌商品全部被 invalidFiltered 误杀(9-01 起所有
采集任务均 0 行)。改为仅真正判定无效的 rejected 才写表,rejected 为空
不触发写入;新增 2 个单测固化契约。
|
2026-09-09 10:26:56 +08:00 |
|
huangzd1997
|
45fdd8a294
|
feat(software-version): 安装包改浏览器直传 MinIO,支持批量删除
- 后端新增 /api/admin/version/presign、confirm、delete 端点;直传后服务端校验对象并写 web_config
- OSS 层新增软件版本对象 presign PUT/大小校验/删除与 client 桶 URL 识别
- 后台前端上传改 presign→PUT→confirm 三段式直传,带进度条;成功提示精简为"发布成功"
- 版本列表加勾选/表头全选、批量删除与单行删除;操作按钮样式对齐其他子菜单
|
2026-09-08 23:51:18 +08:00 |
|
huangzd1997
|
197643a8fa
|
fix: 商标查询失败自动重试、货源结果图切回Excel内嵌防WPS #REF、外观专利标题模型改gemini-3.8-flash
- brand-check: 单品牌商标查询失败(异常/空响应/query_faild_data 非空)自动重试,
次数与间隔可配(retry-times 默认3含首次 / retry-interval-millis 1000),命中侵权不重试;
collectdata 品牌过滤与外观专利商标核验两侧同时受益
- similarasin: 货源结果Excel图片由WPS DISPIMG 切回 Excel 365 richData 单元格内嵌,
修复 WPS 打开 DISPIMG 显示 #REF 的兼容回归;下载失败单元格回退为URL文本
- appearance-patent: 标题商标提取模型由 deepseek-v4-flash 切 gemini-3.8-flash
|
2026-09-08 19:01:08 +08:00 |
|
huangzd1997
|
630bfc3eee
|
fix(shop-data-crawl): 后台店铺数据记录改读每店最新累计档,删除任务不再连坐后台
后台“店铺数据记录”此前以每次抓取的 file_result/file_task 为源,前台删除任务会物理删
这两张表,导致该店在后台退档/消失。现改为以采集归档维护、删除任务时保留的
biz_shop_data_crawl_daily_file 每店最新一档为数据源:
- V113:daily_file 冗余 shop_name 列并回填;归档写档三处入口同步写入
- 列表/批量下载/单档下载/删除端点改按每日累计档 id(daily-files/{id})
- 管理端删除=真删该店这条数据记录(档+文件+明细),前台任务历史保留但清文件指针
- 明细行 daily_file_id 跨天滚动删旧档时改指新档,修存量悬空引用(另附修复脚本)
|
2026-09-08 15:02:25 +08:00 |
|
huangzd1997
|
4ac8f8b472
|
fix(pricetrack): ASIN文件路径防本地路径误提交+fileKey兜底反查
|
2026-09-08 13:34:08 +08:00 |
|
huangzd1997
|
7b6f62f1bc
|
fix(brand): 品牌检测补上传链+新增 /api/brand/run 端点+文件夹展开桥
- BrandBrandTab 对齐其它工具页:选文件/文件夹后先 upload_file_to_java 再提交(服务器可读路径),修复本地路径直传导致的「请先上传待处理文件/没有有效的xlsx文件路径」
- runBrandNow/createBrandTask 改为 files 契约(fileUrl=临时路径 localPath)+ 传 userId
- Java 新增 POST /api/brand/run(等价 /tasks 并返回待爬取数据),修复前端「立即运行」No static resource
- 选择文件夹改走新版桌面客户端桥 expand_brand_folder(本机展开);旧客户端提示改用文件多选
- 生产 .env 已另配 AIIMAGE_BRAND_CHECK_TOKEN(上游 16890 鉴权),非代码变更
|
2026-09-08 13:18:58 +08:00 |
|
huangzd1997
|
f2906e8d6f
|
fix(delete-brand): 分片缺失降级组装收尾+失败兜底生成可下载结果
- 结果分片缺失 ≤ missingChunkFallbackLimit(默认20) 时降级组装,缺失行标「未回传」,任务不再整体白跑
- 超阈值失败/组装异常时通过 ResultFileJobHandler.fallbackAssembleOnFailure 兜底生成部分结果文件
- 组装失败文案带缺失分片号明细(如 缺失分片: [247](已收 4283/4284))
- 新增 GET /api/delete-brand/tasks/{taskId}/missing-chunks,补传后自动恢复终态失败组装 job
- stale-check 失败文案改为含最后心跳时间与最近组装失败真实原因(修复误导性「回传长时间无响应」)
- 新增降级合并/缺失分片单测,Handler/Worker 日志审计 stage 白名单补 FALLBACK
|
2026-09-08 13:18:58 +08:00 |
|
huangzd1997
|
d9e3f34d37
|
chore: 移除项目内无用代码(28 文件)
- 清理任务面板/SPA 化改造遗留的未使用变量与函数(模板管理配套 6 函数、
payloadForDisplay/showTip/hasRunning/schedulePoll/removeMatchedRowLocally 等 30+ 处)
- 清理未使用 import(getBrandTemplateXlsxUrl/uploadTempFileToJava/getProductRiskTasksBatch 等)
- useTaskProgressLoop 改为仅类型导入;progress/task-request 缓存未用参数精简
- DeleteBrandRunService 删除永不执行的 taskItems 死分支
- 全量 vue-tsc(含 --noUnusedLocals/--noUnusedParameters)0 错误;648 测试全过
|
2026-09-08 10:20:30 +08:00 |
|
huangzd1997
|
e248b6e43a
|
feat(web): 前端 SPA 化 + 工具页任务面板统一与历史批量删除
- SPA 化:22 个 MPA html 入口与 *-main.ts 合并为 index.html + vue-router(URL 无 .html 后缀),
页面跳转全部 router-link,/new_web_source/xxx.html 旧路径归一为 /xxx
- 任务面板统一:共享 TaskCenterPanel/TaskItemCard/TaskStatCards/HistoryTaskLayer,
16 个工具页右侧统一为统计卡 + 当前任务 + 历史任务弹层(任务ID/开始/结束/状态必展示)
- 历史记录支持单条删除 + 批量勾选删除(确认框/全选/失败提示)
- Java 7 模块(dedupe/convert/split/productrisk/shopmatch/pricetrack/deletebrand)
history 接口补齐任务时间字段(VO+Service,复用 biz_file_task 列)
- 图片工作台/API 层(brand/permission/user)既有未提交改动一并提交
|
2026-09-08 10:02:55 +08:00 |
|
huangzd1997
|
abcfa5bef7
|
perf(similarasin): LLM 输入图转存前压缩,规避网关拉图超时
- 主图/拼图转存 MinIO supply_images 前统一走 SimilarAsinImageEmbedder.resizeImage
(长边 1280 / JPEG q0.75 / 迭代降质至 ≤150KB),体积 1~5MB → 100~300KB
- 根因:LLM 网关按 URL 拉取 OSS 图片,原图过大偶发 context deadline exceeded
(convert_request_failed),27117 等任务 1 行 LLM 500 即整任务卡死
- 压缩失败降级原字节不阻断行处理;压缩前后字节数 INFO 日志便于线上排查
- SimilarAsinImageEmbedder.resizeImage 由包私有改 public 供复用
|
2026-09-07 22:28:13 +08:00 |
|
huangzd1997
|
83e38d4278
|
fix(similarasin): LLM 切换 gemini-3.8-flash + 修复双实例 stale 判死盲区
- 模型切换:glm-5.3-flash / gemini-3.7-flash(类目/合规/图片对比,appearancepatent)→ gemini-3.8-flash
涉及 SimilarAsinProperties、AppearancePatentProperties、application.yml、TLS 探针与测试断言
- stale 判死盲区:finalizeStaleTasks 去掉 isOwnerCurrent 过滤,改由 job 锁持有实例全局判死
(任务 27117 线上死因:客户端 done 信号被任务锁拒后断线,owner 过滤导致无人判死,
被另一实例 job stuck 扫描误判为"文件生成任务运行超时";appearancepatent 同源盲区一并修复)
- 客户端回传重试:3x2s → 8 次,40902 锁忙固定等 15s(app_client/similar_asin.py,随客户端发包生效)
|
2026-09-07 22:10:20 +08:00 |
|
huangzd1997
|
c5982dd900
|
feat(admin): 最低价ASIN列表操作列新增整条删除按钮——后端DELETE /skip-price-asins/{id}(权限校验+日志),前端确认弹窗+删空页回退,补单测与对齐测试
|
2026-09-07 16:05:57 +08:00 |
|
huangzd1997
|
6d6cfcb6ff
|
fix(权限): 店铺数据重复检查仅勾菜单无「店铺数据记录」仍403——校验口径与自动补权对齐(任务/重复检查任一菜单+数据权限即可放行,镜像魏振峰反馈: 只勾103未勾94且数据权限已补仍被拒); 顺带修复 controller 直连 mapper 架构违规 resolveVisibleShopNameKeys 下沉 ShopDataCrawlAdminTasksService
|
2026-09-07 15:08:43 +08:00 |
|
huangzd1997
|
4994142a67
|
feat(需求): ①创建/编辑用户菜单权限勾选父菜单自动全选子菜单(el-tree去check-strictly走父子联动,提交前压缩为最小直接授权集,父勾选时后代不重复落库) ②修复管理员勾选店铺数据菜单仍提示'无权查看店铺数据任务'——admin分区授权后若有效授权含店铺数据任务/重复检查菜单(含经'店铺管理'分组展开),自动补内部数据权限 admin_shop_data_crawl_task_data(镜像V84惯例只增不删,回收仍走超管数据范围授权UI)
|
2026-09-07 14:22:53 +08:00 |
|
huangzd1997
|
e6cf4c2461
|
fix: 停用登录设备绑定(注释 machine 写入/重绑与 check_login 不一致拒绝)便于多设备/联调;Vue 首页背景图改 /bg.jpg 并补 public 资源、首页/登录布局居中修复
|
2026-09-07 11:19:42 +08:00 |
|
huangzd1997
|
23e749c973
|
fix(撞款): 存量迁移修复——①POI zip安全限制放宽(setMaxFileCount/minInflateRatio,旧文件条目数超限整店失败) ②明细批次唯一键放宽(V112 uk→普通索引,同店同日同国同ASIN允许多行) ③迁移失败日志补全堆栈
|
2026-09-07 03:11:48 +08:00 |
|
huangzd1997
|
5f8c469b8e
|
feat(需求): 撞款重复检查改查数据库——①采集明细先落库再更新文件(V111 biz_shop_data_crawl_item行级明细,归档时countryResults展开,同店同日幂等替换) ②撞款扫描换源直接查明细表(不再解析OSS xlsx,修复旧文件表头差异致4家店静默丢弃) ③存量Excel数据自动迁移(日报快照row_payload优先+OSS宽松表头回退:ASIN码/小写兼容) ④移除84家店铺全量空态注入(重复检查基数=已采集店,超管口径8家) ⑤新增明细聚合/宽松解析单测6个
|
2026-09-07 02:43:37 +08:00 |
|
huangzd1997
|
d3f5a371e3
|
feat(撞款+用户): ①扫描基线与店铺表全量对齐——无结果文件的店以空态(0记录+分组标签)注入扫描,撞款控制台超管可见全部店铺(实测 shop_count 83=全量) ②用户列表支持 role 筛选参数 ③修复 toItem creatorMap.getOrDefault(null) 在不可变 Map 的 NPE
|
2026-09-07 02:43:37 +08:00 |
|
huangzd1997
|
35bed42b73
|
fix(筛选契约): 去重汇总/品牌库/查询ASIN 列表与导出接口 @RequestParam 显式 snake_case(page_size/group_id/data_value/shop_name/start_date/end_date),与前端 asin-filter 序列化对齐——修复全站筛选/分页不生效(前端snake vs 后端裸camel全不匹配)
|
2026-09-07 02:43:37 +08:00 |
|
huangzd1997
|
26e062d32c
|
task-284(收尾/在途批次): 页头按钮归位卡内toolbar+店铺数据记录改名+弹窗报错清除; Java page_size配对/按角色数据范围过滤/撞款导出XLSX/Excel图改WPS DISPIMG/V110查询索引
|
2026-09-07 02:43:36 +08:00 |
|
huangzd1997
|
898fae4cb3
|
align(用户菜单授权): 创建/编辑用户菜单权限补齐前端客户端(app)菜单并按类型分区落库
用户管理菜单权限此前只含后台 admin(单类型):前端授权树/回显仅拉 menuType=admin,
后端 replaceDirectPermissions 也固定用 ADMIN 作用域写。现改为同时覆盖 后台(admin)+前端客户端(app):
- 前端 user-menu-auth 节点携带 type,api 并行拉取 admin/app 两类可授权树与已授权 id 合并去重,树内两类根并存(账号与权限/视频/前端工具/运营工具/后勤工具等)
- 后端 PermissionMenuService 新增 resolveMenuTypes(按 id 解析类型);AdminUserService create/update 把勾选 id 拆 admin/app 分区整树替换(internal 不纳入)
- 前端 1556 测试全绿 + build 通过;后端单测(AdminUserServiceTest/PermissionMenuServiceTest/Controller/PermissionMenuResolveTypeTest) EXIT 0
- 本地 E2E:创建用户写入 admin=7+app=3 → 按类型回读 admin[7]/app[3],删除正常
|
2026-09-07 02:43:36 +08:00 |
|
huangzd1997
|
1da4511dd9
|
fix(admin): 后台入口 /admin /login 用 sendRedirect 产生真实 302
@RestController 下返回 redirect: 字符串只会原样写进 200 响应体,
浏览器不会跳转。页面入口方法改为 HttpServletResponse.sendRedirect 302
到 /admin-vue/,旧 /admin.html、/login.html 一并兜底。
|
2026-09-06 11:01:04 +08:00 |
|
huangzd1997
|
4c88964473
|
task-283(后台迁移收尾/发布): admin-vue 后台工程入库 + Flask 后台整体退役
- 新后台 admin-frontend-vue 整工程入库(base=/admin-vue/、History 路由、Nginx 静态托管方案与 verify-dist 校验)
- Java AdminConsoleController 改为入口重定向: /admin|/admin.html、/login|/login.html -> /admin-vue/; 删除 classpath:static 旧 admin.html/login.html 单页与 admin.js 副本
- Flask 后台整体退役: 删除 admin_api/auth/main 蓝图、web_source 页面、static 脚本与 admin 相关测试; app.py 收敛为仅注册 version_bp(/api/version、/api/version/latest, 供桌面端更新检查)
- AdminApiGuardFilterTest 豁免样例路径 /admin.html -> /admin-vue/
|
2026-09-06 10:41:47 +08:00 |
|
huangzd1997
|
ab787ceff7
|
task-280(验收反馈): 重复检测对齐reference P0(分组筛选生效/抽屉聚合+汇总徽章/台账计数预载/total_dup计数/矩阵表头吸顶;后端含工作区在途console化代码)
|
2026-09-06 02:41:44 +08:00 |
|
huangzd1997
|
648935e757
|
task-278(验收反馈): 生成记录加清理数据功能(DELETE /api/admin/history 二次确认+条数提示;含工作区在途的 imagehistory 分页优化)
|
2026-09-06 02:25:44 +08:00 |
|
huangzd1997
|
6e2e4bf8e7
|
task-275(验收反馈): 菜单权限标识/路由后台自动生成(menu_auto_/auto/ 前缀),表单移除两项输入;编辑缺省保持原值
|
2026-09-06 01:57:17 +08:00 |
|
huangzd1997
|
5e5658b00d
|
fix(backend-java): Flyway V100 撞号修复配套(迁移矩阵补全16键/测试引用改指V109)
|
2026-09-06 01:44:14 +08:00 |
|
huangzd1997
|
9ac4eda054
|
task-271(验收反馈): Element Plus 全局接入 zh-cn 语言包(日期控件/分页组件中文)
|
2026-09-06 01:44:06 +08:00 |
|
huangzd1997
|
3fc8746218
|
task-162(客户端公开版本接口兼容): 冻结 /api/version/latest 响应契约
PublicVersionLookup 增 latest/selectLatest 与路径常量 + Task162Test。
TDD: RED→GREEN。
|
2026-09-05 18:06:22 +08:00 |
|
huangzd1997
|
b134db134e
|
task-161(客户端公开版本接口兼容): 冻结 /api/version 响应契约
新增 PublicVersionLookup.currentVersionResponse + Task161Test。
TDD: RED→GREEN。
|
2026-09-05 18:04:19 +08:00 |
|
huangzd1997
|
e88bf5322b
|
task-155(Java 菜单树与 Flyway): 新增 V100 迁移(admin 菜单 route_path 更新)
|
2026-09-05 18:01:14 +08:00 |
|
huangzd1997
|
6dcdbec63d
|
task-154(Java 菜单树与 Flyway): 定义 route_path Flyway 迁移矩阵
新增 AdminMenuRouteMatrix + Task154Test(契约/唯一性)。
TDD: RED→GREEN。
|
2026-09-05 18:01:12 +08:00 |
|
huangzd1997
|
b791fa94e7
|
task-144(Java 菜单树与 Flyway): 实现 parent_id 树组装
组装器新增 groupChildrenById/递归 assemble(孤儿按根),currentUserMenus 改走统一
组装器 toMapList。
TDD: Task144Test 8 用例 RED→GREEN。
|
2026-09-05 17:56:49 +08:00 |
|
huangzd1997
|
ef19a5c00c
|
task-143(Java 菜单树与 Flyway): 实现有效菜单节点索引
indexById(去 null id/重复后写) 单测(Task143Test 8 用例)。
TDD: RED→GREEN。
|
2026-09-05 17:51:13 +08:00 |
|
huangzd1997
|
4dd9ca7a22
|
task-141(Java 菜单树与 Flyway): 冻结 Java 菜单树响应 DTO 契约
新增纯 Java AdminMenuTreeBuilder:Node(key/name/route/children) 树组装与
route 规整,column_key 与 route 分离,可离线单测。
TDD: Task141Test 8 用例先 RED 后 GREEN。
|
2026-09-05 17:49:44 +08:00 |
|
huangzd1997
|
2f71b4be3c
|
feat(backend-java): 后台菜单接口改为返回菜单树并适配 admin-vue
菜单接口 /api/admin/current-user/menus 由扁平 route 列表改为含父子
层级的菜单树;权限标识用 column_key,页面地址用 route 单独下发;
/admin 与 / 入口重定向到 admin-vue。
|
2026-09-05 14:58:02 +08:00 |
|
huangzd1997
|
1063e5188c
|
feat(backend-java): 客户端版本更新新增公开查询接口
新增 /api/version 与 /api/version/latest 公开端点,路径与 file_url 字段
兼容 Python 时代客户端固定请求,供桌面端 ShuFuAI.exe 检查更新。
|
2026-09-05 14:57:58 +08:00 |
|
huangzd1997
|
289f4488f9
|
fix(auth/logout): 禁用内置 LogoutFilter,登出改走 auth 模块清会话 cookie
POST /logout 原先被 Spring Security 内置 LogoutFilter 截走(204),只清空
SecurityContext,从不执行 LoginController.logout,导致 aiimage_token cookie
残留、退出登录后仍保持登录态。SecurityConfig 显式 logout.disable() 后请求
落到 POST /logout → 200 + Set-Cookie aiimage_token=;(Max-Age=0) 清除。
补充真实登出 E2E(live):登出返回 200、下发清除 cookie、无 cookie 后 401。
注:此前的 500/CNFE 系运行进程 jar 被覆盖为 thin jar 所致,重建 fat jar
并重启即恢复;本提交只改逻辑。11/11 live 用例通过。
|
2026-09-05 14:49:52 +08:00 |
|
huangzd1997
|
40224d8e56
|
fix(backend-java): 收口并发资源与恢复链路
|
2026-09-05 14:44:00 +08:00 |
|
huangzd1997
|
1924e273e9
|
refactor(task-212): 清理 TaskResultFileJobWorker 5 个迁移后遗留的死业务 import(Handler 已接管处理,字段已移除)
|
2026-09-05 10:15:57 +08:00 |
|
huangzd1997
|
be332a47ab
|
fix(task-212): Handler 迁入业务模块后补 task.service 类型 import(随迁移内容一并落库)
|
2026-09-05 10:12:01 +08:00 |
|
huangzd1997
|
01e8c608e7
|
task-212(部分): 04 Handler SPI 实现迁回各业务模块(依赖反转大头)——13 个 *ResultFileJobHandler 从 modules/task/service 迁到各自模块 service
- TaskFileJobConfig 与相关测试 import 同步到新模块包;MappingSnapshot 源码路径按模块映射
- task 模块对业务 import 由 16+ 文件降到 3(TaskHeartbeatService/TaskResultFileJobWorker/ModuleHistoryCleanupService 尚需心跳/worker/清理 SPI 化)
- 全量回归 2308 测试 0 失败
|
2026-09-05 10:11:53 +08:00 |
|
huangzd1997
|
3ee281a433
|
fix(similarasin): LLM 默认模型改为 glm-5.3-flash(原 gemini-3.5-flash-lite/gemini-3.7-flash 在 ai.t8star 端点不可用,按指示统一)
|
2026-09-05 09:48:19 +08:00 |
|
huangzd1997
|
c282327a0b
|
task-207(服务层): done=true 终态决策纯语义(SimilarAsinSubmitResultSemantics:done/error→终态回调、chunkIndex/Total 缺省归一)接线回 submit + 8 单测
按 3+2 约定:文件生成/终态落库依赖真实 LLM 流水线,留待真实运行时经 env-gated 回放(CONTRACT_* 已就绪)
|
2026-09-05 09:10:51 +08:00 |
|
huangzd1997
|
d3b499b596
|
feat(admin): 店铺重复检查导出「站点」列改「国家」中文显示;撞款抽屉按点击处定位
- 导出 CSV 列头 站点→国家,值映射中文(DE德国/UK英国/FR法国/IT意大利/ES西班牙,未知回退原值)
- 撞款详情抽屉以触发元素为垂直锚点并钳制在视口内,不再贴区块/页面顶部导致看不见需上滑
- 同步 Java 静态托管副本;更新 Java/Python 相关断言
|
2026-09-05 01:53:12 +08:00 |
|
huangzd1997
|
1b27a3f1ca
|
task-200: 巡检报表任务落地(InspectionSqlReportTask 跑 6 张只读报表 SQL:默认 disabled、分布式锁、单条失败不阻断、只 query)+ 8 条测试
|
2026-09-05 00:08:44 +08:00 |
|
huangzd1997
|
d6b223ba25
|
task-199: 超保留期活跃 job 巡检 SQL(06_over_retention_active_job.sql,RUNNING 超24h 候选,清理走 stuck 扫描)+ 8 条测试
|
2026-09-05 00:06:45 +08:00 |
|