Browse Source

平台管理相关接口上传1

jichaobo 3 năm trước cách đây
mục cha
commit
07876249c7

+ 26 - 4
fiveep-controller/src/main/java/com/bizmatics/controller/web/SysPlatformController.java

@@ -3,13 +3,13 @@ package com.bizmatics.controller.web;
 
 import com.bizmatics.common.core.bean.ApiResult;
 import com.bizmatics.common.core.bean.CommonPage;
+import com.bizmatics.model.vo.PlatformMenuVo;
 import com.bizmatics.model.vo.SysPlatformVo;
 import com.bizmatics.service.SysPlatformService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 平台挂管理
@@ -44,5 +44,27 @@ public class SysPlatformController {
         return ApiResult.success(sysPlatformService.getPlatformList(platformName, startTime, endTime, page, size, id));
     }
 
+    /**
+     * 平台挂管理-菜单查询
+     *
+     * @param platformId 平台ID
+     * @return
+     */
+    @GetMapping("/getPlatformMenu")
+    public ApiResult<List<Object>> getPlatformMenu(@RequestParam Long platformId) {
+        return ApiResult.success(sysPlatformService.getPlatformMenu(platformId));
+    }
+
+
+    /**
+     * 平台挂管理-菜单编辑
+     * @param platformMenuVo
+     * @return
+     */
+    @PostMapping("updatePlatformMenu")
+    public ApiResult<Void> updatePlatformMenu(@RequestBody PlatformMenuVo platformMenuVo) {
+        sysPlatformService.updatePlatformMenu(platformMenuVo);
+        return ApiResult.success();
+    }
 }
 

+ 39 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/PlatformMenuVo.java

@@ -0,0 +1,39 @@
+package com.bizmatics.model.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 租户和菜单关联表
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class PlatformMenuVo implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 平台ID
+     */
+    private Long platformId;
+
+    /**
+     * 平台名称
+     */
+    private String platformName;
+
+    /**
+     * 菜单ID
+     */
+    private Long[] menuIds;
+
+}

+ 5 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/SysPlatformMapper.java

@@ -2,6 +2,7 @@ package com.bizmatics.persistence.mapper;
 
 import com.bizmatics.model.SysPlatform;
 import com.bizmatics.common.mvc.base.CrudMapper;
+import com.bizmatics.model.system.SysMenu;
 import com.bizmatics.model.vo.SysPlatformVo;
 import com.bizmatics.model.vo.SysTenantTwoVo;
 import org.apache.ibatis.annotations.Param;
@@ -24,4 +25,8 @@ public interface SysPlatformMapper extends CrudMapper<SysPlatform> {
                                         @Param("current") Integer current,
                                         @Param("size") Integer size,
                                         @Param("id") Integer id);
+
+    List<SysMenu> getMenuIdListOne(Long[] menuIds, String menuType);
+
+    int deletePlatformMenuBy(Long platformId);
 }

+ 19 - 0
fiveep-persistence/src/main/resources/mapper/mysql/SysPlatformMapper.xml

@@ -41,4 +41,23 @@
         </if>
     </select>
 
+    <select id="getMenuIdListOne" resultType="com.bizmatics.model.system.SysMenu">
+        SELECT
+        *
+        FROM
+        sys_menu
+        WHERE
+        status = 0
+        AND visible = 0
+        AND menu_type = #{menuType}
+        AND menu_id IN
+        <foreach collection="menuIds" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+
+    <delete id="deletePlatformMenuBy" parameterType="Long">
+        delete from sys_platform_menu where platform_id=#{platformId}
+    </delete>
+
 </mapper>

+ 5 - 0
fiveep-service/src/main/java/com/bizmatics/service/SysPlatformService.java

@@ -3,6 +3,7 @@ package com.bizmatics.service;
 import com.bizmatics.common.core.bean.CommonPage;
 import com.bizmatics.common.mvc.base.CrudService;
 import com.bizmatics.model.SysPlatform;
+import com.bizmatics.model.vo.PlatformMenuVo;
 import com.bizmatics.model.vo.SysPlatformVo;
 
 import java.util.List;
