|
@@ -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;
|
|
|
}
|
|
|
}
|