From f28149d8183a62f87fa9c8df9ae589070d83f612 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Thu, 24 Dec 2020 13:47:50 +0800
Subject: [PATCH] 波动补偿

---
 src/main/java/com/moral/service/impl/MenuServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 42 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/MenuServiceImpl.java b/src/main/java/com/moral/service/impl/MenuServiceImpl.java
index 3db3a07..ac8f2a4 100644
--- a/src/main/java/com/moral/service/impl/MenuServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/MenuServiceImpl.java
@@ -1,12 +1,12 @@
 package com.moral.service.impl;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 
-import javax.annotation.Resource;
-
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -15,11 +15,12 @@
 import com.moral.common.bean.PageBean;
 import com.moral.common.util.ExampleUtil;
 import com.moral.entity.Menu;
+import com.moral.entity.RoleMenu;
 import com.moral.mapper.MenuMapper;
+import com.moral.mapper.RoleMenuMapper;
 import com.moral.service.MenuService;
 import com.moral.util.TkMybatisUtils;
-import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
-
+import javax.annotation.Resource;
 import tk.mybatis.mapper.entity.Example;
 
 @Service
@@ -30,10 +31,16 @@
     @Resource
     private MenuMapper menuMapper;
 
+    @Resource
+    private RoleMenuMapper roleMenuMapper;
+
     @Override
     @Transactional
     public void addOrModify(Menu menu) {
         try {
+            if (menu.getMenuParentId() == null) {
+                menu.setMenuParentId(0);
+            }
             menu.setUpdateTime(new Date());
             menu.setUpdateUser(menu.getUpdateUser());
             if (menu.getId() != null) {
@@ -47,7 +54,6 @@
                     menu.setId(menuResult.getId());
                     menuMapper.updateByPrimaryKeySelective(menu);
                 } else {
-                    System.out.println("channelId:"+menu.getChannelId());
                     menu.setChannelId(menu.getChannelId());
                     menu.setIsDelete(Constants.IS_DELETE_FALSE);
                     menu.setCreateTime(new Date());
@@ -111,11 +117,39 @@
         Example example = new Example(ENTITY_CLASS);
         example.or().andIn("id", Arrays.asList(ids));
         menuMapper.updateByExampleSelective(menu, example);
+        Example roleMenuExample = new Example(RoleMenu.class);
+        roleMenuExample.or().andIn("menuId", Arrays.asList(ids));
+        roleMenuMapper.deleteByExample(roleMenuExample);
     }
 
     @Override
-    public List<Menu> getMenuListByName(String menuName) {
-        List<Menu> menuList = menuMapper.getMenuListByName(menuName);
-        return menuList;
+    public List<Menu> getZNodes() {
+        List<Menu> menuList = menuMapper.getMenuListInfo();
+        List<Menu> zNodes = new ArrayList<>();
+        for (Menu menu : menuList) {
+            if (menu.getMenuOrder().toString().substring(0, 1).equals("1")) {
+                menu.setMenuParentId(Integer.valueOf(menu.getMenuOrder().toString().substring(0, 1)));
+            } else {
+                if (menu.getMenuOrder().toString().length() == 2) {
+                    menu.setMenuParentId(Integer.valueOf(menu.getMenuOrder().toString().substring(0, 1)));
+                } else if (menu.getMenuOrder().toString().length() == 3) {
+                    menu.setMenuParentId(Integer.valueOf(menu.getMenuOrder().toString().substring(0, 2)));
+                }
+            }
+            zNodes.add(menu);
+        }
+        return zNodes;
+    }
+
+    @Override
+    public List<Integer> getMenuOrders(Integer roleId) {
+        List<Integer> menuOrders = menuMapper.getMenuOrdersByRoleId(roleId);
+        List<Integer> channels = roleMenuMapper.getChannels(roleId);
+        if (CollectionUtils.isNotEmpty(channels)) {
+            for (Integer channel : channels) {
+                menuOrders.add(channel);
+            }
+        }
+        return menuOrders;
     }
 }

--
Gitblit v1.8.0