kaiyu
2020-10-22 3c7db3d43212a01302c3b375f94a332e1f28d511
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;
    }
}