feat(user): Implement user module foundation
This commit is contained in:
@@ -0,0 +1,751 @@
|
||||
# video-user模块目录架构、功能及接口文档
|
||||
|
||||
## 一、目录架构
|
||||
|
||||
```
|
||||
video-user/
|
||||
├── src/
|
||||
│ ├── main/
|
||||
│ │ ├── java/
|
||||
│ │ │ └── com/nuaa/video/user/
|
||||
│ │ │ ├── config/ # 配置类
|
||||
│ │ │ │ ├── FeignConfig.java # Feign配置类
|
||||
│ │ │ │ ├── MinioConfig.java # Minio配置类
|
||||
│ │ │ │ └── SecurityConfig.java # 安全配置类
|
||||
│ │ │ ├── controller/ # 控制器
|
||||
│ │ │ │ ├── UserProfileController.java # 用户资料控制器
|
||||
│ │ │ │ ├── UserFollowController.java # 用户关注控制器
|
||||
│ │ │ │ ├── UserMessageController.java # 用户私信控制器
|
||||
│ │ │ │ ├── UserNotificationController.java # 用户通知控制器
|
||||
│ │ │ │ └── UserSettingController.java # 用户设置控制器
|
||||
│ │ │ ├── dto/ # 数据传输对象
|
||||
│ │ │ │ ├── UserProfileDTO.java # 用户资料DTO
|
||||
│ │ │ │ ├── UserMessageDTO.java # 用户私信DTO
|
||||
│ │ │ │ └── UserSettingDTO.java # 用户设置DTO
|
||||
│ │ │ ├── entity/ # 实体类
|
||||
│ │ │ │ ├── UserInfo.java # 用户信息实体
|
||||
│ │ │ │ ├── UserFollow.java # 用户关注实体
|
||||
│ │ │ │ ├── UserStatDaily.java # 用户每日统计实体
|
||||
│ │ │ │ ├── UserMessage.java # 用户私信实体
|
||||
│ │ │ │ ├── UserNotification.java # 用户通知实体
|
||||
│ │ │ │ └── UserSetting.java # 用户设置实体
|
||||
│ │ │ ├── feign/ # Feign客户端
|
||||
│ │ │ │ └── AuthFeignClient.java # 认证服务Feign客户端
|
||||
│ │ │ ├── filter/ # 过滤器
|
||||
│ │ │ │ └── JwtAuthenticationFilter.java # JWT认证过滤器
|
||||
│ │ │ ├── mapper/ # MyBatis映射接口
|
||||
│ │ │ │ ├── UserInfoMapper.java # 用户信息Mapper
|
||||
│ │ │ │ ├── UserFollowMapper.java # 用户关注Mapper
|
||||
│ │ │ │ ├── UserStatDailyMapper.java # 用户每日统计Mapper
|
||||
│ │ │ │ ├── UserMessageMapper.java # 用户私信Mapper
|
||||
│ │ │ │ ├── UserNotificationMapper.java # 用户通知Mapper
|
||||
│ │ │ │ └── UserSettingMapper.java # 用户设置Mapper
|
||||
│ │ │ ├── service/ # 服务层
|
||||
│ │ │ │ ├── UserInfoService.java # 用户信息服务接口
|
||||
│ │ │ │ ├── UserFollowService.java # 用户关注服务接口
|
||||
│ │ │ │ ├── UserMessageService.java # 用户私信服务接口
|
||||
│ │ │ │ ├── UserNotificationService.java # 用户通知服务接口
|
||||
│ │ │ │ ├── UserSettingService.java # 用户设置服务接口
|
||||
│ │ │ │ └── impl/ # 实现类
|
||||
│ │ │ │ ├── UserInfoServiceImpl.java
|
||||
│ │ │ │ ├── UserFollowServiceImpl.java
|
||||
│ │ │ │ ├── UserMessageServiceImpl.java
|
||||
│ │ │ │ ├── UserNotificationServiceImpl.java
|
||||
│ │ │ │ └── UserSettingServiceImpl.java
|
||||
│ │ │ ├── vo/ # 视图对象
|
||||
│ │ │ │ ├── UserProfileVO.java # 用户资料VO
|
||||
│ │ │ │ ├── UserMessageVO.java # 用户私信VO
|
||||
│ │ │ │ └── UserNotificationVO.java # 用户通知VO
|
||||
│ │ │ └── UserApplication.java # 启动类
|
||||
│ │ └── resources/
|
||||
│ │ ├── mapper/ # MyBatis XML映射文件
|
||||
│ │ │ ├── UserInfoMapper.xml
|
||||
│ │ │ ├── UserFollowMapper.xml
|
||||
│ │ │ ├── UserMessageMapper.xml
|
||||
│ │ │ └── UserNotificationMapper.xml
|
||||
│ │ ├── application.yml # 主配置文件
|
||||
│ │ └── application-dev.yml # 开发环境配置
|
||||
└── pom.xml
|
||||
```
|
||||
|
||||
## 二、功能概述
|
||||
|
||||
### 1. 核心功能
|
||||
|
||||
- **用户资料管理**:创建、查询、更新用户资料,上传头像
|
||||
- **用户关系管理**:关注/取消关注用户,查看关注列表和粉丝列表
|
||||
- **私信系统**:发送和接收私信,管理会话和消息状态
|
||||
- **通知系统**:管理用户收到的系统通知和用户互动通知
|
||||
- **用户设置**:管理用户隐私和通知偏好设置
|
||||
- **用户数据统计**:收集和查询用户活动统计信息
|
||||
|
||||
### 2. 业务流程
|
||||
|
||||
1. **用户资料流程**:
|
||||
- 用户注册时,auth服务创建基本认证信息
|
||||
- auth服务通过Feign调用user服务创建用户资料
|
||||
- 用户可随时更新个人资料信息
|
||||
|
||||
2. **用户关系流程**:
|
||||
- 用户关注他人,增加自己的关注数和对方的粉丝数
|
||||
- 系统为被关注用户创建通知
|
||||
- 用户可查看关注列表和粉丝列表
|
||||
|
||||
3. **私信流程**:
|
||||
- 用户发送私信给其他用户
|
||||
- 接收用户收到未读消息通知
|
||||
- 用户可查看会话列表和详细私信记录
|
||||
|
||||
4. **通知流程**:
|
||||
- 系统根据用户互动(点赞、评论、关注)创建通知
|
||||
- 用户可查看不同类型的通知
|
||||
- 用户可标记通知为已读
|
||||
|
||||
## 三、接口文档
|
||||
|
||||
### 1. 用户资料接口
|
||||
|
||||
#### 1.1 初始化用户资料
|
||||
|
||||
- **URI**: `/user/profile/init`
|
||||
- **方法**: POST
|
||||
- **描述**: 服务内部接口,初始化用户资料(由auth服务在用户注册时调用)
|
||||
- **请求参数**:
|
||||
- `userId`: 用户ID
|
||||
- `username`: 用户名
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
- **错误码**:
|
||||
- `400`: 参数错误
|
||||
- `500`: 服务器内部错误
|
||||
|
||||
#### 1.2 获取当前用户资料
|
||||
|
||||
- **URI**: `/user/profile/current`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取当前登录用户的资料
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"nickname": "用户昵称",
|
||||
"avatar": "头像URL",
|
||||
"gender": 1,
|
||||
"birthday": "1990-01-01",
|
||||
"signature": "个性签名",
|
||||
"region": "地区",
|
||||
"followerCount": 10,
|
||||
"followingCount": 20,
|
||||
"videoCount": 5,
|
||||
"likeCount": 100,
|
||||
"level": 3,
|
||||
"vipLevel": 0,
|
||||
"vipExpireTime": null,
|
||||
"isFollowed": false,
|
||||
"createTime": "2023-01-01T12:00:00"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 1.3 获取指定用户资料
|
||||
|
||||
- **URI**: `/user/profile/public/{userId}`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取指定用户的资料
|
||||
- **路径参数**:
|
||||
- `userId`: 用户ID
|
||||
- **响应**: 与获取当前用户资料相同
|
||||
|
||||
#### 1.4 更新用户资料
|
||||
|
||||
- **URI**: `/user/profile`
|
||||
- **方法**: PUT
|
||||
- **描述**: 更新当前用户资料
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **请求Body**:
|
||||
```json
|
||||
{
|
||||
"nickname": "新昵称",
|
||||
"gender": 1,
|
||||
"birthday": "1990-01-01",
|
||||
"signature": "新的个性签名",
|
||||
"region": "新的地区"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
|
||||
#### 1.5 上传头像
|
||||
|
||||
- **URI**: `/user/profile/avatar`
|
||||
- **方法**: POST
|
||||
- **描述**: 上传用户头像
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- `Content-Type`: multipart/form-data
|
||||
- **请求参数**:
|
||||
- `file`: 图片文件
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": "头像URL"
|
||||
}
|
||||
```
|
||||
|
||||
#### 1.6 搜索用户
|
||||
|
||||
- **URI**: `/user/profile/search`
|
||||
- **方法**: GET
|
||||
- **描述**: 按关键词搜索用户
|
||||
- **请求参数**:
|
||||
- `keyword`: 搜索关键词
|
||||
- `page`: 页码(默认1)
|
||||
- `size`: 每页数量(默认10)
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": {
|
||||
"records": [
|
||||
{
|
||||
"id": 1,
|
||||
"nickname": "用户昵称",
|
||||
"avatar": "头像URL",
|
||||
"signature": "个性签名",
|
||||
"followerCount": 10,
|
||||
"followingCount": 20
|
||||
}
|
||||
],
|
||||
"total": 100,
|
||||
"size": 10,
|
||||
"current": 1,
|
||||
"pages": 10
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 用户关注接口
|
||||
|
||||
#### 2.1 关注用户
|
||||
|
||||
- **URI**: `/user/follow/{followId}`
|
||||
- **方法**: POST
|
||||
- **描述**: 关注指定用户
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **路径参数**:
|
||||
- `followId`: 要关注的用户ID
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
- **错误码**:
|
||||
- `400`: 参数错误(如已关注)
|
||||
- `404`: 用户不存在
|
||||
|
||||
#### 2.2 取消关注
|
||||
|
||||
- **URI**: `/user/follow/{followId}`
|
||||
- **方法**: DELETE
|
||||
- **描述**: 取消关注指定用户
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **路径参数**:
|
||||
- `followId`: 要取消关注的用户ID
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
|
||||
#### 2.3 获取关注列表
|
||||
|
||||
- **URI**: `/user/follow/following/{userId}`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取指定用户的关注列表
|
||||
- **路径参数**:
|
||||
- `userId`: 用户ID
|
||||
- **请求参数**:
|
||||
- `page`: 页码(默认1)
|
||||
- `size`: 每页数量(默认10)
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": {
|
||||
"records": [
|
||||
{
|
||||
"id": 2,
|
||||
"nickname": "被关注用户",
|
||||
"avatar": "头像URL",
|
||||
"signature": "个性签名",
|
||||
"followerCount": 100,
|
||||
"followingCount": 50,
|
||||
"isFollowed": true
|
||||
}
|
||||
],
|
||||
"total": 20,
|
||||
"size": 10,
|
||||
"current": 1,
|
||||
"pages": 2
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 2.4 获取粉丝列表
|
||||
|
||||
- **URI**: `/user/follow/followers/{userId}`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取指定用户的粉丝列表
|
||||
- **路径参数**:
|
||||
- `userId`: 用户ID
|
||||
- **请求参数**:
|
||||
- `page`: 页码(默认1)
|
||||
- `size`: 每页数量(默认10)
|
||||
- **响应**: 与关注列表格式相同
|
||||
|
||||
#### 2.5 检查是否已关注
|
||||
|
||||
- **URI**: `/user/follow/check/{followId}`
|
||||
- **方法**: GET
|
||||
- **描述**: 检查当前用户是否已关注指定用户
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **路径参数**:
|
||||
- `followId`: 被检查的用户ID
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": true // 或 false
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 用户私信接口
|
||||
|
||||
#### 3.1 发送私信
|
||||
|
||||
- **URI**: `/user/message`
|
||||
- **方法**: POST
|
||||
- **描述**: 发送私信给指定用户
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **请求Body**:
|
||||
```json
|
||||
{
|
||||
"receiverId": 2,
|
||||
"content": "私信内容"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
|
||||
#### 3.2 获取私信会话列表
|
||||
|
||||
- **URI**: `/user/message/list`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取当前用户的私信会话列表
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **请求参数**:
|
||||
- `page`: 页码(默认1)
|
||||
- `size`: 每页数量(默认10)
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": {
|
||||
"records": [
|
||||
{
|
||||
"id": 100,
|
||||
"senderId": 2,
|
||||
"senderNickname": "发送者昵称",
|
||||
"senderAvatar": "发送者头像URL",
|
||||
"receiverId": 1,
|
||||
"receiverNickname": "接收者昵称",
|
||||
"receiverAvatar": "接收者头像URL",
|
||||
"content": "最新消息内容",
|
||||
"isRead": 0,
|
||||
"createTime": "2023-05-20T14:30:00"
|
||||
}
|
||||
],
|
||||
"total": 5,
|
||||
"size": 10,
|
||||
"current": 1,
|
||||
"pages": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 3.3 获取私信详情
|
||||
|
||||
- **URI**: `/user/message/detail/{targetId}`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取与指定用户的私信记录
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **路径参数**:
|
||||
- `targetId`: 目标用户ID
|
||||
- **请求参数**:
|
||||
- `page`: 页码(默认1)
|
||||
- `size`: 每页数量(默认20)
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": {
|
||||
"records": [
|
||||
{
|
||||
"id": 100,
|
||||
"senderId": 1,
|
||||
"senderNickname": "当前用户",
|
||||
"senderAvatar": "头像URL",
|
||||
"receiverId": 2,
|
||||
"receiverNickname": "目标用户",
|
||||
"receiverAvatar": "头像URL",
|
||||
"content": "你好",
|
||||
"isRead": 1,
|
||||
"createTime": "2023-05-20T14:28:00"
|
||||
},
|
||||
{
|
||||
"id": 101,
|
||||
"senderId": 2,
|
||||
"senderNickname": "目标用户",
|
||||
"senderAvatar": "头像URL",
|
||||
"receiverId": 1,
|
||||
"receiverNickname": "当前用户",
|
||||
"receiverAvatar": "头像URL",
|
||||
"content": "你好,很高兴认识你",
|
||||
"isRead": 1,
|
||||
"createTime": "2023-05-20T14:30:00"
|
||||
}
|
||||
],
|
||||
"total": 2,
|
||||
"size": 20,
|
||||
"current": 1,
|
||||
"pages": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 3.4 标记私信为已读
|
||||
|
||||
- **URI**: `/user/message/read/{senderId}`
|
||||
- **方法**: PUT
|
||||
- **描述**: 标记来自指定发送者的所有私信为已读
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **路径参数**:
|
||||
- `senderId`: 发送者用户ID
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
|
||||
#### 3.5 获取未读私信数量
|
||||
|
||||
- **URI**: `/user/message/unread/count`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取当前用户的未读私信数量
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": 5
|
||||
}
|
||||
```
|
||||
|
||||
### 4. 用户通知接口
|
||||
|
||||
#### 4.1 获取通知列表
|
||||
|
||||
- **URI**: `/user/notification/list`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取用户通知列表
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **请求参数**:
|
||||
- `type`: 通知类型(1:点赞,2:评论,3:关注,4:系统通知,可选)
|
||||
- `page`: 页码(默认1)
|
||||
- `size`: 每页数量(默认10)
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": {
|
||||
"records": [
|
||||
{
|
||||
"id": 1,
|
||||
"type": 3,
|
||||
"content": "用户小明关注了你",
|
||||
"relatedId": 123,
|
||||
"isRead": 0,
|
||||
"createTime": "2023-05-20T10:00:00"
|
||||
}
|
||||
],
|
||||
"total": 50,
|
||||
"size": 10,
|
||||
"current": 1,
|
||||
"pages": 5
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 4.2 标记所有通知为已读
|
||||
|
||||
- **URI**: `/user/notification/read`
|
||||
- **方法**: PUT
|
||||
- **描述**: 标记当前用户的所有通知为已读
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
|
||||
#### 4.3 标记指定通知为已读
|
||||
|
||||
- **URI**: `/user/notification/read/{notificationId}`
|
||||
- **方法**: PUT
|
||||
- **描述**: 标记指定通知为已读
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **路径参数**:
|
||||
- `notificationId`: 通知ID
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
|
||||
#### 4.4 获取未读通知数量
|
||||
|
||||
- **URI**: `/user/notification/unread/count`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取当前用户的未读通知数量
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": 10
|
||||
}
|
||||
```
|
||||
|
||||
### 5. 用户设置接口
|
||||
|
||||
#### 5.1 获取用户设置
|
||||
|
||||
- **URI**: `/user/setting`
|
||||
- **方法**: GET
|
||||
- **描述**: 获取当前用户的设置
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": {
|
||||
"privacyLevel": 1,
|
||||
"commentNotify": 1,
|
||||
"likeNotify": 1,
|
||||
"followNotify": 1,
|
||||
"systemNotify": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 5.2 更新用户设置
|
||||
|
||||
- **URI**: `/user/setting`
|
||||
- **方法**: PUT
|
||||
- **描述**: 更新当前用户的设置
|
||||
- **请求头**:
|
||||
- `Authorization`: Bearer {accessToken}
|
||||
- **请求Body**:
|
||||
```json
|
||||
{
|
||||
"privacyLevel": 2,
|
||||
"commentNotify": 1,
|
||||
"likeNotify": 0,
|
||||
"followNotify": 1,
|
||||
"systemNotify": 1
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
|
||||
## 四、数据库表结构
|
||||
|
||||
### 1. user_info (用户信息表)
|
||||
- `id`: bigint - 用户ID (主键)
|
||||
- `nickname`: varchar(64) - 昵称
|
||||
- `avatar`: varchar(256) - 头像URL
|
||||
- `gender`: tinyint - 性别(0:未知,1:男,2:女)
|
||||
- `birthday`: date - 生日
|
||||
- `signature`: varchar(256) - 个性签名
|
||||
- `region`: varchar(128) - 地区
|
||||
- `follower_count`: int - 粉丝数
|
||||
- `following_count`: int - 关注数
|
||||
- `video_count`: int - 视频数
|
||||
- `like_count`: int - 获赞数
|
||||
- `coin_count`: int - 硬币数
|
||||
- `favorite_count`: int - 收藏数
|
||||
- `view_count`: bigint - 播放数
|
||||
- `level`: tinyint - 等级
|
||||
- `vip_level`: tinyint - VIP等级
|
||||
- `vip_expire_time`: datetime - VIP到期时间
|
||||
- `created_by`: varchar(64) - 创建人
|
||||
- `updated_by`: varchar(64) - 更新人
|
||||
- `create_time`: datetime - 创建时间
|
||||
- `update_time`: datetime - 更新时间
|
||||
|
||||
### 2. user_follow (用户关注表)
|
||||
- `id`: bigint - 主键ID
|
||||
- `user_id`: bigint - 用户ID
|
||||
- `follow_id`: bigint - 关注用户ID
|
||||
- `create_time`: datetime - 创建时间
|
||||
|
||||
### 3. user_stat_daily (用户每日统计表)
|
||||
- `id`: bigint - 主键ID
|
||||
- `user_id`: bigint - 用户ID
|
||||
- `stat_date`: date - 统计日期
|
||||
- `follower_increment`: int - 新增粉丝数
|
||||
- `following_increment`: int - 新增关注数
|
||||
- `video_increment`: int - 新增视频数
|
||||
- `like_increment`: int - 新增获赞数
|
||||
- `coin_increment`: int - 新增硬币数
|
||||
- `favorite_increment`: int - 新增收藏数
|
||||
- `view_increment`: bigint - 新增播放数
|
||||
- `create_time`: datetime - 创建时间
|
||||
|
||||
### 4. user_message (用户私信表)
|
||||
- `id`: bigint - 主键ID
|
||||
- `sender_id`: bigint - 发送者ID
|
||||
- `receiver_id`: bigint - 接收者ID
|
||||
- `content`: text - 消息内容
|
||||
- `is_read`: tinyint - 是否已读(0:未读,1:已读)
|
||||
- `create_time`: datetime - 创建时间
|
||||
|
||||
### 5. user_notification (用户通知表)
|
||||
- `id`: bigint - 主键ID
|
||||
- `user_id`: bigint - 用户ID
|
||||
- `type`: tinyint - 通知类型(1:点赞,2:评论,3:关注,4:系统通知)
|
||||
- `content`: text - 通知内容
|
||||
- `related_id`: bigint - 相关ID
|
||||
- `is_read`: tinyint - 是否已读(0:未读,1:已读)
|
||||
- `create_time`: datetime - 创建时间
|
||||
|
||||
### 6. user_setting (用户设置表)
|
||||
- `id`: bigint - 主键ID
|
||||
- `user_id`: bigint - 用户ID
|
||||
- `privacy_level`: tinyint - 隐私等级(1:公开,2:仅关注,3:私密)
|
||||
- `comment_notify`: tinyint - 评论通知(0:关闭,1:开启)
|
||||
- `like_notify`: tinyint - 点赞通知(0:关闭,1:开启)
|
||||
- `follow_notify`: tinyint - 关注通知(0:关闭,1:开启)
|
||||
- `system_notify`: tinyint - 系统通知(0:关闭,1:开启)
|
||||
- `created_by`: varchar(64) - 创建人
|
||||
- `updated_by`: varchar(64) - 更新人
|
||||
- `create_time`: datetime - 创建时间
|
||||
- `update_time`: datetime - 更新时间
|
||||
|
||||
## 五、调用示例
|
||||
|
||||
### 1. 获取用户资料
|
||||
|
||||
```bash
|
||||
# 使用cURL
|
||||
curl -X GET http://localhost:9002/user/profile/current \
|
||||
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..."
|
||||
|
||||
# 使用JavaScript
|
||||
fetch('http://localhost:9002/user/profile/current', {
|
||||
headers: {
|
||||
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiJ9...'
|
||||
}
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => console.log(data));
|
||||
```
|
||||
|
||||
### 2. 关注用户
|
||||
|
||||
```bash
|
||||
# 使用cURL
|
||||
curl -X POST http://localhost:9002/user/follow/2 \
|
||||
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..."
|
||||
|
||||
# 使用JavaScript
|
||||
fetch('http://localhost:9002/user/follow/2', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiJ9...'
|
||||
}
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => console.log(data));
|
||||
```
|
||||
|
||||
video-user模块是整个视频平台的核心组成部分,它提供了完整的用户信息管理、社交互动和消息通知功能,为用户提供良好的社交体验。
|
||||
Reference in New Issue
Block a user