默认页面
<h1>状态码返回</h1>
<pre><code class="language-json">{
"code": 0,
"data": {},
"message": "string"
}</code></pre>
<p>code:</p>
<ul>
<li>200 : 成功</li>
<li>401 : 未登录</li>
<li>403 : 权限不足</li>
<li>其他:操作失败</li>
</ul>
<h1>认证模块</h1>
<h2>登录</h2>
<pre><code class="language-java">/auth/login POST</code></pre>
<ul>
<li>参数格式</li>
</ul>
<pre><code>{
"password": "string",
"rememberMe": true,
"role": "string",
"username": "string"
}</code></pre>
<ul>
<li>返回</li>
</ul>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"idToken": "MQ==",
"username": "yzx1428",
"nickname": "yzx",
"avatar": "default.jpg",
"age": 20,
"gender": "男",
"mobile": "15159961391",
"email": "657075151@qq.com",
"roles": [
"USER",
"ADMIN"
],
"info": "我是福州大学2018级的学生yzx,欢迎来到我的个人信息主页"
}
}</code></pre>
<h2>注册</h2>
<pre><code>/auth/register POST</code></pre>
<ul>
<li>参数格式</li>
</ul>
<pre><code>{
"correctCode": "string",
"email": "string",
"inputCode": "string",
"password": "string",
"username": "string"
}</code></pre>
<ul>
<li>
<p>返回</p>
<pre><code class="language-json">{
"code": 0,
// 注册用户名
"data": "yzx",
"message": "string"
}</code></pre>
</li>
</ul>
<h2>登出</h2>
<pre><code>/auth/logout DELETE</code></pre>
<h1>用户模块</h1>
<h3>添加用户收藏</h3>
<pre><code>GET
/user/{idToken}/addCollection/{vid}</code></pre>
<ul>
<li>idToken : 用户id加密后的字符串</li>
<li>
<p>vid : 被收藏的视频id</p>
</li>
<li>
</li>
</ul>
<h3>取消用户对于某个视频的收藏</h3>
<pre><code>DELETE
/user/{idToken}/collection/{courseId}/delete</code></pre>
<ul>
<li>courseId : 目标视频的id</li>
</ul>
<h3>用户删除发布的视频</h3>
<pre><code>DELETE
/user/{idToken}/course/{courseId}/delete</code></pre>
<h3>用户发布的所有视频</h3>
<pre><code>POST
/user/{idToken}/courses?pageIndex&pageSize</code></pre>
<ul>
<li>POST参数</li>
</ul>
<pre><code class="language-json">{
// 查询参数,若没有查询参数则为空串
"query": "string",
// 排序规则,传入字段名,例如id
"sort": "string",
// 分类参数,全部则为all
"typeKey": "string"
}</code></pre>
<ul>
<li>返回</li>
</ul>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 1,
"title": "Cold教你学Flask",
"face": "default.jpg",
"play": 153,
"favNum": 1,
"publishDate": 1619995077000,
"fromUser": "yzx1428",
"fromUserId": 1,
"course_status": 1,
"type": {
"type_name": "小学",
"type_key": "primary"
}
}
]
}</code></pre>
<h3>用户参加捐赠活动</h3>
<pre><code>GET
/user/{idToken}/joinDonate/{did}</code></pre>
<h3>用户参加的捐赠活动</h3>
<pre><code>POST
/user/{idToken}/myActivity?pageIndex&pageSize</code></pre>
<ul>
<li>POST参数</li>
</ul>
<pre><code class="language-json">{
// 日期范围,数组大小为2,分别对应开始和结束时间
// 若不指定某一个时间(null)表示不作限定
// 如[a,null]表示查询a时间以后的所有捐赠活动
// [null,null]表示查询所有时间段
"dateResult": [
"string"
],
"query": "string",
"sort": "string",
"typeKey": "string"
}</code></pre>
<ul>
<li>返回</li>
</ul>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 1,
"dname": "凉山小学篮球用品捐赠计划",
"content": "该活动旨在为凉山小学热爱篮球的孩子们捐赠篮球,篮筐等各种运动用品及设施。",
"from_user": "yzx1428",
"start_time": 1619689790000,
"end_time": 1619772322000,
"location": "四川省凉山市",
"donate_total": 0,
"donate_type": "运动用品",
"status": "审核中",
"face": "default.jpg"
},
...
]
}</code></pre>
<h3>用户自己的捐款记录</h3>
<p>POST</p>
<pre><code>/user/{idToken}/myRecords?pageIndex&pageSize</code></pre>
<p>POST参数</p>
<ul>
<li>
<pre><code>Post参数中的typeKey为捐款活动状态,前端显示为未开始,审核中等,传给后端的是状态码,如1,2,等
全部还是all</code></pre>
</li>
</ul>
<pre><code>{
query
typeKey
sort
}</code></pre>
<p>返回</p>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 1,
"user_id": 1,
"user_name": "yzx1428",
"activity_id": 1,
"donate_num": 20,
"activity_name": "凉山小学篮球用品捐赠计划",
"donate_time": 1620745129000,
"remark": "篮球20个",
"time_str": "2021-05-11 22:58:49"
}
]
}</code></pre>
<h3>用户浏览记录</h3>
<pre><code>GET
/user/{idToken}/viewHistory</code></pre>
<p>返回</p>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 1,
"title": "Cold教你学Flask",
"face": "default.jpg",
"play": 153,
"favNum": 1,
"publishDate": 1619995077000,
"fromUser": "yzx1428",
"fromUserId": 1,
"course_status": 1,
"type": {
"type_name": "小学",
"type_key": "primary"
}
},
...
]
}</code></pre>
<h3>用户申请志愿者</h3>
<p><strong>POST</strong>
/user/{idToken}/apply</p>
<p>post参数:</p>
<pre><code>{
"real_name":"杨振轩",
"id_card":"350783200004160235",
"email":"657075151@qq.com",
"inputCode":"381454",
"prove":"default.jpg"
}</code></pre>
<p>返回:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": true
} </code></pre>
<h3>用户是否有申请志愿者</h3>
<p><strong>GET</strong>
/user/{idToken}/hasApply</p>
<p>返回:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": false
}</code></pre>
<h3>用户志愿者申请状态</h3>
<p><strong>GET</strong>
/user/{idToken}/applyStatus</p>
<p>返回:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": 3
}</code></pre>
<h3>用户收藏的所有视频</h3>
<p><strong>POST</strong>
/user/{idToken}/myCollections?pageIndex&pageSize</p>
<ul>
<li>POST参数</li>
</ul>
<pre><code>{
"query": "string",
"sort": "string",
"typeKey": "string"
}</code></pre>
<ul>
<li>返回</li>
</ul>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 1,
"title": "Cold教你学Flask",
"face": "default.jpg",
"play": 153,
"favNum": 1,
"publishDate": 1619995077000,
"fromUser": "yzx1428",
"fromUserId": 1,
"course_status": 1,
"type": {
"type_name": "小学",
"type_key": "primary"
}
},
...
]
}</code></pre>
<h3>用户发布的所有帖子</h3>
<pre><code>POST
/user/{idToken}/posts?pageIndex&pageSize</code></pre>
<ul>
<li>POST参数</li>
</ul>
<pre><code>{
"query": "string",
"sort": "string",
"typeKey": "string"
}</code></pre>
<ul>
<li>返回</li>
</ul>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 14,
"title": "小开Lwx——冠军Ad亦有差距",
"content": "众所周知,夏季赛开赛以来,ad位置上,韦鲁斯长期处于ban位,偶尔出来放放风,虽然胜率尴尬还是0%,...",
"create_time": 1618451181000,
"from_user": "yzx1428",
"type": {
"type_name": "生活",
"type_key": "life"
},
"view": 0,
"commentNum": 0,
"face": "http://localhost:8080/talkings/faces/caa7e09bb4d64fb8b345b58b789d6432.png"
},
...
]
}</code></pre>
<h3>修改密码</h3>
<pre><code>POST
/user/{idToken}/resetpwd</code></pre>
<p>post参数</p>
<ul>
<li>新密码长度必须大于8</li>
</ul>
<pre><code>{
"newPassword":"新密码"
}</code></pre>
<h3>修改用户头像</h3>
<pre><code>POST
/user/{idToken}/updateAvatar</code></pre>
<p>post参数</p>
<pre><code>{
"avatar":"头像文件名"
}</code></pre>
<h3>获取用户的个人信息</h3>
<pre><code>GET
/user/info/{idToken}</code></pre>
<p>返回</p>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": {
"username": "yzx1428",
"nickname": "yzx",
"info": "我是福州大学2018级的学生yzx,欢迎来到我的个人信息主页",
"avatar": "http://localhost:8080/users/faces/default.jpg",
"age": 20,
"gender": "男",
"mobile": "15159961391",
"email": "657075151@qq.com"
}
}</code></pre>
<h3>修改用户的个人信息</h3>
<p><strong>POST</strong></p>
<p>/user/info/{idToken}</p>
<p>POST参数</p>
<pre><code class="language-json">{
"age": 0,
"avatar": "string",
"email": "string",
"gender": "string",
"info": "string",
"mobile": "string",
"nickname": "string",
"username": "string"
}</code></pre>
<h3>用户头像上传</h3>
<p><strong>POST</strong></p>
<p>/user/upload</p>
<p>POST参数</p>
<pre><code>文件对象MultiFile,与UI上传组件配合使用</code></pre>
<p>返回</p>
<pre><code class="language-json">{
code:0,
message:"",
data:"上传成功后的文件名"
}</code></pre>
<p>错误情况code</p>
<pre><code class="language-java">FILE_SIZE_ERROR(210,"文件大小超出限制!"),
FILE_TYPE_ERROR(211,"文件上传类型错误!"),
FILE_SAVE_ERROR(212,"文件保存失败!");</code></pre>
<h3>查看用户的搜索记录</h3>
<p><strong>GET</strong>
/user/{idToken}/searchHistory
返回
{
"code": 200,
"message": "操作成功",
"data": {
"history": [
"Java",
"php",
"java"
]
}
}</p>
<h3>清空用户的搜索记录</h3>
<p><strong>DELETE</strong>
/user/{idToken}/clearHistory</p>
<h1>讨论模块</h1>
<h3>删除某个讨论</h3>
<p><strong>DELETE</strong></p>
<p>/talkings/{postId}/delete/{idToken}</p>
<ul>
<li>要求USER权限</li>
</ul>
<h3>获得所有讨论项</h3>
<p><strong>POST</strong></p>
<p>/talkings/all?pageIndex&pageSize</p>
<p>POST参数</p>
<pre><code class="language-json">{
"query": "string",
"sort": "string",
"typeKey": "string"
}</code></pre>
<ul>
<li>返回</li>
</ul>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": {
// 当前页数
"currentPage": 1,
// 数据
"rows": [
{
"id": 14,
"title": "小开Lwx——冠军Ad亦有差距",
"content": "众所周知,夏季赛开赛以来,ad位置上,韦鲁斯长期处于ban位,偶尔出来放放风,虽然胜率尴尬还是0%,但对于fpx而言,他们依然是不敢给jkl的,按例ban了。其次,月男作为夏季赛的常客,也是lwx拿手ad,fpx依然是害怕jkl拿到也ban了,在此之前,fpx很少ban月男的,甚至是对面来banfpx的月男,但两局游戏jpx毅然决然的ban下越南,对于ad位的差距,fpx的教练团队可能比观众的认知更加清晰。",
"create_time": 1618451181000,
"from_user": "yzx1428",
"type": {
"type_name": "生活",
"type_key": "life"
},
"view": 0,
"commentNum": 0,
"face": "http://localhost:8080/talkings/faces/caa7e09bb4d64fb8b345b58b789d6432.png"
}
],
// 总页数
"totalPages": 13,
// 总数据条数
"totalRecords": 13
}
}</code></pre>
<h3>添加讨论</h3>
<p><strong>POST</strong></p>
<p>/talkings/send</p>
<p>POST参数</p>
<pre><code class="language-json">{
"title":"",
"content":"",
"face":"",
"type":"",
"from_user":0
}</code></pre>
<h3>获取所有分类(讨论)</h3>
<p><strong>GET</strong></p>
<p>/talkings/types</p>
<p>返回</p>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": [
{
"type_name": "学习",
"type_key": "study"
},
{
"type_name": "生活",
"type_key": "life"
},
{
"type_name": "志愿活动",
"type_key": "volunteer"
},
{
"type_name": "精品",
"type_key": "special"
},
{
"type_name": "小学",
"type_key": "primary"
},
{
"type_name": "中学",
"type_key": "junior"
},
{
"type_name": "启蒙",
"type_key": "Kindergarten"
}
]
}</code></pre>
<h3>讨论封面图片上传</h3>
<p><strong>POST</strong>
/talkings/upload</p>
<h1>捐赠模块</h1>
<h3>根据条件获取捐赠活动</h3>
<p><strong>POST</strong>
/donate/all?pageIndex=?&pageSize=?</p>
<p>POST参数</p>
<pre><code>{
"dateResult": [
"string"
],
"query": "string",
"sort": "string",
"typeKey": "string"
}</code></pre>
<p>返回</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"total": 54,
"data": [
{
"id": 54,
"dname": "八宝小学生活用具捐赠计划",
"content": "<p style=\\\"text-indent:2em;\\\">该活动旨在帮助孩子改善生活水平,捐赠衣服等生活用具。</p>",
"from_user": "yzx1428",
"start_time": 1617281125000,
"end_time": 1621397939000,
"location": "福建省福州市",
"donate_total": 20,
"donate_type": "其他",
"status": "审核中",
"face": "http://150.158.191.172:8081/image/default.jpg",
"participantsNumber": 1,
"start_time_str": "2021-04-01 20:45:25",
"end_time_str": "2021-05-19 12:18:59",
"mileStones": []
},
{
"id": 53,
"dname": "桂花小学学习用具捐赠计划",
"content": "<p style=\\\"text-indent:2em;\\\">该活动旨在帮助孩子改善学习环境,捐赠书包等学习工具。</p>",
"from_user": "yzx1428",
"start_time": 1618007534000,
"end_time": 1621644882000,
"location": "福建省福州市",
"donate_total": 63,
"donate_type": "其他",
"status": "审核中",
"face": "http://150.158.191.172:8081/image/default.jpg",
"participantsNumber": 1,
"start_time_str": "2021-04-10 06:32:14",
"end_time_str": "2021-05-22 08:54:42",
"mileStones": []
},
{
"id": 52,
"dname": "多扶小学学习用具捐赠计划",
"content": "<p style=\\\"text-indent:2em;\\\">该活动旨在帮助孩子改善学习环境,捐赠书包等学习工具。</p>",
"from_user": "yzx1428",
"start_time": 1617723707000,
"end_time": 1620182163000,
"location": "福建省福州市",
"donate_total": 43,
"donate_type": "其他",
"status": "审核中",
"face": "http://150.158.191.172:8081/image/default.jpg",
"participantsNumber": 1,
"start_time_str": "2021-04-06 23:41:47",
"end_time_str": "2021-05-05 10:36:03",
"mileStones": []
},
{
"id": 51,
"dname": "同德小学学习用具捐赠计划",
"content": "<p style=\\\"text-indent:2em;\\\">该活动旨在帮助孩子改善学习环境,捐赠书包等学习工具。</p>",
"from_user": "yzx1428",
"start_time": 1617219974000,
"end_time": 1619945501000,
"location": "福建省福州市",
"donate_total": 67,
"donate_type": "其他",
"status": "审核中",
"face": "http://150.158.191.172:8081/image/default.jpg",
"participantsNumber": 1,
"start_time_str": "2021-04-01 03:46:14",
"end_time_str": "2021-05-02 16:51:41",
"mileStones": []
},
{
"id": 50,
"dname": "米丹小学生活用具捐赠计划",
"content": "<p style=\\\"text-indent:2em;\\\">该活动旨在帮助孩子改善生活水平,捐赠衣服等生活用具。</p>",
"from_user": "yzx1428",
"start_time": 1619269723000,
"end_time": 1620670393000,
"location": "福建省福州市",
"donate_total": 56,
"donate_type": "其他",
"status": "审核中",
"face": "http://150.158.191.172:8081/image/default.jpg",
"participantsNumber": 1,
"start_time_str": "2021-04-24 21:08:43",
"end_time_str": "2021-05-11 02:13:13",
"mileStones": []
}
]
}
}</code></pre>
<h3>根据id获取活动信息</h3>
<p><strong>GET</strong>
/donate/detail/{id}</p>
<p>返回类型:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"id": 1,
"dname": "凉山小学篮球用品捐赠计划",
"content": "该活动旨在为凉山小学热爱篮球的孩子们捐赠篮球,篮筐等各种运动用品及设施。",
"from_user": "yzx1428",
"start_time": 1619689790000,
"end_time": 1619772322000,
"location": "四川省凉山市",
"donate_total": null,
"donate_type": "运动用品",
"status": "审核中",
"face": "http://150.158.191.172:8081/image/default.jpg",
"participantsNumber": 0,
"start_time_str": "2021-04-29 17:49:50",
"end_time_str": "2021-04-30 16:45:22",
"mileStones": []
}
}</code></pre>
<h3>根据活动id获取活动记录</h3>
<p><strong>GET</strong>
/donate/records/{id}</p>
<h3>添加捐赠记录</h3>
<p><strong>POST</strong>
/donate/update/{id}</p>
<p>POST参数</p>
<pre><code>{
"donate_num": 0,
"donate_time": {
"date": 0,
"day": 0,
"hours": 0,
"minutes": 0,
"month": 0,
"nanos": 0,
"seconds": 0,
"time": 0,
"timezoneOffset": 0,
"year": 0
},
"remark": "string",
"user_id": 0
}</code></pre>
<h1>后台管理模块</h1>
<h3>管理员日志模块</h3>
<h4>查询管理员日志记录</h4>
<p><strong>POST</strong></p>
<p>/admin/logs/all?pageIndex&pageSize</p>
<ul>
<li>post参数</li>
</ul>
<pre><code class="language-json">{
"dateResult": [
// 日期范围,要么为空,要么两个都有值
],
"query": "string",
"sort": "string",
"typeKey": "string"
}</code></pre>
<ul>
<li>返回</li>
</ul>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": {
"total": 1,
"logs": [
{
"id": 8,
"name": "yzx1428",
"type": "video",
"content": "审核 视频",
"date": 1619222366000
}
]
}
}</code></pre>
<h4>删除某条日志记录</h4>
<p><strong>DELETE</strong></p>
<ul>
<li>要求ADMIN权限</li>
</ul>
<p>/admin/logs/delete/{id}</p>
<h1>讨论详情</h1>
<h3>获取讨论详情信息</h3>
<p><strong>GET</strong></p>
<p>/detail/{id}?pageIndex&pageSize</p>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": {
// 总评论数
"postTotal": 10,
"data": [
// 主题
{
"id": 1,
"content": "我相信对于零基础的待业学生或者转行的人来说,上面的几个最基本的问题可能都不知道。那么下面小编就来粗略的解释一下:UI是什么?UI学什么吗?如何学好UI这几个最基本的问题!",
"from_user_name": "yzx1428",
"from_user_id": 1,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618221514000,
"replyTotal": 0,
"replies": []
},
// 评论
{
"id": 1,
"content": "UI只是一个简称,全称是User Interface 即用户界面设计,指的是对于所有软件的界面美观、操作逻辑、人机交互的整体设计。或许对于现在市场上很多UI设计师来说,UI的工作主要就是视觉设计也就做做界面就可以了,但是我相信这样的UI工资肯定不会太高。随着互联网信息时代的高速发展,UI设计师的定义和要求越来越高,现在的UI设计师不仅仅只是会做视觉界面那么简单了,还要熟悉交互和产品,而且现在视觉的工作也开始慢慢减少了,而是以交互设计为主。",
"from_user_name": "yzx1428",
"from_user_id": 1,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618514951000,
"replyTotal": 6,
// 该条评论的所有回复
"replies": [
{
"id": 2,
"reply_to": "yzx1428",
"reply_to_id": "1",
"content": "感谢题主分享,阅读后收益颇多,十分感谢!!!",
"from_user_name": "sjy1424",
"from_user_id": 2,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618515626000
},
{
"id": 3,
"reply_to": "yzx1428",
"reply_to_id": "1",
"content": "感谢题主分享,阅读后收益颇多,十分感谢!!!",
"from_user_name": "sjy1424",
"from_user_id": 2,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618515673000
},
{
"id": 4,
"reply_to": "sjy1424",
"reply_to_id": "2",
"content": "不客气不客气哈~",
"from_user_name": "yzx1428",
"from_user_id": 1,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618525747000
}
]
}
],
"authorName": "yzx1428",
"avatar": "http://localhost:8080/users/faces/default.jpg",
"title": "\r\n拉格朗日定理与罗尔定理,柯西定理之间有什么关系?",
"type": "学习",
"authorId": 1,
"commentsNum": 2
}
}</code></pre>
<h3>添加评论</h3>
<p><strong>POST</strong></p>
<p><a href="http://localhost:8080/swagger-ui.html#/operations/讨论详情控制器/addPostCommentUsingPOST">/detail/comment/add</a></p>
<pre><code class="language-json">{
"comment_id": 0,
"content": "string",
// 所属文章id
"from_post_id": 0,
// 所属用户id
"from_user_id": 0,
"id": 0,
// 回复评论的id
"reply_id": 0
}</code></pre>
<h3>获取某条评论的回复信息</h3>
<p><strong>GET</strong></p>
<p>/detail/replies/{commentId}?pageIndex</p>
<ul>
<li>pageSize默认为5</li>
</ul>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 2,
"reply_to": "yzx1428",
"reply_to_id": "1",
"content": "感谢题主分享,阅读后收益颇多,十分感谢!!!",
"from_user_name": "sjy1424",
"from_user_id": 2,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618515626000
},
{
"id": 3,
"reply_to": "yzx1428",
"reply_to_id": "1",
"content": "感谢题主分享,阅读后收益颇多,十分感谢!!!",
"from_user_name": "sjy1424",
"from_user_id": 2,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618515673000
},
{
"id": 4,
"reply_to": "sjy1424",
"reply_to_id": "2",
"content": "不客气不客气哈~",
"from_user_name": "yzx1428",
"from_user_id": 1,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618525747000
},
{
"id": 6,
"reply_to": "sjy1424",
"reply_to_id": "3",
"content": "谢谢谢谢~",
"from_user_name": "yzx1428",
"from_user_id": 1,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618562118000
},
{
"id": 8,
"reply_to": "yzx1428",
"reply_to_id": "1",
"content": "纯路人,请问题主能教我两分钟精通Flask吗?",
"from_user_name": "sjy1424",
"from_user_id": 2,
"from_user_avatar": "http://localhost:8080/users/faces/default.jpg",
"publish_time": 1618565678000
}
]
}</code></pre>
<h1>课程模块</h1>
<h3>添加视频评论</h3>
<p><strong>POST</strong></p>
<p>/video/comment/add</p>
<pre><code class="language-json">{
"comment_id": 0,
"content": "string",
"from_course": 0,
"from_user": 0,
"publish_time": "string",
"reply_id": 0
}</code></pre>
<h3>根据id获取视频详情</h3>
<p><strong>GET</strong></p>
<p>/video/detail/{vid}?pageSize=?</p>
<pre><code class="language-json">{
"code": 200,
"message": "操作成功",
"data": {
"id": 1,
"title": "Cold教你学Flask",
"face": "default.jpg",
"play": 153,
"course_like": 0,
"upload_time": 1619995077000,
"upload_user": {
"idToken": null,
"username": "yzx1428",
"nickname": "yzx",
"avatar": "default.jpg",
"age": 20,
"gender": "男",
"mobile": "15159961391",
"email": "657075151@qq.com",
"roles": [
"USER",
"ADMIN"
],
"info": "我是福州大学2018级的学生yzx,欢迎来到我的个人信息主页"
},
"course_status": 1,
"type": {
"type_name": "小学",
"type_key": "primary"
},
"info": "国人程序员大牛Cold教你两分钟精通Flask,实现一个淘宝网站。",
"url": "default.mp3",
"below_comments": []
}
}</code></pre>
<h3>根据视频评论ID返回回复评论信息</h3>
<p><strong>GET</strong></p>
<p>/video/replies/{commentId}?pageIndex&pageSize</p>
<h4><strong>返回格式待补充</strong></h4>
<h3>根据id增加视频播放量</h3>
<p><strong>GET</strong></p>
<p>/video/updateView/{vid}</p>
<h1>视频模块</h1>
<h3>添加课程</h3>
<p><strong>POST</strong>
/course/add</p>
<p>POST参数</p>
<pre><code>{
"face": "string",
"info": "string",
"title": "string",
"type_key": "string",
"upload_user_id": 0,
"urlList": [
"abc.mp4",
"cba.mp4"
//后缀名要为mp4或avi!
]
}</code></pre>
<h3>获取首页轮播图的所有url</h3>
<p><strong>GET</strong>
/course/courseurl(现在swagger上好像是carousel...)</p>
<h3>获取首页视频信息</h3>
<p><strong>GET</strong>
/course/data</p>
<p>返回类型:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"allRanks": {
"rankMiniSchoolList": [],
"rankMidSchoolList": [],
"rankSmallSchoolList": [
{
"vid": 1,
"index": 1,
"img": "default.jpg",
"commentNum": 0,
"viewNum": 0,
"starNum": 1,
"auth": "yzx1428",
"create_time": 1619995077000,
"src": "default.mp3",
"title": "Cold教你学Flask"
}
]
},
"allVideos": {
"videoMiniSchool": [
[],
[]
],
"videoSmallSchool": [
[
{
"id": 1,
"face": "default.jpg",
"url": "default.mp3",
"title": "Cold教你学Flask",
"upload_time": 1619995077000,
"play": 153
}
],
[]
],
"videoMidSchool": [
[],
[]
]
}
}
}</code></pre>
<h3>获取视频分类</h3>
<p><strong>GET</strong>
/course/types</p>
<p>返回类型:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": [
{
"type_name": "小学",
"type_key": "primary"
},
{
"type_name": "中学",
"type_key": "junior"
},
{
"type_name": "启蒙",
"type_key": "Kindergarten"
}
]
}</code></pre>
<h3>视频文件上传</h3>
<p><strong>POST</strong>
/course/upload</p>
<p>POST参数</p>
<pre><code>{
"file":"视频文件"
}</code></pre>
<h1>通用</h1>
<h3>发送邮件</h3>
<p><strong>GET</strong></p>
<p>/common/email</p>
<p>POST参数</p>
<pre><code>{
"email":"目标邮箱地址"
}</code></pre>
<h3>判断验证码是否正确</h3>
<p><strong>POST</strong>
/common/verify</p>
<p>POST参数</p>
<pre><code>{
"inputCode":"string"
"correctCode":"string"
}</code></pre>
<h3>修改密码</h3>
<p><strong>POST</strong>
/common/reset</p>
<p>POST参数</p>
<pre><code>{
"newPassword":"string"
"resetKey":"string"
"email":"string"
}</code></pre>
<h3>判断邮箱是否已经被注册</h3>
<p><strong>POST</strong>
/common/email/exist</p>
<p>POST参数</p>
<pre><code>{
"email":"string"
}</code></pre>
<h1>接下来的管理员接口调用时都需要登录且登录账号有ADMIN权限才可以使用</h1>
<p>错误码如下:
用户未登录
{
"code":206,
"message":"用户未登录",
"data":null
}
用户权限不足
{
"code":403,
"message":"用户权限不足
}</p>
<h1>管理员用户管理模块</h1>
<h3>获取所有用户</h3>
<p><strong>POST</strong>
/admin/user/all?pageIndex=?&pageSize=?</p>
<p>POST参数</p>
<pre><code>{
"query": "string",
"sort": "string",
"typeKey": "string"
}</code></pre>
<p>返回:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"total": 20,
"list": [
{
"id": 28,
"idToken": "Mjg=",
"username": "dasdasd",
"nickname": null,
"email": "1595601643@qq.com",
"avatar": "http://150.158.191.172:8081/image/null",
"upload_num": 0,
"mobile": "15280834650",
"roles": []
},
{
"id": 27,
"idToken": "Mjc=",
"username": "qiyijie",
"nickname": "qiyijie",
"email": "965200752@qq.com",
"avatar": "http://150.158.191.172:8081/image/default.jpg",
"upload_num": 0,
"mobile": "13075899488",
"roles": [
"USER",
"ADMIN"
]
},
{
"id": 26,
"idToken": "MjY=",
"username": "lzk",
"nickname": "Lin",
"email": "1220627779@qq.com",
"avatar": "http://150.158.191.172:8081/image/avatar.jpg",
"upload_num": 0,
"mobile": "暂无",
"roles": [
"USER"
]
},
{
"id": 24,
"idToken": "MjQ=",
"username": "dsad",
"nickname": null,
"email": "1595601643@qq.com",
"avatar": "http://150.158.191.172:8081/image/null",
"upload_num": 0,
"mobile": "15280834650",
"roles": []
},
{
"id": 23,
"idToken": "MjM=",
"username": "wuwukai",
"nickname": null,
"email": "lubenwei123@qq.com",
"avatar": "http://150.158.191.172:8081/image/null",
"upload_num": 0,
"mobile": "13088888886",
"roles": []
}
],
"pageNum": 1,
"pageSize": 5,
"size": 5,
"startRow": 1,
"endRow": 5,
"pages": 4,
"prePage": 0,
"nextPage": 2,
"isFirstPage": true,
"isLastPage": false,
"hasPreviousPage": false,
"hasNextPage": true,
"navigatePages": 8,
"navigatepageNums": [
1,
2,
3,
4
],
"navigateFirstPage": 1,
"navigateLastPage": 4
}
}</code></pre>
<h3>修改用户角色</h3>
<p><strong>POST</strong></p>
<p>/admin/user/{idToken}/role/{adminIdToken}
如/admin/user/NQ==/role/MQ==?role=ADMIN</p>
<h3>添加用户</h3>
<p><strong>POST</strong>
/admin/user/add/{adminIdToken}</p>
<p>POST参数</p>
<pre><code>{
"username":"string"
"password":"string"
"mobile":"string"
"email":"string"
}</code></pre>
<h3>审核志愿者</h3>
<p><strong>GET</strong>
/admin/user/{idToken}/certification/{adminIdToken}</p>
<h3>查看志愿者申请信息</h3>
<p><strong>GET</strong>
/admin/user/applies?pageIndex=?&pageSize=?</p>
<p>返回:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"total": 1,
"list": [
{
"id": 2,
"from_user": {
"id": 8,
"idToken": "OA==",
"username": "panmou",
"nickname": "panmou",
"avatar": "http://150.158.191.172:8081/image/7a77a1ca56fe49f1b42c125983a25251.png",
"age": 18,
"gender": "暂无",
"mobile": "暂无",
"email": "1157928777@qq.com",
"roles": [
"USER"
],
"info": "暂无"
},
"real_name": "潘大帅",
"id_card": "350583200011298637",
"prove": "http://150.158.191.172:8081/image/81d34ee930134cc6881e537d103b1b01.jpg"
}
],
"pageNum": 1,
"pageSize": 5,
"size": 1,
"startRow": 1,
"endRow": 1,
"pages": 1,
"prePage": 0,
"nextPage": 0,
"isFirstPage": true,
"isLastPage": true,
"hasPreviousPage": false,
"hasNextPage": false,
"navigatePages": 8,
"navigatepageNums": [
1
],
"navigateFirstPage": 1,
"navigateLastPage": 1
}
}</code></pre>
<h1>管理员视频管理模块</h1>
<h3>审核通过某个视频</h3>
<p><strong>GET</strong>
/admin/course/{id}/pass/{adminIdToken}</p>
<h3>删除某个视频</h3>
<p><strong>DELETE</strong>
/admin/course/{id}/delete/{adminIdToken}</p>
<h3>管理员查看所有视频</h3>
<p><strong>POST</strong>
/admin/course/all(?pageIndex=?&pageSize=?)
此接口pageIndex和pageSize有默认值,如果不传入默认为1和10</p>
<p>POST参数:</p>
<pre><code>{
"query":"string",
"typeKey":"string",
"sort":"string"
"status":""//用于按状态筛选视频,0为审核中,1为已通过
}</code></pre>
<p>返回:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 1,
"title": "Cold教你学Flask",
"upload_user_id": 1,
"upload_user": "yzx1428",
"course_status": 1,
"face": "http://150.158.191.172:8081/image/default.jpg",
"type": {
"type_name": "小学",
"type_key": "primary"
},
"upload_time": 1619966277000,
"upload_time_str": "2021-05-02 22:37:57.0"
}
]
}</code></pre>
<h1>管理员讨论管理模块</h1>
<h3>获取所有讨论详情</h3>
<p><strong>POST</strong>
/admin/discussion/all?pageIndex=?&pageSize=?</p>
<p>POST参数:</p>
<pre><code>{
"query":"string"
"sort":"string"
"typeKey":"string"
}</code></pre>
<p>返回格式</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"currentPage": 1,
"rows": [
{
"id": 14,
"title": "小开Lwx——冠军Ad亦有差距",
"content": "众所周知,夏季赛开赛以来,ad位置上,韦鲁斯长期处于ban位,偶尔出来放放风,虽然胜率尴尬还是0%,但对于fpx而言,他们依然是不敢给jkl的,按例ban了。其次,月男作为夏季赛的常客,也是lwx拿手ad,fpx依然是害怕jkl拿到也ban了,在此之前,fpx很少ban月男的,甚至是对面来banfpx的月男,但两局游戏jpx毅然决然的ban下越南,对于ad位的差距,fpx的教练团队可能比观众的认知更加清晰。",
"create_time": 1618422381000,
"from_user": "yzx1428",
"type": {
"type_name": "生活",
"type_key": "life"
},
"view": 0,
"commentNum": 0,
"face": "http://150.158.191.172:8081/image/caa7e09bb4d64fb8b345b58b789d6432.png"
},</code></pre>
<h3>删除某个评论</h3>
<p><strong>DELETE</strong>
/admin/discussion/{id}/deleteComment</p>
<h3>管理员删除讨论</h3>
<p><strong>DELETE</strong>
/admin/discussion/{idToken}/{did}/deleteDiscussion
(did为讨论id)</p>
<h1>管理员捐赠管理模块</h1>
<h3>删除某个捐赠活动</h3>
<p><strong>DELETE</strong>
/admin/donate/{id}/delete/{idToken}</p>
<h3>添加活动</h3>
<p><strong>POST</strong>
/admin/donate/add/{idToken}</p>
<p>POST参数</p>
<pre><code>
{
"content": "string",
"dname": "string",
"endtime": "string",
"from_user_id": 0,
"location": "string",
"starttime": "string",
"type": "string" //life生活用品,sport运动用品,other其他,book书籍
"face":"string"
}
</code></pre>
<h3>根据条件获取捐赠活动</h3>
<p><strong>POST</strong>
/admin/donate/all?pageIndex=?&pageSize=?</p>
<p>POST参数</p>
<pre><code>{
"dateResult": [
"string"
],
"query": "string",
"sort": "string",
"typeKey": "string"
}</code></pre>
<p>返回</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"total": 54,
"data": [
{
"id": 54,
"dname": "八宝小学生活用具捐赠计划",
"content": "<p style=\\\"text-indent:2em;\\\">该活动旨在帮助孩子改善生活水平,捐赠衣服等生活用具。</p>",
"from_user": "yzx1428",
"start_time": 1617281125000,
"end_time": 1621397939000,
"location": "福建省福州市",
"donate_total": 20,
"donate_type": "其他",
"status": "审核中",
"face": "http://150.158.191.172:8081/image/default.jpg",
"participantsNumber": 1,
"start_time_str": "2021-04-01 20:45:25",
"end_time_str": "2021-05-19 12:18:59",
"mileStones": []
}
}</code></pre>
<h3>管理员审核通过捐赠活动</h3>
<p><strong>POST</strong>
/admin/donate/{id}/update/{idToken} idToken为该管理员的idToken</p>
<h3>管理员添加捐赠活动上传捐赠活动封面</h3>
<p><strong>POST</strong>
/admin/donate/upload</p>
<p>参数为file
返回:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"filename": "e16bf21ce687495793604c5e97bc70c3.jpg",
"url": "http://150.158.191.172:8081/image/e16bf21ce687495793604c5e97bc70c3.jpg"
}
}</code></pre>
<h1>认证错误相关</h1>
<h3>未登录</h3>
<p><strong>GET/POST/DELETE</strong>
/autherror/unlogin</p>
<p>返回</p>
<pre><code>{
"code": 206,
"message": "用户未登录",
"data": null
}</code></pre>
<h3>权限不足</h3>
<p><strong>GET/POST/DELETE</strong>
/autherror/nopermission</p>
<p>返回</p>
<pre><code>{
"code": 403,
"message": "用户权限不足",
"data": null
}</code></pre>
<h1>全局搜索</h1>
<p><strong>GET</strong>
/search/global/?query=?&sort=?&typeKey=?&itemType=?&pageIndex=?&pageSize=?</p>
<h4>query即搜索内容不能为空</h4>
<h4>sort默认为id,typeKey默认为all,pageIndex默认为1,pageSize默认为5</h4>
<h4>itemType默认为video,可选的有video,post,donate分别用于查询课程、讨论、捐赠活动</h4>
<p>返回:
示例url: /search/global/?query=Cold</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"total": 1,
"list": [
{
"id": 1,
"title": "Cold教你学Flask",
"face": "http://150.158.191.172:8081/image/default.jpg",
"play": 153,
"course_like": 1,
"upload_time": 1619966277000,
"upload_user": {
"id": 1,
"idToken": null,
"username": "yzx1428",
"nickname": "yzx",
"avatar": "default.jpg",
"age": 20,
"gender": "男",
"mobile": "15159961391",
"email": "657075151@qq.com",
"roles": [
"USER",
"ADMIN"
],
"info": "我是福州大学2018级的学生yzx,欢迎来到我的个人信息主页"
},
"course_status": 1,
"commentsNum": 0,
"type": {
"type_name": "小学",
"type_key": "primary"
},
"tag": null,
"urlItems": []
}
],
"pageNum": 1,
"pageSize": 15,
"size": 1,
"startRow": 1,
"endRow": 1,
"pages": 1,
"prePage": 0,
"nextPage": 0,
"isFirstPage": true,
"isLastPage": true,
"hasPreviousPage": false,
"hasNextPage": false,
"navigatePages": 8,
"navigatepageNums": [
1
],
"navigateFirstPage": 1,
"navigateLastPage": 1
}
}</code></pre>
<p>示例url: /search/global?query=Cold&itemType=post
返回:</p>
<pre><code>{
"code": 200,
"message": "操作成功",
"data": {
"total": 1,
"list": [
{
"id": 13,
"title": "国人程序员Cold教你两分钟精通Flask",
"content": "今天我们有幸请到了开发大佬cold前辈,分享其在开发和学习过程中的各种坑。并且cold前辈还向我们承诺,要在两分钟内教会我们如何用Flask实现一个跨国购物网站。那么到底什么是flask,为什么说flask“狗都不用”,和小编一起来看看吧!",
"create_time": 1618421490000,
"from_user": "yzx1428",
"type": {
"type_name": "学习",
"type_key": "study"
},
"view": 0,
"commentNum": 0,
"face": "talk_face.jpg"
}
],
"pageNum": 1,
"pageSize": 15,
"size": 1,
"startRow": 1,
"endRow": 1,
"pages": 1,
"prePage": 0,
"nextPage": 0,
"isFirstPage": true,
"isLastPage": true,
"hasPreviousPage": false,
"hasNextPage": false,
"navigatePages": 8,
"navigatepageNums": [
1
],
"navigateFirstPage": 1,
"navigateLastPage": 1
}
}</code></pre>