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 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
|
public class MenuServiceImpl implements MenuService {
|
|
private static Class ENTITY_CLASS = Menu.class;
|
|
@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) {
|
menuMapper.updateByPrimaryKeySelective(menu);
|
} else {
|
Menu menuQuery = new Menu();
|
menuQuery.setMenuCode(menu.getMenuCode());
|
menuQuery.setIsDelete(Constants.IS_DELETE_FALSE);
|
Menu menuResult = menuMapper.selectOne(menuQuery);
|
if (menuResult != null) {
|
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());
|
menuMapper.insertSelective(menu);
|
}
|
}
|
} catch (Exception ex) {
|
throw ex;
|
}
|
}
|
|
@Override
|
public PageBean queryByAllPageBean(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();
|
return new PageBean(menuList);
|
}
|
|
@Override
|
public int countByExample(PageBean pageBean) {
|
Example example = ExampleUtil.generateExample(ENTITY_CLASS, pageBean);
|
TkMybatisUtils.addDeletesToExample(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());
|
}
|
List<Menu> menuList = menuMapper.getMenuList(example);
|
return new PageBean(menuList);
|
}
|
|
@Override
|
public List<Menu> getMenuParentList(String menuName) {
|
List<Menu> menuParentList = menuMapper.getParentMenuList(menuName);
|
return menuParentList;
|
}
|
|
@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> 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;
|
}
|
}
|