Forráskód Böngészése

fix: 邮件解析统计随时间变化为调整问题修复

chenjianhua 7 hónapja
szülő
commit
053c4399bb

+ 1 - 1
service-base/src/main/java/com/simuwang/base/mapper/EmailParseInfoMapper.java

@@ -21,7 +21,7 @@ public interface EmailParseInfoMapper {
 
     EmailParseInfoDO searchEmailById(@Param("id") Integer id);
 
-    Integer searchEmailCount(@Param("parseDate") String parseDate, @Param("parseStatus")Integer parseStatus);
+    Integer searchEmailCount(@Param("startDate") String startDate,@Param("endDate") String endDate, @Param("parseStatus")Integer parseStatus);
 
     EmailParseInfoDO queryById(@Param("id") Integer id);
 

+ 6 - 0
service-base/src/main/resources/mapper/EmailParseInfoMapper.xml

@@ -94,6 +94,12 @@
         <if test="parseStatus != null and parseStatus == -1">
             and parse_status != 1
         </if>
+        <if test="startDate != null  and startDate != ''">
+            and parse_date >= #{startDate}
+        </if>
+        <if test="endDate != null and endDate != ''">
+            and parse_date <![CDATA[ <= ]]> #{endDate}
+        </if>
     </select>
 
     <select id="queryById" resultMap="BaseResultMap">

+ 2 - 2
service-manage/src/main/java/com/simuwang/manage/api/email/ParseEmailController.java

@@ -89,8 +89,8 @@ public class ParseEmailController{
      * @return
      */
     @GetMapping("/search-email-count")
-    public ResultVo searchEmailCount(@RequestParam("timeRange") TimeRange timeRange){
-        Map<String,Integer> result = parseEmailService.searchEmailCount(timeRange);
+    public ResultVo searchEmailCount(@RequestParam("timeRange") TimeRange timeRange,@RequestParam(value = "startDate",required = false)String startDate,@RequestParam(value = "endDate",required = false)String endDate){
+        Map<String,Integer> result = parseEmailService.searchEmailCount(timeRange,startDate,endDate);
         return ResultVo.ok(result);
     }
 

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/service/ParseEmailService.java

@@ -26,7 +26,7 @@ public interface ParseEmailService {
 
     MybatisPage<EmailParseInfoVO> searchEmailList(EmailParseQuery emailParseQuery);
 
-    Map<String, Integer> searchEmailCount(TimeRange timeRange);
+    Map<String, Integer> searchEmailCount(TimeRange timeRange,String startDate,String endDate);
 
     EmailFileInfoVO getEmailFileById(Integer fileId);
 

+ 11 - 8
service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailServiceImpl.java

@@ -78,9 +78,6 @@ public class ParseEmailServiceImpl implements ParseEmailService {
 
     @Override
     public MybatisPage<EmailParseInfoVO> searchEmailList(EmailParseQuery emailParseQuery){
-        if(emailParseQuery.getTimeRange().equals(TimeRange.FromSetup)){
-            emailParseQuery.setEndDate(DateUtils.getAroundToday(1));
-        }
         if(!emailParseQuery.getTimeRange().equals(TimeRange.Custom) && !emailParseQuery.getTimeRange().equals(TimeRange.FromSetup)){
             emailParseQuery.setEndDate(DateUtils.getAroundToday(1));
             emailParseQuery.setStartDate( DateUtil.RangeTime(emailParseQuery.getTimeRange().getFloatDateSymbel(),DateUtil.getTodayDate()));
@@ -101,14 +98,20 @@ public class ParseEmailServiceImpl implements ParseEmailService {
     }
 
     @Override
-    public Map<String, Integer> searchEmailCount(TimeRange timeRange) {
+    public Map<String, Integer> searchEmailCount(TimeRange timeRange,String startDate,String endDate) {
+        if(!timeRange.equals(TimeRange.Custom) && !timeRange.equals(TimeRange.FromSetup)){
+            endDate = DateUtils.getAroundToday(1);
+            startDate = DateUtil.RangeTime(timeRange.getFloatDateSymbel(),DateUtil.getTodayDate());
+        }else{
+            //自定义时间,把结束时间延后一天,确保时间判断能查到结束日期当天的数据
+            endDate = DateUtil.getAroundDate(DateUtils.parse(endDate,DateUtils.YYYY_MM_DD),1);
+        }
         Map<String, Integer> result = new HashMap<>();
-        String parseDate = getParseDate(timeRange, DateUtils.getDate());
-        Integer parseTotal = emailParseInfoMapper.searchEmailCount(parseDate,null);
+        Integer parseTotal = emailParseInfoMapper.searchEmailCount(startDate,endDate,null);
         result.put("parseTotal",parseTotal);
-        Integer parseSuccess = emailParseInfoMapper.searchEmailCount(parseDate, ParseStatus.Success.getCode());
+        Integer parseSuccess = emailParseInfoMapper.searchEmailCount(startDate,endDate, ParseStatus.Success.getCode());
         result.put("parseSuccess",parseSuccess);
-        Integer parseFail = emailParseInfoMapper.searchEmailCount(parseDate, ParseStatus.Fail.getCode());
+        Integer parseFail = emailParseInfoMapper.searchEmailCount(startDate,endDate, ParseStatus.Fail.getCode());
         result.put("parseFail",parseFail);
         return result;
     }