package com.moral.api.service.impl; 
 | 
  
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; 
 | 
import com.moral.api.entity.Device; 
 | 
import com.moral.api.entity.OrganizationLayout; 
 | 
import com.moral.api.entity.SpecialDevice; 
 | 
import com.moral.api.mapper.DeviceMapper; 
 | 
import com.moral.api.mapper.OrganizationLayoutMapper; 
 | 
import com.moral.api.mapper.SpecialDeviceMapper; 
 | 
import com.moral.api.service.OrganizationLayoutService; 
 | 
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
 | 
import com.moral.constant.Constants; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
  
 | 
import java.util.ArrayList; 
 | 
import java.util.HashMap; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * <p> 
 | 
 *  服务实现类 
 | 
 * </p> 
 | 
 * 
 | 
 * @author moral 
 | 
 * @since 2021-08-31 
 | 
 */ 
 | 
@Service 
 | 
public class OrganizationLayoutServiceImpl extends ServiceImpl<OrganizationLayoutMapper, OrganizationLayout> implements OrganizationLayoutService { 
 | 
  
 | 
    @Autowired(required = false) 
 | 
    private OrganizationLayoutMapper organizationLayoutMapper; 
 | 
  
 | 
    @Autowired(required = false) 
 | 
    private DeviceMapper deviceMapper; 
 | 
  
 | 
    @Autowired(required = false) 
 | 
    private SpecialDeviceMapper specialDeviceMapper; 
 | 
  
 | 
    @Transactional 
 | 
    @Override 
 | 
    public Map<String, Object> getLayoutByMac(String mac) { 
 | 
        QueryWrapper<Device> wrapper_device = new QueryWrapper<>(); 
 | 
        wrapper_device.eq("is_delete",Constants.NOT_DELETE); 
 | 
        wrapper_device.eq("mac",mac); 
 | 
        Device device = deviceMapper.selectOne(wrapper_device); 
 | 
        QueryWrapper<SpecialDevice> wrapper_specialDevice = new QueryWrapper<>(); 
 | 
        wrapper_specialDevice.eq("is_delete",Constants.NOT_DELETE); 
 | 
        wrapper_specialDevice.eq("mac",mac); 
 | 
        SpecialDevice specialDevice = specialDeviceMapper.selectOne(wrapper_specialDevice); 
 | 
        if (ObjectUtils.isEmpty(device) && ObjectUtils.isEmpty(specialDevice)){ 
 | 
            return null; 
 | 
        } 
 | 
        int organizationId; 
 | 
        if (!ObjectUtils.isEmpty(device)){ 
 | 
            organizationId = device.getOrganizationId(); 
 | 
        }else { 
 | 
            organizationId = specialDevice.getOrganizationId(); 
 | 
        } 
 | 
        int versionId; 
 | 
        if (!ObjectUtils.isEmpty(device)){ 
 | 
            versionId = device.getDeviceVersionId(); 
 | 
        }else { 
 | 
            versionId = specialDevice.getDeviceVersionId(); 
 | 
        } 
 | 
        QueryWrapper<OrganizationLayout> wrapper_organizationLayout = new QueryWrapper<>(); 
 | 
        wrapper_organizationLayout.eq("organization_id",organizationId); 
 | 
        wrapper_organizationLayout.eq("version_id",versionId); 
 | 
        wrapper_organizationLayout.eq("is_delete",Constants.NOT_DELETE); 
 | 
        List<OrganizationLayout> organizationLayouts = organizationLayoutMapper.selectList(wrapper_organizationLayout); 
 | 
        Map<String, Object> resultMap = new HashMap<>(); 
 | 
        List<OrganizationLayout> chartSensorKeyList = new ArrayList<>(); 
 | 
        List<OrganizationLayout> coreMonitorItemsList = new ArrayList<>(); 
 | 
        List<OrganizationLayout> defaultMonitorItemsList = new ArrayList<>(); 
 | 
        List<OrganizationLayout> fixedMonitorItemsList = new ArrayList<>(); 
 | 
        for (OrganizationLayout organizationgLayout:organizationLayouts) { 
 | 
            if (organizationgLayout.getPosition().equals("chartSensorKey")){ 
 | 
                chartSensorKeyList.add(organizationgLayout); 
 | 
            } 
 | 
            if (organizationgLayout.getPosition().equals("coreMonitorItems")){ 
 | 
                coreMonitorItemsList.add(organizationgLayout); 
 | 
            } 
 | 
            if (organizationgLayout.getPosition().equals("defaultMonitorItems")){ 
 | 
                defaultMonitorItemsList.add(organizationgLayout); 
 | 
            } 
 | 
            if (organizationgLayout.getPosition().equals("fixedMonitorItems")){ 
 | 
                fixedMonitorItemsList.add(organizationgLayout); 
 | 
            } 
 | 
        } 
 | 
        chartSensorKeyList = sort(chartSensorKeyList); 
 | 
        coreMonitorItemsList = sort(coreMonitorItemsList); 
 | 
        defaultMonitorItemsList = sort(defaultMonitorItemsList); 
 | 
        fixedMonitorItemsList = sort(fixedMonitorItemsList); 
 | 
        resultMap.put("chartSensorKey",chartSensorKeyList); 
 | 
        resultMap.put("coreMonitorItems",coreMonitorItemsList); 
 | 
        resultMap.put("defaultMonitorItems",defaultMonitorItemsList); 
 | 
        resultMap.put("fixedMonitorItems",fixedMonitorItemsList); 
 | 
        return resultMap; 
 | 
    } 
 | 
  
 | 
    private List<OrganizationLayout> sort(List<OrganizationLayout> list){ 
 | 
        if (list.size() < 0){ 
 | 
            return list; 
 | 
        } 
 | 
        OrganizationLayout temp = null; 
 | 
        int j; 
 | 
        for (int i = 1; i<list.size(); i++){ 
 | 
            temp = list.get(i); 
 | 
            for (j=i-1; j>=0; j--){ 
 | 
                if (list.get(j).getPositionIndex()>temp.getPositionIndex()){ 
 | 
                    list.set(j+1,list.get(j)); 
 | 
                }else { 
 | 
                    break; 
 | 
                } 
 | 
            } 
 | 
            System.out.println(list.get(0)); 
 | 
            list.set(j+1,temp); 
 | 
        } 
 | 
        return list; 
 | 
    } 
 | 
} 
 |