日期:2026-10-09
分支:test-202609v2,不创建新分支。
总进度:已验证(后端定向测试与全量回归、两端 Node 测试及构建、静态审查)。初始功能与商品图片增量、通用组件替换及文件名规范、泰文语言包补齐均已提交/推送,SHA 以 Git 记录为准;未执行 SQL、部署联调,真实环境验收见 quickstart.md。
spec.md 记录用户确认的摊位级认证、两表存储和共同管理账号关系。spec.md 和 data-model.md 记录统一材料表单,不区分个人/公司、不按类型改变必填规则。plan.md 记录模块分工、事务/并发保护、前后端范围与验证方式。contracts/api.md 明确数值状态、接口入参/响应、权限和私有材料访问规则;quickstart.md 记录部署顺序和未验证项。updatesql/sql.md 登记两表、索引、平台权限菜单及必要存量策略 SQL;只登记不执行。ruoyi-system 摊位认证实体、Mapper/XML 以及 ruoyi-admin 业务服务/DTO。foodie-store 实现摊位认证提交及状态页面、夜市主进度入口,维护四语言。foodie-admin-vue 实现摊位审核列表与材料详情、审核和驳回入口,维护四语言。mvn -pl ruoyi-admin -am package -DskipTests 通过(打包阶段跳过测试,测试另行执行)。quickstart.md。--no-ignore 检查通过。保持 CRLF,不改依赖清单/锁文件。test-202609v2,提交 SHA 与远端结果以 Git 记录和最终交付回复为准,不切换、不改写其他分支。quickstart.md。ImagePreview 并保留同组预览;私有访问权限、审核状态及资料保存接口不变。本增量进度:已验证(本地定向测试、构建;全量回归1项既有失败)。未提交/推送。用户明确确认全部审核图片(含身份证)采用商品公共上传/访问,覆盖先前私有上传限制;申请详情、审核、营业门禁不变。
/utils/Upload,保存 /profile/upload/... 图片路径;后端验证实际图片文件,拒绝目录穿越、外部 URL、缺失/伪造/过大图片,保留旧引用归属检查。mvn -pl ruoyi-admin -am test -Dtest=StallQualification*Test -Dsurefire.failIfNoSpecifiedTests=false 31/31 通过。node --test tests/*.test.cjs:商家11/11、平台21/21通过。覆盖公共路径直接预览、旧私有读取、商品 multipart 请求、只读/数量/忙锁、同组预览及 MIME 错误处理。mvn -pl ruoyi-admin -am test:950项,949通过、1失败、0错误。唯一失败为已有 BackendI18nBundleContractTest.everyLocalizedBundleHasTheSameNonBlankKeysAndPlaceholders,messages_th_TH.properties 缺10个 stall.qualification key;本轮不改语言包或该测试,不把全量描述为通过。mvn -pl ruoyi-admin -am package -DskipTests 成功;商家 vue-cli-service build --mode test 和平台 vue-cli-service build --mode staging(命令内设置 OpenSSL兼容选项)成功。保留既有商家7项缺key提示、平台2个 .vue~ 文件及包体积提示。--no-ignore 通过;三个仓库 git diff --check 通过,编辑文件保留 UTF-8/CRLF,没有改动通用上传实现、依赖/锁文件、i18n、SQL 或 App。本增量进度:已验证(后端定向 35/35、全量 952/952、商家 Node 11/11、平台 Node 20/20、商家 build:test 与平台 build:stage 构建成功)。用户确认上传/展示图片组件换成其他功能通用的实现,后端公共上传统一规范化文件名。
StallQualification.vue 直接用商品同款 el-upload(action 指向 seruer + '/utils/Upload',seruer = VUE_APP_BASE_URL)与 el-image 展示;平台审核页直接用共享 ImagePreview 组件。旧私有引用仍在页面内小段 blob 兼容读取,接口不变;StallQualificationImages.vue、PrivateImages.vue 及商家自建 uploadQualificationImage 封装删除。FileUploadUtils.extractFilename 规范化 basename:/ \ : * ? " < > | ; # % , 与控制字符替换为 _,保留 CJK 等合法字符,空名回退 file;新增 FileUploadUtilsTest,身份证#正面.jpg、id,front_001.png 等上传产物可全部通过材料公共路径校验,也消除逗号文件名对 ImagePreview 逗号分隔预览的截断。messages_th_TH.properties 的 10 个 stall.qualification key(泰文翻译),BackendI18nBundleContractTest 通过,后端全量回归不再有既有失败。VUE_APP_BASE_URL、历史私有引用 blob 读取与 JSON/HTML 拒绝、待审核只读。