소스 검색

1、gateway增加负载均衡
2、优化业务逻辑
3、业务数据量增大,优化查影响索引的查询

marxjaw 5 달 전
부모
커밋
b80185b5ff
74개의 변경된 파일689개의 추가작업 그리고 332개의 파일을 삭제
  1. 81 0
      yt-agent/agent-service/pom.xml
  2. 22 7
      yt-agent/agent-service/src/main/java/com/ytpm/controller/AgentIndexController.java
  3. 2 1
      yt-agent/agent-service/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java
  4. 1 1
      yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/config/redis/RedisListenerConfig.java
  5. 1 1
      yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/dao/AdRecordMapper.java
  6. 29 7
      yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/service/impl/AdServiceImpl.java
  7. 4 7
      yt-algebraic/algebraic-service/src/main/resources/mapper/AdRecordMapper.xml
  8. 1 1
      yt-answer/answer-service/src/main/java/com/ytpm/answer/config/redis/RedisListenerConfig.java
  9. 1 1
      yt-answer/answer-service/src/main/java/com/ytpm/answer/dao/AdRecordMapper.java
  10. 28 7
      yt-answer/answer-service/src/main/java/com/ytpm/answer/service/impl/AdServiceImpl.java
  11. 4 4
      yt-answer/answer-service/src/main/resources/mapper/AdRecordMapper.xml
  12. 1 1
      yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/config/redis/RedisListenerConfig.java
  13. 1 1
      yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/dao/AdRecordMapper.java
  14. 28 7
      yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/service/impl/AdServiceImpl.java
  15. 4 7
      yt-arithmetic/arithmetic-service/src/main/resources/mapper/AdRecordMapper.xml
  16. 1 1
      yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/config/redis/RedisListenerConfig.java
  17. 1 1
      yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/dao/AdRecordMapper.java
  18. 28 7
      yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/service/impl/AdServiceImpl.java
  19. 4 7
      yt-calculator/calculator-service/src/main/resources/mapper/AdRecordMapper.xml
  20. 1 1
      yt-carp/carp-service/src/main/java/com/ytpm/carp/config/redis/RedisListenerConfig.java
  21. 1 1
      yt-carp/carp-service/src/main/java/com/ytpm/carp/dao/AdRecordMapper.java
  22. 28 7
      yt-carp/carp-service/src/main/java/com/ytpm/carp/service/impl/AdServiceImpl.java
  23. 4 7
      yt-carp/carp-service/src/main/resources/mapper/AdRecordMapper.xml
  24. 1 1
      yt-common/src/main/java/com/ytpm/handle/CustomerExceptionHandler.java
  25. 1 1
      yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/config/redis/RedisListenerConfig.java
  26. 1 1
      yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/dao/AdRecordMapper.java
  27. 28 7
      yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/service/impl/AdServiceImpl.java
  28. 4 7
      yt-countstep/countstep-service/src/main/resources/mapper/AdRecordMapper.xml
  29. 1 1
      yt-diary/diary-service/src/main/java/com/ytpm/diary/config/redis/RedisListenerConfig.java
  30. 1 1
      yt-diary/diary-service/src/main/java/com/ytpm/diary/dao/AdRecordMapper.java
  31. 28 7
      yt-diary/diary-service/src/main/java/com/ytpm/diary/service/impl/AdServiceImpl.java
  32. 4 7
      yt-diary/diary-service/src/main/resources/mapper/AdRecordMapper.xml
  33. 1 1
      yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/config/redis/RedisListenerConfig.java
  34. 1 1
      yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/dao/AdRecordMapper.java
  35. 28 7
      yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/service/impl/AdServiceImpl.java
  36. 4 7
      yt-dtw/dtw-service/src/main/resources/mapper/AdRecordMapper.xml
  37. 1 1
      yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/config/redis/RedisListenerConfig.java
  38. 1 1
      yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/dao/AdRecordMapper.java
  39. 28 7
      yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/service/impl/AdServiceImpl.java
  40. 4 7
      yt-emoticons/emoticons-service/src/main/resources/mapper/AdRecordMapper.xml
  41. 6 0
      yt-gateway/pom.xml
  42. 1 1
      yt-idiom/idiom-service/src/main/java/com/ytpm/idiom/config/redis/RedisListenerConfig.java
  43. 1 1
      yt-idiom/idiom-service/src/main/java/com/ytpm/idiom/dao/AdRecordMapper.java
  44. 28 7
      yt-idiom/idiom-service/src/main/java/com/ytpm/idiom/service/impl/AdServiceImpl.java
  45. 4 7
      yt-idiom/idiom-service/src/main/resources/mapper/AdRecordMapper.xml
  46. 1 1
      yt-irun/irun-service/src/main/java/com/ytpm/irun/config/redis/RedisListenerConfig.java
  47. 1 1
      yt-irun/irun-service/src/main/java/com/ytpm/irun/dao/AdRecordMapper.java
  48. 26 7
      yt-irun/irun-service/src/main/java/com/ytpm/irun/service/impl/AdServiceImpl.java
  49. 4 7
      yt-irun/irun-service/src/main/resources/mapper/AdRecordMapper.xml
  50. 1 1
      yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/config/redis/RedisListenerConfig.java
  51. 1 1
      yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/dao/AdRecordMapper.java
  52. 26 7
      yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/service/impl/AdServiceImpl.java
  53. 4 7
      yt-lemon/lemon-service/src/main/resources/mapper/AdRecordMapper.xml
  54. 1 1
      yt-lime/lime-service/src/main/java/com/ytpm/lime/config/redis/RedisListenerConfig.java
  55. 1 1
      yt-lime/lime-service/src/main/java/com/ytpm/lime/dao/AdRecordMapper.java
  56. 27 7
      yt-lime/lime-service/src/main/java/com/ytpm/lime/service/impl/AdServiceImpl.java
  57. 6 9
      yt-lime/lime-service/src/main/resources/mapper/AdRecordMapper.xml
  58. 1 1
      yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/config/redis/RedisListenerConfig.java
  59. 1 1
      yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/dao/AdRecordMapper.java
  60. 26 7
      yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/service/impl/AdServiceImpl.java
  61. 6 9
      yt-nofeeds/nofeeds-service/src/main/resources/mapper/AdRecordMapper.xml
  62. 1 1
      yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/config/redis/RedisListenerConfig.java
  63. 1 1
      yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/dao/AdRecordMapper.java
  64. 26 7
      yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/service/impl/AdServiceImpl.java
  65. 4 7
      yt-raisepig/raisepig-service/src/main/resources/mapper/AdRecordMapper.xml
  66. 4 50
      yt-risk/risk-feign/src/main/java/com/ytpm/feign/fallback/RiskFeignFallBack.java
  67. 1 1
      yt-summary/summary-service/src/main/java/com/ytpm/summary/config/redis/RedisListenerConfig.java
  68. 1 1
      yt-summary/summary-service/src/main/java/com/ytpm/summary/dao/AdRecordMapper.java
  69. 27 7
      yt-summary/summary-service/src/main/java/com/ytpm/summary/service/impl/AdServiceImpl.java
  70. 4 7
      yt-summary/summary-service/src/main/resources/mapper/AdRecordMapper.xml
  71. 1 1
      yt-walk/walk-service/src/main/java/com/ytpm/walk/config/redis/RedisListenerConfig.java
  72. 1 1
      yt-walk/walk-service/src/main/java/com/ytpm/walk/dao/AdRecordMapper.java
  73. 28 7
      yt-walk/walk-service/src/main/java/com/ytpm/walk/service/impl/AdServiceImpl.java
  74. 4 7
      yt-walk/walk-service/src/main/resources/mapper/AdRecordMapper.xml

