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