# whipser **Repository Path**: jasonma1210/whipser ## Basic Information - **Project Name**: whipser - **Description**: 同时运营抖音、小红书、微信视频号、B站这几个平台时,账号管理起来太麻烦了。每个平台都有自己的后台、不同的API、不同的权限体系,操作起来费时费力。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-28 - **Last Updated**: 2026-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多平台账号管理系统 ## 项目简介 这个项目主要解决一个问题:同时运营抖音、小红书、微信视频号、B站这几个平台时,账号管理起来太麻烦了。每个平台都有自己的后台、不同的API、不同的权限体系,操作起来费时费力。 我们做的是一个统一管理后台,把四个平台接进来,在一套系统里完成: - 账号绑定与授权 - 内容发布与管理 - 粉丝和互动数据查看 - 电商相关功能(商品、订单、带货数据) - 子账号权限控制 --- ## 技术栈 | 角色 | 技术选择 | |------|----------| | 后端 | Spring Boot 3.x + Java 17 | | 数据库 | PostgreSQL + JPA/Hibernate | | 前端 | Flutter(支持Web和桌面端) | | 安全 | AES-256-GCM 加密存储敏感数据 | | API限流 | Resilience4j | --- ## 目录结构 ``` whisper/ ├── backend/ # Java后端项目 │ ├── src/main/java/com/multiplatform/ │ │ ├── config/ # 配置类 │ │ ├── controller/ # 接口层 │ │ ├── service/ # 业务逻辑 │ │ ├── repository/ # 数据访问 │ │ ├── entity/ # 实体类 │ │ ├── util/ # 工具类 │ │ ├── annotation/ # 自定义注解 │ │ ├── aspect/ # AOP切面 │ │ └── scheduler/ # 定时任务 │ ├── src/main/resources/ │ │ ├── application.yml # 主配置文件 │ │ └── db/migration/ # Flyway数据库迁移 │ └── src/test/ # 测试代码 │ ├── frontend/ # Flutter前端项目 │ ├── lib/ │ │ ├── main.dart │ │ ├── pages/ # 页面 │ │ ├── widgets/ # 组件 │ │ ├── services/ # API调用 │ │ ├── models/ # 数据模型 │ │ └── providers/ # 状态管理 │ └── pubspec.yaml │ ├── docker/ # Docker相关 │ ├── docker-compose.yml │ └── postgres/ # 数据库迁移脚本 │ └── docs/ # 文档 ├── 需求文档.md └── 接口文档.md ``` --- ## 后端主要模块 ### 1. 平台适配层 每个平台有自己的适配器,统一封装API调用: | 平台 | 适配器类 | API版本 | |------|----------|---------| | 抖音 | DouyinPlatformAdapter | V5.2 | | 小红书 | XiaohongshuPlatformAdapter | V3.0 | | 视频号 | WechatVideoAdapter | V2.0 | | B站 | BilibiliPlatformAdapter | V3.2 | 配置文件在 `application.yml` 中: ```yaml platform: douyin: app-id: ${DOUYIN_APP_ID:} app-secret: ${DOUYIN_APP_SECRET:} callback-url: ${DOUYIN_CALLBACK_URL:} xiaohongshu: app-id: ${XHS_APP_ID:} app-secret: ${XHS_APP_SECRET:} # ... ``` ### 2. 权限系统 采用三级权限体系: - **平台级**:能否使用某个平台 - **模块级**:能否访问某个功能模块(内容、互动、电商等) - **操作级**:具体操作权限(查看、编辑、删除) 关键代码: - `RequirePermission.java` - 权限注解 - `PermissionCheckAspect.java` - 权限校验切面 - `UserPlatformPermission.java` - 用户平台权限实体 ### 3. 数据安全 敏感数据(API凭证、手机号、身份证等)采用AES-256-GCM加密存储: - `AesEncryptionUtil.java` - 加密工具类 - `AesAttributeConverter.java` - JPA自动加解密转换器 - `Masked.java` + `MaskedJsonSerializer.java` - API返回时自动脱敏 ### 4. 定时任务 - `DataSyncScheduler.java` - 数据定时同步(每15分钟) - Token自动刷新(根据各平台规则) --- ## 前端主要模块 ### 权限控制组件 `PermissionWidget` 是核心权限组件,用于控制UI元素的显示/隐藏: ```dart // 只有有内容管理权限才显示发布按钮 PermissionWidget( permission: Permission( platform: PlatformType.douyin, module: PermissionModule.content, operation: PermissionOperation.create, ), child: ElevatedButton( onPressed: _publishContent, child: Text('发布内容'), ), ) ``` ### 主要页面 | 页面 | 路径 | 功能 | |------|------|------| | 登录 | /login | 账号登录 | | 仪表盘 | /dashboard | 数据概览 | | 账号绑定 | /bindings | 平台账号授权 | | 内容管理 | /content | 内容列表、发布 | | 互动管理 | /interaction | 评论、私信 | | 粉丝画像 | /fans | 粉丝数据分析 | | 电商中心 | /ecommerce | 商品、订单 | | 子账号管理 | /subusers | 子账号配置 | | 系统设置 | /settings | 系统配置 | --- ## 核心接口 ### 账号相关 | 接口 | 方法 | 说明 | |------|------|------| | /api/v1/auth/login | POST | 登录 | | /api/v1/auth/register | POST | 注册 | | /api/v1/user/profile | GET | 获取用户信息 | ### 平台绑定 | 接口 | 方法 | 说明 | |------|------|------| | /api/v1/platform/bindings | GET | 获取绑定列表 | | /api/v1/platform/bind | POST | 发起授权绑定 | | /api/v1/platform/callback | GET | OAuth回调 | ### 内容管理 | 接口 | 方法 | 说明 | |------|------|------| | /api/v1/content/list | GET | 内容列表 | | /api/v1/content/publish | POST | 发布内容 | | /api/v1/content/{id} | DELETE | 删除内容 | ### 比价功能 | 接口 | 方法 | 说明 | |------|------|------| | /api/v1/products/price-comparison/compare | POST | 商品比价 | | /api/v1/products/price-comparison/analyze | POST | 选品分析 | --- ## 部署说明 ### 环境要求 - Java 17+ - Node.js 18+ - Flutter 3.x - PostgreSQL 14+ - Redis(可选,用于缓存) ### 本地开发 1. **数据库**:使用Docker启动PostgreSQL ```bash cd docker docker-compose up -d postgres ``` 2. **后端** ```bash cd backend # 配置环境变量或修改application.yml ./mvnw spring-boot:run ``` 3. **前端** ```bash cd frontend flutter pub get flutter run -d chrome ``` ### 环境变量 ```bash # 数据库 DB_HOST=localhost DB_PORT=5432 DB_NAME=whisper DB_USER=postgres DB_PASSWORD=your-password # 各平台API(需要去对应开放平台申请) DOUYIN_APP_ID=xxx DOUYIN_APP_SECRET=xxx XHS_APP_ID=xxx XHS_APP_SECRET=xxx WECHAT_APP_ID=xxx WECHAT_APP_SECRET=xxx BILIBILI_APP_ID=xxx BILIBILI_APP_SECRET=xxx # 比价平台API(可选) MANMANBUY_ENABLED=true MANMANBUY_APPKEY=xxx HUIHUI_ENABLED=true HUIHUI_APPKEY=xxx # 加密密钥(生产环境务必修改) ENCRYPTION_KEY=your-32-byte-encryption-key ``` ### 生产部署 1. 打包后端:`./mvnw clean package` 2. 打包前端:`flutter build web` 3. 使用Nginx反向代理 4. 配置HTTPS 5. 配置定期备份 --- ## 项目进度 当前已完成: - ✅ 基础框架搭建 - ✅ 四个平台API适配 - ✅ 账号绑定与授权 - ✅ 内容管理模块 - ✅ 互动管理模块 - ✅ 电商基础功能 - ✅ 子账号权限系统 - ✅ 数据加密存储 - ✅ API限流与重试 - ✅ 敏感词管理 - ✅ 比价API对接 - ✅ 性能与安全基线 待完善: - 直播管理功能 - AI功能(评论自动回复等) - 完整的数据统计分析 --- ## 相关文档 - [需求规格说明](./多平台(抖音_小红书_视频号_B站)账号管理系统需求文档.md) - [需求差异分析](./项目需求差异分析报告.md) - [接口文档](./docs/api.md) --- *最后更新:2026年3月*