package com.bizmatics.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.bizmatics.common.mvc.base.AbstractCrudService; import com.bizmatics.model.SysPlatformMenu; import com.bizmatics.model.SysTenantMenu; import com.bizmatics.model.system.SysMenu; import com.bizmatics.model.system.SysRole; import com.bizmatics.model.system.SysRoleMenu; import com.bizmatics.model.vo.SysMenuOneVo; import com.bizmatics.model.vo.SysMenuTwoVo; import com.bizmatics.model.vo.SysMenuVo; import com.bizmatics.model.vo.TenantMenuVo; import com.bizmatics.persistence.mapper.SysPlatformMenuMapper; import com.bizmatics.service.SysPlatformMenuService; import com.bizmatics.service.SysTenantMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 平台和菜单关联表 服务实现类 *

* * @author ya * @since 2022-05-18 */ @Service public class SysPlatformMenuServiceImpl extends AbstractCrudService implements SysPlatformMenuService { @Autowired private SysTenantMenuService sysTenantMenuService; // public List getMenuList(Integer platformId, Integer tenantId){ // List MenuListOne = new ArrayList<>(); // List MenuListTwo = new ArrayList<>(); // //平台全部一级目录 // List sysMenuListOne=baseMapper.getMenuList(platformId,"M"); // //平台全部二级目录 // List sysMenuListTwo=baseMapper.getMenuList(platformId,"C"); // if (sysMenuListTwo.size()<0||sysMenuListOne.size()<0) { // throw new BusinessException("平台目录配置错误或尚未配置"); // } // //租户所选中的目录 // LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); // queryWrapper.eq(SysTenantMenu::getTenantId, tenantId); // List sysTenantMenuList = sysTenantMenuService.list(queryWrapper); // for (int i = 0; i < sysMenuListTwo.size(); i++) { // SysMenuTwoVo sysMenuTwoVo = new SysMenuTwoVo(); // sysMenuTwoVo.setId(sysMenuListTwo.get(i).getMenuId()); // sysMenuTwoVo.setName(sysMenuListTwo.get(i).getMenuName()); // sysMenuTwoVo.setFid(sysMenuListTwo.get(i).getParentId()); // long Id = sysMenuListTwo.get(i).getMenuId(); // sysMenuTwoVo.setChecked(false); // if (sysTenantMenuList.size() > 0) { // for (int j = 0; j < sysTenantMenuList.size(); j++) { // long MenuId = sysTenantMenuList.get(j).getMenuId(); // if (Id == MenuId) { // sysMenuTwoVo.setChecked(true); // } // } // } else { // sysMenuTwoVo.setChecked(false); // } // MenuListOne.add(sysMenuTwoVo); // } // // for (int i = 0; i < sysMenuListOne.size(); i++) { // SysMenuOneVo sysMenuOneVo = new SysMenuOneVo(); // sysMenuOneVo.setId(sysMenuListOne.get(i).getMenuId()); // sysMenuOneVo.setMenu(sysMenuListOne.get(i).getMenuName()); // sysMenuOneVo.setFid(sysMenuListOne.get(i).getParentId()); // long id = sysMenuListOne.get(i).getMenuId(); // List sysMenuVoListTwo = new ArrayList<>(); // for (int j = 0; j < MenuListOne.size(); j++) { // long FId = MenuListOne.get(j).getFid(); // if (id == FId) { // sysMenuVoListTwo.add(MenuListOne.get(j)); // } // } // sysMenuOneVo.setAuthority(sysMenuVoListTwo); // if (sysMenuVoListTwo.size()>0){ // sysMenuOneVo.setChecked(true); // }else { // sysMenuOneVo.setChecked(false); // } // MenuListTwo.add(sysMenuOneVo); // } // return MenuListTwo; // } public Map getMenuList(Integer platformId, Integer tenantId) { //全部目录查询 List sysMenuListTwo = baseMapper.getMenuList(platformId, "M"); //全部菜单查询 List sysMenuListOne = baseMapper.getMenuList(platformId, "C"); //全部按钮列表 List sysMenuListThree = baseMapper.getMenuList(platformId, "F"); //已选中按钮列表 LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(SysTenantMenu::getTenantId, tenantId); List sysMenuListFour = sysTenantMenuService.list(queryWrapper); List menuList = baseMapper.getMenuListOne(tenantId, "F"); Long[] arr = new Long[menuList.size()]; for (int i = 0; i < menuList.size(); i++) { arr[i] = menuList.get(i).getMenuId(); } List sysMenuVoListOne = new ArrayList<>(); List SysMenuVoList = new ArrayList<>(); List SysMenuVoListOne = new ArrayList<>(); List list = new ArrayList<>(); // if (sysMenuListFour.size()>0){ for (int i = 0; i < sysMenuListThree.size(); i++) { SysMenuTwoVo sysMenuTwoVo = new SysMenuTwoVo(); sysMenuTwoVo.setId(sysMenuListThree.get(i).getMenuId()); sysMenuTwoVo.setName(sysMenuListThree.get(i).getMenuName()); sysMenuTwoVo.setFid(sysMenuListThree.get(i).getParentId()); long Id = sysMenuListThree.get(i).getMenuId(); sysMenuTwoVo.setChecked(false); if (sysMenuListFour.size() > 0) { for (int j = 0; j < sysMenuListFour.size(); j++) { long MenuId = sysMenuListFour.get(j).getMenuId(); if (Id == MenuId) { sysMenuTwoVo.setChecked(true); } } } else { sysMenuTwoVo.setChecked(false); } sysMenuVoListOne.add(sysMenuTwoVo); } for (int i = 0; i < sysMenuListOne.size(); i++) { SysMenuOneVo sysMenuOneVo = new SysMenuOneVo(); sysMenuOneVo.setId(sysMenuListOne.get(i).getMenuId()); sysMenuOneVo.setMenu(sysMenuListOne.get(i).getMenuName()); sysMenuOneVo.setFid(sysMenuListOne.get(i).getParentId()); long id = sysMenuListOne.get(i).getMenuId(); List sysMenuVoListTwo = new ArrayList<>(); List menuListTrue = new ArrayList<>(); for (int j = 0; j < sysMenuVoListOne.size(); j++) { long FId = sysMenuVoListOne.get(j).getFid(); Boolean pd = sysMenuVoListOne.get(j).getChecked(); if (id == FId) { sysMenuVoListTwo.add(sysMenuVoListOne.get(j)); if (pd==true){ menuListTrue.add(sysMenuVoListOne.get(j)); } } } sysMenuOneVo.setAuthority(sysMenuVoListTwo); if (menuListTrue.size()>0){ sysMenuOneVo.setChecked(true); }else { sysMenuOneVo.setChecked(false); } SysMenuVoList.add(sysMenuOneVo); } for (int i = 0; i < sysMenuListTwo.size(); i++) { SysMenuVo sysMenuVo = new SysMenuVo(); sysMenuVo.setId(sysMenuListTwo.get(i).getMenuId()); sysMenuVo.setMenu(sysMenuListTwo.get(i).getMenuName()); sysMenuVo.setFid(sysMenuListTwo.get(i).getParentId()); long id = sysMenuListTwo.get(i).getMenuId(); List SysMenuVoListThree = new ArrayList<>(); List menuListtrueOne = new ArrayList<>(); for (int j = 0; j < SysMenuVoList.size(); j++) { long FId = SysMenuVoList.get(j).getFid(); Boolean pd = SysMenuVoList.get(j).getChecked(); if (id == FId) { SysMenuVoListThree.add(SysMenuVoList.get(j)); if (pd==true){ menuListtrueOne.add(SysMenuVoList.get(j)); } } } sysMenuVo.setChildren(SysMenuVoListThree); if (menuListtrueOne.size()>0){ sysMenuVo.setChecked(true); }else { sysMenuVo.setChecked(false); } SysMenuVoListOne.add(sysMenuVo); } for (int i = 0; i < SysMenuVoListOne.size(); i++) { String name = SysMenuVoListOne.get(i).getMenu(); if (name.equals("数据管理") || name.equals("电能质量") || name.equals("系统管理")|| name.equals("租户管理")|| name.equals("统计管理")) { list.add(SysMenuVoListOne.get(i)); } else { for (int j = 0; j < SysMenuVoList.size(); j++) { String name2 = SysMenuVoList.get(j).getMenu(); if (name.equals(name2)) { list.add(SysMenuVoList.get(j)); } } } } // } Map ajax = new HashMap<>(); ajax.put("checkedKeys",arr); ajax.put("menus", list); return ajax; } @Override @Transactional public void updateMenu(TenantMenuVo tenantMenuVo) { Long[] arr = tenantMenuVo.getMenuIds(); //菜单ID List menuIdList = baseMapper.getMenuIdList(arr, "F"); Long arr1[] = new Long[menuIdList.size()]; for (int i=0;i menuIdListOne = baseMapper.getMenuIdList(arr1, "C"); Long arr2[] = new Long[menuIdListOne.size()]; for (int i=0;i menuIdListTwo = baseMapper.getMenuIdList(arr, "C"); Long arr4[] = new Long[menuIdListTwo.size()]; for (int i=0;i0){ for (int i=0;i