+ 81 - 0
yt-agent/agent-service/pom.xml

@@ -52,7 +52,88 @@
             <artifactId>advertise-feign</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>algebraic-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>answer-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>arithmetic-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>calculator-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>countstep-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>diary-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>dtw-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>emoticons-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>idiom-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>irun-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>lemon-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>lime-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>nofeeds-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>raisepig-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>summary-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>walk-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
+
     <build>
         <finalName>agent-service</finalName>
         <plugins>

+ 22 - 7
yt-agent/agent-service/src/main/java/com/ytpm/controller/AgentIndexController.java

@@ -28,6 +28,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -47,6 +48,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.concurrent.CountDownLatch;
 import java.util.stream.Collectors;
 
 @Api(tags = "首页数据统计模块")
@@ -93,20 +95,33 @@ public class AgentIndexController {
         List<YtPlatformUserApp> appList = issuedAppList.getData();
         List<String> appIdList = agentAppService.getApkIdList(userInfo.getUserId());
         List<String> serveList = appList.stream().map(YtPlatformUserApp::getServiceName).distinct().collect(Collectors.toList());
+        CountDownLatch countDownLatch = new CountDownLatch(appList.size());
         for (String serve : serveList) {
-            Object o = feignInvoker.invoke(serve,"getAppTopCount", String.join(",", appIdList));
-            String string = JSON.toJSONString(o);
-            AgentTopCountView view = JSONObject.parseObject(string, AgentTopCountView.class);
-            adCount += view.getAdCount();
-            userCount += view.getUserCount();
-            riskCount += view.getRiskCount();
-            revenue = revenue.add(view.getRevenue());
+            AgentTopCountView one = invokData(serve, appIdList,countDownLatch);
+            adCount += one.getAdCount();
+            userCount += one.getUserCount();
+            riskCount += one.getRiskCount();
+            revenue = revenue.add(one.getRevenue());
+        }
+        try {
+            countDownLatch.await();
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
         }
         AgentTopCountView result = new AgentTopCountView(adCount,userCount,riskCount,revenue);
         redisService.setTimeOutMinutesStr(key,JSON.toJSONString(result),45);
         return Result.resultObjOk(result);
     }
 
