Skip to content

1.实战说明

1.1.实战安排

此次实战为分组实战,按组完成所有的需求即可,共分为两天完成

1.2.需求说明

此次实战共分为三部分,详细查看需求文件夹,里面包含了所有的需求说明和接口文档

  • 01-文章评论[实战]-->使用mongodb进行存储
  • 02-自媒体评论管理[实战]-->使用mongodb进行存储
  • 03-自媒体图文统计[实战]

1.3.资料说明

1.此次实战主要针对是app端和自媒体端,里面会涉及到一些表,都可以在资料中直接找到

2.自媒体前端项目需要替换之前的项目,可以在资料中找到

3.尤其注意事项:在新的自媒体前端项目中,前端传参数的时候,有的是使用了get请求传递了多个参数,需要重新配置nginx获得到get请求中的路径上的参数

配置如下:heima-leadnews-wemedia.conf

nginx
upstream  heima-wemedia-gateway{
    server localhost:51602;
}

server {
	listen 8802;
	location / {
		root D:/workspace/wemedia-web-v2/;
		index index.html;
	}
	
	location ~/wemedia/MEDIA/(.*) {
		proxy_pass http://heima-wemedia-gateway/$1?$args; #后端服务可以接收get请求路径上的参数
		proxy_set_header HOST $host;  # 不改变源请求头的值
		proxy_pass_request_body on;  #开启获取请求体
		proxy_pass_request_headers on;  #开启获取请求头
		proxy_set_header X-Real-IP $remote_addr;   # 记录真实发出请求的客户端IP
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  #记录代理信息
	}
}

2.文章评论

需要新创建模板完成评论功能heima-leadnews-comment

评论的所有数据都保存在mongodb中

2.1 文章评论

2.1.1.发布评论

  • 在文章详情中发表评论,输入内容发表评论
  • 必须登录后才能发表评论
  • 评论内容不能超过140字
  • 评论内容需要做文本垃圾检测

2.1.2 点赞

  • 用户点赞,可以增加点赞数量,点赞后不仅仅要增加点赞数,需要记录当前用户对于当前评论的数据记录

  • 用户取消点赞,点赞减一,更新点赞数据

2.1.3 评论列表

展示评论内容、评论的作者、点赞数、回复数、时间

  • 查询评论列表,根据当前文章进行检索,按照创建时间倒序,分页查询(默认10条数据)
  • 在结果返回中,如果当天登录人点赞了某条评论,需要高亮展示“点赞按钮

2.2.评论回复

2.2.1.评论回复-发布

image-20210728164814023

  • 需求与发表评论一致
  • 保存成功后需要更新评论的回复数量

2.2.2.点赞

需求与评论的点赞一致

2.2.3 查询评论回复列表

需求与评论的列表查看一致

文章评论-接口文档

1 评论

1.1 保存评论

接口地址:/api/v1/comment/save

请求方式:POST

请求数据类型:application/json

响应数据类型:*/*

接口描述:

请求示例:

javascript
{
	"articleId": 0,
	"content": ""
}

请求参数:

参数名称参数说明in是否必须数据类型schema
dtodtobodytrueCommentSaveDtoCommentSaveDto
  articleId文章idfalselong
  content评论内容falsestring

响应状态:

状态码说明schema
200OKResponseResult
201Created
401Unauthorized
403Forbidden
404Not Found

响应参数:

参数名称参数说明类型schema
codeinteger(int32)integer(int32)
dataobject
errorMessagestring
hoststring

响应示例:

javascript
{
	"code": 0,
	"data": {},
	"errorMessage": "",
	"host": ""
}

1.2 查询评论列表

接口地址:/api/v1/comment/load

请求方式:POST

请求数据类型:application/json

响应数据类型:*/*

接口描述:

请求示例:

javascript
{
	"articleId": 0,
	"index": 0,
	"minDate": ""
}

请求参数:

参数名称参数说明in是否必须数据类型schema
dtodtobodytrueCommentDtoCommentDto
  articleId文章idfalselong
  minDate分页条件 最小时间falsedate

