1、热搜榜历史数据功能实现

pull/254/head
xjs 4 years ago
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 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">{{ 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-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>
<div>
<span>{{ allnetwork.digest }}</span>
</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-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>
</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>
<div>
<span>{{ baidu.digest }}</span>
<el-divider direction="vertical"></el-divider>
<span style="color: red;margin-left: 25px">{{ baidu.trend }}</span>
</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-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>
</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…
Cancel
Save