From 9c8a8c81efd73ba073c3eea6548248cded6e97ea Mon Sep 17 00:00:00 2001
From: xjs <1294405880@qq.com>
Date: Sat, 22 Jan 2022 11:02:02 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=AE=9A=E6=97=B6=E8=8E=B7=E5=8F=96?=
=?UTF-8?q?=E7=83=AD=E6=90=9C=E6=A6=9C=E6=95=B0=E6=8D=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/xjs/common/task/DeleteRepeatTask.java | 53 ------------
.../java/com/xjs/common/task/OpenApiTask.java | 54 +++++++++++++
.../controller/ApiTopSearchController.java | 35 +-------
.../topsearch/service/TopSearchService.java | 27 +++++++
.../service/impl/TopSearchServiceImpl.java | 81 +++++++++++++++++++
...peatTaskTest.java => OpenApiTaskTest.java} | 8 +-
6 files changed, 169 insertions(+), 89 deletions(-)
delete mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/task/DeleteRepeatTask.java
create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/task/OpenApiTask.java
create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/service/TopSearchService.java
create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/service/impl/TopSearchServiceImpl.java
rename xjs-business/xjs-business-openapi/src/test/java/com/xjs/common/task/{DeleteRepeatTaskTest.java => OpenApiTaskTest.java} (69%)
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/task/DeleteRepeatTask.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/task/DeleteRepeatTask.java
deleted file mode 100644
index 856f8f5f..00000000
--- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/task/DeleteRepeatTask.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.xjs.common.task;
-
-import com.xjs.copywriting.service.CopyWritingService;
-import com.xjs.topsearch.service.*;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-/**
- * @author xiejs
- * @desc 删除重复文案数据
- * @create 2022-01-06
- */
-@Component
-@Log4j2
-public class DeleteRepeatTask {
- @Autowired
- private CopyWritingService copyWritingService;
- @Autowired
- private ApiTopsearchAllnetworkService apiTopsearchAllnetworkService;
- @Autowired
- private ApiTopsearchWechatService apiTopsearchWechatService;
- @Autowired
- private ApiTopsearchBaiduService apiTopsearchBaiduService;
- @Autowired
- private ApiTopsearchDouyinService apiTopsearchDouyinService;
- @Autowired
- private ApiTopsearchWeiboService apiTopsearchWeiboService;
-
-
- /**
- * 2022-01-07 07:00:00
- * 2022-01-07 08:00:00
- * 2022-01-07 09:00:00
- * 2022-01-07 10:00:00
- */
- @Scheduled(cron = "0 0 10,14,20 * * ? ")
- public void execute() {
- int copyWritingCount = copyWritingService.deleteRepeatData();
- log.info("thread id:{},定时清除文案重复数据,重复数:{}", Thread.currentThread().getId(),copyWritingCount);
- Integer allNetworkCount = apiTopsearchAllnetworkService.deleteRepeatData();
- log.info("thread id:{},定时清除全网热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),allNetworkCount);
- Integer wechatCount = apiTopsearchWechatService.deleteRepeatData();
- log.info("thread id:{},定时清除微信热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),wechatCount);
- Integer baiduCount = apiTopsearchBaiduService.deleteRepeatData();
- log.info("thread id:{},定时清除百度热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),baiduCount);
- Integer douyinCount = apiTopsearchDouyinService.deleteRepeatData();
- log.info("thread id:{},定时清除抖音热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),douyinCount);
- Integer weiboCount = apiTopsearchWeiboService.deleteRepeatData();
- log.info("thread id:{},定时清除微博热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),weiboCount);
- }
-}
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/task/OpenApiTask.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/task/OpenApiTask.java
new file mode 100644
index 00000000..d9901486
--- /dev/null
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/task/OpenApiTask.java
@@ -0,0 +1,54 @@
+package com.xjs.common.task;
+
+import com.xjs.copywriting.service.CopyWritingService;
+import com.xjs.topsearch.service.*;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * openapi模块内置定时任务
+ * @author xiejs
+ * @since 2022-01-06
+ */
+@Component
+@Log4j2
+public class OpenApiTask {
+ @Autowired
+ private CopyWritingService copyWritingService;
+
+ @Autowired
+ private TopSearchService topSearchService;
+
+
+ /**
+ * 删除重复文案数据
+ * 2022-01-07 07:00:00
+ * 2022-01-07 08:00:00
+ * 2022-01-07 09:00:00
+ * 2022-01-07 10:00:00
+ */
+ @Scheduled(cron = "0 0 10,14,20 * * ? ")
+ public void deleteRepeat() {
+ int copyWritingCount = copyWritingService.deleteRepeatData();
+ log.info("thread id:{},定时清除文案重复数据,重复数:{}", Thread.currentThread().getId(),copyWritingCount);
+ Integer integer = topSearchService.deleteRepeat();
+ log.info("thread id:{},定时清除重复数据总数,重复数:{}", Thread.currentThread().getId(),integer);
+
+ }
+
+ /**
+ * 定时获取热搜榜
+ * 2022-01-22 11:11:00
+ * 2022-01-22 11:22:00
+ * 2022-01-22 11:33:00
+ * 2022-01-22 11:44:00
+ * 2022-01-22 11:55:00
+ */
+ @Scheduled(cron = "0 0/11 * * * ? ")
+ public void getTopSearch() {
+ log.info("thread id:{},定时获取热搜榜数据", Thread.currentThread().getId());
+ topSearchService.getAllTopSearch();
+ }
+}
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/controller/ApiTopSearchController.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/controller/ApiTopSearchController.java
index c0816ae9..8c577257 100644
--- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/controller/ApiTopSearchController.java
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/controller/ApiTopSearchController.java
@@ -4,8 +4,7 @@ import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.annotation.RequiresPermissions;
-import com.xjs.topsearch.domain.*;
-import com.xjs.topsearch.factory.TopserachFactory;
+import com.xjs.topsearch.service.TopSearchService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j2;
@@ -14,7 +13,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -34,15 +32,8 @@ import static com.xjs.consts.RedisConst.HOT_EXPIRE;
public class ApiTopSearchController {
@Autowired
- private TopserachFactory tianXingTopsearchAllnetworkFactory;
- @Autowired
- private TopserachFactory tianXingTopsearchWechatFactory;
- @Autowired
- private TopserachFactory tianXingTopsearchBaiduFactory;
- @Autowired
- private TopserachFactory tianXingTopsearchWeiboFactory;
- @Autowired
- private TopserachFactory tianXingTopsearchDouyinFactory;
+ private TopSearchService topSearchService;
+
@Autowired
private RedisService redisService;
@@ -56,25 +47,7 @@ public class ApiTopSearchController {
Map cacheObject = redisService.getCacheObject(HOT);
return AjaxResult.success(cacheObject);
}
-
- //获取全网热搜
- List allnetworkList = tianXingTopsearchAllnetworkFactory.topSearchApi();
- //获取微博热搜
- List weiboList = tianXingTopsearchWeiboFactory.topSearchApi();
- //获取抖音热搜
- List douyinList = tianXingTopsearchDouyinFactory.topSearchApi();
- //获取微信热搜
- List wechatList = tianXingTopsearchWechatFactory.topSearchApi();
- //获取百度热搜
- List baiduList = tianXingTopsearchBaiduFactory.topSearchApi();
-
- Map listHashMap = new HashMap<>();
- listHashMap.put("allnetworkList", allnetworkList);
- listHashMap.put("wechatList", wechatList);
- listHashMap.put("baiduList", baiduList);
- listHashMap.put("weiboList", weiboList);
- listHashMap.put("douyinList", douyinList);
-
+ Map listHashMap = topSearchService.getAllTopSearch();
//把数据存入redis,十分钟过期
redisService.setCacheObject(HOT,listHashMap,HOT_EXPIRE, TimeUnit.MINUTES);
return AjaxResult.success(listHashMap);
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/service/TopSearchService.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/service/TopSearchService.java
new file mode 100644
index 00000000..e01a7554
--- /dev/null
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/service/TopSearchService.java
@@ -0,0 +1,27 @@
+package com.xjs.topsearch.service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 热搜榜服务接口
+ * @author xiejs
+ * @since 2022-01-22
+ */
+public interface TopSearchService {
+
+ /**
+ * 获取所有热搜
+ * @return
+ */
+ Map getAllTopSearch();
+
+
+ /**
+ * 删除重复数据
+ * @return
+ */
+ Integer deleteRepeat();
+
+
+}
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/service/impl/TopSearchServiceImpl.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/service/impl/TopSearchServiceImpl.java
new file mode 100644
index 00000000..a9af7686
--- /dev/null
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/service/impl/TopSearchServiceImpl.java
@@ -0,0 +1,81 @@
+package com.xjs.topsearch.service.impl;
+
+import com.xjs.topsearch.domain.*;
+import com.xjs.topsearch.factory.TopserachFactory;
+import com.xjs.topsearch.service.*;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 热搜服务实现
+ * @author xiejs
+ * @since 2022-01-22
+ */
+@Service
+@Log4j2
+public class TopSearchServiceImpl implements TopSearchService {
+
+ @Autowired
+ private TopserachFactory tianXingTopsearchAllnetworkFactory;
+ @Autowired
+ private TopserachFactory tianXingTopsearchWechatFactory;
+ @Autowired
+ private TopserachFactory tianXingTopsearchBaiduFactory;
+ @Autowired
+ private TopserachFactory tianXingTopsearchWeiboFactory;
+ @Autowired
+ private TopserachFactory tianXingTopsearchDouyinFactory;
+ @Autowired
+ private ApiTopsearchAllnetworkService apiTopsearchAllnetworkService;
+ @Autowired
+ private ApiTopsearchWechatService apiTopsearchWechatService;
+ @Autowired
+ private ApiTopsearchBaiduService apiTopsearchBaiduService;
+ @Autowired
+ private ApiTopsearchDouyinService apiTopsearchDouyinService;
+ @Autowired
+ private ApiTopsearchWeiboService apiTopsearchWeiboService;
+
+
+
+ @Override
+ public Map getAllTopSearch() {
+ //获取全网热搜
+ List allnetworkList = tianXingTopsearchAllnetworkFactory.topSearchApi();
+ //获取微博热搜
+ List weiboList = tianXingTopsearchWeiboFactory.topSearchApi();
+ //获取抖音热搜
+ List douyinList = tianXingTopsearchDouyinFactory.topSearchApi();
+ //获取微信热搜
+ List wechatList = tianXingTopsearchWechatFactory.topSearchApi();
+ //获取百度热搜
+ List baiduList = tianXingTopsearchBaiduFactory.topSearchApi();
+ Map listHashMap = new HashMap<>();
+ listHashMap.put("allnetworkList", allnetworkList);
+ listHashMap.put("wechatList", wechatList);
+ listHashMap.put("baiduList", baiduList);
+ listHashMap.put("weiboList", weiboList);
+ listHashMap.put("douyinList", douyinList);
+ return listHashMap;
+ }
+
+ @Override
+ public Integer deleteRepeat() {
+ Integer allNetworkCount = apiTopsearchAllnetworkService.deleteRepeatData();
+ log.info("thread id:{},清除全网热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),allNetworkCount);
+ Integer wechatCount = apiTopsearchWechatService.deleteRepeatData();
+ log.info("thread id:{},清除微信热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),wechatCount);
+ Integer baiduCount = apiTopsearchBaiduService.deleteRepeatData();
+ log.info("thread id:{},清除百度热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),baiduCount);
+ Integer douyinCount = apiTopsearchDouyinService.deleteRepeatData();
+ log.info("thread id:{},清除抖音热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),douyinCount);
+ Integer weiboCount = apiTopsearchWeiboService.deleteRepeatData();
+ log.info("thread id:{},清除微博热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),weiboCount);
+ return allNetworkCount+wechatCount+baiduCount+douyinCount+weiboCount;
+ }
+}
diff --git a/xjs-business/xjs-business-openapi/src/test/java/com/xjs/common/task/DeleteRepeatTaskTest.java b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/common/task/OpenApiTaskTest.java
similarity index 69%
rename from xjs-business/xjs-business-openapi/src/test/java/com/xjs/common/task/DeleteRepeatTaskTest.java
rename to xjs-business/xjs-business-openapi/src/test/java/com/xjs/common/task/OpenApiTaskTest.java
index e6c47229..56631380 100644
--- a/xjs-business/xjs-business-openapi/src/test/java/com/xjs/common/task/DeleteRepeatTaskTest.java
+++ b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/common/task/OpenApiTaskTest.java
@@ -5,19 +5,17 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import static org.junit.jupiter.api.Assertions.*;
-
/**
* @author xiejs
* @since 2022-01-12
*/
@SpringBootTest(classes = XjsOpenApiApp.class)
-class DeleteRepeatTaskTest {
+class OpenApiTaskTest {
@Autowired
- private DeleteRepeatTask deleteRepeatTask;
+ private OpenApiTask openApiTask;
@Test
void execute() {
- deleteRepeatTask.execute();
+ openApiTask.deleteRepeat();
}
}
\ No newline at end of file