一、业务背景
这是一个个人使用的项目管理系统,主要用于集中管理多个项目与合作店铺的关联关系,包括店铺注册、项目-店铺关联、计费管理、白名单校验等功能。
数据规模:项目 10-50 个,店铺 100-500 个
适用场景:个人使用 + 云服务器部署
二、用户角色
项目管理员 拥有系统所有权限,管理项目、店铺、关联关系、缴费记录
店铺经理 通过店铺令牌访问,可查看关联项目信息、发起续费支付
三、核心功能模块
1. 登录认证
管理员用户名密码登录
登录后可访问系统
2. 项目管理
项目 CRUD(增删改查)
项目字段:中英文名称、描述、分类(网页/小程序/App)
3. 店铺管理
店铺 CRUD
店铺字段:名称、四字标识(唯一)、联系人、联系方式、规模(小/中/大)
4. 关联管理
项目与店铺多对多关联
设置开通日期、到期日期、白名单开关、关联状态(正常/已过期/已禁用)
5. 计费管理(项目定价)
按店铺规模定价:小/中/大三个档次
不同项目可独立定价
通过 project_pricing 表存储每个项目对应每种规模的年费
规模 默认年费 说明
小 999元/年 适合小型店铺
中 2999元/年 适合中型店铺
大 5999元/年 适合大型店铺
6. 缴费管理
记录店铺缴费历史
字段:店铺、项目、金额、日期、年限、支付方式、微信订单号、支付状态、备注
支付状态:0-待支付,1-已支付,2-已退款,3-已取消
7. 支付管理(微信支付续费)
店铺经理可直接发起微信支付续费
当前使用模拟支付模式,无需真实微信支付 SDK
支付流程:生成订单 → 显示二维码 → 模拟支付成功 → 自动更新白名单状态和到期日期
8. 令牌验证(白名单校验)
店铺使用令牌请求验证接口
系统解析令牌,获取店铺标识和日期信息
校验:店铺是否存在 → 是否关联项目 → 是否在白名单 → 是否过期
返回验证结果
一、项目架构
采用前后端分离架构。前端运行在 8002 端口,负责页面展示和用户交互;后端运行在 8080 端口,提供 RESTful API 接口;MySQL 数据库存储 6 张核心表(用户表、项目表、店铺表、关联表、缴费记录表、项目定价表)。
后端采用经典分层架构:Controller 层负责接口暴露和参数校验,Service 层处理核心业务逻辑,Mapper 层通过 MyBatis-Plus 访问数据库,Entity 层对应数据库实体,VO/DTO 层用于前后端数据传输。
核心数据关系:项目与店铺是多对多关系,通过 project_shop_rel 关联表建立联系。每个项目针对每种店铺规模(小/中/大)在 project_pricing 表中独立定价。
二、技术栈
后端使用 JDK 17 + Spring Boot 3 + MyBatis-Plus + MySQL 8.0,通过 Maven 管理依赖。
前端使用 Vue.js 3 + Quasar Framework + Vite 构建,引入 qrcode.vue 库生成支付二维码,使用 fetch 发起 HTTP 请求。
关键点包括:RESTful API 统一以 /api 为前缀并返回 JSON 格式;通过 CorsConfig 配置跨域过滤器;
三、项目亮点
灵活定价模型支持每个项目独立定价;幂等支付避免重复下单;支付成功自动开启白名单并延长到期日期;CORS 通配配置适应端口动态变化;缴费记录列表待支付条目自动置顶。