refactor: 后端标识统一为 FruitShorts,并落地 05 离线下载
为什么: 1) 产品已定名 FruitShorts,但后端仍是 reelshort 系列标识 —— Java 包 com.reelshort、 模块名与 jar 名 reelshort-*、spring.application.name、配置前缀 reelshort.*, 这些会出现在启动日志、命令行和 IDE 里,与产品名不一致。本次整体替换为 fruitshorts, 数据库连接名上一轮已改名,保持不变。 2) 第一阶段下一批第 1 步(05 离线下载)要求把下载授权(设备绑定/有效期/吊销)、 下载任务与断点续传、配额与过期清理、仅 Wi-Fi 规则做成完整接口,本提交一并落地。 3) 顺带修复:schema-phase1.sql 里 playback_ticket / order_event 仍按普通表定义唯一索引, 表分区化之后重跑脚本必定报错(分区表的唯一索引必须包含分区键)。改为在本脚本里就 按分区表定义,并验证脚本可重复执行。
This commit is contained in:
1 parent
a4aa749cc6
commit
b3179fc836
251 files changed
+7261
-767
No files matched your search
+23
-23
@@ -1,4 +1,4 @@
|
||||
# ReelShort 短剧服务 · 后端架构设计
|
||||
# FruitShorts 短剧服务 · 后端架构设计
|
||||
|
||||
> 技术栈:JDK 21(LTS,编译目标 Java 17)+ Spring Boot 3.2 + PostgreSQL 18 + Redis
|
||||
>
|
||||
@@ -94,26 +94,26 @@
|
||||
```
|
||||
java/
|
||||
├── pom.xml # 聚合父 POM,统一依赖版本
|
||||
├── reelshort-common/ # 统一响应/异常/常量/枚举/工具
|
||||
├── reelshort-framework/ # 安全、MyBatis、Redis、日志、限流、OSS、MQ 客户端
|
||||
├── reelshort-module-system/ # 管理员、角色、权限、菜单、配置、操作日志
|
||||
├── reelshort-module-content/ # 短剧、剧集、分类标签、审核发布
|
||||
├── reelshort-module-media/ # 媒资上传、转码、播放地址签名
|
||||
├── reelshort-module-member/ # C 端用户、登录、设备、资料
|
||||
├── reelshort-module-interaction/ # 收藏、点赞、评论、观看历史
|
||||
├── reelshort-module-trade/ # 金币、流水、解锁、订单、VIP
|
||||
├── reelshort-module-stat/ # 数据看板、日聚合
|
||||
├── reelshort-admin-api/ # B 端接口,/admin/**
|
||||
├── reelshort-app-api/ # C 端接口,/app/**
|
||||
└── reelshort-job/ # 定时任务与异步消费者
|
||||
├── fruitshorts-common/ # 统一响应/异常/常量/枚举/工具
|
||||
├── fruitshorts-framework/ # 安全、MyBatis、Redis、日志、限流、OSS、MQ 客户端
|
||||
├── fruitshorts-module-system/ # 管理员、角色、权限、菜单、配置、操作日志
|
||||
├── fruitshorts-module-content/ # 短剧、剧集、分类标签、审核发布
|
||||
├── fruitshorts-module-media/ # 媒资上传、转码、播放地址签名
|
||||
├── fruitshorts-module-member/ # C 端用户、登录、设备、资料
|
||||
├── fruitshorts-module-interaction/ # 收藏、点赞、评论、观看历史
|
||||
├── fruitshorts-module-trade/ # 金币、流水、解锁、订单、VIP
|
||||
├── fruitshorts-module-stat/ # 数据看板、日聚合
|
||||
├── fruitshorts-admin-api/ # B 端接口,/admin/**
|
||||
├── fruitshorts-app-api/ # C 端接口,/app/**
|
||||
└── fruitshorts-job/ # 定时任务与异步消费者
|
||||
```
|
||||
|
||||
起步阶段若不想铺这么开,可先合并为 `reelshort-common` + `reelshort-server`(含 system/content/media)+ `reelshort-app-api`,但包结构仍按域划分(`com.reelshort.content.*`),后续拆模块零成本。
|
||||
起步阶段若不想铺这么开,可先合并为 `fruitshorts-common` + `fruitshorts-server`(含 system/content/media)+ `fruitshorts-app-api`,但包结构仍按域划分(`com.fruitshorts.content.*`),后续拆模块零成本。
|
||||
|
||||
模块内部结构保持一致:
|
||||
|
||||
```
|
||||
com.reelshort.content
|
||||
com.fruitshorts.content
|
||||
├── controller/ # 仅 admin-api / app-api 暴露
|
||||
├── service/ # 接口 + impl
|
||||
├── dal/
|
||||
@@ -126,7 +126,7 @@ com.reelshort.content
|
||||
|
||||
命名约定:
|
||||
|
||||
- 包名 `com.reelshort.<module>.<layer>`
|
||||
- 包名 `com.fruitshorts.<module>.<layer>`
|
||||
- 实体 `Drama`、`DramaEpisode`、`AppUser`
|
||||
- 请求对象 `XxxCreateReqVO` / `XxxUpdateReqVO` / `XxxPageReqVO`,响应对象 `XxxRespVO`
|
||||
- 表名 `<域前缀>_<业务>`,如 `drama`、`drama_episode`、`sys_role`、`app_user`、`stat_drama_daily`
|
||||
@@ -769,9 +769,9 @@ POST /app/pay/callback/{channel}
|
||||
|
||||
```
|
||||
Nginx
|
||||
├── reelshort-admin-api (/admin)
|
||||
├── reelshort-app-api (/app)
|
||||
└── reelshort-job (定时任务、异步消费)
|
||||
├── fruitshorts-admin-api (/admin)
|
||||
├── fruitshorts-app-api (/app)
|
||||
└── fruitshorts-job (定时任务、异步消费)
|
||||
PostgreSQL(主从) / Redis / OSS(或 MinIO) / 转码 Worker(独立容器,可多实例水平扩容)
|
||||
```
|
||||
|
||||
@@ -849,9 +849,9 @@ server:
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:postgresql://127.0.0.1:5432/reelshort
|
||||
username: ${DB_USER:reelshort}
|
||||
password: ${DB_PASSWORD:reelshort}
|
||||
url: jdbc:postgresql://127.0.0.1:5432/fruitshorts
|
||||
username: ${DB_USER:fruitshorts}
|
||||
password: ${DB_PASSWORD:fruitshorts}
|
||||
data:
|
||||
redis:
|
||||
host: 127.0.0.1
|
||||
@@ -861,7 +861,7 @@ spring:
|
||||
max-file-size: 2GB
|
||||
max-request-size: 2GB
|
||||
|
||||
reelshort:
|
||||
fruitshorts:
|
||||
jwt:
|
||||
admin-secret: ${JWT_ADMIN_SECRET}
|
||||
app-secret: ${JWT_APP_SECRET}
|
||||
|
||||
Reference in new issue
Block a user