工业级运维app手机api
fengxiang
2017-11-15 b8e86e2b44b796ced6f8fa557dfee532749dcc6c
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;
@@ -7,14 +9,21 @@
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 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;
@@ -29,6 +38,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.
@@ -88,7 +105,7 @@
         }
      } catch (Exception e) {
         e.printStackTrace();
         result.put("msg", "系统正忙,请稍后再试");
         result.put("msg", "系统错误,请联系管理员!原因如下:"+e.getMessage());
      }
      return result;
   }
@@ -114,7 +131,7 @@
         result.put("msg", be.getMessage());
      } catch (Exception e) {
         e.printStackTrace();
         result.put("msg", "系统正忙,请稍后再试");
         result.put("msg", "系统错误,请联系管理员!原因如下:"+e.getMessage());
      }
      return result;
   }
@@ -140,7 +157,47 @@
         result.put("msg", be.getMessage());
      } catch (Exception e) {
         e.printStackTrace();
         result.put("msg", "系统正忙,请稍后再试");
         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;
   }