Ver Fonte

FIX: ProbabilityCalculator NPE

sunxy há 1 ano atrás
pai
commit
5433d739e8

+ 11 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/util/ProbabilityCalculator.java

@@ -1,5 +1,7 @@
 package com.tzld.piaoquan.recommend.server.util;
 
+import org.apache.commons.lang3.StringUtils;
+
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -31,11 +33,17 @@ public class ProbabilityCalculator {
     }
 
     public static double calculateCurrentProbability(String filterRate, String filterDate) {
+        if (StringUtils.isBlank(filterRate) || StringUtils.isBlank(filterDate)) {
+            return -1;
+        }
         // 解析日期区间
         String[] dateRanges = filterDate.split(",");
         List<DateRange> parsedDateRanges = new ArrayList<>();
         for (String range : dateRanges) {
             String[] dates = range.split("-");
+            if (dates.length != 2) {
+                continue;
+            }
             LocalDateTime start = LocalDateTime.parse(dates[0], DateTimeFormatter.ofPattern("yyyyMMddHH"));
             LocalDateTime end = LocalDateTime.parse(dates[1], DateTimeFormatter.ofPattern("yyyyMMddHH"));
             parsedDateRanges.add(new DateRange(start, end));
@@ -45,6 +53,9 @@ public class ProbabilityCalculator {
         String[] rateRanges = filterRate.split(",");
         List<RateRange> parsedRateRanges = new ArrayList<>();
         for (String range : rateRanges) {
+            if (range.split("-").length != 2) {
+                continue;
+            }
             String[] rates = range.split("-");
             double start = Double.parseDouble(rates[0]);
             double end = Double.parseDouble(rates[1]);