From da6a4dda62d93e17c711f03c5704b5121b1907aa Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Mon, 24 Jan 2022 09:28:30 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=A2=84=E8=AD=A6aop=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E6=9C=8D=E5=8A=A1=E9=99=8D=E7=BA=A7=E4=B8=8D?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E9=A2=84=E8=AD=A6=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xjs/common/aop/ApiLogAspect.java | 11 +++++-- .../topsearch/service/TopSearchService.java | 8 +++++ .../service/impl/TopSearchServiceImpl.java | 24 ++++++++++++++ .../impl/TopSearchServiceImplTest.java | 32 +++++++++++++++++++ 4 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 xjs-business/xjs-business-openapi/src/test/java/com/xjs/topsearch/service/impl/TopSearchServiceImplTest.java diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java index b17c8a6c..2f3b236d 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.domain.R; import com.xjs.annotation.ApiLog; import com.xjs.business.log.RemoteLogFeign; @@ -30,6 +31,7 @@ import java.util.Date; import java.util.List; import java.util.Objects; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; import static com.xjs.consts.ApiWarnHandleConst.NO; /** @@ -70,8 +72,13 @@ public class ApiLogAspect { LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); log.info("调用接口耗费时间:{}ms", between); - //执行预警切入逻辑 - warning(between, joinPoint); + //执行预警切入逻辑(降级不预警) + if (obj instanceof JSONObject) { + JSONObject jsonObject = (JSONObject) obj; + if (!jsonObject.containsKey(DEMOTE_ERROR)) { + warning(between, joinPoint); + } + } return obj; } catch (Throwable e) { e.printStackTrace(); 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 index e01a7554..3dd9bb9b 100644 --- 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 @@ -24,4 +24,12 @@ public interface TopSearchService { Integer deleteRepeat(); + /** + * 根据日期获取历史热搜数据 + * @param date 日期 + * @return 热搜数据 + */ + Map getHistoryTopSearchByDate(String date); + + } 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 index a9af7686..93e81d4b 100644 --- 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 @@ -1,5 +1,8 @@ package com.xjs.topsearch.service.impl; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xjs.topsearch.domain.*; import com.xjs.topsearch.factory.TopserachFactory; import com.xjs.topsearch.service.*; @@ -78,4 +81,25 @@ public class TopSearchServiceImpl implements TopSearchService { log.info("thread id:{},清除微博热搜榜重复数据,重复数:{}", Thread.currentThread().getId(),weiboCount); return allNetworkCount+wechatCount+baiduCount+douyinCount+weiboCount; } + + @Override + public Map 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 allnetworkList = apiTopsearchAllnetworkService + .list(new QueryWrapper() + .between("create_time", StartDate, EndDate)); + + + // todo 热搜榜历史数据显示实现 + + + HashMap hashMap = new HashMap<>(); + hashMap.put("allnetworkList", allnetworkList); + return hashMap; + } } diff --git a/xjs-business/xjs-business-openapi/src/test/java/com/xjs/topsearch/service/impl/TopSearchServiceImplTest.java b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/topsearch/service/impl/TopSearchServiceImplTest.java new file mode 100644 index 00000000..3c0595c6 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/topsearch/service/impl/TopSearchServiceImplTest.java @@ -0,0 +1,32 @@ +package com.xjs.topsearch.service.impl; + +import com.xjs.XjsOpenApiApp; +import com.xjs.topsearch.service.TopSearchService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * @author xiejs + * @since 2022-01-22 + */ +@SpringBootTest(classes = XjsOpenApiApp.class) +class TopSearchServiceImplTest { + + @Autowired + private TopSearchService topSearchService; + + @Test + void getHistoryTopSearchByDate() { + + Map date = topSearchService.getHistoryTopSearchByDate("2022-01-22 20:20:20"); + + List allnetworkList = date.get("allnetworkList"); + + } +} \ No newline at end of file