响应状态:

状态码说明schema
200OKResponseResult
201Created
401Unauthorized
403Forbidden
404Not Found

响应参数:

参数名称参数说明类型schema
codeinteger(int32)integer(int32)
dataobject
errorMessagestring
hoststring

在返回的评论列表中,需要包含一个字段operation,如果为0,则表示当前登录用户点赞了评论,如果为null,则没有点赞

响应示例:

javascript
{
    "host":null,
    "code":0,
    "errorMessage":"操作成功",
    "data":[
        {
            "id":"610104c706a0020006fedd6c",
            "authorId":4,
            "authorName":"admin",
            "entryId":1413441424799698946,
            "channelId":null,
            "type":0,
            "content":"写得不错",
            "image":null,
            "likes":1,
            "reply":0,
            "flag":0,
            "longitude":null,
            "latitude":null,
            "address":null,
            "ord":null,
            "createdTime":1627456711549,
            "updatedTime":null,
            "operation":0
        },
        {
            "id":"610104bf06a0020006fedd6b",
            "authorId":4,
            "authorName":"admin",
            "entryId":1413441424799698946,
            "channelId":null,
            "type":0,
            "content":"好文章",
            "image":null,
            "likes":0,
            "reply":0,
            "flag":0,
            "longitude":null,
            "latitude":null,
            "address":null,
            "ord":null,
            "createdTime":1627456703366,
            "updatedTime":null,
            "operation":null
        }
    ]
}

1.3 点赞

接口地址:/api/v1/comment/like

请求方式:POST

请求数据类型:application/json

响应数据类型:*/*

接口描述:

请求示例:

javascript
{
	"commentId": "",
	"operation": 0
}

请求参数:

参数名称参数说明in是否必须数据类型schema
dtodtobodytrueCommentLikeDtoCommentLikeDto
  commentId评论idfalsestring
  operation0:点赞 1:取消点赞falseshort

响应状态:

状态码说明schema
200OKResponseResult
201Created
401Unauthorized
403Forbidden
404Not Found

响应参数:

参数名称参数说明类型schema
codeinteger(int32)integer(int32)
dataobject
errorMessagestring
hoststring

响应示例:

javascript
{
    "host":null,
    "code":0,
    "errorMessage":"操作成功",
    "data":{
        "likes":88
    }
}

2 评论回复

2.1 保存

接口地址:/api/v1/comment_repay/save

请求方式:POST

请求数据类型:application/json

响应数据类型:*/*

接口描述:

请求示例:

javascript
{
	"commentId": "",
	"content": ""
}

请求参数:

参数名称参数说明in是否必须数据类型schema
dtodtobodytrueCommentRepaySaveDtoCommentRepaySaveDto
  commentId评论idfalsestring
  content评论内容falsestring

响应状态:

状态码说明schema
200OKResponseResult
201Created
401Unauthorized
403Forbidden
404Not Found

响应参数:

参数名称参数说明类型schema
codeinteger(int32)integer(int32)
dataobject
errorMessagestring
hoststring

响应示例:

javascript
{
	"code": 0,
	"data": {},
	"errorMessage": "",
	"host": ""
}

2.2 查询评论回复列表

接口地址:/api/v1/comment_repay/load

请求方式:POST

请求数据类型:application/json

响应数据类型:*/*

接口描述:

请求示例:

javascript
{
	"commentId": "",
	"minDate": "",
	"size": 0
}

请求参数:

参数名称参数说明in是否必须数据类型schema
dtodtobodytrueCommentRepayDtoCommentRepayDto
  commentId评论idfalsestring
  minDate列表中的最小时间falsedate
  size分页条数falseint

响应状态:

状态码说明schema
200OKResponseResult
201Created
401Unauthorized
403Forbidden
404Not Found

响应参数:

参数名称参数说明类型schema
codeinteger(int32)integer(int32)
dataobject
errorMessagestring
hoststring

在返回的评论回复列表中,需要包含一个字段operation,如果为0,则表示当前登录用户点赞了评论,如果为null,则没有点赞

响应示例:

javascript
{
	"code": 0,
	"data": {},
	"errorMessage": "",
	"host": ""
}

2.3 点赞

接口地址:/api/v1/comment_repay/like

请求方式:POST

请求数据类型:application/json

响应数据类型:*/*

