add iShare development plan (PigX 5.11.0)
This commit is contained in:
277
iShare-dev-plan.md
Normal file
277
iShare-dev-plan.md
Normal file
@@ -0,0 +1,277 @@
|
||||
# iShare 开发规划
|
||||
|
||||
> 流媒体账号合租分享平台
|
||||
> 基于 PigX 5.11.0 二次开发
|
||||
> 制定日期: 2026-02-17
|
||||
|
||||
---
|
||||
|
||||
## 一、项目背景
|
||||
|
||||
| 项目 | 说明 |
|
||||
|------|------|
|
||||
| 产品定位 | 流媒体订阅合租平台(Netflix/Spotify/Apple TV 等合租分享) |
|
||||
| 核心价值 | 用户以正价 10%-30% 享受正版流媒体服务 |
|
||||
| 已有资产 | iShare 旧版代码(基于 PigX 5.2)、数据库设计、Figma 设计稿 |
|
||||
| 目标框架 | PigX 5.11.0(最新版,Java 17 + Spring Boot 3) |
|
||||
| 代码仓库 | https://git.puro.im/purovps/pigx(PigX 框架备份)|
|
||||
|
||||
---
|
||||
|
||||
## 二、技术路线
|
||||
|
||||
### 2.1 为什么迁移到 PigX 5.11.0
|
||||
|
||||
| 维度 | 旧版 (5.2) | 新版 (5.11.0) |
|
||||
|------|-----------|--------------|
|
||||
| Java | JDK 8 | JDK 17 (LTS) |
|
||||
| Spring Boot | 2.x | 3.5.9 |
|
||||
| Spring Cloud Alibaba | 旧版 | 2023.0.3.3 |
|
||||
| 包名 | javax.* | jakarta.* |
|
||||
| 部署模式 | 仅微服务 | 支持单体(pigx-boot) + 微服务双模式 |
|
||||
| AI 能力 | 无 | LangChain4j + Spring AI + pgvector |
|
||||
| 前端 | Vue2 | Vue3 + TypeScript + Vite + Tailwind |
|
||||
|
||||
**结论**: 5.11.0 支持单体模式部署,开发初期用 `pigx-boot` 单体模式,极大降低运维复杂度;后期需要时再拆微服务。
|
||||
|
||||
### 2.2 整体技术栈
|
||||
|
||||
**后端**
|
||||
- Java 17 + Spring Boot 3.5.9
|
||||
- Spring Cloud Alibaba 2023(微服务模式时)
|
||||
- MyBatis-Plus + MySQL(业务数据)
|
||||
- Redis(缓存、Session)
|
||||
- Nacos(配置中心、服务发现)
|
||||
- Maven 多模块项目
|
||||
|
||||
**前端(管理后台)**
|
||||
- Vue 3 + TypeScript + Vite
|
||||
- Tailwind CSS
|
||||
- 基于 pigx-ui 二次开发
|
||||
|
||||
**前端(用户 H5/Web)**
|
||||
- Vue 3 + TypeScript + Vite(独立项目)
|
||||
- 移动端优先,响应式设计
|
||||
- 基于 Figma 设计稿实现
|
||||
|
||||
**部署**
|
||||
- 开发阶段: Docker Compose 单体部署(pigx-boot)
|
||||
- 生产阶段: Docker + Drone CI/CD 自动化
|
||||
- 数据库: MySQL(复用 VPS 上的 MariaDB)
|
||||
|
||||
### 2.3 仓库规划
|
||||
|
||||
| 仓库 | 说明 | Git 地址(待创建)|
|
||||
|------|------|-----------------|
|
||||
| `ishare-backend` | PigX 后端主仓库(含 pigx-ishare 业务模块) | git.puro.im/purovps/ishare-backend |
|
||||
| `ishare-admin` | 管理后台前端(基于 pigx-ui) | git.puro.im/purovps/ishare-admin |
|
||||
| `ishare-web` | 用户端 H5/Web 前端 | git.puro.im/purovps/ishare-web |
|
||||
|
||||
---
|
||||
|
||||
## 三、架构设计
|
||||
|
||||
### 3.1 模块结构(后端)
|
||||
|
||||
```
|
||||
ishare-backend/
|
||||
├── pigx-boot/ # 单体部署启动器(开发阶段使用)
|
||||
├── pigx-ishare/ # ★ iShare 业务模块(核心新增)
|
||||
│ └── src/main/java/
|
||||
│ ├── controller/ # REST API
|
||||
│ ├── service/ # 业务逻辑
|
||||
│ ├── mapper/ # MyBatis Mapper
|
||||
│ ├── entity/ # 实体类
|
||||
│ └── dto/ # 数据传输对象
|
||||
├── pigx-auth/ # 认证(PigX 原版,无侵入)
|
||||
├── pigx-upms-biz/ # 用户权限管理(PigX 原版)
|
||||
├── pigx-gateway/ # 网关(微服务模式时使用)
|
||||
├── pigx-common/ # 公共模块(PigX 原版)
|
||||
├── db/
|
||||
│ ├── 0pigxx_boot.sql # PigX 基础表
|
||||
│ └── 1ishare_schema.sql # iShare 业务表(迁移自现有设计)
|
||||
└── docker-compose.yml # 本地开发环境
|
||||
```
|
||||
|
||||
### 3.2 数据库设计(沿用现有,小幅调整)
|
||||
|
||||
**核心业务表(as_*)**(已有设计,直接复用)
|
||||
- `as_platform` — 流媒体平台
|
||||
- `as_platform_type` — 平台分类
|
||||
- `as_sub_plan` — 订阅计划
|
||||
- `as_sub_payroll` — 付费方案
|
||||
- `as_sub_account` — 订阅账号(含加密凭据)
|
||||
- `as_sub_product` — 合租商品
|
||||
- `as_sub_product_comment` — 商品评价
|
||||
- `as_user_sub` — 用户订阅关系
|
||||
|
||||
**新增考虑**(二期)
|
||||
- `as_order` — 订单表(支付流程)
|
||||
- `as_withdraw` — 提现记录
|
||||
- `as_invite` — 邀请关系(推广中心)
|
||||
|
||||
**App 基础表(app_*)**(PigX 原版提供)
|
||||
- `app_user`、`app_social_details`(社交登录)
|
||||
- `app_page`、`app_tabbar`(页面装修)
|
||||
|
||||
### 3.3 核心业务流程
|
||||
|
||||
```
|
||||
用户端:
|
||||
注册/登录(手机/邮箱/社交)
|
||||
→ 浏览平台列表 + 筛选
|
||||
→ 查看合租商品详情
|
||||
→ 下单付款(一期:手动确认)
|
||||
→ 获取账号信息
|
||||
→ 评价
|
||||
|
||||
车主端(合租发起方):
|
||||
发布合租商品 → 等待拼客 → 管理席位 → 续费/关闭
|
||||
|
||||
管理后台:
|
||||
平台管理 → 订阅计划管理 → 商品审核 → 订单管理 → 用户管理
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、开发阶段规划
|
||||
|
||||
### Phase 0: 环境搭建(1-2天)
|
||||
|
||||
- [ ] 在 Gitea 创建三个仓库(ishare-backend / ishare-admin / ishare-web)
|
||||
- [ ] fork/copy 新版 PigX 5.11.0 到 ishare-backend,清理无关模块(pigx-knowledge AI相关)
|
||||
- [ ] 本地搭建开发环境(MySQL + Redis + IDEA)
|
||||
- [ ] 配置 VPS Drone CI/CD pipeline(`.drone.yml`)
|
||||
- [ ] 创建 iShare 数据库,导入建表 SQL
|
||||
|
||||
### Phase 1: 后端基础功能(1-2周)
|
||||
|
||||
**目标**: 完成核心 CRUD API,管理后台可用
|
||||
|
||||
- [ ] 新增 `pigx-ishare` Maven 模块,接入 pigx-boot
|
||||
- [ ] 迁移 as-app-server 代码到 Java 17(javax → jakarta,注解调整)
|
||||
- [ ] 实现平台管理接口(CRUD: `as_platform` / `as_platform_type`)
|
||||
- [ ] 实现订阅计划管理接口(`as_sub_plan` / `as_sub_payroll`)
|
||||
- [ ] 实现商品管理接口(`as_sub_product` + 评价)
|
||||
- [ ] 实现账号管理接口(`as_sub_account`,账号密码加密存储)
|
||||
- [ ] 实现用户订阅管理(`as_user_sub`)
|
||||
- [ ] App 用户注册/登录 API(手机+邮箱+验证码,复用 pigx-auth)
|
||||
- [ ] Swagger/Knife4j 接口文档
|
||||
|
||||
### Phase 2: 管理后台前端(1周)
|
||||
|
||||
**目标**: 管理员可通过后台管理数据
|
||||
|
||||
- [ ] fork pigx-ui 到 ishare-admin,调整品牌样式
|
||||
- [ ] 平台管理页面
|
||||
- [ ] 订阅计划 + 付费方案页面
|
||||
- [ ] 合租商品管理页面(含审核)
|
||||
- [ ] 用户管理页面
|
||||
- [ ] 订单/订阅查看页面
|
||||
|
||||
### Phase 3: 用户端 H5(2-3周)
|
||||
|
||||
**目标**: 用户可完成合租全流程
|
||||
|
||||
按 Figma 设计稿实现:
|
||||
|
||||
- [ ] 首页/欢迎页(品牌展示)
|
||||
- [ ] 登录/注册页(手机+邮箱+社交登录入口)
|
||||
- [ ] 忘记密码(验证码找回)
|
||||
- [ ] 主页/服务列表(平台卡片 + 分类筛选)
|
||||
- [ ] 服务详情页(介绍 + 价格套餐 + 评价)
|
||||
- [ ] 购买流程(选套餐 → 确认订单 → 支付 → 获取账号)
|
||||
- [ ] 广场/拼车(浏览他人发起的合租)
|
||||
- [ ] 推广中心(邀请码 + 返现记录)
|
||||
- [ ] 个人中心(我的订阅 + 账单 + 设置)
|
||||
- [ ] 底部 Tab 导航(首页 / 广场 / 推广 / 我的)
|
||||
|
||||
### Phase 4: 支付集成(按需)
|
||||
|
||||
- [ ] 对接支付宝/微信支付(或先用余额/人工确认模式)
|
||||
- [ ] 订单状态流转(待付款→已付款→使用中→已到期)
|
||||
- [ ] 自动续费提醒
|
||||
|
||||
### Phase 5: 测试 & 上线
|
||||
|
||||
- [ ] 接口联调测试
|
||||
- [ ] 账号信息安全审计(加密方案验证)
|
||||
- [ ] VPS 生产环境部署
|
||||
- [ ] 性能基准测试(并发下单)
|
||||
|
||||
---
|
||||
|
||||
## 五、CI/CD 流程
|
||||
|
||||
```yaml
|
||||
# .drone.yml 结构(参考 jshERP 配置)
|
||||
steps:
|
||||
- name: backend-build
|
||||
image: maven:3.9-eclipse-temurin-17
|
||||
commands:
|
||||
- mvn clean package -DskipTests -P boot
|
||||
|
||||
- name: frontend-admin-build
|
||||
image: node:18-alpine
|
||||
commands:
|
||||
- cd ../ishare-admin && npm ci && npm run build
|
||||
|
||||
- name: frontend-web-build
|
||||
image: node:18-alpine
|
||||
commands:
|
||||
- cd ../ishare-web && npm ci && npm run build
|
||||
|
||||
- name: deploy
|
||||
image: docker:dind
|
||||
commands:
|
||||
- docker-compose up -d --build
|
||||
```
|
||||
|
||||
触发条件:
|
||||
- push 到 `main` 分支 → 自动构建 + 部署到 VPS
|
||||
- PR → 只跑构建,不部署
|
||||
|
||||
---
|
||||
|
||||
## 六、里程碑
|
||||
|
||||
| 里程碑 | 内容 | 预计时间 |
|
||||
|--------|------|---------|
|
||||
| M0 | 环境搭建完成,空项目跑通 CI | 第 1 周 |
|
||||
| M1 | 后端 API 完成,Swagger 文档可访问 | 第 2-3 周 |
|
||||
| M2 | 管理后台可用,数据录入正常 | 第 3-4 周 |
|
||||
| M3 | 用户端 H5 完成,全流程可跑通 | 第 5-7 周 |
|
||||
| M4 | 支付接入,正式上线 | 第 8+ 周 |
|
||||
|
||||
---
|
||||
|
||||
## 七、关键技术决策
|
||||
|
||||
### Q1: 为什么不直接改旧代码,而是基于新 PigX 重新集成?
|
||||
|
||||
旧代码基于 PigX 5.2(Java 8 + Spring Boot 2),Spring Boot 2 已于 2023 年 EOL,Java 8 缺少现代特性。新版 5.11.0 支持单体模式,开发阶段不需要 Nacos/Gateway,本地启动一个 JAR 即可,和旧版微服务架构相比开发效率高得多。
|
||||
|
||||
### Q2: 单体模式 vs 微服务?
|
||||
|
||||
**开发阶段**: 用 `pigx-boot` 单体模式 — 一个进程,本地开发零运维负担。
|
||||
**生产上线后**: 如并发压力大,再按模块拆分微服务(业务模块无需改代码,只需改部署配置)。
|
||||
|
||||
### Q3: 用户端用 H5 还是小程序?
|
||||
|
||||
一期先做响应式 H5(Vue3),可在微信内置浏览器打开,无需发布审核。小程序适配二期按需追加。
|
||||
|
||||
### Q4: 账号密码安全?
|
||||
|
||||
`as_sub_account` 存储平台登录密码,需要对称加密(AES)存储,密钥由服务端持有,不直接暴露明文。PigX 本身已有 Jasypt 配置加密,沿用即可。
|
||||
|
||||
---
|
||||
|
||||
## 八、参考资源
|
||||
|
||||
| 资源 | 地址 |
|
||||
|------|------|
|
||||
| PigX 框架(最新版) | https://git.puro.im/purovps/pigx |
|
||||
| iShare 旧版代码 | https://git.puro.im/purovps/pigx_ishare/src/branch/pigx_ishare |
|
||||
| 数据库设计文档 | https://git.puro.im/purovps/pigx_ishare/src/branch/pigx_ishare/DATABASE_DESIGN.md |
|
||||
| Figma 设计稿 | iShare_Design/iShare_设计文档.html |
|
||||
| VPS 环境 | https://git.puro.im/purovps/vps_env/src/branch/main/vps-environment.md |
|
||||
Reference in New Issue
Block a user