tasks.md 9.3 KB

摊位资质审核任务

日期:2026-10-09 分支:test-202609v2,不创建新分支。 总进度:已验证(后端定向测试与全量回归、两端 Node 测试及构建、静态审查)。初始功能与商品图片增量、通用组件替换及文件名规范、泰文语言包补齐均已提交/推送,SHA 以 Git 记录为准;未执行 SQL、部署联调,真实环境验收见 quickstart.md。

Specify

  • T001 在 spec.md 记录用户确认的摊位级认证、两表存储和共同管理账号关系。
  • T002 在 spec.md 和 data-model.md 记录统一材料表单,不区分个人/公司、不按类型改变必填规则。
  • T003 表单已简化为四组统一资料;用户确认存量和新增一律补材料审核通过后营业。

Plan / Tasks

  • T004 在 plan.md 记录模块分工、事务/并发保护、前后端范围与验证方式。
  • T005 已在 contracts/api.md 明确数值状态、接口入参/响应、权限和私有材料访问规则;quickstart.md 记录部署顺序和未验证项。

Implement

  • T006 在 updatesql/sql.md 登记两表、索引、平台权限菜单及必要存量策略 SQL;只登记不执行。
  • T007 实现 ruoyi-system 摊位认证实体、Mapper/XML 以及 ruoyi-admin 业务服务/DTO。
  • T008 实现商家保存草稿/提交/查询,平台查询/通过/驳回;补权限、材料校验及并发条件更新。
  • T009 在 foodie-store 实现摊位认证提交及状态页面、夜市主进度入口,维护四语言。
  • T010 在 foodie-admin-vue 实现摊位审核列表与材料详情、审核和驳回入口,维护四语言。
  • T011 按确认策略接入营业、新订单及展示门禁;不阻断已存在订单履约,保留普通商家原审核。
  • T012 补充权限、状态、版本、重复审核/提交及门禁测试,运行 JDK 21 定向测试、模块打包和前端检查。
  • T013 检查变更范围、编码换行和文档一致性,记录实际未验证项目并更新任务进度。

验证与审查记录

  • 后端定向测试 53 个用例通过;后端 mvn -pl ruoyi-admin -am package -DskipTests 通过(打包阶段跳过测试,测试另行执行)。
  • 商家 Node 用例 5/5、平台 Node 用例 16/16;两个 PC 构建通过,既有警告见 quickstart.md。
  • 两端四语言每种各 50 个新 key 一致;平台新增源码 ESLint --no-ignore 检查通过。保持 CRLF,不改依赖清单/锁文件。
  • 独立只读审查修正:真实 saveOrUpdate 门禁、state SQL 写入、闭店资料编辑、绑定异常隐私、Druid 参数日志与监控脱敏。收口检查另补上传引用必须返回 data 的回归。
  • 2026-10-09 用户要求 commit push;交付分支为三个仓库的 test-202609v2,提交 SHA 与远端结果以 Git 记录和最终交付回复为准,不切换、不改写其他分支。
  • 未验证:真实 MySQL 迁移/竞争/回滚、实际权限角色菜单、浏览器及私有文件部署联调、完整全量回归;清单详见 quickstart.md。

图片组件增量(2026-10-09,用户确认)

  • T014 用真实 Vue 组件补充失败回归:blob 地址不得拼接 API 前缀、参数化 JPEG 应展示、方框加号及每类数量限制。
  • T015 商家上传交互对齐门店管理,平台复用商品 ImagePreview 并保留同组预览;私有访问权限、审核状态及资料保存接口不变。
  • T016 两端图片加载支持 MIME 参数,仍拒绝 JSON/HTML;更新现有规格、计划及部署诊断说明。
  • T017 平台全部 Node 测试 20/20、商家 9/9 通过,两端构建成功(保留原有警告);审核图片组件 ESLint 通过,共享 ImagePreview 既有 30 项错误/1 项警告与 HEAD 基线一致,不扩展无关格式修改。核对本次改动与 CRLF,无后端代码/SQL 变更;实际浏览器、截图对应请求及服务器文件部署未联调,仍待验收。

商品图片上传增量(2026-10-09,最新用户确认)