@@ -19,4 +20,8 @@ public interface SysPlatformService extends CrudService<SysPlatform> {
     List<SysPlatform> getPlatformBoxList();
 
     CommonPage<SysPlatformVo> getPlatformList(String platformName, String startTime, String endTime, Integer page, Integer size, Integer id);
+
+    List<Object> getPlatformMenu(Long platformId);
+
+    void updatePlatformMenu(PlatformMenuVo platformMenuVo);
 }

+ 20 - 15
fiveep-service/src/main/java/com/bizmatics/service/impl/SysPlatformMenuServiceImpl.java

@@ -95,17 +95,12 @@ public class SysPlatformMenuServiceImpl extends AbstractCrudService<SysPlatformM
 //    }
 
     public List<Object> getMenuList(Integer platformId, Integer tenantId) {
-
-        List<SysMenu> menuList = null;
-        List<SysMenu> sysMenuListTwo = new ArrayList<>();
-        List<SysMenu> sysMenuListOne = new ArrayList<>();
-        List<SysMenu> sysMenuListThree = new ArrayList<>();
         //全部目录查询
-        sysMenuListTwo = baseMapper.getMenuList(platformId, "M");
+        List<SysMenu> sysMenuListTwo = baseMapper.getMenuList(platformId, "M");
         //全部菜单查询
-        sysMenuListOne = baseMapper.getMenuList(platformId, "C");
+        List<SysMenu> sysMenuListOne = baseMapper.getMenuList(platformId, "C");
         //全部按钮列表
-        sysMenuListThree = baseMapper.getMenuList(platformId, "F");
+        List<SysMenu> sysMenuListThree = baseMapper.getMenuList(platformId, "F");
         //已选中按钮列表
 
         LambdaQueryWrapper<SysTenantMenu> queryWrapper = Wrappers.lambdaQuery();
@@ -138,7 +133,6 @@ public class SysPlatformMenuServiceImpl extends AbstractCrudService<SysPlatformM
 
             sysMenuVoListOne.add(sysMenuTwoVo);
         }
-
         for (int i = 0; i < sysMenuListOne.size(); i++) {
             SysMenuOneVo sysMenuOneVo = new SysMenuOneVo();
             sysMenuOneVo.setId(sysMenuListOne.get(i).getMenuId());
@@ -146,14 +140,19 @@ public class SysPlatformMenuServiceImpl extends AbstractCrudService<SysPlatformM
             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 (sysMenuVoListTwo.size()>0){
+            if (menuListTrue.size()>0){
                 sysMenuOneVo.setChecked(true);
             }else {
                 sysMenuOneVo.setChecked(false);
@@ -168,14 +167,19 @@ public class SysPlatformMenuServiceImpl extends AbstractCrudService<SysPlatformM
             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 (SysMenuVoListThree.size()>0){
+            if (menuListtrueOne.size()>0){
                 sysMenuVo.setChecked(true);
             }else {
                 sysMenuVo.setChecked(false);
@@ -226,10 +230,11 @@ public class SysPlatformMenuServiceImpl extends AbstractCrudService<SysPlatformM
         }
         Long[] arr5 =arrayMerge(arr1,arr2);
         Long[] arr6 =arrayMerge(arr5,arr4);
+        Long[] arr7 =arrayMerge(arr6,arr);
         List arr3 = new ArrayList();
-        for (int i=0;i<arr6.length;i++){
-            if(!arr3.contains(arr6[i])){
-                arr3.add(arr6[i]);
+        for (int i=0;i<arr7.length;i++){
+            if(!arr3.contains(arr7[i])){
+                arr3.add(arr7[i]);
             }
         }
 //        Long[] arr3 =ifRepeat2(arr6);
@@ -244,7 +249,7 @@ public class SysPlatformMenuServiceImpl extends AbstractCrudService<SysPlatformM
 //            arr3[i+arr1.length+arr2.length] = arr[i];
 //        }
 
-        // 删除角色与菜单关联
+        // 删除租户菜单关联
         baseMapper.deleteTenantMenuBy(tenantMenuVo.getTenantId());
         //新增菜单
         if (arr3.size()>0){

+ 188 - 1
fiveep-service/src/main/java/com/bizmatics/service/impl/SysPlatformServiceImpl.java

@@ -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;
+    }
 }