/** * BladeX Commercial License Agreement * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. *

* Use of this software is governed by the Commercial License Agreement * obtained after purchasing a license from BladeX. *

* 1. This software is for development use only under a valid license * from BladeX. *

* 2. Redistribution of this software's source code to any third party * without a commercial license is strictly prohibited. *

* 3. Licensees may copyright their own code but cannot use segments * from this software for such purposes. Copyright of this software * remains with BladeX. *

* Using this software signifies agreement to this License, and the software * must not be used for illegal purposes. *

* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is * not liable for any claims arising from secondary or illegal development. *

* Author: Chill Zhuang (bladejava@qq.com) */ package org.springblade.system.wrapper; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.DictCache; import org.springblade.system.cache.SysCache; import org.springblade.system.pojo.entity.Menu; import org.springblade.system.pojo.enums.DictEnum; import org.springblade.system.pojo.vo.MenuVO; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * 包装类,返回视图层所需的字段 * * @author Chill */ public class MenuWrapper extends BaseEntityWrapper { public static MenuWrapper build() { return new MenuWrapper(); } @Override public MenuVO entityVO(Menu menu) { MenuVO menuVO = Objects.requireNonNull(BeanUtil.copyProperties(menu, MenuVO.class)); if (Func.equals(menu.getParentId(), BladeConstant.TOP_PARENT_ID)) { menuVO.setParentName(BladeConstant.TOP_PARENT_NAME); } else { Menu parent = SysCache.getMenu(menu.getParentId()); menuVO.setParentName(parent.getName()); } String category = DictCache.getValue(DictEnum.MENU_CATEGORY, Func.toInt(menuVO.getCategory())); String action = DictCache.getValue(DictEnum.BUTTON_FUNC, Func.toInt(menuVO.getAction())); String open = DictCache.getValue(DictEnum.YES_NO, Func.toInt(menuVO.getIsOpen())); menuVO.setCategoryName(category); menuVO.setActionName(action); menuVO.setIsOpenName(open); return menuVO; } public List listNodeVO(List

list) { List collect = list.stream().map(menu -> BeanUtil.copyProperties(menu, MenuVO.class)).collect(Collectors.toList()); return ForestNodeMerger.merge(collect); } public List listNodeLazyVO(List list) { return ForestNodeMerger.merge(list); } }