diff --git a/docs/Guwan-awd.exe b/docs/Guwan-awd.exe new file mode 100644 index 0000000..c0fdaf3 Binary files /dev/null and b/docs/Guwan-awd.exe differ diff --git a/docs/api/video-api.md b/docs/api/video-api.md deleted file mode 100644 index 971ecac..0000000 --- a/docs/api/video-api.md +++ /dev/null @@ -1,378 +0,0 @@ -\# 视频模块接口文档 - -\## 基础信息 - -- 基础路径: `/api/videos` -- 请求头: 需要携带 `Authorization: Bearer {token}` (除了获取视频列表和视频详情) - -\## 接口列表 - -\### 1. 上传视频 - -POST /api/videos/upload - -// 请求参数 (multipart/form-data) - -{ - -file: File, // 视频文件 - -title: string, // 视频标题 - -description: string, // 视频描述 - -tags?: string // 视频标签,可选,多个标签用逗号分隔 - -} - -// 响应 - -{ - -code: number, // 200表示成功 - -message: string, // 响应消息 - -data: { - -id: number, // 视频ID - -title: string, // 视频标题 - -description: string, // 视频描述 - -url: string, // 视频URL - -coverUrl: string, // 封面URL - -duration: number, // 视频时长(秒) - -size: number, // 文件大小(字节) - -status: string, // 状态:DRAFT-草稿,PUBLISHED-已发布,DELETED-已删除 - -userId: number, // 上传用户ID - -username: string, // 上传用户名 - -createdTime: string, // 创建时间 - -updatedTime: string, // 更新时间 - -viewCount: number, // 观看次数 - -likeCount: number, // 点赞次数 - -tags: string, // 标签 - -hasLiked: boolean // 当前用户是否已点赞 - -} - -} - -\### 2. 获取视频列表 - -GET /api/videos?pageNum=1&pageSize=10&keyword=xxx - -// 请求参数 (query) - -{ - -pageNum?: number, // 页码,默认1 - -pageSize?: number, // 每页条数,默认10 - -keyword?: string // 搜索关键词,可选 - -} - -// 响应 - -{ - -code: number, - -message: string, - -data: { - -records: Array<{ // 视频列表 - -id: number, - -title: string, - -description: string, - -url: string, - -coverUrl: string, - -duration: number, - -size: number, - -status: string, - -userId: number, - -username: string, - -createdTime: string, - -updatedTime: string, - -viewCount: number, - -likeCount: number, - -tags: string, - -hasLiked: boolean - -}>, - -total: number, // 总记录数 - -size: number, // 每页条数 - -current: number, // 当前页码 - -pages: number // 总页数 - -} - -} - -\### 3. 获取视频详情 - -GET /api/videos/{id} - -// 响应 - -{ - -code: number, - -message: string, - -data: { - -id: number, - -title: string, - -description: string, - -url: string, - -coverUrl: string, - -duration: number, - -size: number, - -status: string, - -userId: number, - -username: string, - -createdTime: string, - -updatedTime: string, - -viewCount: number, - -likeCount: number, - -tags: string, - -hasLiked: boolean - -} - -} - -\### 4. 更新视频信息 - -PUT /api/videos/{id} - -// 请求体 - -{ - -title: string, - -description: string, - -tags?: string - -} - -// 响应 - -{ - -code: number, - -message: string, - -data: VideoDTO // 同上面的视频详情 - -} - -\### 5. 删除视频 - -DELETE /api/videos/{id} - -// 响应 - -{ - -code: number, - -message: string, - -data: null - -} - -\### 6. 视频点赞/取消点赞 - -POST /api/videos/{id}/like - -// 响应 - -{ - -code: number, - -message: string, - -data: null - -} - -\### 7. 增加观看次数 - -POST /api/videos/{id}/view - -// 响应 - -{ - -code: number, - -message: string, - -data: null - -} - -\### 8. 获取推荐视频 - -GET /api/videos/recommend?limit=10 - -// 请求参数 (query) - -{ - -limit?: number // 返回数量,默认10 - -} - -// 响应 - -{ - -code: number, - -message: string, - -data: Array // 视频列表 - -} - -\### 9. 获取相似视频 - -GET /api/videos/{id}/similar?limit=10 - -// 请求参数 (query) - -{ - -limit?: number // 返回数量,默认10 - -} - -// 响应 - -{ - -code: number, - -message: string, - -data: Array // 视频列表 - -} - -\## 错误码说明 - -{ - -200: "操作成功", - -400: "请求参数错误", - -401: "未登录或token已过期", - -403: "无权限执行此操作", - -404: "资源不存在", - -500: "服务器内部错误" - -} - -\## 数据结构 - -\### VideoDTO - -{ - -id: number; // 视频ID - -title: string; // 视频标题 - -description: string; // 视频描述 - -url: string; // 视频URL - -coverUrl: string; // 封面URL - -duration: number; // 视频时长(秒) - -size: number; // 文件大小(字节) - -status: string; // 状态:DRAFT-草稿,PUBLISHED-已发布,DELETED-已删除 - -userId: number; // 上传用户ID - -username: string; // 上传用户名 - -createdTime: string; // 创建时间 - -updatedTime: string; // 更新时间 - -viewCount: number; // 观看次数 - -likeCount: number; // 点赞次数 - -tags: string; // 标签,多个用逗号分隔 - -hasLiked: boolean; // 当前用户是否已点赞 - -} diff --git a/docs/api/video-api.txt b/docs/api/video-api.txt deleted file mode 100644 index bc8e3ae..0000000 --- a/docs/api/video-api.txt +++ /dev/null @@ -1,218 +0,0 @@ -# 视频模块接口文档 - -## 基础信息 -- 基础路径: `/api/videos` - - 请求头: 需要携带 `Authorization: Bearer {token}` (除了获取视频列表和视频详情) - -## 接口列表 - -### 1. 上传视频 -POST /api/videos/upload - -// 请求参数 (multipart/form-data) -{ - file: File, // 视频文件 - title: string, // 视频标题 - description: string, // 视频描述 - tags?: string // 视频标签,可选,多个标签用逗号分隔 -} - -// 响应 -{ - code: number, // 200表示成功 - message: string, // 响应消息 - data: { - id: number, // 视频ID - title: string, // 视频标题 - description: string, // 视频描述 - url: string, // 视频URL - coverUrl: string, // 封面URL - duration: number, // 视频时长(秒) - size: number, // 文件大小(字节) - status: string, // 状态:DRAFT-草稿,PUBLISHED-已发布,DELETED-已删除 - userId: number, // 上传用户ID - username: string, // 上传用户名 - createdTime: string, // 创建时间 - updatedTime: string, // 更新时间 - viewCount: number, // 观看次数 - likeCount: number, // 点赞次数 - tags: string, // 标签 - hasLiked: boolean // 当前用户是否已点赞 - } -} - -### 2. 获取视频列表 -GET /api/videos?pageNum=1&pageSize=10&keyword=xxx - -// 请求参数 (query) -{ - pageNum?: number, // 页码,默认1 - pageSize?: number, // 每页条数,默认10 - keyword?: string // 搜索关键词,可选 -} - -// 响应 -{ - code: number, - message: string, - data: { - records: Array<{ // 视频列表 - id: number, - title: string, - description: string, - url: string, - coverUrl: string, - duration: number, - size: number, - status: string, - userId: number, - username: string, - createdTime: string, - updatedTime: string, - viewCount: number, - likeCount: number, - tags: string, - hasLiked: boolean - }>, - total: number, // 总记录数 - size: number, // 每页条数 - current: number, // 当前页码 - pages: number // 总页数 - } -} - -### 3. 获取视频详情 -GET /api/videos/{id} - -// 响应 -{ - code: number, - message: string, - data: { - id: number, - title: string, - description: string, - url: string, - coverUrl: string, - duration: number, - size: number, - status: string, - userId: number, - username: string, - createdTime: string, - updatedTime: string, - viewCount: number, - likeCount: number, - tags: string, - hasLiked: boolean - } -} - -### 4. 更新视频信息 -PUT /api/videos/{id} - -// 请求体 -{ - title: string, - description: string, - tags?: string -} - -// 响应 -{ - code: number, - message: string, - data: VideoDTO // 同上面的视频详情 -} - -### 5. 删除视频 -DELETE /api/videos/{id} - -// 响应 -{ - code: number, - message: string, - data: null -} - -### 6. 视频点赞/取消点赞 -POST /api/videos/{id}/like - -// 响应 -{ - code: number, - message: string, - data: null -} - -### 7. 增加观看次数 -POST /api/videos/{id}/view - -// 响应 -{ - code: number, - message: string, - data: null -} - -### 8. 获取推荐视频 -GET /api/videos/recommend?limit=10 - -// 请求参数 (query) -{ - limit?: number // 返回数量,默认10 -} - -// 响应 -{ - code: number, - message: string, - data: Array // 视频列表 -} - -### 9. 获取相似视频 -GET /api/videos/{id}/similar?limit=10 - -// 请求参数 (query) -{ - limit?: number // 返回数量,默认10 -} - -// 响应 -{ - code: number, - message: string, - data: Array // 视频列表 -} - -## 错误码说明 -{ - 200: "操作成功", - 400: "请求参数错误", - 401: "未登录或token已过期", - 403: "无权限执行此操作", - 404: "资源不存在", - 500: "服务器内部错误" -} - -## 数据结构 - -### VideoDTO -{ - id: number; // 视频ID - title: string; // 视频标题 - description: string; // 视频描述 - url: string; // 视频URL - coverUrl: string; // 封面URL - duration: number; // 视频时长(秒) - size: number; // 文件大小(字节) - status: string; // 状态:DRAFT-草稿,PUBLISHED-已发布,DELETED-已删除 - userId: number; // 上传用户ID - username: string; // 上传用户名 - createdTime: string; // 创建时间 - updatedTime: string; // 更新时间 - viewCount: number; // 观看次数 - likeCount: number; // 点赞次数 - tags: string; // 标签,多个用逗号分隔 - hasLiked: boolean; // 当前用户是否已点赞 -} \ No newline at end of file diff --git a/docs/question.md b/docs/question.md deleted file mode 100644 index 5828412..0000000 --- a/docs/question.md +++ /dev/null @@ -1 +0,0 @@ -Field client in cn.easyes.starter.register.MapperFactoryBean required a bean of type 'org.elasticsearch.client.RestHighLevelClient' that could not be found. \ No newline at end of file diff --git a/docs/rtc.md b/docs/rtc.md deleted file mode 100644 index 5cb3ede..0000000 --- a/docs/rtc.md +++ /dev/null @@ -1,83 +0,0 @@ -很久以前,人类以为只有神仙可以听到、看到千里之外的声音和景象,称之为千里眼和顺风耳,短短几百年里,人类的技术革命实现了质的飞跃。 - -1876 年,贝尔电话的发明,使人类可以听到千里之外声音的梦想终于成真。 - -此后,音视频技术不断发展。一方面,视频压缩技术从 H.261 到 H.264,再到现在的 H.265 及AV1,视频压缩率越来越高;音频压缩技术也从电话使用的 G.711、G.722 等窄带音频压缩技术,发展到现代的 AAC、OPUS 等宽带音频压缩技术。 - -另一方面,从中国 3G 网络正式商用开始,移动网络也发生了翻天覆地的变化。从 3G 到 4G ,再到马上要落地的 5G,移动网络的带宽和质量越来越高,为音视频数据传输打下了坚实的基础。 - -尤其是 2011 年 Google 推出 WebRTC 技术后,大大降低了音视频技术的门槛,可以在浏览器上快速开发出各种音视频应用。 - -如今,在疫情的三年里,视频会议,远程会诊,线上教学等需求将RTC技术推向高潮,成为影响社会发展不可或缺的技术之一。 - -2023年,从用3W法学习解构RTC开始,笔者也开启了RTC分享之路。 - -1.什么是RTC? -RTC是Real-Time Communication的缩写,译为实时通信,目的是在设备端实时的转发音视频多媒体数据,让用户能实时的进行音频和视频的会话,即基于 IP 技术实现的实时交互的音视频通信技术。 - -具体涵义如下: - -▪ 实时:音视频数据传输的延迟要达到“实时”的标准,也就是说延时要小于400ms,能够实现低延时和无卡顿,在正常通信过程中基本感受不到延迟的存在。 - -▪ 音视频:音视频数据传输,实时音视频通信通过服务端为中转节点,即时采集、渲染、处理、传输终端用户的图像、视频、音频数据进行,实现音视频流数据在终端节点间完成通信的过程。 - -▪ 实时音视频服务商一般以SDK的形式提供一整套解决方案。 - -2.为什么选择RTC技术? -痛点: - -基础音视频流程复杂且广泛:涵盖音视频收集、音视频压缩/解码、数据传输、终端适配、视频分发等系列环节,每个环节展开,都是复杂技术点。企业若想打造自主实时音视频方案,不仅要养一定规模软硬研发团队,还要花费一定时间沉淀,对于该企业来说,成本太高。 - -RTC技术优势: - -高音质 -基于专有回声消除&降噪技术,可在嘈杂的环境下实现高音质通话,让对话里语音听得比较清晰,没有回声、啸叫的状况出现。 - -高画质 -视频支持超高清晰度画面,一路视频提供多种分辨率,大屏幕可订阅更高分辨率提升视频通话体验,分分钟感受面对面交流感。 - -低延迟 -全球通信节点支持,支持实时性更好的UDP协议,端到端延时低 - -抗弱网 -自动增益控制&弱网丢包补偿技术 ,在丢包下保持音视频通话流畅。 - -当然,基于一些特定行业的应用场景,比如多人数直播时的高并发,医疗行业的网闸透传,成熟RTC服务商都有着良好的技术沉淀,让越来越多的企业使用这项技术。 - -3.RTC有哪些使用场景? -随着移动互联网的普及和智能终端设备的广泛应用,实时音视频正逐渐成为主流互动方式,已在在线教育、社交娱乐、互动电商等热门领域得到广泛应用,也赋能于更多创新场景,如金融、政企服务、loT、医疗等,帮助人们享受更便捷和更人性化的生活服务。 - -协同办公-视频会议 -丰富的会议场景,轻松实现远程办公系统,打通团队沟通渠道,帮助企业充分挖掘和整合隐形资源。 - -典型应用:Zoom,腾讯会议 - -社交沟通-聊天室 -支持 1v1 通话或群聊功能,频道内用户可自由发言,适用于语音通话、语音群聊、语音聊天室等场景。 - -典型应用:微信语音通话,YY语音 - -游戏&娱乐 -玩家可通过语音/视频聊天推进游戏进程,团战作战、协同作战,及时分享游戏信息,一起连麦开黑,拉近玩家距离。 - -典型应用:网易游戏,虎牙直播 - -电商直播 -通过IM+音视频拓展多样化电商直播玩法,增强购物体验,提升获客率,让购物更有趣,促进电商平台交易转化,实现全球购物零距离。 - -典型应用:淘宝直播 - -在线教育 -视频面对面教学,真实还原线下教学场景,支持1V1教学、1对多教学、双师课堂等多种互动教学模式。 - -典型应用:小鹅通 - -远程医疗 -基于IM及实时音视频RTC,通过实施互动技术,实现优质医疗资源和知识共享,满足远程会诊、手术示教多种场景需求。 - -典型应用:微医 - -视频双录 -根据金融监管要求,为客户提供多场景的双录服务,提供柜面双录、远程双录、移动双录、AI自助双录,帮助金融机构实现业务回溯。 - -典型应用:招商银行app \ No newline at end of file diff --git a/src/main/java/com/guwan/backend/generator/controller/BookCategoryController.java b/src/main/java/com/guwan/backend/controller/BookCategoryController.java similarity index 97% rename from src/main/java/com/guwan/backend/generator/controller/BookCategoryController.java rename to src/main/java/com/guwan/backend/controller/BookCategoryController.java index dcba706..082ca0a 100644 --- a/src/main/java/com/guwan/backend/generator/controller/BookCategoryController.java +++ b/src/main/java/com/guwan/backend/controller/BookCategoryController.java @@ -1,4 +1,4 @@ -package com.guwan.backend.generator.controller; +package com.guwan.backend.controller; import com.guwan.backend.common.Result;