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

* 服务实现类 *

* * @author moral * @since 2021-08-23 */ @Service public class OrganizationLayoutServiceImpl extends ServiceImpl implements OrganizationLayoutService { @Autowired(required = false) private OrganizationLayoutMapper organizationLayoutMapper; @Autowired(required = false) private DeviceMapper deviceMapper; @Override public List> getData(Map map) { int organization_id = Integer.parseInt(map.get("organization_id").toString()); int version_id = Integer.parseInt(map.get("version_id").toString()); QueryWrapper 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> organizationLayouts = new ArrayList<>(); organizationLayouts = organizationLayoutMapper.selectMaps(wrapper_organizationLayout); return organizationLayouts; } @Transactional @Override public void setUp(Map map, List list) { int organization_id = Integer.parseInt(map.get("organization_id").toString()); int version_id = Integer.parseInt(map.get("version_id").toString()); QueryWrapper 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 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 wrapper_organizationLayoutIns = new QueryWrapper<>(); wrapper_organizationLayoutIns.eq("organization_id",organization_id); wrapper_organizationLayoutIns.eq("version_id",version_id); List 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 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); if (ObjectUtils.isEmpty(device)){ return null; } int organizationId = device.getOrganizationId(); int versionId = device.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); if (ObjectUtils.isEmpty(organizationLayouts) || organizationLayouts.size()==0){ return null; } 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; } }