瀏覽代碼

7/8 韶音修改

lwhhszx 1 年之前
父節點
當前提交
56a3ee7a79

+ 42 - 0
src/main/java/cn/cslg/pas/common/utils/commonUtils/ReflectionUtil.java

@@ -0,0 +1,42 @@
+package cn.cslg.pas.common.utils.commonUtils;
+
+
+import org.springframework.beans.BeanWrapper;
+import org.springframework.beans.BeanWrapperImpl;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class ReflectionUtil {
+
+    public static Object getClassObject(String typeName, String jarOrClassPath) {
+
+        if (jarOrClassPath != null) {
+            try {
+                //用路径创建Url
+                URL url = new URL("file:" + jarOrClassPath);
+                //通过Url加载外部的jar包
+                URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url});
+                Class<?> clazz = urlClassLoader.loadClass(typeName);
+                return clazz.newInstance();
+            } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | MalformedURLException e) {
+                e.printStackTrace();
+            }
+        } else {
+            try {
+                return Class.forName(typeName).newInstance();
+            } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+
+}

+ 230 - 49
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/DateQueryBuilder.java

@@ -25,9 +25,239 @@ public class DateQueryBuilder implements IQueryBuilder {
     public static final String EQ = "=";
 
 
+    //  @Override
+//    public Query creteQuery() throws ParseException {
+//        Query query = null;
+//        if (value != null && !"".equals(value)) {
+//            Calendar calendar = Calendar.getInstance();
+//            if (value.length() == YEAR) {
+//                SimpleDateFormat format = new SimpleDateFormat("yyyy");
+//                Date year = format.parse(value);
+//                calendar.setTime(year);
+//                String yearTime = String.valueOf(calendar.getTime().getTime());
+//                calendar.add(Calendar.YEAR, 1);
+//                String yearNextTime = String.valueOf(calendar.getTime().getTime());
+//                switch (operator) {
+//                    case NumberQueryBuilder.LT:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).lt(JsonData.of(yearTime)));
+//                        break;
+//                    case NumberQueryBuilder.LTE:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).lte(JsonData.of(yearTime)));
+//                        break;
+//                    case NumberQueryBuilder.GT:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).gt(JsonData.of(yearTime)));
+//                        break;
+//                    case NumberQueryBuilder.GTE:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).gte(JsonData.of(yearTime)));
+//                        break;
+//                    default:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).gte(JsonData.of(yearTime)).lt(JsonData.of(yearNextTime)));
+//                        break;
+//                }
+//            } else if (value.length() == MONTH || value.length() == MONTHONE) {
+//                Date month = new Date();
+//                if (value.contains("-")) {
+//                    SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM");
+//                    month = format2.parse(value);
+//                } else if (value.contains("/")) {
+//                    SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MM");
+//                    month = format3.parse(value);
+//                } else {
+//                    SimpleDateFormat format1 = new SimpleDateFormat("yyyyMM");
+//                    month = format1.parse(value);
+//                }
+//                calendar.setTime(month);
+//                String monthTime = String.valueOf(calendar.getTime().getTime());
+//                calendar.add(Calendar.MONTH, 1);
+//                String monthNextTime = String.valueOf(calendar.getTime().getTime());
+//                switch (operator) {
+//                    case NumberQueryBuilder.LT:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).lt(JsonData.of(monthTime)));
+//                        break;
+//                    case NumberQueryBuilder.LTE:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).lte(JsonData.of(monthTime)));
+//                        break;
+//                    case NumberQueryBuilder.GT:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).gt(JsonData.of(monthTime)));
+//                        break;
+//                    case NumberQueryBuilder.GTE:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).gte(JsonData.of(monthTime)));
+//                        break;
+//                    default:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).gte(JsonData.of(monthTime)).lt(JsonData.of(monthNextTime)));
+//                        break;
+//                }
+//            } else if (value.length() == DAY || value.length() == DAYONE) {
+//                Date day = new Date();
+//                if (value.contains("-")) {
+//                    SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
+//                    day = format2.parse(value);
+//                } else if (value.contains("/")) {
+//                    SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MM/dd");
+//                    day = format3.parse(value);
+//                } else {
+//                    SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
+//                    day = format1.parse(value);
+//                }
+//                calendar.setTime(day);
+//                String dayTime = String.valueOf(day.getTime());
+//                calendar.add(Calendar.DAY_OF_MONTH, 1);
+//                String nextDayTime = String.valueOf(calendar.getTime().getTime());
+//                switch (operator) {
+//                    case NumberQueryBuilder.LT:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).lt(JsonData.of(dayTime)));
+//                        break;
+//                    case NumberQueryBuilder.LTE:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).lte(JsonData.of(dayTime)));
+//                        break;
+//                    case NumberQueryBuilder.GT:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).gt(JsonData.of(dayTime)));
+//                        break;
+//                    case NumberQueryBuilder.GTE:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).gte(JsonData.of(dayTime)));
+//                        break;
+//                    default:
+//                        query = QueryBuilders
+//                                .range(range -> range.field(field).gte(JsonData.of(dayTime)).lt(JsonData.of(nextDayTime)));
+//                        break;
+//                }
+//            } else {
+//                query = QueryBuilders
+//                        .range(range -> range.field(field).gte(JsonData.of(1)).lte(JsonData.of(2)));
+//            }
+//        }
+//        return query;
+//    }
+
     @Override
     public Query creteQuery() throws ParseException {
         Query query = null;
+        if (value.contains("~")) {
+            String[] dates = value.split("~");
+            String date1 = dates[0];
+            String date2 = dates[1];
+          String  findate1=this.formatDateString(date1);
+         String    findate2 =this.formatDateString(date2);
+           query = QueryBuilders
+                    .range(range -> range.field(field).gte(JsonData.of(findate1)).lte(JsonData.of(findate2)));
+
+        } else {
+            query = this.getSingle();
+        }
+        return query;
+    }
+
+    @Override
+    public String getField() {
+        return field;
+    }
+
+    @Override
+    public void setField(String field) {
+        this.field = field;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    @Override
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String getOperator() {
+        return operator;
+    }
+
+    @Override
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    @Override
+    public String getPath() {
+        return path;
+    }
+
+    @Override
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    @Override
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    @Override
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
+
+    private String formatDateString(String dateStr) throws ParseException {
+        Calendar calendar = Calendar.getInstance();
+        String formatedTime = "";
+        if (dateStr.length() == YEAR) {
+            SimpleDateFormat format = new SimpleDateFormat("yyyy");
+            Date year = format.parse(dateStr);
+            calendar.setTime(year);
+            String yearTime = String.valueOf(calendar.getTime().getTime());
+            formatedTime = yearTime;
+        } else if (dateStr.length() == MONTH || dateStr.length() == MONTHONE) {
+            Date month = new Date();
+            if (dateStr.contains("-")) {
+                SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM");
+                month = format2.parse(dateStr);
+            } else if (dateStr.contains("/")) {
+                SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MM");
+                month = format3.parse(dateStr);
+            } else {
+                SimpleDateFormat format1 = new SimpleDateFormat("yyyyMM");
+                month = format1.parse(dateStr);
+            }
+            calendar.setTime(month);
+            String monthTime = String.valueOf(calendar.getTime().getTime());
+            formatedTime = monthTime;
+        } else if (dateStr.length() == DAY || dateStr.length() == DAYONE) {
+            Date day = new Date();
+            if (dateStr.contains("-")) {
+                SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
+                day = format2.parse(dateStr);
+            } else if (dateStr.contains("/")) {
+                SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MM/dd");
+                day = format3.parse(dateStr);
+            } else {
+                SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
+                day = format1.parse(dateStr);
+            }
+            calendar.setTime(day);
+            String dayTime = String.valueOf(day.getTime());
+            formatedTime = dayTime;
+        }
+        return formatedTime;
+    }
+
+
+    private Query getSingle() throws ParseException {
+        Query query = null;
+
         if (value != null && !"".equals(value)) {
             Calendar calendar = Calendar.getInstance();
             if (value.length() == YEAR) {
@@ -141,55 +371,6 @@ public class DateQueryBuilder implements IQueryBuilder {
             }
         }
         return query;
-    }
-
-    @Override
-    public String getField() {
-        return field;
-    }
-
-    @Override
-    public void setField(String field) {
-        this.field = field;
-    }
-
-    @Override
-    public String getValue() {
-        return value;
-    }
-
-    @Override
-    public void setValue(String value) {
-        this.value = value;
-    }
 
-    @Override
-    public String getOperator() {
-        return operator;
-    }
-
-    @Override
-    public void setOperator(String operator) {
-        this.operator = operator;
-    }
-
-    @Override
-    public String getPath() {
-        return path;
-    }
-
-    @Override
-    public void setPath(String path) {
-        this.path = path;
-    }
-
-    @Override
-    public Integer getProjectId() {
-        return projectId;
-    }
-
-    @Override
-    public void setProjectId(Integer projectId) {
-        this.projectId = projectId;
     }
 }