+    @Async
+    AgentTopCountView invokData(String serve,List<String> appIdList,CountDownLatch countDownLatch) {
+        Object o = feignInvoker.invoke(serve,"getAppTopCount", String.join(",", appIdList));
+        String string = JSON.toJSONString(o);
+        AgentTopCountView view = JSONObject.parseObject(string, AgentTopCountView.class);
+        countDownLatch.countDown();
+        return view;
+    }
+
     /**
      * 查询广告平台收益
      */

+ 2 - 1
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -388,7 +388,8 @@ public class RiskServiceImpl implements RiskService {
         for (String serviceName : collect) {
             Object o = feignInvoker.invoke(serviceName, "getUserList", appUserParam);
             String jsonString = JSON.toJSONString(o);
-            List<YtDyzUser> dyzUsers = JSONArray.parseArray(jsonString, YtDyzUser.class);
+            JSONObject object = JSONObject.parseObject(jsonString);
+            List<YtDyzUser> dyzUsers = JSONArray.parseArray(object.getString("data"), YtDyzUser.class);
             if(CollUtil.isNotEmpty(dyzUsers)){
                 data.addAll(dyzUsers.stream().distinct().collect(Collectors.toList()));
             }

+ 1 - 1
yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("algebraicRedisKeyExpirationListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 29 - 7
yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,16 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
+        if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(

+ 4 - 7
yt-algebraic/algebraic-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-answer/answer-service/src/main/java/com/ytpm/answer/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("answerRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-answer/answer-service/src/main/java/com/ytpm/answer/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-answer/answer-service/src/main/java/com/ytpm/answer/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 4
yt-answer/answer-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -135,11 +135,11 @@
         <if test="type != null and type ==1">
             and DATE(finish_time) = DATE(now())
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("arithmeticRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-arithmetic/arithmetic-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("calculatorRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-calculator/calculator-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-carp/carp-service/src/main/java/com/ytpm/carp/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("carpRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-carp/carp-service/src/main/java/com/ytpm/carp/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-carp/carp-service/src/main/java/com/ytpm/carp/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-carp/carp-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-common/src/main/java/com/ytpm/handle/CustomerExceptionHandler.java

@@ -38,7 +38,7 @@ public class CustomerExceptionHandler implements HandlerExceptionResolver {
         //打印异常信息
         log.error("抛出异常信息,异常信息为:ex={}",ex);
         ex.printStackTrace();
-        String msg = "操作失败,请联系管理员";
+        String msg = "查询超时,请稍后重试!";
         return new Result(StatusCode.ERROR,msg);
     }
 

+ 1 - 1
yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("countstepRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-countstep/countstep-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-diary/diary-service/src/main/java/com/ytpm/diary/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("diaryRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-diary/diary-service/src/main/java/com/ytpm/diary/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-diary/diary-service/src/main/java/com/ytpm/diary/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-diary/diary-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("dtwRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-dtw/dtw-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("emoticonsRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-emoticons/emoticons-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 6 - 0
yt-gateway/pom.xml

@@ -36,6 +36,12 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
         </dependency>
+        <!-- 集群必备 -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+            <version>2.2.0.RELEASE</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 1
yt-idiom/idiom-service/src/main/java/com/ytpm/idiom/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("idiomRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-idiom/idiom-service/src/main/java/com/ytpm/idiom/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-idiom/idiom-service/src/main/java/com/ytpm/idiom/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-idiom/idiom-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-irun/irun-service/src/main/java/com/ytpm/irun/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("irunRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-irun/irun-service/src/main/java/com/ytpm/irun/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 26 - 7
yt-irun/irun-service/src/main/java/com/ytpm/irun/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,33 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-irun/irun-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("lemonRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 26 - 7
yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,33 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-lemon/lemon-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-lime/lime-service/src/main/java/com/ytpm/lime/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("limeRedisKeyExpirationListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-lime/lime-service/src/main/java/com/ytpm/lime/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 27 - 7
yt-lime/lime-service/src/main/java/com/ytpm/lime/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,34 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 6 - 9
yt-lime/lime-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -117,10 +117,10 @@
                 </foreach>
             </if>
             <if test="registryTimeBegin != null ">
-                and DATE_FORMAT(au.registry_time,'%Y-%m-%d') <![CDATA[>=]]> #{registryTimeBegin}
+                and au.registry_time <![CDATA[>=]]> #{registryTimeBegin}
             </if>
             <if test="registryTimeEnd != null ">
-                and DATE_FORMAT(au.registry_time,'%Y-%m-%d') <![CDATA[<=]]> #{registryTimeEnd}
+                and au.registry_time <![CDATA[<=]]> #{registryTimeEnd}
             </if>
         </where>
     </select>
@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("nofeedsRedisKeyExpirationListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 26 - 7
yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,33 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 6 - 9
yt-nofeeds/nofeeds-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -117,10 +117,10 @@
                 </foreach>
             </if>
             <if test="registryTimeBegin != null ">
-                and DATE_FORMAT(au.registry_time,'%Y-%m-%d') <![CDATA[>=]]> #{registryTimeBegin}
+                and au.registry_time <![CDATA[>=]]> #{registryTimeBegin}
             </if>
             <if test="registryTimeEnd != null ">
-                and DATE_FORMAT(au.registry_time,'%Y-%m-%d') <![CDATA[<=]]> #{registryTimeEnd}
+                and au.registry_time <![CDATA[<=]]> #{registryTimeEnd}
             </if>
         </where>
     </select>
@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("raisepigRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 26 - 7
yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,33 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-raisepig/raisepig-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 4 - 50
yt-risk/risk-feign/src/main/java/com/ytpm/feign/fallback/RiskFeignFallBack.java

@@ -1,68 +1,22 @@
 package com.ytpm.feign.fallback;
 
+import com.ytpm.app.model.YtDyzUser;
 import com.ytpm.feign.RiskFeign;
 import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
-import com.ytpm.general.ResultTable;
-import com.ytpm.general.StatusCode;
-import com.ytpm.risk.param.RiskBannedListParam;
-import com.ytpm.risk.param.RiskBannedParam;
-import com.ytpm.risk.param.RiskConfigParam;
-import com.ytpm.risk.param.RiskDeblockingListParam;
-import com.ytpm.risk.param.RiskRelativeAppParam;
-import com.ytpm.risk.param.RiskUserStatusParam;
-import com.ytpm.risk.view.RiskBannedListView;
-import com.ytpm.risk.view.RiskConfigListView;
-import com.ytpm.risk.view.RiskConfigView;
-import com.ytpm.risk.view.RiskDeblockingListView;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
 
-import javax.xml.ws.Response;
 
 @Component
 public abstract class RiskFeignFallBack implements RiskFeign {
     @Override
-    public Result<?> lockUser(String userId,String appId) {
+    public Result<?> checkRisk(@RequestBody YtDyzUser ytDyzUser) {
         return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
     }
 
     @Override
-    public Result<?> banned(RiskBannedParam param) {
+    public Result<?> checkAdRisk(@RequestBody YtDyzUser ytDyzUser) {
         return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
     }
-
-    @Override
-    public ResultTable<RiskConfigListView> getConfigList(RiskConfigParam param) {
-        return ResultTable.resultFail(StatusCode.ERROR,RepMessage.SERVICE_UNAVAILABLE);
-    }
-
-    @Override
-    public ResultTable<RiskBannedListView> bannedList(RiskBannedListParam param) {
-        return ResultTable.resultFail(StatusCode.ERROR,RepMessage.SERVICE_UNAVAILABLE);
-    }
-
-    @Override
-    public ResultTable<RiskDeblockingListView> deblockingList(RiskDeblockingListParam param) {
-        return ResultTable.resultFail(StatusCode.ERROR,RepMessage.SERVICE_UNAVAILABLE);
-    }
-
-    @Override
-    public Result<?> changeUserStatus(RiskUserStatusParam param) {
-        return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
-    }
-
-    @Override
-    public Result<?> relativeApp(RiskRelativeAppParam param) {
-        return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
-    }
-
-    @Override
-    public Result<?> saveConfig(RiskConfigParam param) {
-        return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
-    }
-
-    @Override
-    public ResultTable<RiskConfigView> getRiskConfig(String appIds) {
-        return ResultTable.resultFail(StatusCode.ERROR,RepMessage.SERVICE_UNAVAILABLE);
-    }
 }

+ 1 - 1
yt-summary/summary-service/src/main/java/com/ytpm/summary/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("summaryRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-summary/summary-service/src/main/java/com/ytpm/summary/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 27 - 7
yt-summary/summary-service/src/main/java/com/ytpm/summary/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,34 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-summary/summary-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>

+ 1 - 1
yt-walk/walk-service/src/main/java/com/ytpm/walk/config/redis/RedisListenerConfig.java

@@ -22,7 +22,7 @@ public class RedisListenerConfig {
         return listenerContainer;
     }
 
-    @Bean
+    @Bean("walkRedisKeyListener")
     KeyExpirationEventMessageListener redisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
         return new RedisKeyExpirationListener(listenerContainer);
     }

+ 1 - 1
yt-walk/walk-service/src/main/java/com/ytpm/walk/dao/AdRecordMapper.java

@@ -43,5 +43,5 @@ public interface AdRecordMapper {
     /**
      * 查询今日广告
      */
-    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("type")Integer type);
+    List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
 }

+ 28 - 7
yt-walk/walk-service/src/main/java/com/ytpm/walk/service/impl/AdServiceImpl.java

@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -208,17 +211,35 @@ public class AdServiceImpl implements AdService {
         //查询今日的 按小时 按广告平台分组数据
         List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
         // 需要查询各 app 今日的广告记录 然后在内存中按照  广告平台分组 计算平均ecpm值, 并且设置每小时的
-        List<YtDyzAdRecord> records = new ArrayList<>();
-        List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
-        if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
+        List<YtDyzAdRecord> records;
         //昨日所有
-        List<YtDyzAdRecord> yestRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
-        if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
+        List<YtDyzAdRecord> yestRecords;
         //本月所有
         List<YtDyzAdRecord> monthRecords = new ArrayList<>();
-        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
+
+        Calendar cal = Calendar.getInstance(); // 获取当前日期时间
+        cal.add(Calendar.MONTH,0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        //获取到本月起始日
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //获取到本月结束日
+        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
+        String firstDay = sdf.format(cal.getTime());
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
+        String lastDay = sdf.format(cal.getTime());
+        List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
+
         if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
+        records = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
+
+        cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1); // 昨天的日期时间
+        Date yest = cal.getTime();
+        yestRecords = monthRecords.stream().filter(
+                s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
+
         //广告平台分组
         Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
                 Collectors.groupingBy(YtDyzAdRecord::getNetworkFormId));

+ 4 - 7
yt-walk/walk-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -132,14 +132,11 @@
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
-        <if test="type != null and type ==1">
-            and DATE(finish_time) = DATE(now())
+        <if test="firstDay != null">
+            and finish_time <![CDATA[>=]]> #{firstDay}
         </if>
-        <if test="type != null and type ==2">
-            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
-        </if>
-        <if test="type != null and type ==3">
-            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        <if test="lastDay != null">
+            and finish_time <![CDATA[<=]]> #{lastDay}
         </if>
     </select>
 </mapper>