From 04167f529701b8a88ef52ba7ae854f444347f72c Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Mon, 30 Jul 2018 14:46:18 +0800
Subject: [PATCH] stringToDate 类 更新优化

---
 src/main/java/com/moral/controller/DemoConreoller.java            |   15 +++++++++++++++
 src/main/java/com/moral/mapper/DemoMapper.java                    |    4 ++++
 src/main/java/com/moral/common/convert/StringToDateConverter.java |   13 +++++--------
 src/main/resources/mapper/DemoMapper.xml                          |   14 ++++++++++++++
 src/main/java/com/moral/common/util/StringUtils.java              |   12 +++++++++++-
 5 files changed, 49 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/moral/common/convert/StringToDateConverter.java b/src/main/java/com/moral/common/convert/StringToDateConverter.java
index 0a4fb68..0b16948 100644
--- a/src/main/java/com/moral/common/convert/StringToDateConverter.java
+++ b/src/main/java/com/moral/common/convert/StringToDateConverter.java
@@ -9,15 +9,15 @@
 import java.util.Date;
 
 /**
- * ������������������������������
- * @author byshome
- * @version $Id: StringToDateConverter.java, v 0.1 2015���9���24��� ������7:19:41 byshome Exp $
+ *
+ * ������������������������������:
+ * @author: fengxiang
+ * @date: 2018/7/30 14:40
  */
 public class StringToDateConverter implements Converter<String, Date> {
     private static   Logger log = Logger.getLogger(StringToDateConverter.class);
     private static final String dateFormat      = "yyyy-MM-dd HH:mm:ss";
-//    private static final String shortDateFormat = "yyyy-MM-dd";
-      private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
+    private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
     /** 
      * @see org.springframework.core.convert.converter.Converter#convert(java.lang.Object)
      */
@@ -26,9 +26,6 @@
         try {
             if(StringUtils.isNullOrEmpty(source)){
                 throw new BusinessException(String.format("parser %s to Date fail", source));
-            }
-            if("null".equals(source)){
-                return  null;
             }
             if(StringUtils.isNumericZidai(source)) {
                 source = source.length() == 10 ? source+"000" : source;
diff --git a/src/main/java/com/moral/common/util/StringUtils.java b/src/main/java/com/moral/common/util/StringUtils.java
index 80635bf..e4043f1 100644
--- a/src/main/java/com/moral/common/util/StringUtils.java
+++ b/src/main/java/com/moral/common/util/StringUtils.java
@@ -1,11 +1,21 @@
 package com.moral.common.util;
 
+import com.mysql.jdbc.TimeUtil;
+
+import javax.validation.constraints.NotNull;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+/**
+ *
+ * ������������: string ���������
+ * @author: fengxiang
+ * @date: 2018/7/30 10:53
+ */
 public class StringUtils {
 	public static final char UNDERLINE = '_';
+	public static final String NULL = "null";
 
     /**
      * ������������������������������������������������������
@@ -44,7 +54,7 @@
         return sb.toString();
     }
 	public static boolean isNullOrEmpty(String toTest) {
-		return toTest == null || toTest.length() == 0;
+		return toTest == null || toTest.length() == 0 || NULL.equals(toTest);
 	}
 	public static Object stringToObject4Type(Class<?> type,String value) throws Exception{
 		Object result = value;
diff --git a/src/main/java/com/moral/controller/DemoConreoller.java b/src/main/java/com/moral/controller/DemoConreoller.java
index b4e04d9..5b2470a 100644
--- a/src/main/java/com/moral/controller/DemoConreoller.java
+++ b/src/main/java/com/moral/controller/DemoConreoller.java
@@ -27,6 +27,7 @@
 import com.moral.mapper.AlarmDailyMapper;
 import com.moral.mapper.DemoMapper;
 
+
 @RestController
 @RequestMapping("demo")
 public class DemoConreoller {
@@ -98,4 +99,18 @@
 		return thisMonth;
 	}
 
+	/**
+	 *
+	 * ������������: 
+	 *
+	 * @param: startTime ������������
+	 * @param: endTime ������������
+	 * @return:
+	 * @author: fengxiang
+	 * @date: 2018/7/30 11:27
+	 */
+    @GetMapping("get-dayaqis")
+	public List<Map<String, Object>> getDayAqis(Date startTime,Date endTime) {
+		return  demoMapper.selectByTimeZones(startTime,endTime);
+	}
 }
diff --git a/src/main/java/com/moral/mapper/DemoMapper.java b/src/main/java/com/moral/mapper/DemoMapper.java
index 179192d..135e128 100644
--- a/src/main/java/com/moral/mapper/DemoMapper.java
+++ b/src/main/java/com/moral/mapper/DemoMapper.java
@@ -1,8 +1,12 @@
 package com.moral.mapper;
 
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
 public interface DemoMapper {
 	List<Map<String, Object>> getDatas(Map<String, Object> parameters);
+	List<Map<String, Object>> selectByTimeZones(@Param("startTime") Date startTime,@Param("endTime") Date endTime);
 }
\ No newline at end of file
diff --git a/src/main/resources/mapper/DemoMapper.xml b/src/main/resources/mapper/DemoMapper.xml
index 8dba101..5d37761 100644
--- a/src/main/resources/mapper/DemoMapper.xml
+++ b/src/main/resources/mapper/DemoMapper.xml
@@ -19,4 +19,18 @@
 			LIMIT #{size}
 		</if>
 	</select>
+	<select id="selectByTimeZones" resultType="map">
+		select * from hangzhou_aqi where time in (
+			SELECT max(time) from (
+			 select time,cast(aqi_json->"$.AQI" as SIGNED INTEGER) as aqi from hangzhou_aqi
+			) hz where EXISTS ( select *  from (
+						select max(cast(aqi_json->"$.AQI" as SIGNED INTEGER)) as max_aqi,
+						DATE_FORMAT(time,'%Y-%m-%d') as day_time
+						from hangzhou_aqi
+						where time >= #{startTime} and time <![CDATA[<=]]> #{endTime}
+						GROUP BY day_time
+					) as max_result where day_time = DATE_FORMAT(hz.time,'%Y-%m-%d') and  max_aqi = hz.aqi
+			) GROUP BY DATE_FORMAT(time,'%Y-%m-%d') ORDER BY time ASC
+		)
+	</select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0