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; /** *

* 服务实现类 *

* * @author moral * @since 2021-08-31 */ @Service public class OrganizationLayoutServiceImpl extends ServiceImpl implements OrganizationLayoutService { @Autowired(required = false) private OrganizationLayoutMapper organizationLayoutMapper; @Autowired(required = false) private DeviceMapper deviceMapper; @Autowired(required = false) private SpecialDeviceMapper specialDeviceMapper; @Transactional @Override public Map getLayoutByMac(String mac) { QueryWrapper wrapper_device = new QueryWrapper<>(); wrapper_device.eq("is_delete",Constants.NOT_DELETE); wrapper_device.eq("mac",mac); Device device = deviceMapper.selectOne(wrapper_device); QueryWrapper 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 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 organizationLayouts = organizationLayoutMapper.selectList(wrapper_organizationLayout); Map resultMap = new HashMap<>(); List chartSensorKeyList = new ArrayList<>(); List coreMonitorItemsList = new ArrayList<>(); List defaultMonitorItemsList = new ArrayList<>(); List 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 sort(List list){ if (list.size() < 0){ return list; } OrganizationLayout temp = null; int j; for (int i = 1; i=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; } }