接口描述:

请求示例:

javascript
{
	"commentRepayId": "",
	"operation": 0
}

请求参数:

参数名称参数说明in是否必须数据类型schema
dtodtobodytrueCommentRepayLikeDtoCommentRepayLikeDto
  commentRepayId评论回复idfalsestring
  operation0:点赞 1:取消点赞falseshort

响应状态:

状态码说明schema
200OKResponseResult
201Created
401Unauthorized
403Forbidden
404Not Found

响应参数:

参数名称参数说明类型schema
codeinteger(int32)integer(int32)
dataobject
errorMessagestring
hoststring

响应示例:

javascript
{
    "host":null,
    "code":0,
    "errorMessage":"操作成功",
    "data":{
        "likes":88
    }
}

自媒体评论管理-需求说明

1)评论管理查询

image-20210808114952078

  • 按照时间倒序查询发布的文章
  • 展示文章标题 评论状态 评论总量
  • 分页可以查询
  • 可以按照时间范围查询

2)打开或关闭评论

image-20210808115209472

  • 打开评论,可以让任何用户评论该文章
  • 关闭评论,不让任何用户评论该文章,关闭评论,则清除所有该文章的评论

3)查看文章评论详情

点击查看按钮即可查看文章评论的详细内容

  • 展示文章的评论
  • 展示评论的对应回复列表

image-20210808115424316

image-20210808115443040

4)作者回复评论

作者可以对某一条评论进行回复

image-20210808115817750

5)作者点赞评论

  • 作者可以点赞评论,点赞后点赞数+1

image-20210808115913383

6)作者可以删除评论

image-20210808120022061

7 删除评论回复

image-20210903234124566

8 注意

以上功能都要先过自媒体微服务

自媒体评论管理-接口说明

1.删除评论

基本信息

Path: /wemedia/api/v1/comment/manage/del_comment/

Method: DELETE

接口描述:

请求参数

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
路径参数

| 参数名称 | 示例 | 备注 | | ------------ | ------------ | ------------ | ------------ | ------------ | | commentId | | 评论id | Body

名称类型是否必须默认值备注其他信息

返回数据

名称类型是否必须默认值备注其他信息
hostnull非必须
codeinteger非必须

最大值: 200

最小值: 200

errorMessagestring非必须

枚举: 操作成功

datastring非必须

枚举: SUCCESS

2.删除评论回复

基本信息

Path:/api/v1/comment/manage/del_comment_repay/

Method: DELETE

接口描述:

请求参数

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
路径参数

| 参数名称 | 示例 | 备注 | | ------------ | ------------ | ------------ | ------------ | ------------ | | commentRepayId | | 评论回复id |

返回数据

名称类型是否必须默认值备注其他信息
hostnull非必须
codenumber非必须
errorMessagestring非必须
datastring非必须

3.回复评论

基本信息

Path: /api/v1/comment/manage/comment_repay

Method: POST

接口描述:

请求参数

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
Body
名称类型是否必须默认值备注其他信息
commentIdstring非必须评论id
contentstring非必须评论内容

返回数据

名称类型是否必须默认值备注其他信息
codenumber非必须

最大值: 200

最小值: 200

dataobject非必须
errorMessagestring非必须

枚举: 操作成功

hoststring非必须

4.打开或关闭评论

基本信息

Path: /api/v1/comment/manage/update_comment_status

Method: POST

接口描述:

请求参数

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
Body
名称类型是否必须默认值备注其他信息
articleIdinteger非必须文章id
operationinteger非必须0 关闭评论 1 开启评论

返回数据

