package com.casic.service.impl; import com.casic.dao.DeviceDataMapper; import com.casic.model.ResponseData; import com.casic.service.DeviceDataService; import com.casic.util.DeviceDataFieldTableEnum; import com.casic.util.DeviceDataTableEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @Slf4j public class DeviceDataServiceImpl implements DeviceDataService { private final DeviceDataMapper deviceDataMapper; public DeviceDataServiceImpl(DeviceDataMapper deviceDataMapper) { this.deviceDataMapper = deviceDataMapper; } public Object getDeviceRecentData(String deviceType, String recentNum, String devcode) { ResponseData responseData = new ResponseData(); DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap().get(Integer.valueOf(deviceType)); try { String tableName = deviceDataTableEnum.getTableName(); String fields = DeviceDataFieldTableEnum.TABLE_FIELD.getTableFieldMap().get(tableName); List<Map<String, Object>> recentDataList = deviceDataMapper.getDeviceRecentData(tableName, recentNum, fields, devcode); responseData.setData(recentDataList); responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); } catch (DataAccessException dae) { log.error("设备最近数据查询异常,设备类型{},查询数目{},异常信息{}", deviceType, recentNum, dae.getMessage()); responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); } return responseData; } public Object getDeviceListPage(String deviceType, Integer currentIndex, Integer pageSize, String devcode) { ResponseData responseData = new ResponseData(); DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap().get(Integer.valueOf(deviceType)); try { String tableName = deviceDataTableEnum.getTableName(); String fields = DeviceDataFieldTableEnum.TABLE_FIELD.getTableFieldMap().get(tableName); Map<String, Object> page = new HashMap(); page.put("total", deviceDataMapper.getDeviceDataTotal(tableName, devcode)); List<Map<String, Object>> recentDataList = deviceDataMapper.getDeviceDataListPage(tableName, pageSize * (currentIndex - 1), fields, pageSize, devcode); page.put("rows", recentDataList); responseData.setData(page); responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); } catch (DataAccessException dae) { log.error("设备数据查询异常,设备类型{},当前页{},页大小{},异常信息{}", deviceType, currentIndex, pageSize, dae.getMessage()); responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); } return responseData; } public Object getLevel(String deviceType) { ResponseData responseData = new ResponseData(); try { String highValue = deviceDataMapper.getLevelByType(deviceType); responseData.setData(highValue); responseData.setMessage(ResponseData.DEFAULT_SUCCESS_MESSAGE); responseData.setCode(ResponseData.DEFAULT_SUCCESS_CODE); } catch (DataAccessException dae) { log.error("设备数据查询异常,设备类型{},当前页{},页大小{},异常信息{}"); responseData.setMessage(ResponseData.DEFAULT_ERROR_MESSAGE); responseData.setCode(ResponseData.DEFAULT_ERROR_CODE); } return responseData; } }