文章目录
- 1 项目演示视频
- 2 是否包含论文文档
- 3 详细描述
- 4 校园二手交易平台(仿闲鱼)需求规格说明书
- 4.1 1. 项目概述
- 4.2 2. 用户角色与权限
- 4.3 3. 功能需求(按模块)
- 4.4 4. 关键业务流程(文字版)
- 4.5 5. 非功能需求
- 4.6 6. 数据库设计
- 4.6.1 6.1 统一字段规范(建议)
- 4.6.2 6.2 表清单(概览)
- 4.6.3 6.3 字段字典(核心表)
- 4.6.3.1 6.3.1 app_user(前台用户)
- 4.6.3.2 6.3.2 app_user_profile(用户扩展信息)
- 4.6.3.3 6.3.4 app_user_address(收货/交付地址,可选)
- 4.6.3.4 6.3.5 goods_category(商品类目)
- 4.6.3.5 6.3.6 goods(商品主表)
- 4.6.3.6 6.3.7 goods_image(商品图片)
- 4.6.3.7 6.3.8 goods_tag / goods_tag_rel(标签,可选)
- 4.6.3.8 6.3.9 goods_favorite(收藏)
- 4.6.3.9 6.3.10 goods_browse_history(足迹)
- 4.6.3.10 6.3.11 im_conversation(会话)
- 4.6.3.11 6.3.12 im_message(消息)
- 4.6.3.12 6.3.13 trade_order(订单)
- 4.6.3.13 6.3.14 trade_order_flow(订单流转记录)
- 4.6.3.14 6.3.15 trade_payment / trade_refund / trade_delivery(支付、退款、交付)
- 4.6.3.15 6.3.16 trade_evaluation(评价)
- 4.6.3.16 6.3.17 content_report(举报)
- 4.6.3.17 6.3.18 content_audit_record(内容审核记录)
- 4.6.3.18 6.3.19 risk_punish_record(处罚记录)
- 4.6.3.19 6.3.20 op_banner / op_notice / op_notice_read(运营配置)
- 4.6.3.20 6.3.21 file_object(文件对象)
- 4.6.3.21 6.3.22 sys_operation_log(操作日志)
- 4.6.4 6.4 后台权限模型(RBAC)
- 4.6.5 6.5 接口权限(可选增强)
- 4.7 7. 菜单结构(后台建议)
- 5 技术描述
- 6 项目截图描述
项目演示视频
是否包含论文文档
否
详细描述
基于Springboot3+vue3的校园二手交易平台(最新毕设、大作业、实训项目)
校园二手交易平台(仿闲鱼)需求规格说明书
1. 项目概述
1.1 背景
面向高校校园场景,提供“发布闲置—沟通议价—担保/当面交易—评价信誉—举报治理”的二手交易闭环。整体交互与业务链路参考闲鱼,结合毕业设计可落地实现的范围做适度裁剪。
游客 (Visitor): 前端浏览技术栈 - Vue 3 + H5移动端,支持商品搜索筛选、详情查看,限制聊天下单功能
学生用户 (Student User): 全栈交易能力 - Vue 3前端 + Spring Boot 3后端,具备商品发布管理、实时聊天(WebSocket)、订单交易、评价举报完整闭环
运营/审核员 (Operator/Auditor): 后台治理技术栈 - RBAC权限管理 + 审核流程系统,负责商品审核、类目管理、举报处理、内容治理
客服 (Customer Service): 纠纷处理技术栈 - 工单系统 + 聊天记录取证,专注退款申诉、纠纷调解、证据审查
系统管理员 (System Administrator): 最高权限技术栈 - 全系统配置管理,包括用户角色权限、菜单接口、系统参数、审计日志的完整控制体系
1.2 目标
-
为大学生提供安全、便捷的校内闲置交易渠道
-
降低交易摩擦:搜索、筛选、聊天沟通、下单支付(可模拟)、交易状态跟踪
-
提升交易可信度:评价信誉、风控举报、后台审核治理
-
满足毕业设计要求:需求清晰、角色完整、数据模型可实现、权限可控
1.3 范围边界
-
支持校内交易为主,可扩展到同城
-
支付可选“模拟支付/第三方占位接口”,不强制接入真实支付
-
物流可选“当面交易/校内自提”为主,支持填写快递信息(可选)
-
不做复杂推荐算法,提供“规则推荐/热度排序/最近浏览”即可
-
前台以移动端为主(H5/小程序/APP 任一形态实现),后台为 Web 管理端
1.4 术语
-
商品(Goods):用户发布的闲置物品条目
-
订单(Order):买卖双方达成交易后的业务记录
-
会话(Conversation):买卖双方围绕商品建立的聊天会话
-
审核(Audit):后台对商品/举报/用户的处理流程
-
风控(Risk Control):对违规行为的识别与处置(拉黑、下架、封禁)
2. 用户角色与权限
2.1 角色定义
-
游客(未登录)
-
学生用户(注册登录)
-
运营/审核员(后台)
-
客服(后台,处理申诉/纠纷)
-
系统管理员(后台,配置权限、菜单、账号)
2.2 角色能力边界(摘要)
| 角色 | 主要能力 | 限制 |
|---|---|---|
| 游客 | 浏览公开商品、搜索筛选、查看商品详情与评价概览 | 不可聊天、下单、发布、收藏 |
| 学生用户 | 发布/管理商品、收藏、聊天、下单、评价、举报、查看订单 | 可配置:新用户发帖数量/频率限制、防骚扰策略 |
| 运营/审核员 | 商品审核、类目管理、举报处理、内容治理、运营配置(banner/公告) | 不可修改权限体系 |
| 客服 | 纠纷处理、退款/申诉辅助、聊天记录取证查看(受审计) | 不可进行内容发布与权限配置 |
| 系统管理员 | 后台用户/角色/菜单/接口权限配置、系统参数配置、审计日志查看 | 最高权限,操作必须可审计 |
3. 功能需求(按模块)
3.0 客户端形态与移动端功能概览
移动端作为主要用户入口,采用底部 Tab 导航,包含:
-
首页:推荐/最新商品流,支持下拉刷新、分页加载
-
分类:类目树浏览,支持筛选与排序
-
发布:发布商品(图片上传、类目选择、价格与成色等)
-
消息:会话列表、实时聊天、系统通知入口
-
我的:个人信息、我的发布、我的收藏、我的订单、设置与帮助
移动端关键页面与能力(摘要):
-
登录/注册页:手机号+验证码注册/登录,支持退出登录
-
商品列表页:关键字搜索、筛选(价格/成色/交易方式/时间)、排序(最新/价格/热度)
-
商品详情页:图文详情、卖家信息、收藏、发起聊天、下单
-
发布/编辑页:草稿、图片管理、上架/下架
-
订单页:买家/卖家双视角,状态流转、取消、确认收货、评价、退款入口
-
消息页:未读数、置顶/免打扰(可选)、断线重连消息补拉(实时聊天需求)
3.1 账号与安全
3.1.1 注册登录
-
支持手机号+验证码登录(或邮箱+验证码,占位实现)
-
支持退出登录、修改头像昵称、绑定/解绑联系方式(可选)
-
支持找回账号(验证码)
3.1.2 账号安全
-
多端登录策略:允许/不允许(配置项)
-
异常登录提醒(站内通知)
-
封禁/解封:后台可对用户进行禁言/封号/拉黑处置
3.2 商品模块
3.2.1 发布商品
-
字段:标题、分类、成色、新旧程度、价格、是否可议价、交易方式(当面/快递)、所在地(校区)、详情描述、图片(1~9)
-
草稿保存与继续编辑
-
发布后进入“上架中/审核中”(是否先审后发可配置)
3.2.2 商品管理
-
卖家可编辑、下架、删除(软删)、重新上架
-
支持设置“已售出”状态(与订单联动)
-
支持查看浏览量、收藏量、咨询量(统计字段)
3.2.3 浏览与详情
-
分类浏览:一级类目/二级类目
-
商品详情:图片轮播、价格、成色、卖家信息、评价概览、相似推荐(规则)
-
足迹:记录用户浏览历史
3.3 搜索与筛选
-
关键字搜索:标题/描述(可用数据库 LIKE 或全文索引占位)
-
筛选:分类、价格区间、成色、交易方式、发布时间
-
排序:最新、价格升/降、热度(浏览/收藏)
3.4 收藏与关注
-
收藏商品:收藏/取消收藏
-
收藏列表:按上架/下架/已售分组展示
-
关注卖家(可选):关注列表与动态(毕业设计可选项)
3.5 实时沟通(站内聊天)
-
基于“商品维度”创建会话:买家对某商品发起咨询,生成会话
-
采用 WebSocket 长连接实现实时收发;断线重连后支持按序补拉消息(按 seq 或消息ID)
-
支持文本消息、图片消息(可选)、系统提示消息(如“对方已下单/订单状态变更”)
-
支持会话未读数、已读回执(可选)、消息送达状态(可选)
-
聊天安全:频率限制、敏感词过滤(简化)、违规举报入口
3.6 交易与订单
3.6.1 下单
-
买家在商品详情发起下单,生成订单号
-
订单关联单商品(校园二手常见 1 件),不做购物车
-
价格策略:一口价;可选“议价成交价”(双方确认后下单)
3.6.2 支付(可模拟)
-
支付状态:未支付、支付中、已支付、支付失败、已关闭
-
支持超时未支付自动关闭(定时任务,占位)
-
支持支付凭证记录(流水号、渠道、金额)
-
支持支付宝沙箱支付:创建预下单、回调验签(占位实现)、落库支付结果
3.6.3 发货/当面交易
-
交易方式为当面:卖家确认交付后,买家确认收货
-
交易方式为快递:卖家填写快递公司与单号(可选)
3.6.4 订单状态流转(核心)
订单状态建议枚举:
-
CREATED(已创建待支付)
-
PAID(已支付待交付)
-
DELIVERING(交付中/已发货)
-
FINISHED(交易完成)
-
CANCELED(已取消)
-
REFUNDING(退款中)
-
REFUNDED(已退款)
-
CLOSED(已关闭/超时关闭)
3.6.5 退款与纠纷(毕业设计可选但建议具备)
-
买家在“已支付待交付/交付中”可发起退款申请(配置条件)
-
卖家同意/拒绝,拒绝则进入客服介入(后台工单)
-
退款记录与处理结论可追溯
3.7 评价与信誉体系
-
评价入口:订单完成后,买家对卖家与商品进行评分(1~5)+文字+图片(可选)
-
卖家可对买家进行交易评价(可选)
-
信誉分:基于近 N 笔交易评分、纠纷率、违规次数计算(规则化)
3.8 举报与内容治理
-
举报对象:商品、用户、聊天消息
-
举报类型:虚假信息、违禁品、诈骗、辱骂、其他
-
处理结果:驳回、下架商品、警告用户、禁言、封号
-
所有处置必须记录操作日志与证据(截图/聊天记录引用)
3.9 消息通知
-
系统通知:审核结果、订单状态变更、退款进度、封禁通知
-
站内信:与聊天区分(通知中心)
-
已读/未读状态与角标
3.10 后台管理(运营/审核/管理员)
3.10.1 商品审核
-
审核列表:待审、通过、驳回
-
审核项:标题/描述/图片合规、类目正确、价格合理(可选规则)
-
审核结果:通过/驳回(需填写原因),操作留痕
3.10.2 用户与风控
-
用户列表:基本信息、信誉概览、违规次数
-
处置:禁言、封号、解封、黑名单
3.10.3 举报处理
-
举报列表:状态(待处理/处理中/已结案/已驳回)
-
支持查看关联商品、聊天记录、历史处置
3.10.4 运营配置
-
类目管理:增删改查、层级关系、排序
-
Banner/公告:配置展示位、上下线时间
3.10.5 数据统计
-
核心指标:日活、发布量、成交量、GMV(模拟)、审核通过率、举报结案率
-
支持按时间维度筛选与导出(可选)
3.10.6 权限系统
-
RBAC:后台用户—角色—菜单/接口权限
-
支持按钮级权限(如“审核通过”“驳回”“封禁用户”)
4. 关键业务流程(文字版)
4.1 商品发布与审核流程
-
卖家填写商品信息并提交
-
若“先审后发”:商品进入审核中,前台不可见
-
审核员通过:商品上架;驳回:卖家收到通知,可修改重提
4.2 咨询—下单—成交流程(担保/模拟支付)
-
买家在商品详情发起咨询,产生会话
-
买家确认购买,发起下单生成订单(CREATED)
-
买家完成支付(PAID)
-
卖家交付:当面/发货(DELIVERING)
-
买家确认收货(FINISHED)
-
买家进行评价,信誉体系更新
4.3 举报与处置流程
-
用户提交举报并上传证据
-
运营/客服审核证据并给出结论
-
若属实:下架商品/处罚账号/封禁等,并记录处置
-
被处罚方可在一定期限内发起申诉(可选)
5. 非功能需求
-
性能:商品列表分页查询响应 < 1s(普通条件),聊天消息拉取 < 500ms(局域网环境)
-
可用性:核心服务可用性目标 99%(毕业设计可用本地部署验证)
-
安全:密码/敏感字段加密存储(如有密码登录);接口鉴权(JWT/Session);后台操作审计
-
合规:图片与文本敏感内容拦截(简化版:关键词黑名单)
-
可维护:所有状态枚举统一字典;数据库字段命名统一;软删除可追溯
6. 数据库设计
6.1 统一字段规范(建议)
所有业务表建议包含:
-
id:BIGINT 主键
-
created_at / updated_at:DATETIME
-
created_by / updated_by:BIGINT(可选)
-
is_deleted:TINYINT(1) 软删除标记(可选)
状态、类型等枚举建议统一字典表维护(见 6.2:sys_dict、sys_dict_item)。
6.2 表清单(概览)
-
用户域:app_user、app_user_profile、app_user_address
-
商品域:goods_category、goods、goods_image、goods_tag、goods_tag_rel、goods_favorite、goods_browse_history
-
交易域:trade_order、trade_order_flow、trade_payment、trade_refund、trade_delivery
-
沟通域:im_conversation、im_conversation_member、im_message
-
评价与治理:trade_evaluation、content_report、content_audit_record、risk_punish_record
-
运营域:op_banner、op_notice、op_notice_read
-
文件与日志:file_object、sys_operation_log
-
后台权限(RBAC):sys_user、sys_role、sys_menu、sys_user_role、sys_role_menu、sys_api、sys_role_api
-
字典:sys_dict、sys_dict_item
6.3 字段字典(核心表)
6.3.1 app_user(前台用户)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 用户ID |
| phone | VARCHAR(20) | UNIQUE | 手机号 |
| VARCHAR(100) | NULL | 邮箱 | |
| password_hash | VARCHAR(255) | NULL | 密码摘要(若采用密码登录) |
| nickname | VARCHAR(50) | NOT NULL | 昵称 |
| avatar_url | VARCHAR(500) | NULL | 头像 |
| status | TINYINT | NOT NULL | 账号状态:1正常 2禁言 3封禁 |
| credit_score | INT | NOT NULL | 信誉分(规则计算) |
| last_login_at | DATETIME | NULL | 最近登录时间 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
索引建议:phone、status。
6.3.2 app_user_profile(用户扩展信息)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| user_id | BIGINT | UNIQUE | 关联 app_user.id |
| gender | TINYINT | NULL | 性别:0未知 1男 2女 |
| school_name | VARCHAR(100) | NULL | 学校 |
| campus | VARCHAR(100) | NULL | 校区 |
| major | VARCHAR(100) | NULL | 专业 |
| intro | VARCHAR(300) | NULL | 个人简介 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
6.3.4 app_user_address(收货/交付地址,可选)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 地址ID |
| user_id | BIGINT | NOT NULL | 用户ID |
| receiver_name | VARCHAR(50) | NOT NULL | 收件人 |
| receiver_phone | VARCHAR(20) | NOT NULL | 电话 |
| province | VARCHAR(50) | NULL | 省 |
| city | VARCHAR(50) | NULL | 市 |
| district | VARCHAR(50) | NULL | 区 |
| detail | VARCHAR(200) | NOT NULL | 详细地址 |
| is_default | TINYINT | NOT NULL | 是否默认 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
6.3.5 goods_category(商品类目)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 类目ID |
| parent_id | BIGINT | NULL | 父类目ID(一级为 0 或 NULL) |
| name | VARCHAR(50) | NOT NULL | 类目名称 |
| level | TINYINT | NOT NULL | 层级:1/2 |
| sort | INT | NOT NULL | 排序 |
| status | TINYINT | NOT NULL | 1启用 2停用 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
6.3.6 goods(商品主表)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 商品ID |
| seller_id | BIGINT | NOT NULL | 卖家用户ID |
| category_id | BIGINT | NOT NULL | 类目ID |
| title | VARCHAR(100) | NOT NULL | 标题 |
| description | TEXT | NOT NULL | 详情描述 |
| price | DECIMAL(10,2) | NOT NULL | 一口价 |
| allow_bargain | TINYINT | NOT NULL | 是否可议价 |
| deal_way | TINYINT | NOT NULL | 交易方式:1当面 2快递 3都可 |
| condition_level | TINYINT | NOT NULL | 成色:1全新 2几乎全新 3轻微使用 4明显使用 |
| location_text | VARCHAR(100) | NULL | 位置(校区/地址描述) |
| status | TINYINT | NOT NULL | 0草稿 1审核中 2上架 3下架 4已售 5驳回 |
| audit_status | TINYINT | NOT NULL | 0无需审核 1待审 2通过 3驳回 |
| reject_reason | VARCHAR(200) | NULL | 驳回原因 |
| view_count | INT | NOT NULL | 浏览量 |
| favorite_count | INT | NOT NULL | 收藏量 |
| chat_count | INT | NOT NULL | 咨询量 |
| published_at | DATETIME | NULL | 上架时间 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
索引建议:seller_id、category_id、status、published_at、price。
6.3.7 goods_image(商品图片)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 图片ID |
| goods_id | BIGINT | NOT NULL | 商品ID |
| file_id | BIGINT | NULL | 文件对象ID |
| url | VARCHAR(500) | NOT NULL | 图片URL |
| sort | INT | NOT NULL | 排序 |
| created_at | DATETIME | NOT NULL | 创建时间 |
6.3.8 goods_tag / goods_tag_rel(标签,可选)
goods_tag:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 标签ID |
| name | VARCHAR(30) | UNIQUE | 标签名 |
| created_at | DATETIME | NOT NULL | 创建时间 |
goods_tag_rel:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| goods_id | BIGINT | NOT NULL | 商品ID |
| tag_id | BIGINT | NOT NULL | 标签ID |
| created_at | DATETIME | NOT NULL | 创建时间 |
6.3.9 goods_favorite(收藏)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| user_id | BIGINT | NOT NULL | 用户ID |
| goods_id | BIGINT | NOT NULL | 商品ID |
| created_at | DATETIME | NOT NULL | 创建时间 |
联合唯一建议:user_id + goods_id。
6.3.10 goods_browse_history(足迹)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| user_id | BIGINT | NOT NULL | 用户ID |
| goods_id | BIGINT | NOT NULL | 商品ID |
| browsed_at | DATETIME | NOT NULL | 浏览时间 |
索引建议:user_id + browsed_at。
6.3.11 im_conversation(会话)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 会话ID |
| goods_id | BIGINT | NOT NULL | 商品ID |
| buyer_id | BIGINT | NOT NULL | 买家ID |
| seller_id | BIGINT | NOT NULL | 卖家ID |
| last_message_id | BIGINT | NULL | 最近一条消息ID |
| last_message_at | DATETIME | NULL | 最近消息时间 |
| created_at | DATETIME | NOT NULL | 创建时间 |
联合唯一建议:goods_id + buyer_id(同一买家对同一商品仅一条会话)。
im_conversation_member(会话成员):
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| conversation_id | BIGINT | NOT NULL | 会话ID |
| user_id | BIGINT | NOT NULL | 成员用户ID |
| last_read_message_id | BIGINT | NULL | 最后已读消息ID |
| unread_count | INT | NOT NULL | 未读数 |
| is_muted | TINYINT | NOT NULL | 是否免打扰 |
| is_pinned | TINYINT | NOT NULL | 是否置顶 |
| last_read_at | DATETIME | NULL | 最后阅读时间 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
联合唯一建议:conversation_id + user_id。
6.3.12 im_message(消息)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 消息ID |
| conversation_id | BIGINT | NOT NULL | 会话ID |
| sender_id | BIGINT | NOT NULL | 发送者ID |
| client_msg_id | VARCHAR(64) | NULL | 客户端消息ID(幂等) |
| seq | BIGINT | NOT NULL | 会话内自增序号 |
| msg_type | TINYINT | NOT NULL | 1文本 2图片 3系统 |
| content | TEXT | NOT NULL | 消息内容/图片URL |
| status | TINYINT | NOT NULL | 0已发送 1已送达 2已读 |
| delivered_at | DATETIME | NULL | 送达时间 |
| read_at | DATETIME | NULL | 已读时间 |
| created_at | DATETIME | NOT NULL | 发送时间 |
索引建议:conversation_id + seq,conversation_id + id。
6.3.13 trade_order(订单)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 订单ID |
| order_no | VARCHAR(50) | UNIQUE | 订单号 |
| goods_id | BIGINT | NOT NULL | 商品ID |
| buyer_id | BIGINT | NOT NULL | 买家ID |
| seller_id | BIGINT | NOT NULL | 卖家ID |
| deal_way | TINYINT | NOT NULL | 交易方式:1当面 2快递 |
| deal_price | DECIMAL(10,2) | NOT NULL | 成交价 |
| status | TINYINT | NOT NULL | 订单状态枚举(见 3.6.4) |
| pay_status | TINYINT | NOT NULL | 0未支付 1已支付 2失败 3已关闭 |
| cancel_reason | VARCHAR(200) | NULL | 取消原因 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
索引建议:buyer_id、seller_id、status、created_at。
6.3.14 trade_order_flow(订单流转记录)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| order_id | BIGINT | NOT NULL | 订单ID |
| from_status | TINYINT | NOT NULL | 变更前状态 |
| to_status | TINYINT | NOT NULL | 变更后状态 |
| operator_type | TINYINT | NOT NULL | 1买家 2卖家 3系统 4后台 |
| operator_id | BIGINT | NULL | 操作人ID |
| remark | VARCHAR(200) | NULL | 备注 |
| created_at | DATETIME | NOT NULL | 创建时间 |
6.3.15 trade_payment / trade_refund / trade_delivery(支付、退款、交付)
trade_payment:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| order_id | BIGINT | NOT NULL | 订单ID |
| pay_no | VARCHAR(50) | UNIQUE | 支付流水号 |
| channel | TINYINT | NOT NULL | 1模拟 2支付宝沙箱 3微信占位 |
| amount | DECIMAL(10,2) | NOT NULL | 金额 |
| status | TINYINT | NOT NULL | 0待支付 1成功 2失败 3关闭 |
| paid_at | DATETIME | NULL | 支付完成时间 |
| created_at | DATETIME | NOT NULL | 创建时间 |
trade_refund:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| order_id | BIGINT | NOT NULL | 订单ID |
| refund_no | VARCHAR(50) | UNIQUE | 退款单号 |
| reason | VARCHAR(200) | NOT NULL | 退款原因 |
| amount | DECIMAL(10,2) | NOT NULL | 退款金额 |
| status | TINYINT | NOT NULL | 0申请中 1同意 2拒绝 3退款中 4完成 |
| audit_user_id | BIGINT | NULL | 客服/后台介入人 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
trade_delivery:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| order_id | BIGINT | UNIQUE | 订单ID |
| delivery_type | TINYINT | NOT NULL | 1当面 2快递 |
| express_company | VARCHAR(50) | NULL | 快递公司 |
| express_no | VARCHAR(50) | NULL | 快递单号 |
| delivered_at | DATETIME | NULL | 发货/交付时间 |
| received_at | DATETIME | NULL | 确认收货时间 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
6.3.16 trade_evaluation(评价)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 评价ID |
| order_id | BIGINT | UNIQUE | 订单ID |
| goods_id | BIGINT | NOT NULL | 商品ID |
| rater_id | BIGINT | NOT NULL | 评价人ID(买家) |
| rated_user_id | BIGINT | NOT NULL | 被评价用户ID(卖家) |
| score | TINYINT | NOT NULL | 1~5 |
| content | VARCHAR(500) | NULL | 评价内容 |
| image_urls | TEXT | NULL | 图片URL集合(可选JSON) |
| created_at | DATETIME | NOT NULL | 创建时间 |
6.3.17 content_report(举报)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 举报ID |
| reporter_id | BIGINT | NOT NULL | 举报人 |
| target_type | TINYINT | NOT NULL | 1商品 2用户 3消息 |
| target_id | BIGINT | NOT NULL | 目标ID |
| reason_type | TINYINT | NOT NULL | 举报类型枚举 |
| reason_detail | VARCHAR(500) | NULL | 补充说明 |
| evidence_file_ids | TEXT | NULL | 证据文件ID集合(可选JSON) |
| status | TINYINT | NOT NULL | 0待处理 1处理中 2已结案 3已驳回 |
| handler_id | BIGINT | NULL | 处理人(后台) |
| handle_result | VARCHAR(500) | NULL | 处理结论 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
6.3.18 content_audit_record(内容审核记录)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 记录ID |
| biz_type | TINYINT | NOT NULL | 1商品 2举报 3其他 |
| biz_id | BIGINT | NOT NULL | 业务ID |
| status | TINYINT | NOT NULL | 0待审 1通过 2驳回 |
| auditor_id | BIGINT | NOT NULL | 审核人 |
| remark | VARCHAR(200) | NULL | 备注/原因 |
| created_at | DATETIME | NOT NULL | 创建时间 |
6.3.19 risk_punish_record(处罚记录)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 记录ID |
| user_id | BIGINT | NOT NULL | 被处罚用户 |
| punish_type | TINYINT | NOT NULL | 1警告 2禁言 3封禁 4下架商品 |
| biz_id | BIGINT | NULL | 关联业务ID(商品等) |
| reason | VARCHAR(200) | NOT NULL | 原因 |
| start_at | DATETIME | NULL | 开始时间 |
| end_at | DATETIME | NULL | 结束时间 |
| operator_id | BIGINT | NOT NULL | 操作人(后台) |
| created_at | DATETIME | NOT NULL | 创建时间 |
op_banner:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | BannerID |
| title | VARCHAR(50) | NOT NULL | 标题 |
| image_url | VARCHAR(500) | NOT NULL | 图片 |
| link_url | VARCHAR(500) | NULL | 跳转链接 |
| start_at | DATETIME | NULL | 上线时间 |
| end_at | DATETIME | NULL | 下线时间 |
| status | TINYINT | NOT NULL | 1启用 2停用 |
| sort | INT | NOT NULL | 排序 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
op_notice:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 公告ID |
| title | VARCHAR(100) | NOT NULL | 标题 |
| content | TEXT | NOT NULL | 内容 |
| status | TINYINT | NOT NULL | 1发布 2下线 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
op_notice_read:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| notice_id | BIGINT | NOT NULL | 公告ID |
| user_id | BIGINT | NOT NULL | 用户ID |
| read_at | DATETIME | NOT NULL | 阅读时间 |
6.3.21 file_object(文件对象)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 文件ID |
| biz_type | VARCHAR(50) | NULL | 业务类型(商品/举报) |
| url | VARCHAR(500) | NOT NULL | 访问URL |
| mime_type | VARCHAR(100) | NULL | 类型 |
| size | BIGINT | NULL | 大小 |
| sha256 | VARCHAR(64) | NULL | 摘要(可选) |
| created_at | DATETIME | NOT NULL | 创建时间 |
6.3.22 sys_operation_log(操作日志)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 日志ID |
| operator_type | TINYINT | NOT NULL | 1前台用户 2后台用户 |
| operator_id | BIGINT | NOT NULL | 操作人 |
| action | VARCHAR(100) | NOT NULL | 操作类型 |
| resource_type | VARCHAR(50) | NULL | 资源类型 |
| resource_id | BIGINT | NULL | 资源ID |
| detail | TEXT | NULL | 详情(JSON可选) |
| ip | VARCHAR(50) | NULL | IP |
| created_at | DATETIME | NOT NULL | 创建时间 |
6.4 后台权限模型(RBAC)
6.4.1 sys_user(后台用户)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 后台用户ID |
| username | VARCHAR(50) | UNIQUE | 账号 |
| password_hash | VARCHAR(255) | NOT NULL | 密码摘要 |
| display_name | VARCHAR(50) | NOT NULL | 显示名 |
| status | TINYINT | NOT NULL | 1启用 2停用 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
6.4.2 sys_role(角色)
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 角色ID |
| role_key | VARCHAR(50) | UNIQUE | 角色标识(ADMIN/AUDITOR/CS) |
| role_name | VARCHAR(50) | NOT NULL | 角色名称 |
| status | TINYINT | NOT NULL | 1启用 2停用 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 菜单ID |
| parent_id | BIGINT | NULL | 父级ID |
| menu_type | TINYINT | NOT NULL | 1目录 2菜单 3按钮 |
| name | VARCHAR(50) | NOT NULL | 名称 |
| path | VARCHAR(200) | NULL | 路由路径(目录/菜单) |
| perm_code | VARCHAR(100) | NULL | 权限码(按钮/接口控制用) |
| sort | INT | NOT NULL | 排序 |
| status | TINYINT | NOT NULL | 1启用 2停用 |
| created_at | DATETIME | NOT NULL | 创建时间 |
| updated_at | DATETIME | NOT NULL | 更新时间 |
按钮权限码示例:
-
goods:audit:approve(商品审核通过)
-
goods:audit:reject(商品审核驳回)
-
report:handle(处理举报)
-
user:ban(封禁用户)
-
user:mute(禁言用户)
sys_user_role:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| user_id | BIGINT | NOT NULL | 后台用户ID |
| role_id | BIGINT | NOT NULL | 角色ID |
sys_role_menu:
| 字段 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | BIGINT | PK | 主键 |
| role_id | BIGINT | NOT NULL | 角色ID |
| menu_id | BIGINT | NOT NULL | 菜单ID |
6.5 接口权限(可选增强)
若需要接口级授权,可引入:
-
sys_api:维护接口 URI、方法、权限码
-
sys_role_api:角色与接口权限关联
7. 菜单结构(后台建议)
-
内容治理
-
商品审核
-
审核通过(按钮:goods:audit:approve)
-
审核驳回(按钮:goods:audit:reject)
-
-
举报处理(按钮:report:handle)
-
-
用户管理
-
用户列表
-
禁言(按钮:user:mute)
-
封禁(按钮:user:ban)
-
-
-
交易管理
-
订单列表
-
退款/纠纷
-
-
运营配置
-
类目管理
-
Banner管理
-
公告管理
-
-
统计报表
-
系统管理
-
后台用户
-
角色管理
-
菜单管理
-
操作日志
-
技术描述
移动端 (UniApp + Vue 3)
- 框架 : Vue 3 + UniApp
后台管理系统 (Vue 3 + Element Plus)
- 框架 : Vue 3 + TypeScript
- UI组件库 : Element Plus
- 状态管理 : Pinia + Pinia持久化插件
- 路由管理 : Vue Router 4
- HTTP客户端 : Axios
后端技术栈
- 主框架 : Spring Boot 3
- 语言 : Java
- 构建工具 : Maven
项目截图描述
截图










































