Files
work_flow_ishare/iShare-dev-plan.md
Admin 2e34dd172b init: iShare Phase D 设计文档完整归档
文档清单:
- README.md                     仓库导航
- iShare-dev-plan.md            开发规划
- SYSTEM_DESIGN.md              系统设计(角色/流程/接口)
- DATABASE_DESIGN_V2.md         数据库完整字段设计
- DATABASE_DESIGN_OVERVIEW.md   设计概要 v4(28张表)
- DECISIONS.md                  6个关键决策记录
- db/ishare_schema_v2.sql       基础建表 SQL
- db/ishare_schema_v3_delta.sql v2→v3 增量(评审修复)
- db/ishare_schema_v4_delta.sql v3→v4 增量(决策确认)
- memory_2026-02-17.md          工作日志

Phase D 完成:28张表定稿,所有决策已确认
2026-02-17 13:27:34 +01:00

278 lines
9.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 |