9.4 KiB
9.4 KiB
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-ishareMaven 模块,接入 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 流程
# .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 |