名称类型是否必须默认值备注其他信息
hostnull非必须
codenumber非必须

最大值: 200

最小值: 200

errorMessagestring非必须

枚举: 操作成功

datastring非必须

5.查看评论列表

基本信息

Path: /api/v1/comment/manage/find_news_comments

Method: POST

接口描述:

请求参数

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
Body
名称类型是否必须默认值备注其他信息
beginDatestring非必须开始时间
endDatestring非必须结束时间
pagenumber非必须当前页
sizenumber非必须每页显示条数

返回数据

名称类型是否必须默认值备注其他信息
codeinteger必须

最大值: 200

最小值: 200

currentPageinteger必须

最大值: 1

最小值: 1

dataobject []必须

最小数量: 10

元素是否都不同: true

最大数量: 10

item 类型: object

├─ idstring必须文章id

枚举: 1302862387124125698,1302864436297482242

├─ titlestring必须文章名称

枚举: 什么是Java语言,Java语言跨平台原理,项目管理感悟,北大创业人:“理想”的喧哗与骚动,没想到,拼多多竟然想用AI种草莓给我吃,英特尔是如何丢掉苹果生意的?,“鹰翼门”关不上,“幽灵刹车”事件不断,特斯拉…,微软及时选择“站队”,或拯救了折叠屏手机的未…

├─ commentsinteger必须评论总量

最大值: 9999

最小值: 1000

├─ isCommentboolean必须评论状态
├─ createdTimeinteger必须创建时间

最大值: 1623224026546

最小值: 1623224026546

errorMessagestring必须

枚举: 操作成功

hoststring必须
sizeinteger必须

最大值: 10

最小值: 10

totalinteger必须

最大值: 100

最小值: 100

6.查看评论列表

基本信息

Path: /api/v1/comment/manage/list

Method: POST

接口描述:

请求参数

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
Body
名称类型是否必须默认值备注其他信息
articleIdnumber非必须文章id
pagenumber非必须当前页
sizenumber非必须每页显示条数

返回数据

名称类型是否必须默认值备注其他信息
hostnull必须
codenumber必须

最大值: 200

最小值: 200

errorMessagestring必须

枚举: 操作成功

dataobject []必须

最小数量: 10

元素是否都不同: true

最大数量: 10

item 类型: object

├─ apCommentsobject必须
├─ idstring必须

枚举: 60c06eda4e71825b1b14f0f7

├─ authorIdnumber必须
├─ authorNamestring必须

枚举: 覃妹艺,飞翔的大象,白一捧

├─ entryIdnumber必须
├─ channelIdnull必须
├─ typenumber必须
├─ contentstring必须

枚举: 电商已经把实体门店挤兑得不行了,现在又来了个社区团购,又会有一大批社会底层人员失业…,唉,社区团购虽然说是时代潮流产物,但是对原本的实体经济体制破坏太大了,很多独立小商家以为扩大了顾客群体,但是实际却被割了韭菜,平台永远不会亏钱的,利益受害的只会是商家,是的受伤的不仅是商家,一旦平台获得话语权。菜农商家消费者都是菜板上的肉等着被宰。充电宝,滴滴打车就是前车之鉴啊!市场需要合理的监管了。不能再等了。好多小商贩,就是好多个嗷嗷待哺的家,。社区团购干掉这样的“中间商”干嘛呢?你让底层人民怎么活?

├─ imagenull必须
├─ likesinteger必须

最大值: 10

最小值: 0

├─ replyinteger必须

最大值: 10

最小值: 0

├─ flaginteger必须
├─ ordnull必须
├─ createdTimeinteger必须

最大值: 1623224026546

最小值: 1623224026546

├─ updatedTimenull必须
├─ statusnull必须
├─ operationinteger必须0:点赞 1:取消点赞

最大值: 1

最小值: 1

├─ apCommentRepaysobject []必须

item 类型: object

├─ idstring必须

枚举: 60c2052bddf781003cc72e67

├─ authorIdnumber必须
├─ authorNamestring必须

