日期:2026-10-09。后端、商家 PC、平台 PC 均在 test-202609v2 原分支实施,未新建分支;初始功能、商品图片增量及通用组件/文件名规范收口均已提交/推送,具体 SHA 与远端结果以 Git 记录和最终交付回复为准;App 未修改。
updatesql/sql.md 中「2026-10-09 034」:两张表及唯一索引、未审核存量摊位闭店、平台菜单/权限。未认证摊位 state=1,不修改旧订单或发起取消、退款。stall:qualification:list、stall:qualification:query、stall:qualification:review;只有列表权限看不到证件图片、不能审核。平台菜单组件为 stallQualification/index。/utils/Upload,保存在 ruoyi.profile/upload,返回 /profile/upload/... 路径;身份证等图片链接也公开访问,用户已确认。确保商品上传/图片访问路由正常、目录持久化并在多实例共享。原 ruoyi.profile 同级 stall-qualification 目录只用于历史私有附件;须继续保留,不迁移或回写旧申请,也不为兼容旧附件开放该目录的公共映射。StallQualificationStatFilter,材料 SQL 的参数同时在慢日志与监控参数缓存中脱敏,其他 SQL 沿用原诊断。部署配置不得另注册普通 StatFilter 或启用会打印原始 JDBC 参数的额外日志过滤器。SQL、真实数据库、服务重启及上述部署操作本轮均未执行。不要只发布页面而漏执行 DDL,也不要把本机测试通过当作已经上线。
/addorder 均校验,不能只信列表或前端。旧订单出餐、配送、支付后续处理不调用此新门禁。使用 JDK 21 C:/Users/99029/.jdks/graalvm-jdk-21.0.12+7.1,仅在命令环境设置 JAVA_HOME/PATH,没有改全局 Java 设置。
mvn -pl ruoyi-admin -am test '-Dtest=StallQualification*Test,PosOrderShOprateControllerTest,UserOrderControllerMerchantIdTest,StallControllerTest,MerchantSessionAuthAnnotationTest' '-Dsurefire.failIfNoSpecifiedTests=false' -q
53 个用例通过(28 个本模块用例 + 25 个受影响既有回归)。覆盖草稿/提交、版本竞争、重复审核、驳回重提、保留已通过版本、身份权限、私有文件、真实 Mapper 解析、门禁与闭店资料编辑、错误绑定隐私、Druid 生产配置替换及上传 data 返回契约。 Druid 配置测试构造未初始化/未连接的数据源,并确认 proxyFilters 中恰好一个脱敏 StatFilter;不连接测试或生产数据库。
mvn -pl ruoyi-admin -am package -DskipTests -q 模块编译和打包通过;该打包命令不运行测试,测试使用前述独立命令执行。
两个 PC 仓库均执行 node --test tests/*.test.cjs:商家 5/5,平台 16/16。四语言各 50 个新 key 完全一致。平台新增 API/页面/辅助代码使用 eslint ... --no-ignore 检查通过。
商家 vue-cli-service build --mode test、平台(命令环境设置 NODE_OPTIONS=--openssl-legacy-provider)vue-cli-service build --mode staging 均通过。
商家构建保留既有 7 个缺 key 提示;平台保留既有两个 .vue~ 文件的构建警告及包体积提示,未修改无关文件。平台本机依赖安装未生成或修改依赖锁文件。
不得将本页的模拟/配置测试视为上述真实联调的替代。
/utils/Upload。平台审核材料使用商品管理的 ImagePreview,保留同组放大切换,私有 blob 地址不能拼 /prod-api。npm run build:test、平台 npm run build:stage(仅本命令设置 OpenSSL 兼容选项)成功。构建保留既有商家 7 项缺 key 警告、平台 2 个 .vue~ 文件与包体积提示。共享 ImagePreview 保持旧风格,未借本任务整体格式化。/utils/Upload,保存其 data 返回的 /profile/upload/YYYY/MM/DD/文件名.jpg或png;字段名及数组结构不变。el-upload(action 为 VUE_APP_BASE_URL + '/utils/Upload')和 el-image,平台审核页直接用共享 ImagePreview;StallQualificationImages.vue、PrivateImages.vue 已删除。FileUploadUtils 生成存储文件名时把 / \ : * ? " < > | ; # % , 与控制字符替换为 _(CJK 等保留):身份证#正面.jpg、含逗号文件名上传后仍是合法公共路径,可通过材料保存校验,也不会破坏逗号分隔预览。商品等其他使用该工具的上传同步受益,已存旧文件不受影响。VUE_APP_BASE_URL + 图片路径 显示(与商品页一致);平台路径按现有 VUE_APP_BASE_API 解析。新图片不会再请求 /system/stallQualification/files/...。不能只发布 PC,必须同时发布后端公共路径保存校验。storeId/UUID.jpg或png 引用不迁移、不回写,继续请求旧鉴权接口(两端页面内保留 blob 兼容读取)。此次更换上传方式不恢复服务器缺失的旧私有文件,也不证明原截图的线上根因已排除;需保留旧目录或由摊主在可编辑的新申请中重新上传。