From 690c900f81a6a8360767b1a1281c6323755d005f Mon Sep 17 00:00:00 2001 From: purovps Date: Tue, 17 Feb 2026 10:20:24 +0000 Subject: [PATCH] add iShare development plan (PigX 5.11.0) --- iShare-dev-plan.md | 277 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 iShare-dev-plan.md diff --git a/iShare-dev-plan.md b/iShare-dev-plan.md new file mode 100644 index 0000000..67938d0 --- /dev/null +++ b/iShare-dev-plan.md @@ -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 |