Newer
Older
smartwell_demos / src / main / java / com / casic / service / impl / DeviceDataServiceImpl.java
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;
    }

    @Override
    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;
    }

    @Override
    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;
    }

    @Override
    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;
    }

}