xufenglei
2018-07-18 8d2d5103aea98fab6ad94acd1c8421c05d1108fa
src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -18,7 +18,10 @@
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.moral.common.util.ValidateUtil;
import com.moral.entity.Device;
import com.moral.entity.Profession;
import com.moral.entity.Sensor;
import com.moral.mapper.DeviceMapper;
@@ -215,4 +218,42 @@
      }
      return result;
   }
    @Override
   public List<Map<String, Object>> getSensorsDataByDevice(Map<String, Object> parameters) {
      ValidateUtil.notNull(parameters.get("deviceVersionId"), "param.is.null");
      ValidateUtil.notNull(parameters.get("mac"), "param.is.null");
      ValidateUtil.notNull(parameters.get("deviceId"), "param.is.null");
       List<Map<String, Object>> sensors = sensorMapper.getSensorsByDeviceVersionId(parameters);
       parameters.put("size", 1);
       List<Map<String, Object>> values = historyMapper.getValueByMacAndSize(parameters);
       JSONObject map = null;
       if (!ObjectUtils.isEmpty(values)) {
          map = JSON.parseObject(values.get(0).get("value").toString());
      }
       Device device = deviceMapper.selectByPrimaryKey(Integer.valueOf((String) parameters.get("deviceId")));
       for (Map<String, Object> sensor : sensors) {
          if (!ObjectUtils.isEmpty(map)) {
             sensor.put("value", map.remove(sensor.get("sensor_key")));
         }
          sensor.put("state", device.getState());
          sensor.put("name", sensor.get("description"));
       }
      return sensors;
   }
   @Override
   public List<Map<String, Object>> getSensorDataBySensorKey(Map<String, Object> parameters) {
      ValidateUtil.notNull(parameters.get("sensorKey"), "param.is.null");
      ValidateUtil.notNull(parameters.get("mac"), "param.is.null");
      ValidateUtil.notNull(parameters.get("size"), "param.is.null");
      parameters.put("size", Integer.valueOf(parameters.remove("size").toString()));
      List<Map<String, Object>> values = historyMapper.getValueByMacAndSize(parameters);
      for (Map<String, Object> value : values) {
         JSONObject json = JSON.parseObject(value.remove("value").toString());
         value.put("value", json.get(parameters.get("sensorKey")));
      }
      return values;
   }
}