diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ObserveCfgCacheEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ObserveCfgCacheEnum.java new file mode 100644 index 0000000..79ced14 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ObserveCfgCacheEnum.java @@ -0,0 +1,9 @@ +package com.casic.missiles.enums; + +public interface ObserveCfgCacheEnum { + + String observeCfgDetail = "observeCfg:detail"; + + String observeCfgList= "observeCfg:list"; + +} diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ObserveCfgCacheEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ObserveCfgCacheEnum.java new file mode 100644 index 0000000..79ced14 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ObserveCfgCacheEnum.java @@ -0,0 +1,9 @@ +package com.casic.missiles.enums; + +public interface ObserveCfgCacheEnum { + + String observeCfgDetail = "observeCfg:detail"; + + String observeCfgList= "observeCfg:list"; + +} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java index 383d192..c91c478 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ObserveCfgCacheEnum; import com.casic.missiles.modular.system.dao.BusObserpoiInfoMapper; import com.casic.missiles.modular.system.dto.BusObserpoiRequest; import com.casic.missiles.modular.system.dto.BusObserpoiResponse; @@ -14,6 +15,8 @@ import com.casic.missiles.modular.system.service.IBusMonipoiInfoService; import com.casic.missiles.modular.system.service.IBusObserpoiInfoService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import java.util.Date; @@ -28,7 +31,7 @@ * @since 2023-04-18 */ @Service -public class BusObserpoiInfoServiceImpl extends ServiceImpl implements IBusObserpoiInfoService { +public class BusObserpoiInfoServiceImpl extends ServiceImpl implements IBusObserpoiInfoService, ObserveCfgCacheEnum { @Autowired private IBusMonipoiInfoService monipoiInfoService; @@ -36,6 +39,9 @@ private AbstractPermissionContext permissionContext; @Override + @Cacheable(value = {observeCfgDetail}, + key = "'observe_detail_'+#monitorId+'-'+#serialNum+'-'+#lineNum" + ) public BusObserpoiInfo selectByMonitorAndNum(Long monitorId, Integer serialNum, Integer lineNum) { QueryWrapper query = new QueryWrapper<>(); query.eq("MONITOR_ID", monitorId); @@ -45,6 +51,9 @@ } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_monitor_'+#monitorId+'-'+#monitorId+'-'+#lineNum" + ) public List selectByMonitor(Long monitorId, Integer lineNum) { QueryWrapper query = new QueryWrapper<>(); query.eq("MONITOR_ID", monitorId); @@ -59,6 +68,9 @@ } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_ip_'+#deviceIp+'-'+#linNum" + ) public List selectByMonitor(String deviceIp, Integer linNum) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -75,6 +87,9 @@ } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_ip_'+#deviceIp+'-'+#linNum+'-'+#serialNum" + ) public List selectBeforesBySerialNum(String deviceIp, Integer linNum, Integer serialNum) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -94,8 +109,8 @@ return this.baseMapper.selectMaxNum(monitorId, lineNum); } - @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean addPresetByIp(String deviceIp, int presetIndex, int lineNum, double direction, double pitch, int stopTime, int alarmValue, int speed, String presetName, @@ -141,6 +156,7 @@ @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean deletePresetByIp(String deviceIp, int presetIndex, int lineNum) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -155,6 +171,7 @@ @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean deletePresetBySerials(String deviceIp, int presetIndex, int lineNum) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -170,6 +187,7 @@ //根据全局变量设置属性值 @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean updateGlobalValues(String deviceIp, Integer stopTime, Integer alarmValue, Integer speed) { @@ -192,12 +210,16 @@ } @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean updateCruise(Long monitorId, String cruiseName, int cruiseRoute) { return this.baseMapper.updateCruise(monitorId, cruiseName, cruiseRoute); } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_ip_'+#deviceIp" + ) public List selectByMonitor(String deviceIp) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -219,6 +241,7 @@ @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean deleteCruise(String deviceIp, String cruiseName, int cruiseRoute) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -231,13 +254,18 @@ } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_'+#obserpoiRequest.getStationId()+'-'+#obserpoiRequest.getMonitorId()+'-'+#obserpoiRequest.getLineNum()" + ) public List selectNoPage(BusObserpoiRequest obserpoiRequest) { return this.baseMapper.selectNoPage(obserpoiRequest); } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_lis_page_'+#obserpoiRequest.getStationId()+'-'+#obserpoiRequest.getMonitorId()+'-'+#obserpoiRequest.getLineNum()" + ) public List pageList(Page page, BusObserpoiRequest obserpoiRequest) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); return this.baseMapper.pageList(page, obserpoiRequest, dataScope); diff --git a/casic-common/src/main/java/com/casic/missiles/enums/ObserveCfgCacheEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/ObserveCfgCacheEnum.java new file mode 100644 index 0000000..79ced14 --- /dev/null +++ b/casic-common/src/main/java/com/casic/missiles/enums/ObserveCfgCacheEnum.java @@ -0,0 +1,9 @@ +package com.casic.missiles.enums; + +public interface ObserveCfgCacheEnum { + + String observeCfgDetail = "observeCfg:detail"; + + String observeCfgList= "observeCfg:list"; + +} diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java index 383d192..c91c478 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ObserveCfgCacheEnum; import com.casic.missiles.modular.system.dao.BusObserpoiInfoMapper; import com.casic.missiles.modular.system.dto.BusObserpoiRequest; import com.casic.missiles.modular.system.dto.BusObserpoiResponse; @@ -14,6 +15,8 @@ import com.casic.missiles.modular.system.service.IBusMonipoiInfoService; import com.casic.missiles.modular.system.service.IBusObserpoiInfoService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import java.util.Date; @@ -28,7 +31,7 @@ * @since 2023-04-18 */ @Service -public class BusObserpoiInfoServiceImpl extends ServiceImpl implements IBusObserpoiInfoService { +public class BusObserpoiInfoServiceImpl extends ServiceImpl implements IBusObserpoiInfoService, ObserveCfgCacheEnum { @Autowired private IBusMonipoiInfoService monipoiInfoService; @@ -36,6 +39,9 @@ private AbstractPermissionContext permissionContext; @Override + @Cacheable(value = {observeCfgDetail}, + key = "'observe_detail_'+#monitorId+'-'+#serialNum+'-'+#lineNum" + ) public BusObserpoiInfo selectByMonitorAndNum(Long monitorId, Integer serialNum, Integer lineNum) { QueryWrapper query = new QueryWrapper<>(); query.eq("MONITOR_ID", monitorId); @@ -45,6 +51,9 @@ } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_monitor_'+#monitorId+'-'+#monitorId+'-'+#lineNum" + ) public List selectByMonitor(Long monitorId, Integer lineNum) { QueryWrapper query = new QueryWrapper<>(); query.eq("MONITOR_ID", monitorId); @@ -59,6 +68,9 @@ } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_ip_'+#deviceIp+'-'+#linNum" + ) public List selectByMonitor(String deviceIp, Integer linNum) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -75,6 +87,9 @@ } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_ip_'+#deviceIp+'-'+#linNum+'-'+#serialNum" + ) public List selectBeforesBySerialNum(String deviceIp, Integer linNum, Integer serialNum) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -94,8 +109,8 @@ return this.baseMapper.selectMaxNum(monitorId, lineNum); } - @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean addPresetByIp(String deviceIp, int presetIndex, int lineNum, double direction, double pitch, int stopTime, int alarmValue, int speed, String presetName, @@ -141,6 +156,7 @@ @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean deletePresetByIp(String deviceIp, int presetIndex, int lineNum) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -155,6 +171,7 @@ @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean deletePresetBySerials(String deviceIp, int presetIndex, int lineNum) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -170,6 +187,7 @@ //根据全局变量设置属性值 @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean updateGlobalValues(String deviceIp, Integer stopTime, Integer alarmValue, Integer speed) { @@ -192,12 +210,16 @@ } @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean updateCruise(Long monitorId, String cruiseName, int cruiseRoute) { return this.baseMapper.updateCruise(monitorId, cruiseName, cruiseRoute); } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_ip_'+#deviceIp" + ) public List selectByMonitor(String deviceIp) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -219,6 +241,7 @@ @Override + @CacheEvict(value = {observeCfgDetail,observeCfgList}, allEntries = true, beforeInvocation=true) public boolean deleteCruise(String deviceIp, String cruiseName, int cruiseRoute) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); if (ObjectUtil.isNotEmpty(baseInfo)) { @@ -231,13 +254,18 @@ } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_list_'+#obserpoiRequest.getStationId()+'-'+#obserpoiRequest.getMonitorId()+'-'+#obserpoiRequest.getLineNum()" + ) public List selectNoPage(BusObserpoiRequest obserpoiRequest) { return this.baseMapper.selectNoPage(obserpoiRequest); } @Override + @Cacheable(value = {observeCfgList}, + key = "'observe_lis_page_'+#obserpoiRequest.getStationId()+'-'+#obserpoiRequest.getMonitorId()+'-'+#obserpoiRequest.getLineNum()" + ) public List pageList(Page page, BusObserpoiRequest obserpoiRequest) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); return this.baseMapper.pageList(page, obserpoiRequest, dataScope); diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml index e89a4f4..4cfff9e 100644 --- a/casic-web/src/main/resources/ehcache.xml +++ b/casic-web/src/main/resources/ehcache.xml @@ -78,6 +78,33 @@ memoryStoreEvictionPolicy="LFU" transactionalMode="off"> + + + + + + +