|
|
@@ -0,0 +1,60 @@
|
|
|
+# 用户审核不通过原因
|
|
|
+
|
|
|
+## 背景
|
|
|
+
|
|
|
+平台目前只支持“待审核”和“审核通过”两种用户审核状态,管理员无法明确记录商家或骑手资料审核不通过的原因。后续用户端需要根据审核结果提示用户补充资料,但本次不修改 App 前端。
|
|
|
+
|
|
|
+## 目标
|
|
|
+
|
|
|
+- 用户审核状态增加“审核不通过”。
|
|
|
+- 管理员审核商家或骑手资料不通过时,必须输入具体原因。
|
|
|
+- 原因随用户信息返回,供后续 App 展示和资料补充流程使用。
|
|
|
+
|
|
|
+## 数据模型
|
|
|
+
|
|
|
+- `info_user.audit_status` 状态语义:
|
|
|
+ - `0`:待审核。
|
|
|
+ - `1`:审核通过。
|
|
|
+ - `2`:审核不通过。
|
|
|
+- `info_user` 新增 `audit_reject_reason TEXT NULL`,Java 属性名为 `auditRejectReason`。
|
|
|
+- 不对审核不通过原因设置应用层字符数限制。
|
|
|
+- 当审核状态不是 `2` 时,保存操作必须将 `audit_reject_reason` 清空,避免旧原因与当前状态不一致。
|
|
|
+
|
|
|
+## 平台管理端
|
|
|
+
|
|
|
+- 修改商家审核页 `sjuser.vue` 和骑手审核页 `peisus.vue`。
|
|
|
+- 审核状态选项增加“审核不通过”。
|
|
|
+- 选择“审核不通过”时显示多行文本输入框,由管理员按实际情况自由填写。
|
|
|
+- 原因去除首尾空白后为空时禁止提交,并显示国际化错误提示。
|
|
|
+- 选择“待审核”或“审核通过”时隐藏原因输入框,提交前清空旧原因。
|
|
|
+- 新增用户可见文本必须补齐简体中文、繁体中文、英文和越南语。
|
|
|
+
|
|
|
+## 后端行为
|
|
|
+
|
|
|
+- 平台修改用户接口继续使用 `PUT /infouser/user`。
|
|
|
+- 当 `auditStatus = "2"` 时,`auditRejectReason` 去除首尾空白后必须非空;否则返回国际化业务错误,不更新用户。
|
|
|
+- 当 `auditStatus` 不等于 `"2"` 时,后端主动将 `auditRejectReason` 设为 `null`,不能只依赖前端清理。
|
|
|
+- 用户列表、平台用户详情和 App 用户信息接口沿用现有 `InfoUser` 返回结构,新增返回 `auditRejectReason`。
|
|
|
+- Entity、MyBatis `resultMap`、查询、插入和更新映射全部补齐该字段。
|
|
|
+
|
|
|
+## 数据库变更
|
|
|
+
|
|
|
+- 只将迁移 SQL 写入 `updatesql/sql.md`,不直接执行数据库变更。
|
|
|
+- SQL 为 `info_user` 新增 `audit_reject_reason TEXT NULL`。
|
|
|
+- 为 `sys_user_audit` 字典新增值 `2`,标签为“审核不通过”,供平台审核状态选项使用。
|
|
|
+
|
|
|
+## 验收标准
|
|
|
+
|
|
|
+1. 商家和骑手审核页均能选择“审核不通过”。
|
|
|
+2. 选择“审核不通过”但未填写有效原因时,前端和后端都拒绝保存。
|
|
|
+3. 填写原因后可以保存,重新打开用户资料时能正确回显。
|
|
|
+4. 将状态改为“待审核”或“审核通过”后,数据库中的旧原因被清空。
|
|
|
+5. `getuserinfo` 等返回用户信息的现有接口包含 `auditRejectReason`。
|
|
|
+6. 本次不修改商家或骑手 App 前端。
|
|
|
+
|
|
|
+## 非目标
|
|
|
+
|
|
|
+- 不提供固定原因或预设原因选项。
|
|
|
+- 不建立审核历史记录表。
|
|
|
+- 不记录每次审核的管理员、时间或历史原因。
|
|
|
+- 不实现 App 端红色提示、资料高亮或字段只读控制。
|