添加 cacheStore.

This commit is contained in:
lijiahang
2023-08-09 15:45:33 +08:00
parent b38fd5ee11
commit 0063b31f35
13 changed files with 238 additions and 116 deletions

View File

@@ -26,7 +26,9 @@ public class SystemMenuUpdateStatusRequest {
@Schema(description = "id")
private Long id;
@NotNull
@Schema(description = "是否可见 0不可见 1可见")
private Integer visible;
@Schema(description = "菜单状态 0停用 1启用")
private Integer status;

View File

@@ -0,0 +1,43 @@
package com.orion.ops.module.infra.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 菜单可见枚举
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023/7/16 1:45
*/
@Getter
@AllArgsConstructor
public enum MenuVisibleEnum {
/**
* 显示
*/
HIDE(0),
/**
* 隐藏
*/
SHOW(1),
;
private final Integer visible;
public static MenuVisibleEnum of(Integer visible) {
if (visible == null) {
return null;
}
for (MenuVisibleEnum value : values()) {
if (value.visible.equals(visible)) {
return value;
}
}
return null;
}
}

View File

@@ -19,6 +19,7 @@ import com.orion.ops.module.infra.entity.request.menu.SystemMenuUpdateStatusRequ
import com.orion.ops.module.infra.entity.vo.SystemMenuVO;
import com.orion.ops.module.infra.enums.MenuStatusEnum;
import com.orion.ops.module.infra.enums.MenuTypeEnum;
import com.orion.ops.module.infra.enums.MenuVisibleEnum;
import com.orion.ops.module.infra.service.PermissionService;
import com.orion.ops.module.infra.service.SystemMenuService;
import lombok.extern.slf4j.Slf4j;
@@ -177,22 +178,37 @@ public class SystemMenuServiceImpl implements SystemMenuService {
@Override
public Integer updateSystemMenuStatus(SystemMenuUpdateStatusRequest request) {
Long id = request.getId();
Integer status = Valid.valid(MenuStatusEnum::of, request.getStatus()).getStatus();
Integer status = request.getStatus();
Integer visible = request.getVisible();
if (status != null) {
Valid.valid(MenuStatusEnum::of, status);
}
if (visible != null) {
Valid.valid(MenuVisibleEnum::of, visible);
}
// 查询
SystemMenuDO record = systemMenuDAO.selectById(id);
Valid.notNull(record, ErrorMessage.DATA_ABSENT);
// 从缓存中查询
List<SystemMenuCacheDTO> cache = permissionService.getMenuCache();
// 获取要删除的id
// 获取要更新的id
List<Long> updateIdList = this.getChildrenIdList(id, cache, record.getType());
// 修改状态
SystemMenuDO update = new SystemMenuDO();
update.setStatus(status);
update.setVisible(visible);
int effect = systemMenuDAO.update(update, Conditions.in(SystemMenuDO::getId, updateIdList));
// 修改引用缓存状态
cache.stream()
.filter(s -> updateIdList.contains(s.getId()))
.forEach(s -> s.setStatus(status));
.forEach(s -> {
if (status != null) {
s.setStatus(status);
}
if (visible != null) {
s.setVisible(visible);
}
});
log.info("SystemMenuService-updateSystemMenuStatus updateIdList: {}, effect: {}", JSON.toJSONString(updateIdList), effect);
return effect;
}