1、热搜榜历史数据功能实现
This commit is contained in:
parent
da6a4dda62
commit
074ca69f8c
|
|
@ -7,3 +7,12 @@ export function getTopsearch() {
|
|||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
//获取历史热搜榜
|
||||
export function getHistoryTopSearch(value) {
|
||||
return request({
|
||||
url: '/openapi/topsearch/getHistoryTopSearch',
|
||||
method: 'get',
|
||||
params: {date:value}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,61 +1,96 @@
|
|||
<template>
|
||||
|
||||
<div style="padding: 10px" v-loading="loading">
|
||||
<el-collapse @change="handleChange">
|
||||
<el-collapse-item class="el-collapse-item" title="抖音热搜榜" name="1">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="douyin in topsearchList.douyinList" :key="douyin.id" class="douyin">
|
||||
<span>{{ douyin.word }}</span>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<span style="color: red;margin-left: 25px">{{ douyin.label }}</span>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item class="el-collapse-item" title="微博热搜榜" name="2">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="weibo in topsearchList.weiboList" :key="weibo.id" class="douyin">
|
||||
<span>{{ weibo.hotword }}</span>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<span style="color: red;margin-left: 25px">{{ weibo.hottag }}</span>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item class="el-collapse-item" title="全网热搜榜" name="3">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="allnetwork in topsearchList.allnetworkList" :key="allnetwork.id" class="allnetwork">
|
||||
<div>
|
||||
<h3 style="font-weight: 800">{{ allnetwork.title }}</h3>
|
||||
</div>
|
||||
<div>
|
||||
<span>{{ allnetwork.digest }}</span>
|
||||
</div>
|
||||
<el-divider><i class="el-icon-mobile-phone"></i></el-divider>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item class="el-collapse-item" title="百度热搜榜" name="4">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="baidu in topsearchList.baiduList" :key="baidu.id" class="baidu">
|
||||
<div>
|
||||
<h3 style="font-weight: 800">{{ baidu.title }}</h3>
|
||||
</div>
|
||||
<div>
|
||||
<span>{{ baidu.digest }}</span>
|
||||
|
||||
<div style="width: 100%;">
|
||||
<el-form :inline="true">
|
||||
<el-form-item>
|
||||
<el-date-picker
|
||||
v-model="dateValue"
|
||||
align="left"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
format="yyyy 年 MM 月 dd 日"
|
||||
value-format="yyyy-MM-dd"
|
||||
:picker-options="pickerOptions">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getHistoryTopSearch">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<el-collapse @change="handleChange">
|
||||
<el-collapse-item class="el-collapse-item" title="抖音热搜榜" name="1">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="douyin in topsearchList.douyinList" :key="douyin.id" class="douyin">
|
||||
<span>{{ douyin.word }}</span>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<span style="color: red;margin-left: 25px">{{ baidu.trend }}</span>
|
||||
<span style="color: red;margin-left: 25px">{{ douyin.label }}</span>
|
||||
<span style="font-size: 13px;font-weight: 500;margin-left: 25px;float: right">{{ douyin.createTime }}</span>
|
||||
<el-divider><i class="el-icon-mobile-phone"></i></el-divider>
|
||||
</div>
|
||||
<el-divider><i class="el-icon-mobile-phone"></i></el-divider>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item class="el-collapse-item" title="微信热搜榜" name="5">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="wechat in topsearchList.wechatList" :key="wechat.id" class="douyin">
|
||||
<span>{{ wechat.word }}</span>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item class="el-collapse-item" title="微博热搜榜" name="2">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="weibo in topsearchList.weiboList" :key="weibo.id" class="douyin">
|
||||
<span>{{ weibo.hotword }}</span>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<span style="color: red;margin-left: 25px">{{ weibo.hottag }}</span>
|
||||
<span style="font-size: 13px;font-weight: 500;margin-left: 25px;float: right">{{ weibo.createTime }}</span>
|
||||
<el-divider><i class="el-icon-mobile-phone"></i></el-divider>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item class="el-collapse-item" title="全网热搜榜" name="3">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="allnetwork in topsearchList.allnetworkList" :key="allnetwork.id" class="allnetwork">
|
||||
<div>
|
||||
<h3 style="font-weight: 800">{{ allnetwork.title }}</h3>
|
||||
</div>
|
||||
<div>
|
||||
<span>{{ allnetwork.digest }}</span>
|
||||
<span style="font-size: 13px;font-weight: 500;margin-left: 25px;float: right">{{
|
||||
allnetwork.createTime
|
||||
}}</span>
|
||||
</div>
|
||||
<el-divider><i class="el-icon-mobile-phone"></i></el-divider>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item class="el-collapse-item" title="百度热搜榜" name="4">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="baidu in topsearchList.baiduList" :key="baidu.id" class="baidu">
|
||||
<div>
|
||||
<h3 style="font-weight: 800">{{ baidu.title }}</h3>
|
||||
</div>
|
||||
<div>
|
||||
<span>{{ baidu.digest }}</span>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<span style="color: red;margin-left: 25px">{{ baidu.trend }}</span>
|
||||
<span style="font-size: 13px;font-weight: 500;margin-left: 25px;float: right">{{
|
||||
baidu.createTime
|
||||
}}</span>
|
||||
</div>
|
||||
<el-divider><i class="el-icon-mobile-phone"></i></el-divider>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item class="el-collapse-item" title="微信热搜榜" name="5">
|
||||
<el-card shadow="hover">
|
||||
<div v-for="wechat in topsearchList.wechatList" :key="wechat.id" class="douyin">
|
||||
<span>{{ wechat.word }}</span>
|
||||
<span style="font-size: 13px;font-weight: 500;margin-left: 25px;float: right">{{ wechat.createTime }}</span>\
|
||||
<el-divider><i class="el-icon-mobile-phone"></i></el-divider>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- 回到顶部-->
|
||||
|
|
@ -68,7 +103,7 @@
|
|||
|
||||
<script>
|
||||
|
||||
import {getTopsearch} from "@/api/business/openapi/topsearch";
|
||||
import {getTopsearch, getHistoryTopSearch} from "@/api/business/openapi/topsearch";
|
||||
|
||||
export default {
|
||||
name: "Topsearch",
|
||||
|
|
@ -81,7 +116,37 @@ export default {
|
|||
topsearchList: {},
|
||||
|
||||
//默认打开哪个
|
||||
activeNames: ['1']
|
||||
activeNames: ['1'],
|
||||
|
||||
|
||||
//日期组件
|
||||
pickerOptions: {
|
||||
disabledDate(time) {
|
||||
return time.getTime() > Date.now();
|
||||
},
|
||||
shortcuts: [{
|
||||
text: '今天',
|
||||
onClick(picker) {
|
||||
picker.$emit('pick', new Date());
|
||||
}
|
||||
}, {
|
||||
text: '昨天',
|
||||
onClick(picker) {
|
||||
const date = new Date();
|
||||
date.setTime(date.getTime() - 3600 * 1000 * 24);
|
||||
picker.$emit('pick', date);
|
||||
}
|
||||
}, {
|
||||
text: '一周前',
|
||||
onClick(picker) {
|
||||
const date = new Date();
|
||||
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
|
||||
picker.$emit('pick', date);
|
||||
}
|
||||
}]
|
||||
},
|
||||
|
||||
dateValue: '',
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
|
@ -90,6 +155,17 @@ export default {
|
|||
|
||||
|
||||
methods: {
|
||||
//获取历史热搜榜
|
||||
getHistoryTopSearch() {
|
||||
this.topsearchList={}
|
||||
this.loading = true
|
||||
console.log(this.dateValue)
|
||||
getHistoryTopSearch(this.dateValue).then(res =>{
|
||||
this.loading = false
|
||||
this.topsearchList=res.data
|
||||
})
|
||||
},
|
||||
|
||||
//获取热搜榜
|
||||
getTopsearch() {
|
||||
this.loading = true
|
||||
|
|
@ -120,6 +196,6 @@ export default {
|
|||
.allnetwork {
|
||||
margin-bottom: 20px;
|
||||
font-size: 15px;
|
||||
margin-left: 25px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public class OpenApiTask {
|
|||
public void deleteRepeat() {
|
||||
int copyWritingCount = copyWritingService.deleteRepeatData();
|
||||
log.info("thread id:{},定时清除文案重复数据,重复数:{}", Thread.currentThread().getId(),copyWritingCount);
|
||||
Integer integer = topSearchService.deleteRepeat();
|
||||
Integer integer = topSearchService.deleteRepeatData();
|
||||
log.info("thread id:{},定时清除重复数据总数,重复数:{}", Thread.currentThread().getId(),integer);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import lombok.extern.log4j.Log4j2;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -54,4 +55,14 @@ public class ApiTopSearchController {
|
|||
}
|
||||
|
||||
|
||||
@GetMapping("getHistoryTopSearch")
|
||||
@ApiOperation("历史热搜榜接口")
|
||||
@Log(title = "获取历史热搜榜")
|
||||
@RequiresPermissions("openapi:topsearch:list")
|
||||
public AjaxResult getHistoryTopSearchByDate(@RequestParam("date") String date) {
|
||||
Map<String, List> data = topSearchService.getHistoryTopSearchByDate(date);
|
||||
return AjaxResult.success(data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public interface TopSearchService {
|
|||
* 删除重复数据
|
||||
* @return
|
||||
*/
|
||||
Integer deleteRepeat();
|
||||
Integer deleteRepeatData();
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class TopSearchServiceImpl implements TopSearchService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Integer deleteRepeat() {
|
||||
public Integer deleteRepeatData() {
|
||||
Integer allNetworkCount = apiTopsearchAllnetworkService.deleteRepeatData();
|
||||
log.info("thread id:{},清除全网热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),allNetworkCount);
|
||||
Integer wechatCount = apiTopsearchWechatService.deleteRepeatData();
|
||||
|
|
@ -86,20 +86,26 @@ public class TopSearchServiceImpl implements TopSearchService {
|
|||
public Map<String, List> getHistoryTopSearchByDate(String date) {
|
||||
DateTime dateTime = DateUtil.parseDate(date);
|
||||
String dateStr = dateTime.toDateStr();
|
||||
|
||||
String StartDate = dateStr + " 00:00:00";
|
||||
String EndDate = dateStr + " 23:59:59";
|
||||
|
||||
List<ApiTopsearchAllnetwork> allnetworkList = apiTopsearchAllnetworkService
|
||||
.list(new QueryWrapper<ApiTopsearchAllnetwork>()
|
||||
List<ApiTopsearchAllnetwork> allnetworkList = apiTopsearchAllnetworkService.list(new QueryWrapper<ApiTopsearchAllnetwork>()
|
||||
.between("create_time", StartDate, EndDate));
|
||||
List<ApiTopsearchWechat> wechatList = apiTopsearchWechatService.list(new QueryWrapper<ApiTopsearchWechat>()
|
||||
.between("create_time", StartDate, EndDate));
|
||||
List<ApiTopsearchBaidu> baiduList = apiTopsearchBaiduService.list(new QueryWrapper<ApiTopsearchBaidu>()
|
||||
.between("create_time", StartDate, EndDate));
|
||||
List<ApiTopsearchDouyin> douyinList = apiTopsearchDouyinService.list(new QueryWrapper<ApiTopsearchDouyin>()
|
||||
.between("create_time", StartDate, EndDate));
|
||||
List<ApiTopsearchWeibo> weiboList = apiTopsearchWeiboService.list(new QueryWrapper<ApiTopsearchWeibo>()
|
||||
.between("create_time", StartDate, EndDate));
|
||||
|
||||
|
||||
// todo 热搜榜历史数据显示实现
|
||||
|
||||
|
||||
HashMap<String, List> hashMap = new HashMap<>();
|
||||
hashMap.put("allnetworkList", allnetworkList);
|
||||
hashMap.put("wechatList", wechatList);
|
||||
hashMap.put("baiduList", baiduList);
|
||||
hashMap.put("douyinList", douyinList);
|
||||
hashMap.put("weiboList", weiboList);
|
||||
return hashMap;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue