工业级运维app手机api
xufenglei
2018-01-15 2e2861fd0bbba403a15a212c550bed9f8331f467
src/main/java/com/moral/monitor/controller/ScreenController.java
@@ -1,5 +1,7 @@
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;
@@ -10,15 +12,24 @@
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.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
@@ -29,6 +40,14 @@
   /** The screen service. */
   @Autowired
   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.
@@ -144,4 +163,106 @@
      }
      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;
   }
   @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;
   }
}