本增量进度:已验证(本地定向测试、构建;全量回归1项既有失败)。未提交/推送。用户明确确认全部审核图片(含身份证)采用商品公共上传/访问,覆盖先前私有上传限制;申请详情、审核、营业门禁不变。

  • T018 先补失败回归:公共材料保存被旧校验拒绝、商家上传仍调用旧接口、两端公共图片仍请求旧私有接口;实际运行观察失败,再实现。
  • T019 商家复用 /utils/Upload,保存 /profile/upload/... 图片路径;后端验证实际图片文件,拒绝目录穿越、外部 URL、缺失/伪造/过大图片,保留旧引用归属检查。
  • T020 两端直接预览新公共图片,旧材料鉴权读取兼容;保留上传数量、忙锁、只读和同组预览。
  • T021 更新规格、计划、数据模型、接口及部署说明,补注释,明确公开链接风险、旧材料不迁移、无 SQL/新字段/App 改动。
  • T022 完成定向/全量测试、模块打包、两个 PC 构建及 CRLF/差异核对,记录未验证项。不自动提交/推送。

本增量实际验证结果

  • RED:后端公共路径保存回归1项失败;商家公共预览/商品上传接口回归2项失败;平台公共预览回归1项失败。GREEN:后端 mvn -pl ruoyi-admin -am test -Dtest=StallQualification*Test -Dsurefire.failIfNoSpecifiedTests=false 31/31 通过。
  • 两个 PC node --test tests/*.test.cjs:商家11/11、平台21/21通过。覆盖公共路径直接预览、旧私有读取、商品 multipart 请求、只读/数量/忙锁、同组预览及 MIME 错误处理。
  • JDK21 后端全模块 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~ 文件及包体积提示。
  • 平台修改组件 ESLint --no-ignore 通过;三个仓库 git diff --check 通过,编辑文件保留 UTF-8/CRLF,没有改动通用上传实现、依赖/锁文件、i18n、SQL 或 App。
  • 未验证:部署、真实登录浏览器上传与图片访问、旧文件服务器缺失/权限/代理故障、真实数据库与多实例目录共享;不上传凭证、不执行数据库或文件迁移。

通用图片组件与文件名规范增量(2026-10-09,用户确认后收口)

本增量进度:已验证(后端定向 35/35、全量 952/952、商家 Node 11/11、平台 Node 20/20、商家 build:test 与平台 build:stage 构建成功)。用户确认上传/展示图片组件换成其他功能通用的实现,后端公共上传统一规范化文件名。

  • T023 删除两端自建图片组件:商家 StallQualification.vue 直接用商品同款 el-upload(action 指向 seruer + '/utils/Upload',seruer = VUE_APP_BASE_URL)与 el-image 展示;平台审核页直接用共享 ImagePreview 组件。旧私有引用仍在页面内小段 blob 兼容读取,接口不变;StallQualificationImages.vue、PrivateImages.vue 及商家自建 uploadQualificationImage 封装删除。
  • T024 FileUploadUtils.extractFilename 规范化 basename:/ \ : * ? " < > | ; # % , 与控制字符替换为 _,保留 CJK 等合法字符,空名回退 file;新增 FileUploadUtilsTest,身份证#正面.jpg、id,front_001.png 等上传产物可全部通过材料公共路径校验,也消除逗号文件名对 ImagePreview 逗号分隔预览的截断。
  • T025 补齐 messages_th_TH.properties 的 10 个 stall.qualification key(泰文翻译),BackendI18nBundleContractTest 通过,后端全量回归不再有既有失败。
  • 两端页面级 Node 测试改为针对页面行为:通用上传卡片 action/数量门禁/类型大小校验/成功追加公共路径、公共引用直显 VUE_APP_BASE_URL、历史私有引用 blob 读取与 JSON/HTML 拒绝、待审核只读。

2026-10-16 审核资料扩展

  • T026 申请 DTO、快照实体、Mapper 和服务增加邮箱、介绍、银行资料及选填证明;食品登录资料改选填,银行四项提交必填,草稿与历史版本规则不变。新增服务/SQL 绑定测试,先确认缺少新字段导致 RED。
  • T027 商家 PC 新增字段及四组证明图片,银行名称复用现有台湾银行字典;平台 PC 详情展示新字段、移除草稿筛选。服务端列表/计数及平台详情排除草稿;两端四语言同步。
  • T028 034 规格、契约、部署说明及 updatesql/sql.md 追加 2026-10-16 增量,不执行数据库迁移。
  • T029 后端 JDK 21 全量测试和打包、商家 PC Node 测试及 build:test、平台 PC Node 测试及 build:stage 均通过;差异与 CRLF 已检查。SQL 未执行,真实环境联调未做;提交状态以 Git 记录为准。
  • T030 补充 app-frontend-adjustment.md,供 App 前端对接新资料字段、银行列表、图片上传、草稿及审核状态;App 页面代码未包含在本次三个仓库改动中。