From c45329384de9af039447d7ea15003415b425a624 Mon Sep 17 00:00:00 2001
From: 沈斌 <bluelazysb@hotmail.com>
Date: Mon, 26 Feb 2018 09:32:13 +0800
Subject: [PATCH] test

---
 src/main/java/com/moral/monitor/controller/ScreenController.java |   85 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 81 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/moral/monitor/controller/ScreenController.java b/src/main/java/com/moral/monitor/controller/ScreenController.java
index cba3498..d2a8a0a 100644
--- a/src/main/java/com/moral/monitor/controller/ScreenController.java
+++ b/src/main/java/com/moral/monitor/controller/ScreenController.java
@@ -14,17 +14,22 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.io.Resource;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONReader;
 import com.alibaba.fastjson.TypeReference;
 import com.moral.monitor.entity.AccountEntity;
 import com.moral.monitor.service.ScreenService;
 import com.moral.monitor.util.BusinessException;
 import com.moral.monitor.util.Crypto;
+import com.moral.monitor.util.RedisUtil;
+import com.moral.monitor.util.ResourceUtil;
 import com.moral.monitor.util.WebUtils;
 
 @RestController
@@ -37,7 +42,12 @@
 	private ScreenService screenService;
 
 	@Value(value="classpath:system/alarmLevels.json")
-    private  Resource resource; 
+    private  Resource resource;
+
+	@javax.annotation.Resource
+	RedisTemplate<String, String> redisTemplate;
+
+	private String levelKey = "alarm_level_config";
 
 	/**
 	 * Screen login.
@@ -178,14 +188,81 @@
 
 	@RequestMapping(value = "/alarm-levels", method = RequestMethod.GET)
 	public Map<String,Object> getAlarmLevels(HttpServletRequest request){
-		Map<String,Object> result = new HashMap<String, Object>();
+		Map<String,Object> result = new LinkedHashMap<String, Object>();
 		try {
-			InputStreamReader reader = new InputStreamReader(resource.getInputStream());
-			result = new JSONReader(reader).readObject(new TypeReference<Map<String,Object>>(){});
+			if(RedisUtil.hasKey(redisTemplate, levelKey)) {
+				String levelConfigStr = RedisUtil.get(redisTemplate, levelKey);
+				result = JSON.parseObject(levelConfigStr, new TypeReference<Map<String, Object>>() {});
+			} else {
+				InputStreamReader reader = new InputStreamReader(resource.getInputStream());
+				result = new JSONReader(reader).readObject(new TypeReference<LinkedHashMap<String,Object>>(){});
+			}
 		} catch (IOException e) {
 			e.printStackTrace();
 			result.put("msg", "���������������������������������������������������"+e.getMessage());
 		}
 		return result;
 	}
+	
+	@RequestMapping(value = "month-sensor-average", method = RequestMethod.GET)
+	public Map<String, Object> getMonthAverageBySensor(HttpServletRequest request) {
+		Map<String, Object> result = new HashMap<String, Object>();
+		try {
+			Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+			if (!(parameters.containsKey("mac") && parameters.containsKey("macKey"))) {
+				result.put("msg", "���������������������");
+			} else {
+				result = screenService.getMonthAverageBySensor(parameters);
+			}
+		} catch (BusinessException be) {
+			be.printStackTrace();
+			result.put("msg", be.getMessage());
+		} catch (Exception e) {
+			e.printStackTrace();
+			result.put("msg", "���������������������������������������������������"+e.getMessage());
+		}
+		return result;
+	}
+
+	@RequestMapping(value = "day-aqi", method = RequestMethod.GET)
+	public Map<String, Object> getDayAQIBySensor(HttpServletRequest request) {
+		Map<String, Object> result = new HashMap<String, Object>();
+		try {
+			Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+			if (!parameters.containsKey("mac")) {
+				result.put("msg", "���������������������");
+			} else {
+				//result = screenService.getDayAQIBySensor(parameters);
+				result = screenService.getDayAQIByDevice(parameters);
+			}
+		} catch (BusinessException be) {
+			be.printStackTrace();
+			result.put("msg", be.getMessage());
+		} catch (Exception e) {
+			e.printStackTrace();
+			result.put("msg", "���������������������������������������������������"+e.getMessage());
+		}
+		return result;
+	}
+
+	@RequestMapping(value = "sensor-standard", method = RequestMethod.GET)
+	public Map<String, Object> getStandardBySensor(HttpServletRequest request) {
+		Map<String, Object> result = new HashMap<String, Object>();
+		try {
+			String macKey = request.getParameter("macKey");
+			if (ObjectUtils.isEmpty(macKey)) {
+				result.put("msg", "���������������������");
+			} else {
+				result.put("standard", ResourceUtil.getValue(macKey + "-standard"));
+			}
+		} catch (BusinessException be) {
+			be.printStackTrace();
+			result.put("msg", be.getMessage());
+		} catch (Exception e) {
+			e.printStackTrace();
+			result.put("msg", "���������������������������������������������������"+e.getMessage());
+		}
+		return result;
+	}
+
 }

--
Gitblit v1.8.0