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

pull/254/head
xjs 4 years ago
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 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>
<div> </el-card>
<span>{{ allnetwork.digest }}</span> </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> </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="4">
</el-collapse-item> <el-card shadow="hover">
<el-collapse-item class="el-collapse-item" title="百度热搜榜" name="4"> <div v-for="baidu in topsearchList.baiduList" :key="baidu.id" class="baidu">
<el-card shadow="hover"> <div>
<div v-for="baidu in topsearchList.baiduList" :key="baidu.id" class="baidu"> <h3 style="font-weight: 800">{{ baidu.title }}</h3>
<div> </div>
<h3 style="font-weight: 800">{{ baidu.title }}</h3> <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>
<div> </el-card>
<span>{{ baidu.digest }}</span> </el-collapse-item>
<el-divider direction="vertical"></el-divider> <el-collapse-item class="el-collapse-item" title="微信热搜榜" name="5">
<span style="color: red;margin-left: 25px">{{ baidu.trend }}</span> <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> </div>
<el-divider><i class="el-icon-mobile-phone"></i></el-divider> </el-card>
</div> </el-collapse-item>
</el-card> </el-collapse>
</el-collapse-item> </div>
<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>
<!-- 回到顶部--> <!-- 回到顶部-->
@ -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…
Cancel
Save