From 455498f1454449bfd127a560eeb01ffff823a6ca Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Tue, 31 Jul 2018 13:41:27 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 67 ++++++++++++++++++++++++--------- 1 files changed, 48 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java index 3274397..78c626f 100644 --- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java +++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java @@ -8,7 +8,8 @@ import java.util.stream.Collectors; import javax.annotation.Resource; - +import com.moral.mapper.DictionaryDataMapper; +import com.moral.mapper.OrganizationMapper; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; @@ -35,7 +36,12 @@ @Resource private DeviceMapper deviceMapper; @Resource + private OrganizationMapper orgMapper; + @Resource RedisUtils redisUtils; + @Resource + DictionaryDataMapper dictionaryDataMapper; + private static Class ENTITY_CLASS = MonitorPoint.class; @Override public List<MonitorPoint> getMonitorPointsByAreaName(Map<String, Object> parameters) { @@ -45,12 +51,19 @@ @Override public List<MonitorPoint> queryWithStateByMap(Map<String, Object> params){ params.put("isDelete",Constants.IS_DELETE_FALSE); - List<MonitorPoint> monitorPointList = monitorPointMapper.selectByMap(params); - for(MonitorPoint monitorPoint:monitorPointList){ - Integer state = getStateFromRedis(monitorPoint.getId()); - monitorPoint.setState(state); + Object orgIdObj = params.get("orgId"); + List<MonitorPoint> monitorPointList = null; + if(orgIdObj != null) { + Integer orgId = Integer.parseInt(orgIdObj.toString()); + List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId); + params.put("orgIds",orgIds); + monitorPointList = monitorPointMapper.selectByMap(params); + for(MonitorPoint monitorPoint:monitorPointList){ + Integer state = getStateFromRedis(monitorPoint.getId()); + monitorPoint.setState(state); + } } - return monitorPointList; + return monitorPointList == null ? new ArrayList<>() : monitorPointList; } private Integer getStateFromRedis(Integer monitorPointId){ StringBuilder key = new StringBuilder(); @@ -95,9 +108,17 @@ monitorPoint.setIsDelete(Constants.IS_DELETE_FALSE); monitorPointMapper.insertSelective(monitorPoint); }else{ + MonitorPoint queryMonitorPoint = new MonitorPoint(); + queryMonitorPoint.setId(monitorPoint.getId()); + queryMonitorPoint.setOrganizationId(monitorPoint.getOrganizationId()); + // num = 1,���������������,������������������������ + Integer num = monitorPointMapper.selectCount(queryMonitorPoint); + boolean needRefreshCach = (num!=1); monitorPointMapper.updateByPrimaryKeySelective(monitorPoint); - // ������������������������������ ���redis��������������� - refreshDevicesInRedis(monitorPoint.getId()); + if(needRefreshCach){ + // ������������������������������ ���redis��������������� + refreshDevicesInRedis(monitorPoint.getId()); + } } } catch (Exception ex){ @@ -108,24 +129,24 @@ ������������������������������ ���redis��������������� */ private void refreshDevicesInRedis(int monitorPointId){ - Device device = new Device(); - device.setMonitorPointId(monitorPointId); - List<Device> deviceList = deviceMapper.select(device); + Device queryDevice = new Device(); + queryDevice.setMonitorPointId(monitorPointId); + List<Device> deviceList = deviceMapper.select(queryDevice); if (!CollectionUtils.isEmpty(deviceList)){ List<Integer> orgIds = monitorPointMapper.selectOrganizationIds(monitorPointId); if (!CollectionUtils.isEmpty(orgIds)){ deviceList.stream().forEach(dev ->{ if(!StringUtils.isNullOrEmpty(dev.getMac())){ String key = "device_"+dev.getMac(); - // ��������������������� ������������redis - Device simpleDevice = new Device(); - simpleDevice.setId(dev.getId()); - simpleDevice.setDeviceVersion(dev.getDeviceVersion()); - simpleDevice.setMac(dev.getMac()); - simpleDevice.setMonitorPointId(dev.getMonitorPointId()); +// // ��������������������� ������������redis +// Device simpleDevice = new Device(); +// simpleDevice.setId(dev.getId()); +// simpleDevice.setDeviceVersion(dev.getDeviceVersion()); +// simpleDevice.setMac(dev.getMac()); +// simpleDevice.setMonitorPointId(dev.getMonitorPointId()); // ������������������������������������������������������������������ - simpleDevice.setOrganizationIds(orgIds); - redisUtils.set(key,simpleDevice); + dev.setOrganizationIds(orgIds); + redisUtils.set(key,dev); } }); } @@ -214,4 +235,12 @@ criteria.andEqualTo(parameters.get("name").toString(), parameters.get("value")); return monitorPointMapper.selectByExample(example); } + @Override + public List<Integer> queryVersionsById(Integer id){ + return monitorPointMapper.selectVersionsById(id); + } + @Override + public MonitorPoint queryMonitorPointById(Integer mpointId) { + return this.monitorPointMapper.selectByPrimaryKey(mpointId); + } } -- Gitblit v1.8.0