|
@@ -5,11 +5,21 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.bizmatics.common.core.bean.CommonPage;
|
|
|
import com.bizmatics.common.mvc.base.AbstractCrudService;
|
|
|
import com.bizmatics.model.SysPlatform;
|
|
|
-import com.bizmatics.model.vo.SysPlatformVo;
|
|
|
+import com.bizmatics.model.SysPlatformMenu;
|
|
|
+import com.bizmatics.model.SysTenantMenu;
|
|
|
+import com.bizmatics.model.system.SysMenu;
|
|
|
+import com.bizmatics.model.vo.*;
|
|
|
import com.bizmatics.persistence.mapper.SysPlatformMapper;
|
|
|
+import com.bizmatics.persistence.mapper.system.SysMenuMapper;
|
|
|
+import com.bizmatics.service.SysPlatformMenuService;
|
|
|
import com.bizmatics.service.SysPlatformService;
|
|
|
+import com.bizmatics.service.util.SecurityUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -23,6 +33,11 @@ import java.util.List;
|
|
|
@Service
|
|
|
public class SysPlatformServiceImpl extends AbstractCrudService<SysPlatformMapper, SysPlatform> implements SysPlatformService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysMenuMapper menuMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysPlatformMenuService sysPlatformMenuService;
|
|
|
+
|
|
|
@Override
|
|
|
public List<SysPlatform> getPlatformBoxList() {
|
|
|
LambdaQueryWrapper<SysPlatform> queryWrapper = Wrappers.lambdaQuery();
|
|
@@ -45,4 +60,176 @@ public class SysPlatformServiceImpl extends AbstractCrudService<SysPlatformMappe
|
|
|
List<SysPlatformVo> list = baseMapper.getPlatformList(platformName, startTime, endTime, current, size, id);
|
|
|
return new CommonPage<>(list, total, size, page);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Object> getPlatformMenu(Long platformId){
|
|
|
+ //全部目录查询
|
|
|
+ List<SysMenu> sysMenuListTwo = menuMapper.getSysMenuList("M");
|
|
|
+ //全部菜单查询
|
|
|
+ List<SysMenu> sysMenuListOne = menuMapper.getSysMenuList("C");
|
|
|
+ //全部按钮列表
|
|
|
+ List<SysMenu> sysMenuListThree = menuMapper.getSysMenuList("F");
|
|
|
+ //已选中按钮列表
|
|
|
+ LambdaQueryWrapper<SysPlatformMenu> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(SysPlatformMenu::getPlatformId, platformId);
|
|
|
+ List<SysPlatformMenu> sysMenuListFour = sysPlatformMenuService.list(queryWrapper);
|
|
|
+
|
|
|
+ List<SysMenuTwoVo> sysMenuVoListOne = new ArrayList<>();
|
|
|
+ List<SysMenuOneVo> SysMenuVoList = new ArrayList<>();
|
|
|
+ List<SysMenuVo> SysMenuVoListOne = new ArrayList<>();
|
|
|
+ List<Object> list = new ArrayList<>();
|
|
|
+ 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<SysMenuTwoVo> sysMenuVoListTwo = new ArrayList<>();
|
|
|
+ List<SysMenuTwoVo> 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<SysMenuOneVo> SysMenuVoListThree = new ArrayList<>();
|
|
|
+ List<SysMenuOneVo> 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("租户管理")) {
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void updatePlatformMenu(PlatformMenuVo platformMenuVo){
|
|
|
+ SysPlatform sysPlatform = new SysPlatform();
|
|
|
+ sysPlatform.setId(platformMenuVo.getPlatformId().intValue());
|
|
|
+ sysPlatform.setPlatformName(platformMenuVo.getPlatformName());
|
|
|
+ sysPlatform.setUpdateBy(SecurityUtils.getUser().getUserName());
|
|
|
+ sysPlatform.setUpdateTime(LocalDateTime.now());
|
|
|
+ this.updateById(sysPlatform);
|
|
|
+ Long[] arr = platformMenuVo.getMenuIds();
|
|
|
+ //菜单ID
|
|
|
+ List<SysMenu> menuIdList = baseMapper.getMenuIdListOne(arr, "F");
|
|
|
+ Long arr1[] = new Long[menuIdList.size()];
|
|
|
+ for (int i=0;i<menuIdList.size();i++){
|
|
|
+ arr1[i] = menuIdList.get(i).getParentId();
|
|
|
+ }
|
|
|
+ //目录ID
|
|
|
+ List<SysMenu> menuIdListOne = baseMapper.getMenuIdListOne(arr1, "C");
|
|
|
+ Long arr2[] = new Long[menuIdListOne.size()];
|
|
|
+ for (int i=0;i<menuIdListOne.size();i++){
|
|
|
+ arr2[i] = menuIdListOne.get(i).getParentId();
|
|
|
+ }
|
|
|
+ List<SysMenu> menuIdListTwo = baseMapper.getMenuIdListOne(arr, "C");
|
|
|
+ Long arr4[] = new Long[menuIdListTwo.size()];
|
|
|
+ for (int i=0;i<menuIdListTwo.size();i++){
|
|
|
+ arr4[i] = menuIdListTwo.get(i).getParentId();
|
|
|
+ }
|
|
|
+
|
|
|
+ Long[] arr5 =arrayMerge(arr1,arr2);
|
|
|
+ Long[] arr6 =arrayMerge(arr5,arr4);
|
|
|
+ Long[] arr7 =arrayMerge(arr6,arr);
|
|
|
+ List arr3 = new ArrayList();
|
|
|
+ for (int i=0;i<arr7.length;i++){
|
|
|
+ if(!arr3.contains(arr7[i])){
|
|
|
+ arr3.add(arr7[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 删除租户菜单关联
|
|
|
+ baseMapper.deletePlatformMenuBy(platformMenuVo.getPlatformId());
|
|
|
+ //新增菜单
|
|
|
+ if (arr3.size()>0){
|
|
|
+ for (int i=0;i<arr3.size();i++){
|
|
|
+ SysPlatformMenu sysPlatformMenu = new SysPlatformMenu();
|
|
|
+ sysPlatformMenu.setMenuId((Long) arr3.get(i));
|
|
|
+ sysPlatformMenu.setPlatformId(platformMenuVo.getPlatformId());
|
|
|
+ sysPlatformMenuService.save(sysPlatformMenu);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public Long[] arrayMerge(Long[] arr1,Long[] arr2){
|
|
|
+ Long arr3[] = new Long[arr1.length+arr2.length];
|
|
|
+ for (int i=0;i<arr1.length;i++){
|
|
|
+ arr3[i] = arr1[i];
|
|
|
+ }
|
|
|
+ for (int i=0;i<arr2.length;i++){
|
|
|
+ arr3[i+arr1.length] = arr2[i];
|
|
|
+ }
|
|
|
+ return arr3;
|
|
|
+ }
|
|
|
}
|