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 |   80 ++++++++++++++++++++++++----------------
 1 files changed, 48 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/MenuServiceImpl.java b/src/main/java/com/moral/service/impl/MenuServiceImpl.java
index 507de82..ac8f2a4 100644
--- a/src/main/java/com/moral/service/impl/MenuServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/MenuServiceImpl.java
@@ -1,23 +1,26 @@
 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;
 
 import com.github.pagehelper.PageHelper;
 import com.moral.common.bean.Constants;
 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 javax.annotation.Resource;
 import tk.mybatis.mapper.entity.Example;
 
 @Service
@@ -28,9 +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) {
@@ -44,6 +54,7 @@
                     menu.setId(menuResult.getId());
                     menuMapper.updateByPrimaryKeySelective(menu);
                 } else {
+                    menu.setChannelId(menu.getChannelId());
                     menu.setIsDelete(Constants.IS_DELETE_FALSE);
                     menu.setCreateTime(new Date());
                     menu.setCreateUser(menu.getCreateUser());
@@ -53,31 +64,6 @@
         } catch (Exception ex) {
             throw ex;
         }
-    }
-
-    @Override
-    public PageBean queryByPageBean(PageBean pageBean) {
-        Example example = ExampleUtil.generateExample(ENTITY_CLASS, pageBean);
-        List<Example.Criteria> criteriaList = example.getOredCriteria();
-        if (criteriaList != null && criteriaList.size() > 0) {
-            for (Example.Criteria cri : criteriaList) {
-                cri.andNotEqualTo("isDelete", Constants.IS_DELETE_TRUE);
-            }
-        } else {
-            example.or().andNotEqualTo("isDelete", Constants.IS_DELETE_TRUE);
-        }
-        if (example.getOrderByClause() == null || example.getOrderByClause().isEmpty()) {
-            example.setOrderByClause("menu_name asc");
-        }
-        List<Menu> menuList = menuMapper.selectWithMenuNameByExample(example);
-        Iterator<Menu> iterator = menuList.iterator();
-        while (iterator.hasNext()) {
-            Menu menu = iterator.next();
-            if (menu.getMenuParentId() == null) {
-                iterator.remove();
-            }
-        }
-        return new PageBean(menuList);
     }
 
     @Override
@@ -103,12 +89,13 @@
     public int countByExample(PageBean pageBean) {
         Example example = ExampleUtil.generateExample(ENTITY_CLASS, pageBean);
         TkMybatisUtils.addDeletesToExample(example);
-        return menuMapper.selectCountByExample(example);
+        return menuMapper.countByExample(example);
     }
 
     @Override
     public PageBean getMenuList(PageBean pageBean) {
         Example example = ExampleUtil.generateExample(ENTITY_CLASS, pageBean);
+        TkMybatisUtils.addDeletesToExample(example);
         if (pageBean.getPageSize() > 0) {
             PageHelper.startPage(pageBean.getPageIndex(), pageBean.getPageSize());
         }
@@ -123,17 +110,46 @@
     }
 
     @Override
+    @Transactional
     public void deleteByIds(Integer[] ids) {
         Menu menu = new Menu();
         menu.setIsDelete(Constants.IS_DELETE_TRUE);
         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