# 失物招领(需求说明 / MVP) - 版本:v1(MVP) 2025-11-06 - 目标:提供统一的“丢失/捡到”信息发布、审核、展示与标记已解决能力。 - 角色与权限: - 门户用户(登录):发布/编辑自己的条目、删除(逻辑)、标记已解决;仅能查看所有已发布条目(默认隐藏已解决,可筛选展示)。 - 管理员:审核(通过/驳回)、下架、恢复为待审、删除(逻辑)。 ## 使用流程(用户) 1) 发布:选择类型(丢失/捡到),填写标题、描述、地点与时间(可选),上传 ≤9 张图片。 2) 提交后进入“待审核”。 3) 审核通过后公开展示;作者可将其标记“已解决”(不可回退)。 4) 编辑行为:仅未解决条目可编辑,提交后重新进入“待审核”。 ## 管理流程(管理员) - 待审核:通过(公开)/驳回(必须填写理由)。 - 已发布列表:查看/修改/下架(必须填写理由)。 - 回收站:包含“驳回/下架”条目,可删除或恢复为“待审核”。 ## 状态机 - type:lost=丢失,found=捡到 - status: - 0 草稿(预留) - 1 待审核(新增/编辑提交进入) - 2 已发布(审核通过) - 3 驳回(需填写驳回原因) - 4 已下架(需填写下架原因) - solved_flag:0 未解决;1 已解决(作者行为,不可回退) ## 数据字典 ### 表:tb_lost_item(主体) - id:BIGINT 主键 - type:VARCHAR(10),lost/found - title:VARCHAR(100),2~50 字 - content:TEXT,5~2000 字(正文) - location:VARCHAR(100),可选 - lost_time:DATETIME,可选 - views:INT,默认 0 - status:CHAR(1),0/1/2/3/4 - solved_flag:CHAR(1),0/1 - publish_time:DATETIME,审核通过写入 - reject_reason/offline_reason:VARCHAR(500) - contact_info:VARCHAR(50),可选,联系信息(电话/微信等,自由文本,≤50字) - 审计字段:create_by/create_time/update_by/update_time/del_flag ### 表:tb_lost_item_image(图片) - id:BIGINT 主键 - item_id:BIGINT,tb_lost_item.id - url:VARCHAR(500) - sort_no:INT,0 开始 - 审计:同上 ## 业务规则 - 新增/编辑统一进入待审核;管理员通过后发布。 - 编辑提交后回到待审;已解决条目不可编辑。 - 标记已解决后不可撤销;默认列表隐藏已解决,可筛选显示。 - 下架/驳回必须填写原因;恢复进入待审。 - 图片:≤9 张,jpg/png/webp,≤2MB/张;后端二次校验。 ## 门户页面 - 列表:筛选(类型/是否已解决/时间范围/关键词),分页 - 发布/编辑:表单 + 图片九宫格上传(复用 OSS) - 我的发布:显示已解决/未解决;支持解决、编辑、删除、详情 ## 管理页面 - 已发布列表:查看/修改/下架 - 待审核:查看/通过/驳回 - 回收站:删除/恢复为待审 ## MVP 边界 - 暂不实现“认领/争议处理”等进阶流程 - 暂不做频控与敏感词联动(完全靠审核)