From b8e86e2b44b796ced6f8fa557dfee532749dcc6c Mon Sep 17 00:00:00 2001 From: fengxiang <fengxiang@blit.7drlb> Date: Wed, 15 Nov 2017 17:25:02 +0800 Subject: [PATCH] Merge branch 'master' of http://fengxiang@blit.7drlb.com:8888/r/task.git --- src/main/java/com/moral/monitor/controller/ScreenController.java | 144 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 133 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/moral/monitor/controller/ScreenController.java b/src/main/java/com/moral/monitor/controller/ScreenController.java index 6a5b52b..4f6fe2d 100644 --- a/src/main/java/com/moral/monitor/controller/ScreenController.java +++ b/src/main/java/com/moral/monitor/controller/ScreenController.java @@ -1,31 +1,52 @@ package com.moral.monitor.controller; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; +import com.alibaba.fastjson.JSON; +import com.moral.monitor.util.RedisUtil; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; 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.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 org.springframework.web.util.WebUtils; +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.WebUtils; @RestController @RequestMapping(value = "screen") @CrossOrigin(origins = "*", maxAge = 3600) public class ScreenController { + /** The screen service. */ @Autowired - private ScreenService screenService; + private ScreenService screenService; + + @Value(value="classpath:system/alarmLevels.json") + private Resource resource; + + @javax.annotation.Resource + RedisTemplate<String, String> redisTemplate; + + private String levelKey = "alarm_level_config"; + /** * Screen login. * @@ -65,18 +86,119 @@ resultMap.put("accountId", accountId); return resultMap; } - - @RequestMapping(value = "/month-average", method = RequestMethod.GET) - public Map<String, Object> getDataByEquipmentMac(HttpServletRequest request) { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null); - Map<String, Object> resu = screenService.getDataByEquipmentMac(parameters); - return resu; + + /** + * Gets the month data by equipment. + * + * @param request the request + * @return the month data by equipment + */ + @RequestMapping(value = "/month", method = RequestMethod.GET) + public Map<String, Object> getMonthDataByEquipment(HttpServletRequest request) { + Map<String, Object> result = new LinkedHashMap<String, Object>(); + try { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + if (!(parameters.containsKey("mac") && parameters.containsKey("macKey"))) { + result.put("msg", "���������������������"); + } else { + result = screenService.getMonthDataByEquipment(parameters); + } + } catch (Exception e) { + e.printStackTrace(); + result.put("msg", "���������������������������������������������������"+e.getMessage()); + } + return result; } + /** + * Gets the average by all. + * + * @param request the request + * @return the average by all + */ @RequestMapping(value = "/all-average", method = RequestMethod.GET) public Map<String, Object> getAverageByAll(HttpServletRequest request) { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null); - Map<String, Object> resu = screenService.getAverageByAll(parameters); - return resu; + Map<String, Object> result = new LinkedHashMap<String, Object>(); + try { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + if (!(parameters.containsKey("areaCode") && parameters.containsKey("accountId"))) { + result.put("msg", "���������������������"); + } else { + result = screenService.getAverageByAll(parameters); + } + } catch (BusinessException be) { + be.printStackTrace(); + result.put("msg", be.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + result.put("msg", "���������������������������������������������������"+e.getMessage()); + } + return result; + } + + /** + * Gets the equipment states. + * + * @param request the request + * @return the equipment states + */ + @RequestMapping(value = "/equipment-state", method = RequestMethod.GET) + public Map<String, Object> getEquipmentStates(HttpServletRequest request) { + Map<String, Object> result = new LinkedHashMap<String, Object>(); + try { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + if (!parameters.containsKey("accountId")) { + result.put("msg", "���������������������"); + } else { + result = screenService.getEquipmentStates(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-average", method = RequestMethod.GET) + public Map<String, Object> getAverageBySensor(HttpServletRequest request) { + Map<String, Object> result = new HashMap<String, Object>(); + try { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + if (!(parameters.containsKey("areaCode") && parameters.containsKey("accountId") && parameters.containsKey("macKey"))) { + result.put("msg", "���������������������"); + } else { + result = screenService.getAverageBySensor(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 = "/alarm-levels", method = RequestMethod.GET) + public Map<String,Object> getAlarmLevels(HttpServletRequest request){ + Map<String,Object> result = new LinkedHashMap<String, Object>(); + try { + 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; } } -- Gitblit v1.8.0