枚举: 我的地盘,你在教我做事啊,我的地盘,白一捧

├─ commentIdstring必须
├─ contentstring必须

枚举: 胡说八道,小商户一年一两万的房租跟十来万的毛利相比不值一提,无秩序无规则的电商经济才是打垮实体经济的罪魁祸首,社会底层人生与死对人类发展对我国发展的作用很低,社区团购也是把他们那份收入剥夺拿去发展高科技,其实大方向是对的,就像人类吃排骨不会担心猪会疼一个道理,胡说八道,小商户一年一两万的房租跟十来万的毛利相比不值一提,无秩序无规则的电商经济才是打垮实体经济的罪魁祸首,一家之言,仅供参考,不要人身攻击

├─ likesnumber必须
├─ createdTimeinteger必须

最大值: 1623328043049

最小值: 1623328043049

├─ updatedTimenumber必须

7.评论点赞

基本信息

Path:/api/v1/comment/manage/like

Method: POST

接口描述:

请求参数

Headers

参数名称参数值是否必须示例备注
Content-Typeapplication/json
Body
名称类型是否必须默认值备注其他信息
commentIdstring非必须评论id
operationnumber非必须0:点赞 1:取消点赞

返回数据

名称类型是否必须默认值备注其他信息
codenumber非必须

最大值: 200

最小值: 200

dataobject非必须
├─ likesinteger非必须

最大值: 100

最小值: 0

errorMessagestring非必须

枚举: 操作成功

hoststring非必须

自媒体图文数据统计-需求说明

image-20210903120807622

如上图所示:

自媒体人登录到自媒体系统后可以查看最近的统计报表

  • 当前登录的用户可以选择指定时间查看文章的一些统计(图片发布量、文章点赞量、文章收藏量、文章点赞量)
  • 分页展示文章列表,展示当前时间范围内的具体文章阅读、评论、收藏的数量。

自媒体图文统计-接口文档

需要在自媒体微服务定义接口

newsDimension

接口地址:/api/v1/statistics/newsDimension

请求方式:GET

请求数据类型:*

响应数据类型:*/*

接口描述:

请求参数:

参数名称参数说明in是否必须数据类型schema
beginDate开始时间queryfalsestring
endDate结束时间queryfalsestring

响应状态:

状态码说明schema
200OKResponseResult
401Unauthorized
403Forbidden
404Not Found

响应参数:

参数名称参数说明类型schema
codeinteger(int32)integer(int32)
dataobject
errorMessagestring
hoststring

响应示例:

javascript
{
    "host":null,
    "code":200,
    "errorMessage":"操作成功",
    "data":{
        "likesNum":104,
        "collectNum":814,
        "publishNum":13
    }
}

newsPage

接口地址:/api/v1/statistics/newsPage

请求方式:GET

请求数据类型:*

响应数据类型:*/*

接口描述:

请求参数:

参数名称参数说明in是否必须数据类型schema
beginDate开始时间queryfalsestring
endDate结束时间queryfalsestring
page当前页queryfalseinteger(int32)
size每页大小queryfalseinteger(int32)

响应状态:

状态码说明schema
200OKResponseResult
401Unauthorized
403Forbidden
404Not Found

响应参数:

参数名称参数说明类型schema
codeinteger(int32)integer(int32)
dataobject
errorMessagestring
hoststring

响应示例:

javascript
{
    "host":null,
    "code":200,
    "errorMessage":null,
    "data":[
        {
            "id":"1428570910251683841",
            "title":"一百多年前美国蝗灾有多恐怖?用了四十年才解决这个难题",
            "likes":11,
            "collection":22,
            "comment":22,
            "views":22
        },
        {
            "id":"1428567583451385857",
            "title":"靠发“战争财”的罗斯柴尔德家族,鸦片战争他们也是幕后推手",
            "likes":33,
            "collection":66,
            "comment":66,
            "views":8888
        }
    ],
    "currentPage":1,
    "size":10,
    "total":13
}