init: init refactor
This commit is contained in:
@@ -0,0 +1,402 @@
|
||||
# Sundynix 微服务 API 文档
|
||||
|
||||
> Base URL 约定: 各服务独立部署,通过 Nginx 统一代理
|
||||
|
||||
---
|
||||
|
||||
## 一、用户服务 (user-api) — 端口 9001
|
||||
|
||||
### 1.1 公开接口(无需鉴权)
|
||||
|
||||
#### POST /api/user/miniLogin — 微信小程序登录
|
||||
**请求体:**
|
||||
```json
|
||||
{
|
||||
"code": "微信wx.login获取的code",
|
||||
"clientId": "客户端标识(plant/radio)"
|
||||
}
|
||||
```
|
||||
**响应:**
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"token": "eyJhbGciOiJIUzI1NiIs...",
|
||||
"userInfo": {
|
||||
"id": "uuid",
|
||||
"name": "用户u278bb",
|
||||
"nickName": "",
|
||||
"phone": "",
|
||||
"openId": "oXxx...",
|
||||
"avatarId": "",
|
||||
"gender": 0,
|
||||
"isVip": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### POST /api/user/loginByPhone — 手机号登录
|
||||
**请求体:**
|
||||
```json
|
||||
{
|
||||
"code": "微信getPhoneNumber获取的code",
|
||||
"openId": "用户openId",
|
||||
"clientId": "客户端标识"
|
||||
}
|
||||
```
|
||||
**响应:** 同 miniLogin
|
||||
|
||||
---
|
||||
|
||||
#### POST /api/user/login — 账号密码登录
|
||||
**请求体:**
|
||||
```json
|
||||
{
|
||||
"account": "账号",
|
||||
"password": "密码"
|
||||
}
|
||||
```
|
||||
**响应:** 同 miniLogin
|
||||
|
||||
---
|
||||
|
||||
### 1.2 鉴权接口(Header: Authorization: Bearer {token})
|
||||
|
||||
#### GET /api/user/info — 获取当前用户信息
|
||||
**响应:**
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"userInfo": { /* 用户完整信息 */ }
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### PUT /api/user/update — 更新用户信息
|
||||
**请求体:**
|
||||
```json
|
||||
{
|
||||
"name": "新名字",
|
||||
"account": "新账号",
|
||||
"phone": "13800138000",
|
||||
"avatarId": "文件ID",
|
||||
"nickName": "昵称"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### PUT /api/user/changePassword — 修改密码
|
||||
```json
|
||||
{ "oldPassword": "旧密码", "newPassword": "新密码" }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### POST /api/user/list — 用户列表(管理后台)
|
||||
```json
|
||||
{ "current": 1, "pageSize": 10, "account": "", "phone": "" }
|
||||
```
|
||||
**响应:**
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"data": { "list": [], "total": 0, "current": 1, "size": 10 }
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### DELETE /api/user/delete — 删除用户
|
||||
```json
|
||||
{ "ids": ["id1", "id2"] }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### GET /api/user/location?longitude=116.40&latitude=39.90 — 获取位置
|
||||
|
||||
#### GET /api/user/weather?adcode=110000 — 获取天气
|
||||
|
||||
---
|
||||
|
||||
## 二、文件服务 (file-api) — 端口 9002
|
||||
|
||||
> 所有接口需要鉴权
|
||||
|
||||
#### POST /api/file/upload — 上传文件
|
||||
**请求:** `multipart/form-data`,字段名 `file`
|
||||
**响应:**
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"data": {
|
||||
"id": "文件ID",
|
||||
"name": "filename.jpg",
|
||||
"url": "https://res.sundynix.cn/...",
|
||||
"suffix": "jpg",
|
||||
"md5": "abc123..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### DELETE /api/file/delete — 删除文件
|
||||
```json
|
||||
{ "ids": ["fileId1", "fileId2"] }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### POST /api/file/list — 文件列表
|
||||
```json
|
||||
{ "current": 1, "pageSize": 10, "name": "" }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### GET /api/file/:id — 获取文件详情
|
||||
|
||||
---
|
||||
|
||||
## 三、系统服务 (system-api) — 端口 9003
|
||||
|
||||
> 所有接口需要鉴权
|
||||
|
||||
### 3.1 客户端管理
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/sys/client/create | 创建客户端 |
|
||||
| PUT | /api/sys/client/update | 更新客户端 |
|
||||
| DELETE | /api/sys/client/delete | 删除客户端 |
|
||||
| POST | /api/sys/client/list | 客户端列表 |
|
||||
|
||||
### 3.2 角色管理
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/sys/role/create | 创建角色 |
|
||||
| PUT | /api/sys/role/update | 更新角色 |
|
||||
| DELETE | /api/sys/role/delete | 删除角色 |
|
||||
| POST | /api/sys/role/list | 角色列表 |
|
||||
|
||||
### 3.3 菜单管理
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/sys/menu/create | 创建菜单 |
|
||||
| PUT | /api/sys/menu/update | 更新菜单 |
|
||||
| DELETE | /api/sys/menu/delete | 删除菜单 |
|
||||
| GET | /api/sys/menu/list | 菜单树形列表 |
|
||||
| POST | /api/sys/menu/byRole | 根据角色获取菜单 |
|
||||
|
||||
### 3.4 操作日志
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/sys/log/list | 操作日志列表 |
|
||||
| DELETE | /api/sys/log/delete | 删除日志 |
|
||||
|
||||
### 3.5 字典管理
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/sys/dict/create | 创建字典 |
|
||||
| PUT | /api/sys/dict/update | 更新字典 |
|
||||
| DELETE | /api/sys/dict/delete | 删除字典 |
|
||||
| POST | /api/sys/dict/list | 字典列表 |
|
||||
|
||||
---
|
||||
|
||||
## 四、植物服务 (plant-api) — 端口 9004
|
||||
|
||||
### 4.1 公开接口
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/plant/callback/wechatpay | 微信支付回调 |
|
||||
|
||||
### 4.2 我的植物(需鉴权)
|
||||
| 方法 | 路径 | 说明 | 请求体示例 |
|
||||
|------|------|------|-----------|
|
||||
| POST | /api/plant/my/create | 创建植物 | `{name, plantTime, placement, imgIds[]}` |
|
||||
| PUT | /api/plant/my/update | 更新植物 | `{id, name, status, ...}` |
|
||||
| DELETE | /api/plant/my/delete | 删除植物 | `{ids[]}` |
|
||||
| POST | /api/plant/my/list | 植物列表 | `{current, pageSize, name}` |
|
||||
| GET | /api/plant/my/:id | 植物详情 | — |
|
||||
| POST | /api/plant/my/carePlan | 添加养护计划 | `{plantId, name, targetAction, period}` |
|
||||
| POST | /api/plant/my/careRecord | 添加养护记录 | `{plantId, planId, action}` |
|
||||
| POST | /api/plant/my/growthRecord | 添加成长记录 | `{plantId, content, imgIds[]}` |
|
||||
|
||||
### 4.3 百科
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/plant/wiki/list | 百科列表 |
|
||||
| GET | /api/plant/wiki/:id | 百科详情 |
|
||||
| GET | /api/plant/wiki/class/list | 分类列表 |
|
||||
| POST | /api/plant/wiki/class/create | 创建分类 |
|
||||
| POST | /api/plant/wiki/star | 收藏/取消百科 |
|
||||
|
||||
### 4.4 社区帖子
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/plant/post/create | 发布帖子 |
|
||||
| POST | /api/plant/post/list | 帖子列表 |
|
||||
| GET | /api/plant/post/:id | 帖子详情 |
|
||||
| DELETE | /api/plant/post/delete | 删除帖子 |
|
||||
| POST | /api/plant/post/comment | 评论帖子 |
|
||||
| POST | /api/plant/post/like | 点赞帖子 |
|
||||
|
||||
### 4.5 其他
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| GET | /api/plant/topic/list | 话题列表 |
|
||||
| POST | /api/plant/topic/create | 创建话题 |
|
||||
| POST | /api/plant/ocr/classify | OCR植物识别 |
|
||||
| POST | /api/plant/exchange/list | 兑换商品列表 |
|
||||
| POST | /api/plant/exchange/order | 兑换商品 |
|
||||
| POST | /api/plant/ai/chat | AI问答 |
|
||||
| GET | /api/plant/ai/history | 聊天历史 |
|
||||
| GET | /api/plant/profile/info | 获取用户资料 |
|
||||
| PUT | /api/plant/profile/update | 更新用户资料 |
|
||||
| POST | /api/plant/config/level/list | 等级配置列表 |
|
||||
| POST | /api/plant/config/badge/list | 徽章配置列表 |
|
||||
|
||||
---
|
||||
|
||||
## 五、电台服务 (radio-api) — 端口 9005
|
||||
|
||||
### 5.1 公开接口
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/radio/callback/wechatpay | 微信支付回调 |
|
||||
|
||||
### 5.2 分类管理(需鉴权)
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/radio/category/create | 创建分类 |
|
||||
| PUT | /api/radio/category/update | 更新分类 |
|
||||
| DELETE | /api/radio/category/delete | 删除分类 |
|
||||
| POST | /api/radio/category/list | 分类列表 |
|
||||
|
||||
### 5.3 频道管理
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/radio/channel/create | 创建频道 |
|
||||
| PUT | /api/radio/channel/update | 更新频道 |
|
||||
| DELETE | /api/radio/channel/delete | 删除频道 |
|
||||
| POST | /api/radio/channel/list | 频道列表 |
|
||||
| GET | /api/radio/channel/:id | 频道详情 |
|
||||
|
||||
### 5.4 节目管理
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/radio/program/create | 创建节目 |
|
||||
| PUT | /api/radio/program/update | 更新节目 |
|
||||
| DELETE | /api/radio/program/delete | 删除节目 |
|
||||
| POST | /api/radio/program/list | 节目列表 |
|
||||
| GET | /api/radio/program/:id | 节目详情 |
|
||||
| POST | /api/radio/program/tts | TTS生成音频 |
|
||||
|
||||
### 5.5 音色管理
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/radio/voice/create | 创建音色 |
|
||||
| PUT | /api/radio/voice/update | 更新音色 |
|
||||
| DELETE | /api/radio/voice/delete | 删除音色 |
|
||||
| POST | /api/radio/voice/list | 音色列表 |
|
||||
|
||||
### 5.6 用户互动
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/radio/interaction/like | 点赞/取消 |
|
||||
| POST | /api/radio/interaction/favorite | 收藏/取消 |
|
||||
| POST | /api/radio/interaction/comment | 评论节目 |
|
||||
| POST | /api/radio/interaction/history | 记录播放历史 |
|
||||
| POST | /api/radio/interaction/history/list | 播放历史 |
|
||||
| POST | /api/radio/interaction/favorite/list | 收藏列表 |
|
||||
|
||||
### 5.7 订阅/支付/VIP
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| GET | /api/radio/subscription/list | 我的订阅 |
|
||||
| POST | /api/radio/pay/create | 创建支付订单 |
|
||||
| POST | /api/radio/vip/list | VIP配置列表 |
|
||||
| GET | /api/radio/vip/info | 我的VIP信息 |
|
||||
|
||||
### 5.8 数据分析
|
||||
| 方法 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| POST | /api/radio/analytics/overview | 数据概览 |
|
||||
| POST | /api/radio/analytics/channel | 频道数据 |
|
||||
| POST | /api/radio/analytics/user | 用户数据 |
|
||||
|
||||
---
|
||||
|
||||
## 六、统一规约
|
||||
|
||||
### 6.1 鉴权方式
|
||||
所有需要鉴权的接口,请在请求头中携带:
|
||||
```
|
||||
Authorization: Bearer {token}
|
||||
```
|
||||
|
||||
### 6.2 统一响应格式
|
||||
```json
|
||||
{
|
||||
"code": 200, // 200成功,400失败,401未授权
|
||||
"msg": "success",
|
||||
"data": {} // 具体数据
|
||||
}
|
||||
```
|
||||
|
||||
### 6.3 分页请求格式
|
||||
```json
|
||||
{ "current": 1, "pageSize": 10 }
|
||||
```
|
||||
|
||||
### 6.4 分页响应格式
|
||||
```json
|
||||
{
|
||||
"list": [],
|
||||
"total": 100,
|
||||
"current": 1,
|
||||
"size": 10
|
||||
}
|
||||
```
|
||||
|
||||
### 6.5 删除请求格式
|
||||
```json
|
||||
{ "ids": ["id1", "id2"] }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 七、数据库设计说明
|
||||
|
||||
### 7.1 用户扩展表设计
|
||||
|
||||
基础用户表 `sundynix_user` 只存储**认证和通用信息**(账号、密码、OpenID、手机号等),各业务服务通过扩展表存储业务特有的用户数据:
|
||||
|
||||
```
|
||||
sundynix_user (基础)
|
||||
├── sundynix_plant_user_profile (植物服务扩展:等级、阳光值、养护统计)
|
||||
└── sundynix_radio_user_profile (电台服务扩展:VIP状态、VIP到期时间)
|
||||
```
|
||||
|
||||
**设计原则:** 新增业务产品时,只需创建新的扩展表,无需修改基础用户表。
|
||||
|
||||
### 7.2 数据库拆分
|
||||
|
||||
| 数据库 | 包含的表 |
|
||||
|--------|---------|
|
||||
| sundynix_user | sundynix_user, sundynix_user_role |
|
||||
| sundynix_file | sundynix_oss |
|
||||
| sundynix_system | sundynix_client, sundynix_role, sundynix_menu, sundynix_role_menu, sundynix_user_role, sundynix_dict, sundynix_operation_record |
|
||||
| sundynix_plant | sundynix_plant_user_profile, sundynix_my_plant, sundynix_care_plan, sundynix_care_record, sundynix_care_task, sundynix_growth_record, sundynix_wiki, sundynix_wiki_class, sundynix_post, sundynix_post_comment, sundynix_post_like, sundynix_post_topic, sundynix_user_star, sundynix_exchange_item, sundynix_exchange_order, sundynix_level_config, sundynix_badge_config, sundynix_user_badge, sundynix_ai_chat_history |
|
||||
| sundynix_radio | sundynix_radio_user_profile, sundynix_radio_category, sundynix_radio_channel, sundynix_radio_program, sundynix_radio_voice, sundynix_radio_like, sundynix_radio_favorite, sundynix_radio_comment, sundynix_radio_history, sundynix_radio_subscription, sundynix_radio_subscription_order, sundynix_radio_pay_notify, sundynix_radio_vip_config, sundynix_radio_listen_log |
|
||||
|
||||
Reference in New Issue
Block a user