diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java index 2d8151d..1ca781f 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java @@ -9,26 +9,32 @@ import cc.smtweb.framework.core.db.vo.ModelCatalog; import cc.smtweb.framework.core.exception.BizException; import cc.smtweb.framework.core.session.UserSession; import cc.smtweb.framework.core.util.CommUtil; +import cc.smtweb.framework.core.util.PubUtil; import cc.smtweb.system.bpm.util.TreeDataUtil; import cc.smtweb.system.bpm.web.design.db.ModelCatalogCache; import cc.smtweb.system.bpm.web.design.db.ModelProjectCache; import cc.smtweb.system.bpm.web.design.form.ModelForm; import cc.smtweb.system.bpm.web.design.form.ModelFormCache; +import cc.smtweb.system.bpm.web.sys.user.menu.MenuCache; +import cc.smtweb.system.bpm.web.sys.user.menuPlan.MenuPlan; +import cc.smtweb.system.bpm.web.sys.user.menuPlan.MenuPlanCache; +import cc.smtweb.system.bpm.web.sys.user.menuPlan.MenuPlanContent; +import cc.smtweb.system.bpm.web.sys.user.menuPlan.MenuPlanItem; import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @SwService public class PreviewMenuTreeService { @SwParam private DbEngine dbEngine; - public R treeAll(@SwParam("module") String module, UserSession us) { + public R treeAll(@SwParam("module") String module, @SwParam("type") int type, UserSession us) { String prj_id = ModelProjectCache.getInstance().getIdByModule(module); - + List menuVOList = buildMenu(prj_id, module, us); + if (type == 1 && PubUtil.isNotEmpty(menuVOList)) { + return R.success(menuVOList); + } List listForm; if (StringUtils.isNotEmpty(prj_id)) { listForm = new ArrayList<>(ModelFormCache.getInstance().getFormsByPrj(Long.parseLong(prj_id))); @@ -54,9 +60,8 @@ public class PreviewMenuTreeService { MenuVO menu = new MenuVO(); menu.setId(form.getId()); menu.setName(form.getTitle()); - menu.setPath("/bpm/" + module+"."+form.getName()); + menu.setPath("/bpm/" + module + "." + form.getName()); menu.setParentId(form.getMcId()); - setMenuChildren(map.get(form.getMcId()), menu); } @@ -69,6 +74,46 @@ public class PreviewMenuTreeService { return R.success(data); } + public List buildMenu(String prj_id, String module, UserSession us) { + Set set = MenuPlanCache.getInstance().getByP(prj_id); + if (PubUtil.isEmpty(set)) new ArrayList<>(); + MenuPlan menuPlan = set.iterator().next(); + MenuPlanContent mpc = new MenuPlanContent(menuPlan.getContent()); + List list = new ArrayList<>(); + for (MenuPlanItem mp : mpc.getChildren(0)) { + List menuVOList = buildMenu(-1, mp); + if (menuVOList == null) continue; + list.addAll(menuVOList); + } + MenuVO root = new MenuVO(); + root.setName("项目"); + root.setPath(module); + root.setId(-1L); + return TreeDataUtil.buildTree(root, list, MenuVO.createTreeHandler()); + } + + private List buildMenu(long parent_id, MenuPlanItem mp) { + if (mp == null) return null; + List list = new ArrayList<>(); + MenuVO menu = new MenuVO(); + menu.setId(mp.getId()); + menu.setName(mp.getLabel()); + menu.setIcon(mp.getIcon()); + menu.setPath(MenuCache.getInstance().getPath(mp.getMenu())); + menu.setParentId(parent_id); + List child = new ArrayList<>(); + if (PubUtil.isNotEmpty(mp.getChildren())) { + for (MenuPlanItem cmp : mp.getChildren()) { + List m = buildMenu(menu.getId(), cmp); + if (m == null) continue; + child.addAll(m); + } + } + menu.setChildren(child); + list.add(menu); + return list; + } + private MenuVO setMenuParent(Long parent_id, Map map, List list) { MenuVO parent = map.get(parent_id); if (parent != null) return parent; diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menu/MenuCache.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menu/MenuCache.java index 8f9edd9..539c644 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menu/MenuCache.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menu/MenuCache.java @@ -3,10 +3,9 @@ package cc.smtweb.system.bpm.web.sys.user.menu; import cc.smtweb.framework.core.annotation.SwCache; import cc.smtweb.framework.core.cache.AbstractEntityCache; import cc.smtweb.framework.core.cache.CacheManager; +import cc.smtweb.framework.core.util.JsonUtil; +import cc.smtweb.framework.core.util.PubUtil; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; import java.util.Set; /** @@ -31,4 +30,13 @@ public class MenuCache extends AbstractEntityCache { public final Set getByM(String key) { return getListByKey(mk_m, key); } + + + public final String getPath(long menu_id) { + Menu menu = get(menu_id); + if (menu == null) return ""; + String content = menu.getContent(); + if (PubUtil.isEmpty(content)) return ""; + return JsonUtil.parseMap(menu.getContent()).get("path").toString(); + } } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanCache.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanCache.java index 6942664..4dc294f 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanCache.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanCache.java @@ -10,17 +10,25 @@ import java.util.List; import java.util.Set; /** - * Created by 1 at 2022-08-01 18:08:28 + * Created by 1 at 2022-08-05 19:41:15 * 实体【[菜单方案](SYS_MENU_PLAN)】的缓存类 */ @SwCache(ident = "SYS_MENU_PLAN", title = "菜单方案") public class MenuPlanCache extends AbstractEntityCache { + //缓存key:按项目缓存 + public final static String mk_p = "p"; public static MenuPlanCache getInstance() { return CacheManager.getIntance().getCache(MenuPlanCache.class); } public MenuPlanCache() { + //缓存key:按项目缓存 + regList(mk_p, "smp_prj_id"); } + //缓存key:按项目缓存 + public final Set getByP(String key) { + return getListByKey(mk_p, key); + } } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanComparator.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanComparator.java new file mode 100644 index 0000000..6d47aee --- /dev/null +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanComparator.java @@ -0,0 +1,17 @@ +package cc.smtweb.system.bpm.web.sys.user.menuPlan; + +import java.util.Comparator; + +/** + * @Author yaoq + * @Date 2022年08月05日 20:24 + * @Description + */ +public class MenuPlanComparator implements Comparator { + + @Override + public int compare(MenuPlanItem o1, MenuPlanItem o2) { + return o1.getSeq() - o2.getSeq(); + } + +} diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanContent.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanContent.java index 7a44e4f..1954fab 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanContent.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanContent.java @@ -6,6 +6,7 @@ import cc.smtweb.framework.core.util.JsonUtil; import cc.smtweb.framework.core.util.PubUtil; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -15,57 +16,60 @@ import java.util.List; */ public class MenuPlanContent { private List list = new ArrayList<>(); - public MenuPlanContent(String content){ - List tempList = JsonUtil.parseList(content,MenuPlanItem.class); - if(tempList!=null){ - list = tempList; - } + + public MenuPlanContent(String content) { + List tempList = JsonUtil.parseList(content, MenuPlanItem.class); + if (tempList != null) { + list = tempList; + } + Collections.sort(list, new MenuPlanComparator()); } + // 保存节点 - public void saveItem(MenuPlanItem item,long parentId){ - boolean isNew = item.getId() <=0; - if(isNew){ + public void saveItem(MenuPlanItem item, long parentId) { + boolean isNew = item.getId() <= 0; + if (isNew) { item.setId(DbEngine.getInstance().nextId()); - if(parentId<=0){ + if (parentId <= 0) { list.add(item); - }else { + } else { MenuPlanItem parentItem = findById(parentId); - if(parentItem==null){ + if (parentItem == null) { throw new BizException("上级节点无效"); } List children = parentItem.getChildren(); - if(children == null){ + if (children == null) { children = new ArrayList<>(); parentItem.setChildren(children); } children.add(item); } - }else { - if(item.getId() == parentId) { + } else { + if (item.getId() == parentId) { throw new BizException("上级不允许选自己!"); } MenuPlanItem oldItem = findById(item.getId()); - if(oldItem==null){ + if (oldItem == null) { throw new BizException("未找到修改对象"); } // 判断是否修改了父节点 MenuPlanItem oldParent = findParentById(item.getId()); MenuPlanItem newParent = findById(parentId); - boolean changeParent = (oldParent ==null? -1 : oldParent.getId()) != parentId; - if(changeParent){ + boolean changeParent = (oldParent == null ? -1 : oldParent.getId()) != parentId; + if (changeParent) { // 改了父节点 父节点的children需要移除,新的父节点需要添加 - removeById(item.getId(),oldParent==null ? list: oldParent.getChildren()); - if(newParent==null){ + removeById(item.getId(), oldParent == null ? list : oldParent.getChildren()); + if (newParent == null) { addItem(item, list); - }else { + } else { List children = newParent.getChildren(); - if(children==null){ + if (children == null) { children = new ArrayList<>(); newParent.setChildren(children); } addItem(item, children); } - }else { + } else { // 没有改变父节点 直接拷贝值 oldItem.setLabel(item.getLabel()); oldItem.setMenu(item.getMenu()); @@ -75,85 +79,94 @@ public class MenuPlanContent { } } + // 删除节点 - public void delItem(long id){ + public void delItem(long id) { MenuPlanItem parent = findParentById(id); - if(parent==null){ - removeById(id,list); - }else { + if (parent == null) { + removeById(id, list); + } else { List children = parent.getChildren(); - if(PubUtil.isNotEmpty(children)){ - removeById(id,children); + if (PubUtil.isNotEmpty(children)) { + removeById(id, children); } } } + // 转换成字符串 - public String toContentStr(){ + public String toContentStr() { return JsonUtil.encodeString(list); } + // 根据id找节点 - public MenuPlanItem findById(long id){ - if(id<=0){ + public MenuPlanItem findById(long id) { + if (id <= 0) { return null; } - return findById(id,list); + return findById(id, list); } + // 根据id找父节点 - public MenuPlanItem findParentById(long id){ - if(id<=0){ + public MenuPlanItem findParentById(long id) { + if (id <= 0) { return null; } - return findParentById(id,list); + return findParentById(id, list); } + // 获取子节点 - public List getChildren(long parentId){ - if(parentId<=0){ + public List getChildren(long parentId) { + if (parentId <= 0) { return list; } MenuPlanItem parent = findById(parentId); - return parent == null ? new ArrayList<>(): parent.getChildren() ; + return parent == null ? new ArrayList<>() : parent.getChildren(); } - private MenuPlanItem findById(long id,List itemList){ - if(PubUtil.isEmpty(itemList)){ + + private MenuPlanItem findById(long id, List itemList) { + if (PubUtil.isEmpty(itemList)) { return null; } - for(MenuPlanItem item: itemList){ - if(item.getId() == id){ - return item; + for (MenuPlanItem item : itemList) { + if (item.getId() == id) { + return item; } - if(PubUtil.isNotEmpty(item.getChildren())){ - return findById(id,item.getChildren()); + if (PubUtil.isNotEmpty(item.getChildren())) { + return findById(id, item.getChildren()); } } return null; } - private MenuPlanItem findParentById(long id,List itemList){ - if(PubUtil.isEmpty(itemList)){ + + private MenuPlanItem findParentById(long id, List itemList) { + if (PubUtil.isEmpty(itemList)) { return null; } - for(MenuPlanItem item: itemList){ + for (MenuPlanItem item : itemList) { List children = item.getChildren(); - if(PubUtil.isNotEmpty(children)){ - for(MenuPlanItem i : children){ - if(i.getId() == id){ - return item; - } - if(PubUtil.isNotEmpty(i.getChildren())){ - return findParentById(id,i.getChildren()); - } - } + if (PubUtil.isNotEmpty(children)) { + for (MenuPlanItem i : children) { + if (i.getId() == id) { + return item; + } + if (PubUtil.isNotEmpty(i.getChildren())) { + return findParentById(id, i.getChildren()); + } + } } } return null; } - private void removeById(long id, List itemList){ - if(itemList == null || itemList.size()<=0){ + + private void removeById(long id, List itemList) { + if (itemList == null || itemList.size() <= 0) { return; } itemList.removeIf(item -> item.getId() == id); } - private void addItem(MenuPlanItem item, List itemList){ - if(itemList == null){ + + private void addItem(MenuPlanItem item, List itemList) { + if (itemList == null) { return; } itemList.add(item); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanHandler.java index f9dd545..7404fd4 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanHandler.java @@ -28,79 +28,81 @@ public class MenuPlanHandler { private static String DS_MENU_LIST = "menuList"; private static String DS_MENU_CARD = "menuCard"; private static String DS_MENU_TREE = "menuTree"; + static class MenuCustHandler extends AbstractHandler { // 保存方案明细 - public R savePlanItem(){ - // 方案ID - long plan_id = params.readLong("plan_id"); - if(plan_id<=0){ - throw new BizException("所属方案不能为空!"); - } - MenuPlan menuPlan = MenuPlanCache.getInstance().get(plan_id); - if(menuPlan==null){ - throw new BizException("所属方案不能为空!"); - } - long parent_id = params.readLong("parent_id",-1L); - MenuPlanItem menuPlanItem = JsonUtil.parse(params, MenuPlanItem.class); - // 处理content大字段 - MenuPlanContent menuPlanContent = new MenuPlanContent(menuPlan.getContent()); - menuPlanContent.saveItem(menuPlanItem,parent_id); - menuPlan.setContent(menuPlanContent.toContentStr()); - - DbEngine.getInstance().doTrans(new AbsDbWorker() { - @Override - public void work() { - DbEngine.getInstance().updateEntity(menuPlan,"smp_content"); - } - - @Override - public void doAfterDbCommit() { - MenuPlanCache.getInstance().put(menuPlan); - } - }); - return R.success(menuPlanItem); - } - // 删除方案明细 - public R delPlanItem(){ - // 方案ID - long plan_id = params.readLong("plan_id"); - long id = params.readLong("id"); - if(plan_id<=0 || id<=0){ - throw new BizException("参数错误!"); - } - MenuPlan menuPlan = MenuPlanCache.getInstance().get(plan_id); - if(menuPlan==null){ - throw new BizException("参数错误!"); - } - // 处理content大字段 - MenuPlanContent menuPlanContent = new MenuPlanContent(menuPlan.getContent()); - menuPlanContent.delItem(id); - menuPlan.setContent(menuPlanContent.toContentStr()); - - DbEngine.getInstance().doTrans(new AbsDbWorker() { - @Override - public void work() { - DbEngine.getInstance().updateEntity(menuPlan,"smp_content"); - } - - @Override - public void doAfterDbCommit() { - MenuPlanCache.getInstance().put(menuPlan); - } - }); - return R.success(); - } + public R savePlanItem() { + // 方案ID + long plan_id = params.readLong("plan_id"); + if (plan_id <= 0) { + throw new BizException("所属方案不能为空!"); + } + MenuPlan menuPlan = MenuPlanCache.getInstance().get(plan_id); + if (menuPlan == null) { + throw new BizException("所属方案不能为空!"); + } + long parent_id = params.readLong("parent_id", -1L); + MenuPlanItem menuPlanItem = JsonUtil.parse(params, MenuPlanItem.class); + // 处理content大字段 + MenuPlanContent menuPlanContent = new MenuPlanContent(menuPlan.getContent()); + menuPlanContent.saveItem(menuPlanItem, parent_id); + menuPlan.setContent(menuPlanContent.toContentStr()); + + DbEngine.getInstance().doTrans(new AbsDbWorker() { + @Override + public void work() { + DbEngine.getInstance().updateEntity(menuPlan, "smp_content"); + } + + @Override + public void doAfterDbCommit() { + MenuPlanCache.getInstance().put(menuPlan); + } + }); + return R.success(menuPlanItem); + } + + // 删除方案明细 + public R delPlanItem() { + // 方案ID + long plan_id = params.readLong("plan_id"); + long id = params.readLong("id"); + if (plan_id <= 0 || id <= 0) { + throw new BizException("参数错误!"); + } + MenuPlan menuPlan = MenuPlanCache.getInstance().get(plan_id); + if (menuPlan == null) { + throw new BizException("参数错误!"); + } + // 处理content大字段 + MenuPlanContent menuPlanContent = new MenuPlanContent(menuPlan.getContent()); + menuPlanContent.delItem(id); + menuPlan.setContent(menuPlanContent.toContentStr()); + + DbEngine.getInstance().doTrans(new AbsDbWorker() { + @Override + public void work() { + DbEngine.getInstance().updateEntity(menuPlan, "smp_content"); + } + + @Override + public void doAfterDbCommit() { + MenuPlanCache.getInstance().put(menuPlan); + } + }); + return R.success(); + } } - static class MenuLoadHandler extends DynPageLoadHandler{ + static class MenuLoadHandler extends DynPageLoadHandler { @Override public DynPageProvider getProvider() { return new MenuProvider(); } public DynPageListHandler getListWorker(SwMap filter, PageDataset pageDataSet) { - if(DS_MENU_LIST.equals(pageDataSet.name)){ - return new MenuListHandler(pageId,filter,pageDataSet); + if (DS_MENU_LIST.equals(pageDataSet.name)) { + return new MenuListHandler(pageId, filter, pageDataSet); } DynPageListHandler listHandler = new DynPageListHandler(pageId, filter, pageDataSet); listHandler.init(params, us); @@ -109,7 +111,7 @@ public class MenuPlanHandler { @Override public DynPageTreeHandler getTreeWorker(SwMap filter, PageDataset pageDataSet) { - MenuTreeHandler treeHandler = new MenuPlanHandler.MenuTreeHandler(pageId,filter,pageDataSet); + MenuTreeHandler treeHandler = new MenuPlanHandler.MenuTreeHandler(pageId, filter, pageDataSet); treeHandler.init(params, us); return treeHandler; } @@ -117,11 +119,12 @@ public class MenuPlanHandler { @Override protected void afterAddBean(PageDataset dataset, SwMap bean) { super.afterAddBean(dataset, bean); - if(DS_MENU_CARD.equals(dataset.name)){ - bean.put("type",0); + if (DS_MENU_CARD.equals(dataset.name)) { + bean.put("type", 0); } } } + static class MenuListHandler extends DynPageListHandler { public MenuListHandler(long pageId, SwMap filter, PageDataset pageDataSet) { super(pageId, filter, pageDataSet); @@ -129,22 +132,23 @@ public class MenuPlanHandler { @Override public SwListData buildListData() { - long plan_id = filter.readLong("plan_id",-1L); + long plan_id = filter.readLong("plan_id", -1L); List children = getChildren(); List list = new ArrayList<>(); int total = 0; - if(PubUtil.isNotEmpty(children)){ - total= children.size(); - for(MenuPlanItem bean: children){ + if (PubUtil.isNotEmpty(children)) { + total = children.size(); + for (MenuPlanItem bean : children) { SwMap map = bean.getData(); - map.put("plan_id",plan_id); - map.put("type",bean.getMenu()> 0 ? 1: 0); - map.put("type_text",bean.getMenu()> 0 ? "菜单": "目录"); + map.put("plan_id", plan_id); + map.put("type", bean.getMenu() > 0 ? 1 : 0); + map.put("type_text", bean.getMenu() > 0 ? "菜单" : "目录"); list.add(map); } } - return SwListData.create(list,total); + return SwListData.create(list, total); } + @Override public R getTotal() { SwMap r = new SwMap(); @@ -152,54 +156,58 @@ public class MenuPlanHandler { r.put("total", children.size()); return R.success(r); } - private List getChildren(){ - long plan_id = filter.readLong("plan_id",-1L); - long parent_id = filter.readLong("parent_id",-1L); - if(plan_id<=0){ + + private List getChildren() { + long plan_id = filter.readLong("plan_id", -1L); + long parent_id = filter.readLong("parent_id", -1L); + if (plan_id <= 0) { return new ArrayList<>(); } - MenuPlan menuPlan = MenuPlanCache.getInstance().get(plan_id); - if(menuPlan==null){ + MenuPlan menuPlan = MenuPlanCache.getInstance().get(plan_id); + if (menuPlan == null) { return new ArrayList<>(); } MenuPlanContent menuPlanContent = new MenuPlanContent(menuPlan.getContent()); return menuPlanContent.getChildren(parent_id); } } - static class MenuProvider extends DynPageProvider{ + + static class MenuProvider extends DynPageProvider { @Override public SwMap loadData(SwMap filter, PageDataset pageDataSet) { - if(DS_MENU_CARD.equals(pageDataSet.name)){ - long id = filter.readLong("id",1L); - long plan_id = filter.readLong("plan_id",1L); + if (DS_MENU_CARD.equals(pageDataSet.name)) { + long id = filter.readLong("id", 1L); + long plan_id = filter.readLong("plan_id", 1L); MenuPlan menuPlan = MenuPlanCache.getInstance().get(plan_id); - if(menuPlan==null) { + if (menuPlan == null) { return new SwMap(); } MenuPlanContent menuPlanContent = new MenuPlanContent(menuPlan.getContent()); MenuPlanItem menuPlanItem = menuPlanContent.findById(id); - if(menuPlanItem == null){ + if (menuPlanItem == null) { return new SwMap(); } SwMap r = new SwMap(); r.putAll(menuPlanItem.getData()); - r.put("plan_id",plan_id); - r.put("type",menuPlanItem.getMenu()> 0 ? 1: 0); + r.put("plan_id", plan_id); + r.put("type", menuPlanItem.getMenu() > 0 ? 1 : 0); return r; } return super.loadData(filter, pageDataSet); } } - static class MenuTreeHandler extends DynPageTreeHandler{ + + static class MenuTreeHandler extends DynPageTreeHandler { private MenuPlanContent menuPlanContent; + public MenuTreeHandler(long pageId, SwMap filter, PageDataset pageDataSet) { super(pageId, filter, pageDataSet); - long plan_id = filter.readLong("plan_id",-1L); - if(plan_id<=0){ + long plan_id = filter.readLong("plan_id", -1L); + if (plan_id <= 0) { menuPlanContent = new MenuPlanContent(null); } MenuPlan menuPlan = MenuPlanCache.getInstance().get(plan_id); - menuPlanContent = new MenuPlanContent(menuPlan == null ? null: menuPlan.getContent()); + menuPlanContent = new MenuPlanContent(menuPlan == null ? null : menuPlan.getContent()); } @Override @@ -207,9 +215,9 @@ public class MenuPlanHandler { boolean exc_menu = params.readBool("exc_menu"); List list = new ArrayList<>(); List temList = menuPlanContent.getChildren(id); - if(PubUtil.isNotEmpty(temList)){ - temList.forEach(bean-> { - if(exc_menu&&bean.getMenu()>0){ + if (PubUtil.isNotEmpty(temList)) { + temList.forEach(bean -> { + if (exc_menu && bean.getMenu() > 0) { return; } list.add(bean.getData()); @@ -218,6 +226,10 @@ public class MenuPlanHandler { return list; } + protected void buildMenuRight(String menu_id, SwMap bean) { + + } + @Override protected long getId(SwMap bean) { return bean.readLong("id"); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanItem.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanItem.java index 9e81f70..8df9153 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanItem.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menuPlan/MenuPlanItem.java @@ -2,7 +2,8 @@ package cc.smtweb.system.bpm.web.sys.user.menuPlan; import cc.smtweb.framework.core.db.impl.BaseBean; -import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; /** @@ -11,58 +12,85 @@ import java.util.List; * @Desc: */ public class MenuPlanItem extends BaseBean { - /** 主键 */ + /** + * 主键 + */ public long getId() { return getLong("id"); } - /** 主键 */ + /** + * 主键 + */ public void setId(long id) { put("id", id); } - /** 菜单ID */ + + /** + * 菜单ID + */ public long getMenu() { return getLong("menu"); } - /** 菜单ID */ + /** + * 菜单ID + */ public void setMenu(long menu) { put("menu", menu); } - /** 标题 */ + + /** + * 标题 + */ public String getLabel() { return getStr("label"); } - /** 标题 */ + /** + * 标题 + */ public void setLabel(String label) { put("label", label); } - /** 图标 */ + /** + * 图标 + */ public String getIcon() { return getStr("icon"); } - /** 图标 */ + /** + * 图标 + */ public void setIcon(String icon) { put("icon", icon); } - /** 排序码 */ + /** + * 排序码 + */ public int getSeq() { return getInt("seq"); } - /** 排序码 */ + /** + * 排序码 + */ public void setSeq(int seq) { put("seq", seq); } - public void setChildren(List children){ - put("children",children); + + public void setChildren(List children) { + put("children", children); } - public List getChildren(){ + + public List getChildren() { Object obj = get("children"); - return obj==null ? null : (List) obj; + if (obj == null) return null; + List list = (List) obj; + Collections.sort(list, new MenuPlanComparator()); + return list; } }