package com.moral.controller;
|
|
import static com.moral.common.util.RedisUtil.get;
|
import static com.moral.common.util.RedisUtil.hasKey;
|
import static com.moral.common.util.ResourceUtil.getValue;
|
import static com.moral.common.util.WebUtils.getParametersStartingWith;
|
|
import java.io.IOException;
|
import java.io.InputStreamReader;
|
import java.util.HashMap;
|
import java.util.LinkedHashMap;
|
import java.util.Map;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
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.common.bean.ResultBean;
|
import com.moral.common.util.ValidateUtil;
|
import com.moral.service.AccountService;
|
import com.moral.service.DeviceService;
|
import com.moral.service.HistoryService;
|
import com.moral.service.MachineActivateService;
|
|
/**
|
* The Class ScreenController.大屏接口
|
*/
|
@RestController
|
@RequestMapping("screen")
|
@CrossOrigin(origins = "*", maxAge = 3600)
|
public class ScreenController {
|
|
/** The screen service. */
|
@Resource
|
private HistoryService historyService;
|
|
/** The account service. */
|
@Resource
|
private AccountService accountService;
|
|
/** The device service. */
|
@Resource
|
private DeviceService deviceService;
|
|
@Resource
|
private MachineActivateService machineActivateService;
|
|
/** The resource. */
|
@Value(value = "classpath:system/alarmLevels.json")
|
private org.springframework.core.io.Resource resource;
|
|
/** The redis template. */
|
@Resource
|
private RedisTemplate<String, String> redisTemplate;
|
|
/** The level key. */
|
private String levelKey = "alarm_";
|
|
/**
|
* Screen login. 大屏登录
|
*
|
* @param request
|
* the request
|
* @return the map
|
*/
|
@GetMapping("login")
|
public Map<String, Object> screenLogin(HttpServletRequest request) {
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
Map<String, Object> parameters = getParametersStartingWith(request, null);
|
if (!(parameters.containsKey("account") && parameters.containsKey("password"))) {
|
resultMap.put("msg", "用户名及密码不允许为空!");
|
resultMap.put("accountId", -1);
|
} else {
|
resultMap = accountService.screenLogin(parameters);
|
}
|
return resultMap;
|
}
|
|
|
/**
|
* Gets the equipment states. 获取该账号下所有设备的状态
|
*
|
* @param request
|
* the request
|
* @return the equipment states
|
*/
|
@GetMapping("equipment-state")
|
public Map<String, Object> getDeviceStatesByAccount(HttpServletRequest request) {
|
Map<String, Object> parameters = getParametersStartingWith(request, null);
|
return deviceService.getDeviceStatesByAccount(parameters);
|
}
|
|
/**
|
* Gets the alarm levels. 获取报警配置
|
*
|
* @param request
|
* the request
|
* @return the alarm levels
|
*/
|
@SuppressWarnings("resource")
|
@GetMapping("alarm-levels")
|
public Map<String, Object> getAlarmLevels(HttpServletRequest request,String orgId) {
|
Map<String, Object> result = new LinkedHashMap<String, Object>();
|
String key = levelKey + orgId;
|
try {
|
if (hasKey(redisTemplate, key)) {
|
String levelConfigStr = get(redisTemplate, key);
|
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;
|
}
|
|
/**
|
* Gets the standard by sensor.获取某传感器标准值
|
*
|
* @param request
|
* the request
|
* @return the standard by sensor
|
*/
|
@GetMapping("sensor-standard")
|
public Map<String, Object> getStandardBySensor(@RequestParam("macKey") String macKey) {
|
ValidateUtil.notEmpty(macKey, "param.is.null");
|
Map<String, Object> result = new HashMap<String, Object>();
|
result.put("standard", getValue(macKey + "-standard"));
|
return result;
|
}
|
|
/**
|
* Gets the day AQI by sensor.设备昨日的AQI指标
|
*
|
* @param request
|
* the request
|
* @return the day AQI by sensor
|
*/
|
@GetMapping("day-aqi")
|
public Map<String, Object> getDayAQIByDevice(HttpServletRequest request) {
|
Map<String, Object> parameters = getParametersStartingWith(request, null);
|
return historyService.getDayAQIByDevice(parameters);
|
}
|
|
/**
|
* Gets the average by all. 获取某账号某区域10分钟前到5分钟前所有传感器平均数值排名
|
*
|
* @param request
|
* the request
|
* @return the average by all
|
*/
|
@GetMapping("all-average")
|
public Map<String, Object> getAllSensorAverageByDevice(HttpServletRequest request) {
|
Map<String, Object> parameters = getParametersStartingWith(request, null);
|
return historyService.getAllSensorAverageByDevice(parameters);
|
}
|
|
/**
|
* Gets the average by sensor.某个传感器一小时内所有设备排名
|
*
|
* @param request
|
* the request
|
* @return the average by sensor
|
*/
|
@GetMapping("sensor-average")
|
public Map<String, Object> getDeviceRankingBySensorAverage(HttpServletRequest request) {
|
Map<String, Object> parameters = getParametersStartingWith(request, null);
|
return historyService.getDeviceRankingBySensorAverage(parameters);
|
}
|
|
/**
|
* Gets the month average by sensor.设备传感器本月平均值
|
*
|
* @param request
|
* the request
|
* @return the month average by sensor
|
*/
|
@GetMapping("month-sensor-average")
|
public Map<String, Object> getMonthAverageBySensor(HttpServletRequest request) {
|
Map<String, Object> parameters = getParametersStartingWith(request, null);
|
return historyService.getMonthAverageBySensor(parameters);
|
}
|
|
@GetMapping("check-activate")
|
public ResultBean<Integer> checkActivate(String macCpuCode) {
|
Integer result = machineActivateService.checkActivate(macCpuCode);
|
return new ResultBean<Integer>(result);
|
}
|
|
@PostMapping("activate-machine")
|
public ResultBean<Integer> activateMachine(HttpServletRequest request) {
|
Map<String, Object> parameters = getParametersStartingWith(request, null);
|
Integer result = machineActivateService.activateMachine(parameters);
|
return new ResultBean<Integer>(result);
|
}
|
|
}
|