diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/DyLevel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/DyLevel.java index 33bd9fd..9c0e26f 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/DyLevel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/DyLevel.java @@ -33,10 +33,19 @@ public class DyLevel implements Serializable { @ApiModelProperty(value = "线路列表", example = "[]") public List list = new ArrayList<>(); - private boolean include; + private boolean checked; + + public void setCheck(boolean check) { + checked = check; + if (checked) { + for (Lines item : list) { + item.setCheck(checked); + } + } + } public boolean checkInclude() { - if (include) { + if (checked) { return true; } else { for (Lines item : list) { diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Lines.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Lines.java index b19a250..3551629 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Lines.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Lines.java @@ -39,10 +39,19 @@ public class Lines implements Serializable { @ApiModelProperty(value = "杆塔信息", example = "123456") private List list = new ArrayList<>(); - private boolean include; + private boolean checked; + + public void setCheck(boolean check) { + checked = check; + if (checked) { + for (Towers item : list) { + item.setCheck(checked); + } + } + } public boolean checkInclude() { - if (include) { + if (checked) { return true; } else { for (Towers item : list) { diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java index 116976b..11f2fcd 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java @@ -113,10 +113,10 @@ public class Terminals implements Serializable { private static final long serialVersionUID = 1L; - private boolean include; + private boolean checked; public boolean checkInclude() { - if (include) { + if (checked) { return true; } else { return false; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Towers.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Towers.java index 707e3f0..89bbf1d 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Towers.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Towers.java @@ -106,10 +106,19 @@ public class Towers implements Serializable { private Integer isfavor; - private boolean include; + private boolean checked; + + public void setCheck(boolean check) { + checked = check; + if (checked) { + for (Terminals item : list) { + item.setChecked(checked); + } + } + } public boolean checkInclude() { - if (include) { + if (checked) { return true; } else { for (Terminals item : list) { diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java index f3495d3..1fe0970 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java @@ -103,7 +103,7 @@ public class LineServiceImpl implements LineService { * @return */ @Override - @CacheEvict(value = "fulltree") + @CacheEvict(cacheNames = {"permissionfull", "permissionover", "fulltree"}, allEntries = true) public ServiceBody addLine(LineVo vo) { List lines = BeanUtil.copyToList(vo.getList(), Lines.class, CopyOptions.create().ignoreCase()); Date date = new Date(); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/NewCacheServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/NewCacheServiceImpl.java index 5228dfe..917eea9 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/NewCacheServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/NewCacheServiceImpl.java @@ -1,6 +1,5 @@ package com.shxy.xymanager_service.impl; -import cn.hutool.core.collection.CollectionUtil; import com.shxy.xymanager_common.bean.PermissionDetail; import com.shxy.xymanager_common.entity.*; import com.shxy.xymanager_dao.dao.*; @@ -30,78 +29,90 @@ public class NewCacheServiceImpl implements NewCacheService { @Resource TerminalsDao terminalsDao; - @Override - @Cacheable(value = "permission_byuser", key = "#userId") - public PermissionDetail getIncludeDetail(Integer userId) { - PermissionDetail detail = permissionService.getPermissionDetail(userId); + @Override + @Cacheable(value = "permissionfull", key = "#userId") + public PermissionDetail getPermissionDetailFull(Integer userId) { // 全量 List dyList = dyLevelDao.selectByExample(new DyLevelExample()); List lineList = linesDao.selectByExample(new LinesExample()); List towerList = towerDao.selectByExample(new TowersExample()); List terminalList = terminalsDao.selectByExample(new TerminalsExample()); - HashMap dyMap = new HashMap<>(); - HashMap lineMap = new HashMap<>(); - HashMap towerMap = new HashMap<>(); - HashMap terminalMap = new HashMap<>(); - // 做map + this.mountList(dyList, lineList, towerList, terminalList); + + this.setCheck(dyList, lineList, towerList, terminalList, userId); + + // 构造结果 + PermissionDetail detail = new PermissionDetail(); + detail.setUid(userId); for (DyLevel dy : dyList) { - if (detail.hasDyId(dy.getId())) { - dy.setInclude(true); + if (dy.isChecked()) { + detail.getDypList().add(dy.getId()); } - dyMap.put(dy.getId(), dy); } for (Lines line : lineList) { - if (detail.hasLineId(line.getId())) { - line.setInclude(true); + if (line.isChecked()) { + detail.getLinepList().add(line.getId()); } - lineMap.put(line.getId(), line); } for (Towers tower : towerList) { - if (detail.hasTowerId(tower.getId())) { - tower.setInclude(true); + if (tower.isChecked()) { + detail.getTowerpList().add(tower.getId()); } - towerMap.put(tower.getId(), tower); } for (Terminals terminal : terminalList) { - if (detail.hasTermId(terminal.getId())) { - terminal.setInclude(true); + if (terminal.isChecked()) { + detail.getTermpList().add(terminal.getId()); } - terminalMap.put(terminal.getId(), terminal); } + return detail; + } - // 一层挂上一层 - for (Terminals terminal : terminalList) { - Integer towerId = terminal.getTowerId(); - if (towerId != null) { - Towers tower = towerMap.get(towerId); - if (tower != null) { - tower.getList().add(terminal); - } + private void setCheck(List dyList, List lineList, + List towerList, List terminalList, + Integer userId) { + PermissionDetail detail = permissionService.getPermissionDetail(userId); + + // 勾选选中的 + for (DyLevel dy : dyList) { + if (detail.hasDyId(dy.getId())) { + dy.setCheck(true); + } + } + for (Lines line : lineList) { + if (detail.hasLineId(line.getId())) { + line.setCheck(true); } } for (Towers tower : towerList) { - Integer lineId = tower.getLineid(); - if (lineId != null) { - Lines line = lineMap.get(lineId); - if (line != null) { - line.getList().add(tower); - } + if (detail.hasTowerId(tower.getId())) { + tower.setCheck(true); } } - for (Lines line : lineList) { - Integer dyLevelId = line.getDyLevelId(); - if (dyLevelId != null) { - DyLevel dyLevel = dyMap.get(dyLevelId); - if (dyLevel != null) { - dyLevel.getList().add(line); - } + for (Terminals terminal : terminalList) { + if (detail.hasTermId(terminal.getId())) { + terminal.setChecked(true); } } + } - // 找出相关的 - detail = new PermissionDetail(); + @Override + @Cacheable(value = "permissionover", key = "#userId") + public PermissionDetail getPermissionDetailOver(Integer userId) { + // 全量 + List dyList = dyLevelDao.selectByExample(new DyLevelExample()); + List lineList = linesDao.selectByExample(new LinesExample()); + List towerList = towerDao.selectByExample(new TowersExample()); + List terminalList = terminalsDao.selectByExample(new TerminalsExample()); + + this.mountList(dyList, lineList, towerList, terminalList); + + this.setCheck(dyList, lineList, towerList, terminalList, userId); + + // 构造结果 + PermissionDetail detail = new PermissionDetail(); + detail.setUid(userId); for (DyLevel dy : dyList) { if (dy.checkInclude()) { detail.getDypList().add(dy.getId()); @@ -133,55 +144,56 @@ public class NewCacheServiceImpl implements NewCacheService { List lineList = linesDao.selectByExample(new LinesExample()); List towerList = towerDao.selectByExample(new TowersExample()); List terminalList = terminalsDao.selectByExample(new TerminalsExample()); - if (CollectionUtil.isNotEmpty(dyList)) { - HashMap dyMap = new HashMap<>(); - HashMap lineMap = new HashMap<>(); - HashMap towerMap = new HashMap<>(); - HashMap terminalMap = new HashMap<>(); - // 做map - for (DyLevel dy : dyList) { - dyMap.put(dy.getId(), dy); - } - for (Lines line : lineList) { - lineMap.put(line.getId(), line); - } - for (Towers tower : towerList) { - towerMap.put(tower.getId(), tower); - } - for (Terminals terminal : terminalList) { - terminalMap.put(terminal.getId(), terminal); - } - // 一层挂上一层 - for (Terminals terminal : terminalList) { - Integer towerId = terminal.getTowerId(); - if (towerId != null) { - Towers tower = towerMap.get(towerId); - if (tower != null) { - tower.getList().add(terminal); - } + this.mountList(dyList, lineList, towerList, terminalList); + + return dyList; + } + + // 一层挂上一层 + private void mountList(List dyList, List lineList, + List towerList, List terminalList) { + HashMap dyMap = new HashMap<>(); + HashMap lineMap = new HashMap<>(); + HashMap towerMap = new HashMap<>(); + // 做map + for (DyLevel dy : dyList) { + dyMap.put(dy.getId(), dy); + } + for (Lines line : lineList) { + lineMap.put(line.getId(), line); + } + for (Towers tower : towerList) { + towerMap.put(tower.getId(), tower); + } + + // 一层挂上一层 + for (Terminals terminal : terminalList) { + Integer towerId = terminal.getTowerId(); + if (towerId != null) { + Towers tower = towerMap.get(towerId); + if (tower != null) { + tower.getList().add(terminal); } } - for (Towers tower : towerList) { - Integer lineId = tower.getLineid(); - if (lineId != null) { - Lines line = lineMap.get(lineId); - if (line != null) { - line.getList().add(tower); - } + } + for (Towers tower : towerList) { + Integer lineId = tower.getLineid(); + if (lineId != null) { + Lines line = lineMap.get(lineId); + if (line != null) { + line.getList().add(tower); } } - for (Lines line : lineList) { - Integer dyLevelId = line.getDyLevelId(); - if (dyLevelId != null) { - DyLevel dyLevel = dyMap.get(dyLevelId); - if (dyLevel != null) { - dyLevel.getList().add(line); - } + } + for (Lines line : lineList) { + Integer dyLevelId = line.getDyLevelId(); + if (dyLevelId != null) { + DyLevel dyLevel = dyMap.get(dyLevelId); + if (dyLevel != null) { + dyLevel.getList().add(line); } } } - return dyList; } - } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/PermissionServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/PermissionServiceImpl.java index e430eec..dc3933f 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/PermissionServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/PermissionServiceImpl.java @@ -59,7 +59,7 @@ public class PermissionServiceImpl implements PermissionService { } @Override - @CacheEvict(value = "permission_byuser", key = "#userId") + @CacheEvict(cacheNames = {"permissionfull", "permissionover"}, key = "#userId") public void changePermission(Integer userId, List list) throws Exception { TbPermissionExample example = new TbPermissionExample(); TbPermissionExample.Criteria criteria = example.createCriteria(); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java index 1dc6066..80d4941 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java @@ -224,7 +224,7 @@ public class TerminalServiceImpl implements TerminalService { * @return */ @Override - @CacheEvict(value = "fulltree") + @CacheEvict(cacheNames = {"permissionfull", "permissionover", "fulltree"}, allEntries = true) public ServiceBody addTerminal(TerminalVo vo) { String cmdId = vo.getCmdid(); Terminals terminals = new Terminals(); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TowerServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TowerServiceImpl.java index 74d3621..a75bf5c 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TowerServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TowerServiceImpl.java @@ -46,7 +46,7 @@ public class TowerServiceImpl implements TowerService { private CacheService cacheService; @Override - @CacheEvict(value = "fulltree") + @CacheEvict(cacheNames = {"permissionfull", "permissionover", "fulltree"}, allEntries = true) public ServiceBody addTower(TowersVo vo) { List towersLst = BeanUtil.copyToList(vo.getList(), Towers.class, CopyOptions.create().ignoreCase()); Date date = new Date(); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/NewCacheService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/NewCacheService.java index 38fd67a..c6bcc65 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/NewCacheService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/NewCacheService.java @@ -8,7 +8,9 @@ import java.util.List; public interface NewCacheService { - PermissionDetail getIncludeDetail(Integer userId); + PermissionDetail getPermissionDetailFull(Integer userId); + + PermissionDetail getPermissionDetailOver(Integer userId); List getFullTree(); }