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