package com.moral.controller; import com.alibaba.fastjson.JSON; import com.moral.entity.Alarm; import com.moral.entity.Device; import com.moral.entity.Sensor; import com.moral.entity.alarm.AlarmConfigValue; import com.moral.service.AlarmConfigService; import com.moral.service.DeviceService; import com.moral.service.HistoryService; import com.moral.service.SensorService; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; 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.servlet.ModelAndView; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("weixin") @CrossOrigin(origins = "*", maxAge = 3600) public class WeixinController { private static Logger logger = Logger.getLogger(WeixinController.class); @Resource DeviceService deviceService; @Resource SensorService sensorService; @Resource HistoryService historyService; @Resource AlarmConfigService alarmConfigService; /** * * @param alarm * @return */ @RequestMapping(value = "/alarm-show", method = RequestMethod.GET) public ModelAndView alarmShow(Alarm alarm){ ModelAndView model = new ModelAndView(); if (alarm.getMac()!=null&&alarm.getState()!=null &&alarm.getJson()!=null&&alarm.getTime()!=null){ model.setViewName("/alarm/device-data"); Device device = deviceService.getDeviceByMac(alarm.getMac()); if(!CollectionUtils.isEmpty(device.getOrganizationIds())){ List sensorList = sensorService.queryByVersionId(device.getDeviceVersionId()).getData(); String data = historyService.queryValueByMacAndTime(alarm.getMac(),alarm.getTime()); AlarmConfigValue alarmConfigValue = alarmConfigService .queryValueByOrganizationId(device.getOrganizationIds().get(0)) .get().getValue(); if(device!=null &&!CollectionUtils.isEmpty(sensorList) &&!StringUtils.isEmpty(data) &&alarmConfigValue!=null &&alarmConfigValue.getAlarmLevels()!=null){ Map params = new HashMap<>(); model.addObject("alarm", JSON.toJSON(alarm)); model.addObject("device",JSON.toJSON(device)); model.addObject("sensors",JSON.toJSON(sensorList)); model.addObject("data",JSON.toJSON(data)); model.addObject("alarmLevels",JSON.toJSON(alarmConfigValue.getAlarmLevels())); } else{ StringBuilder message = new StringBuilder(); message.append("some params is null,alarm:"); message.append(JSON.toJSON(alarm)); message.append(",device:"); message.append(JSON.toJSON(device)); message.append(",sensorList:"); message.append(JSON.toJSON(sensorList)); message.append(",data:"); message.append(JSON.toJSON(data)); logger.warn(message.toString()); model.setViewName("403"); } }else{ StringBuilder message = new StringBuilder(); message.append("some params is null,alarm:"); message.append(JSON.toJSON(alarm)); message.append(",device:"); message.append(JSON.toJSON(device)); logger.warn(message.toString()); model.setViewName("403"); } }else{ StringBuilder message = new StringBuilder(); message.append("some params is null,alarm:"); message.append(JSON.toJSON(alarm)); logger.warn(message.toString()); model.setViewName("403"); } return model; } }