IntelligentRecognition/ah-jjsp-service/.svn/pristine/f0/f063e52aabe380b798c71348cd8...

253 lines
7.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.securityControl.system.service.impl;
import com.google.common.collect.Maps;
import com.securityControl.system.api.domain.SysUser;
import com.securityControl.system.api.domain.decision.SysMenu;
import com.securityControl.system.domain.vo.*;
import com.securityControl.system.mapper.SysMenuDao;
import com.securityControl.system.service.SysMenuService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
*
*/
@Slf4j
@Service
public class SysMenuServiceImpl implements SysMenuService {
@Autowired
private SysMenuDao dao;
@Override
public Map<String,Object> getMenuTree(String keyId) {
Map<String,Object> map= Maps.newHashMap();
List<DtreeEntity> allList=dao.getAllMenuList();//查询全部数据
List<String> checkList =dao.getCheckMenu(keyId);
List<DtreeEntity> list=new ArrayList<>();
treeMenuList(allList,"0",list);
map.put("tree",list);
map.put("check",checkList);
return map;
}
/**
* 查询全部菜单数据
* @param sysMenu
* @return
*/
@Override
public List<SysMenuEntity> getMenuList(SysMenuEntity sysMenu) {
try{
List<SysMenuEntity> list= dao.getMenuList(sysMenu);//查询全部数据;
return list;
}catch (Exception e){
}
return new ArrayList<SysMenuEntity>();
}
/**
* 新增菜单列表
* @param sysMenu
* @return
*/
@Override
public ReturnCodeEntity insertMenu(SysMenuEntity sysMenu) {
ReturnCodeEntity returnCodeEntity=new ReturnCodeEntity();
try{
if("1".equals(sysMenu.getTypes())){
int num=dao.getMenuNameNum(sysMenu);
if(num>0){
returnCodeEntity.setMsg("菜单名称已存在");
returnCodeEntity.setCode("201");
return returnCodeEntity;
}
}
int num2=dao.insertMenu(sysMenu);
if(num2<1){
returnCodeEntity.setMsg("新增失败,请联系管理员");
returnCodeEntity.setCode("202");
return returnCodeEntity;
}
returnCodeEntity.setMsg("添加成功");
returnCodeEntity.setCode("200");
return returnCodeEntity;
}catch (Exception e){
returnCodeEntity.setMsg("网络异常,请稍后重试");
returnCodeEntity.setCode("203");
}
return returnCodeEntity;
}
/**
* 删除菜单数据
* @param keyId
* @return
*/
@Override
public ReturnCodeEntity deleteMenu(String keyId) {
ReturnCodeEntity returnCodeEntity=new ReturnCodeEntity();
try{
int num=dao.getChilderNum(keyId);//查询是否有子节点
if(num>0){
returnCodeEntity.setMsg("该节点下存在子节点,无法删除");
returnCodeEntity.setCode("202");
return returnCodeEntity;
}
int num2=dao.deleteMenu(keyId);
if(num2<1){
returnCodeEntity.setMsg("删除失败,请联系管理员");
returnCodeEntity.setCode("200");
return returnCodeEntity;
}
returnCodeEntity.setMsg("删除成功");
returnCodeEntity.setCode("200");
return returnCodeEntity;
}catch (Exception e){
returnCodeEntity.setMsg("网络异常,请稍后重试");
returnCodeEntity.setCode("203");
}
return returnCodeEntity;
}
/**
* 查询菜单数据列表
* @param keyId
* @return
*/
@Override
public SysMenuEntity getMenuDetail(String keyId) {
return dao.getMenuDetail(keyId);
}
/**
* 更新菜单
* @param sysMenu
* @return
*/
@Override
public ReturnCodeEntity updateMenu(SysMenuEntity sysMenu) {
ReturnCodeEntity returnCodeEntity=new ReturnCodeEntity();
try{
if("1".equals(sysMenu.getTypes())){
int num=dao.getMenuNameNum(sysMenu);
if(num>0){
returnCodeEntity.setMsg("菜单名称已存在");
returnCodeEntity.setCode("201");
return returnCodeEntity;
}
}
int num2=dao.updateMenu(sysMenu);
if(num2<1){
returnCodeEntity.setMsg("修改失败,请联系管理员");
returnCodeEntity.setCode("202");
return returnCodeEntity;
}
returnCodeEntity.setMsg("修改成功");
returnCodeEntity.setCode("200");
return returnCodeEntity;
}catch (Exception e){
System.err.println(e.toString());
returnCodeEntity.setMsg("网络异常,请稍后重试");
returnCodeEntity.setCode("203");
}
return returnCodeEntity;
}
/**
* 子节点数据处理
* @param menuList
* @param pid
* @param childMenu
*/
private void treeMenuList(List<DtreeEntity> menuList, String pid,List<DtreeEntity> childMenu) {
for (DtreeEntity mu : menuList) {//遍历菜单
//遍历出父id等于参数的idadd进子节点集合
if (pid.equals(mu.getParentId())) {
List<DtreeEntity> childList = new ArrayList<DtreeEntity>();//创建数据
List<CheckArr> cl=new ArrayList<CheckArr>();
CheckArr checkArr=new CheckArr("0","0");
cl.add(checkArr);
mu.setCheckArr(cl);
//递归遍历下一级
treeMenuList(menuList, mu.getId(),childList);
if(childList.size()>0){
mu.setChildren(childList);
}else{
mu.setLast(true);
}
childMenu.add(mu);
}
}
}
/**
*
* @param sysUser
* @return
*/
@Override
public Set<String> getMenuPermission(SysUser sysUser) {
return dao.getMenuPermission(sysUser);
}
/**
* 系統菜單獲取
* @param userId
* @return
*/
@Override
public List<String> getMenuPer(String userId, String types) {
return dao.getMenuPer(userId,types);
}
/**
* 查询当前角色配置的菜单信息
* @param userId
* @return
*/
@Override
public List<SysMenu> getAllMenuList(String userId) {
List<SysMenu> menuList =new ArrayList<SysMenu>();
try{
menuList =dao.getMenu(userId,"0");
getChilder(menuList,userId);
}catch (Exception e){
}
return menuList;
}
/**
* 子菜单查询
* @param menuList
*/
private void getChilder(List<SysMenu> menuList, String userId) {
for (SysMenu menu : menuList) {
List<SysMenu> list=dao.getMenu(userId, menu.getMenuId());
if(list!=null &&list.size()>0){
menu.setChilder(list);
menu.setLast(false);
}else{
menu.setChilder(new ArrayList<SysMenu>());
menu.setLast(true);
}
}
}
}