add iShare development plan (PigX 5.11.0)

This commit is contained in:
2026-02-17 10:20:24 +00:00
parent c29589887d
commit 690c900f81

277
iShare-dev-plan.md Normal file
View 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/pigxPigX 框架备份)|
---
## 二、技术路线
### 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 17javax → 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: 用户端 H52-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.2Java 8 + Spring Boot 2Spring Boot 2 已于 2023 年 EOLJava 8 缺少现代特性。新版 5.11.0 支持单体模式,开发阶段不需要 Nacos/Gateway本地启动一个 JAR 即可,和旧版微服务架构相比开发效率高得多。
### Q2: 单体模式 vs 微服务?
**开发阶段**: 用 `pigx-boot` 单体模式 — 一个进程,本地开发零运维负担。
**生产上线后**: 如并发压力大,再按模块拆分微服务(业务模块无需改代码,只需改部署配置)。
### Q3: 用户端用 H5 还是小程序?
一期先做响应式 H5Vue3可在微信内置浏览器打开无需发布审核。小程序适配二期按需追加。
### 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 |