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.mapper.DeviceMapper; 
 | 
import com.moral.api.mapper.OrganizationLayoutMapper; 
 | 
import com.moral.api.service.OrganizationLayoutService; 
 | 
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
 | 
import com.moral.api.util.LogUtils; 
 | 
import com.moral.constant.Constants; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
import org.springframework.web.context.request.RequestContextHolder; 
 | 
import org.springframework.web.context.request.ServletRequestAttributes; 
 | 
  
 | 
import javax.servlet.http.HttpServletRequest; 
 | 
import java.util.ArrayList; 
 | 
import java.util.HashMap; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * <p> 
 | 
 *  服务实现类 
 | 
 * </p> 
 | 
 * 
 | 
 * @author moral 
 | 
 * @since 2021-08-23 
 | 
 */ 
 | 
@Service 
 | 
public class OrganizationLayoutServiceImpl extends ServiceImpl<OrganizationLayoutMapper, OrganizationLayout> implements OrganizationLayoutService { 
 | 
  
 | 
    @Autowired(required = false) 
 | 
    private OrganizationLayoutMapper organizationLayoutMapper; 
 | 
  
 | 
    @Autowired(required = false) 
 | 
    private DeviceMapper deviceMapper; 
 | 
  
 | 
    @Override 
 | 
    public List<Map<String, Object>> getData(Map map) { 
 | 
        int organization_id = Integer.parseInt(map.get("organization_id").toString()); 
 | 
        int version_id = Integer.parseInt(map.get("version_id").toString()); 
 | 
        QueryWrapper<OrganizationLayout> wrapper_organizationLayout = new QueryWrapper<>(); 
 | 
        wrapper_organizationLayout.eq("organization_id",organization_id); 
 | 
        wrapper_organizationLayout.eq("version_id",version_id); 
 | 
        wrapper_organizationLayout.eq("is_delete",Constants.NOT_DELETE); 
 | 
        List<Map<String,Object>> organizationLayouts = new ArrayList<>(); 
 | 
        organizationLayouts = organizationLayoutMapper.selectMaps(wrapper_organizationLayout); 
 | 
        return organizationLayouts; 
 | 
    } 
 | 
  
 | 
    @Transactional 
 | 
    @Override 
 | 
    public void setUp(Map map, List<OrganizationLayout> list) { 
 | 
        int organization_id = Integer.parseInt(map.get("organization_id").toString()); 
 | 
        int version_id = Integer.parseInt(map.get("version_id").toString()); 
 | 
        QueryWrapper<OrganizationLayout> wrapper_organizationLayout = new QueryWrapper<>(); 
 | 
        wrapper_organizationLayout.eq("organization_id",organization_id); 
 | 
        wrapper_organizationLayout.eq("version_id",version_id); 
 | 
        wrapper_organizationLayout.eq("is_delete",Constants.NOT_DELETE); 
 | 
        List<OrganizationLayout> organizationLayouts = organizationLayoutMapper.selectList(wrapper_organizationLayout); 
 | 
        //int delCount = organizationLayoutMapper.delete(wrapper_organizationLayout); 
 | 
        OrganizationLayout organizationLayout_update = new OrganizationLayout(); 
 | 
        organizationLayout_update.setIsDelete(Constants.DELETE); 
 | 
        int delCount = organizationLayoutMapper.update(organizationLayout_update,wrapper_organizationLayout); 
 | 
        if (delCount>0){ 
 | 
            //操作插入日志 
 | 
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); 
 | 
            String content = "页面布局表删除了组织id:"+organization_id+"、型号id:"+version_id+";"+"id:"; 
 | 
            for (OrganizationLayout organizationLayout:organizationLayouts) { 
 | 
                content = content +organizationLayout.getId()+" "; 
 | 
            } 
 | 
            content = content+";"; 
 | 
            LogUtils.saveOperationForManage(request,content,Constants.DELETE_OPERATE_TYPE); 
 | 
        } 
 | 
        if (!ObjectUtils.isEmpty(list) && list.size()>0){ 
 | 
            organizationLayoutMapper.insertList(list); 
 | 
            QueryWrapper<OrganizationLayout> wrapper_organizationLayoutIns = new QueryWrapper<>(); 
 | 
            wrapper_organizationLayoutIns.eq("organization_id",organization_id); 
 | 
            wrapper_organizationLayoutIns.eq("version_id",version_id); 
 | 
            List<OrganizationLayout> organizationLayoutList = organizationLayoutMapper.selectList(wrapper_organizationLayout); 
 | 
            //操作插入日志 
 | 
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); 
 | 
            String contentInsert = "页面布局表插入了组织id:"+organization_id+"、型号id:"+version_id+";"+"id:"; 
 | 
            for (OrganizationLayout organizationLayout:organizationLayoutList) { 
 | 
                contentInsert = contentInsert + organizationLayout.getId()+" "; 
 | 
            } 
 | 
            contentInsert = contentInsert+";"; 
 | 
            LogUtils.saveOperationForManage(request,contentInsert,Constants.INSERT_OPERATE_TYPE); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @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); 
 | 
        if (ObjectUtils.isEmpty(device)){ 
 | 
            return null; 
 | 
        } 
 | 
        int organizationId = device.getOrganizationId(); 
 | 
        int versionId = device.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); 
 | 
        if (ObjectUtils.isEmpty(organizationLayouts) || organizationLayouts.size()==0){ 
 | 
            return null; 
 | 
        } 
 | 
        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; 
 | 
    } 
 | 
} 
 |