1、热搜榜历史数据功能实现
This commit is contained in:
parent
da6a4dda62
commit
074ca69f8c
|
|
@ -7,3 +7,12 @@ export function getTopsearch() {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取历史热搜榜
|
||||||
|
export function getHistoryTopSearch(value) {
|
||||||
|
return request({
|
||||||
|
url: '/openapi/topsearch/getHistoryTopSearch',
|
||||||
|
method: 'get',
|
||||||
|
params: {date:value}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,61 +1,96 @@
|
||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div style="padding: 10px" v-loading="loading">
|
<div style="padding: 10px" v-loading="loading">
|
||||||
<el-collapse @change="handleChange">
|
|
||||||
<el-collapse-item class="el-collapse-item" title="抖音热搜榜" name="1">
|
<div style="width: 100%;">
|
||||||
<el-card shadow="hover">
|
<el-form :inline="true">
|
||||||
<div v-for="douyin in topsearchList.douyinList" :key="douyin.id" class="douyin">
|
<el-form-item>
|
||||||
<span>{{ douyin.word }}</span>
|
<el-date-picker
|
||||||
<el-divider direction="vertical"></el-divider>
|
v-model="dateValue"
|
||||||
<span style="color: red;margin-left: 25px">{{ douyin.label }}</span>
|
align="left"
|
||||||
</div>
|
type="date"
|
||||||
</el-card>
|
placeholder="选择日期"
|
||||||
</el-collapse-item>
|
format="yyyy 年 MM 月 dd 日"
|
||||||
<el-collapse-item class="el-collapse-item" title="微博热搜榜" name="2">
|
value-format="yyyy-MM-dd"
|
||||||
<el-card shadow="hover">
|
:picker-options="pickerOptions">
|
||||||
<div v-for="weibo in topsearchList.weiboList" :key="weibo.id" class="douyin">
|
</el-date-picker>
|
||||||
<span>{{ weibo.hotword }}</span>
|
</el-form-item>
|
||||||
<el-divider direction="vertical"></el-divider>
|
<el-form-item>
|
||||||
<span style="color: red;margin-left: 25px">{{ weibo.hottag }}</span>
|
<el-button type="primary" @click="getHistoryTopSearch">查询</el-button>
|
||||||
</div>
|
</el-form-item>
|
||||||
</el-card>
|
</el-form>
|
||||||
</el-collapse-item>
|
</div>
|
||||||
<el-collapse-item class="el-collapse-item" title="全网热搜榜" name="3">
|
|
||||||
<el-card shadow="hover">
|
<div>
|
||||||
<div v-for="allnetwork in topsearchList.allnetworkList" :key="allnetwork.id" class="allnetwork">
|
<el-collapse @change="handleChange">
|
||||||
<div>
|
<el-collapse-item class="el-collapse-item" title="抖音热搜榜" name="1">
|
||||||
<h3 style="font-weight: 800">{{ allnetwork.title }}</h3>
|
<el-card shadow="hover">
|
||||||
</div>
|
<div v-for="douyin in topsearchList.douyinList" :key="douyin.id" class="douyin">
|
||||||
<div>
|
<span>{{ douyin.word }}</span>
|
||||||
<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>
|
|
||||||
<el-divider direction="vertical"></el-divider>
|
<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>
|
</div>
|
||||||
<el-divider><i class="el-icon-mobile-phone"></i></el-divider>
|
</el-card>
|
||||||
</div>
|
</el-collapse-item>
|
||||||
</el-card>
|
<el-collapse-item class="el-collapse-item" title="微博热搜榜" name="2">
|
||||||
</el-collapse-item>
|
<el-card shadow="hover">
|
||||||
<el-collapse-item class="el-collapse-item" title="微信热搜榜" name="5">
|
<div v-for="weibo in topsearchList.weiboList" :key="weibo.id" class="douyin">
|
||||||
<el-card shadow="hover">
|
<span>{{ weibo.hotword }}</span>
|
||||||
<div v-for="wechat in topsearchList.wechatList" :key="wechat.id" class="douyin">
|
<el-divider direction="vertical"></el-divider>
|
||||||
<span>{{ wechat.word }}</span>
|
<span style="color: red;margin-left: 25px">{{ weibo.hottag }}</span>
|
||||||
</div>
|
<span style="font-size: 13px;font-weight: 500;margin-left: 25px;float: right">{{ weibo.createTime }}</span>
|
||||||
</el-card>
|
<el-divider><i class="el-icon-mobile-phone"></i></el-divider>
|
||||||
</el-collapse-item>
|
</div>
|
||||||
</el-collapse>
|
</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>
|
<script>
|
||||||
|
|
||||||
import {getTopsearch} from "@/api/business/openapi/topsearch";
|
import {getTopsearch, getHistoryTopSearch} from "@/api/business/openapi/topsearch";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Topsearch",
|
name: "Topsearch",
|
||||||
|
|
@ -81,7 +116,37 @@ export default {
|
||||||
topsearchList: {},
|
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() {
|
created() {
|
||||||
|
|
@ -90,6 +155,17 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
//获取历史热搜榜
|
||||||
|
getHistoryTopSearch() {
|
||||||
|
this.topsearchList={}
|
||||||
|
this.loading = true
|
||||||
|
console.log(this.dateValue)
|
||||||
|
getHistoryTopSearch(this.dateValue).then(res =>{
|
||||||
|
this.loading = false
|
||||||
|
this.topsearchList=res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
//获取热搜榜
|
//获取热搜榜
|
||||||
getTopsearch() {
|
getTopsearch() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|
@ -120,6 +196,6 @@ export default {
|
||||||
.allnetwork {
|
.allnetwork {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
margin-left: 25px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ public class OpenApiTask {
|
||||||
public void deleteRepeat() {
|
public void deleteRepeat() {
|
||||||
int copyWritingCount = copyWritingService.deleteRepeatData();
|
int copyWritingCount = copyWritingService.deleteRepeatData();
|
||||||
log.info("thread id:{},定时清除文案重复数据,重复数:{}", Thread.currentThread().getId(),copyWritingCount);
|
log.info("thread id:{},定时清除文案重复数据,重复数:{}", Thread.currentThread().getId(),copyWritingCount);
|
||||||
Integer integer = topSearchService.deleteRepeat();
|
Integer integer = topSearchService.deleteRepeatData();
|
||||||
log.info("thread id:{},定时清除重复数据总数,重复数:{}", Thread.currentThread().getId(),integer);
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.List;
|
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
|
* @return
|
||||||
*/
|
*/
|
||||||
Integer deleteRepeat();
|
Integer deleteRepeatData();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ public class TopSearchServiceImpl implements TopSearchService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer deleteRepeat() {
|
public Integer deleteRepeatData() {
|
||||||
Integer allNetworkCount = apiTopsearchAllnetworkService.deleteRepeatData();
|
Integer allNetworkCount = apiTopsearchAllnetworkService.deleteRepeatData();
|
||||||
log.info("thread id:{},清除全网热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),allNetworkCount);
|
log.info("thread id:{},清除全网热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),allNetworkCount);
|
||||||
Integer wechatCount = apiTopsearchWechatService.deleteRepeatData();
|
Integer wechatCount = apiTopsearchWechatService.deleteRepeatData();
|
||||||
|
|
@ -86,20 +86,26 @@ public class TopSearchServiceImpl implements TopSearchService {
|
||||||
public Map<String, List> getHistoryTopSearchByDate(String date) {
|
public Map<String, List> getHistoryTopSearchByDate(String date) {
|
||||||
DateTime dateTime = DateUtil.parseDate(date);
|
DateTime dateTime = DateUtil.parseDate(date);
|
||||||
String dateStr = dateTime.toDateStr();
|
String dateStr = dateTime.toDateStr();
|
||||||
|
|
||||||
String StartDate = dateStr + " 00:00:00";
|
String StartDate = dateStr + " 00:00:00";
|
||||||
String EndDate = dateStr + " 23:59:59";
|
String EndDate = dateStr + " 23:59:59";
|
||||||
|
List<ApiTopsearchAllnetwork> allnetworkList = apiTopsearchAllnetworkService.list(new QueryWrapper<ApiTopsearchAllnetwork>()
|
||||||
List<ApiTopsearchAllnetwork> allnetworkList = apiTopsearchAllnetworkService
|
.between("create_time", StartDate, EndDate));
|
||||||
.list(new QueryWrapper<ApiTopsearchAllnetwork>()
|
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));
|
.between("create_time", StartDate, EndDate));
|
||||||
|
|
||||||
|
|
||||||
// todo 热搜榜历史数据显示实现
|
|
||||||
|
|
||||||
|
|
||||||
HashMap<String, List> hashMap = new HashMap<>();
|
HashMap<String, List> hashMap = new HashMap<>();
|
||||||
hashMap.put("allnetworkList", allnetworkList);
|
hashMap.put("allnetworkList", allnetworkList);
|
||||||
|
hashMap.put("wechatList", wechatList);
|
||||||
|
hashMap.put("baiduList", baiduList);
|
||||||
|
hashMap.put("douyinList", douyinList);
|
||||||
|
hashMap.put("weiboList", weiboList);
|
||||||
return hashMap;
|
return hashMap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue