Browse Source

看板目录删除限制

chenw 6 years ago
parent
commit
5843fb5adc

+ 2 - 1
bi-core/src/main/java/com/usoftchina/bi/core/base/RepCode.java

@@ -24,7 +24,8 @@ public enum  RepCode {
     DashboardNonExistent(-510, "看板不存在"),
     DATACONNECTOR_USED_DATASOURCE(-511, "已有数据源使用了此连接,无法删除!"),
     CHARTS_USED_DATACONNECTOR(-512, "已有图表使用了此数据源,无法删除!"),
-    DASHBOARD_USED_CHARTS(-513, "已有看板使用了此图表,无法删除!");
+    DASHBOARD_USED_CHARTS(-513, "已有看板使用了此图表,无法删除!"),
+    MENU_USED_DASHBOARD(-514, "此目录下存在看板,无法删除!");
 
     private int code;
     private String msg;

+ 8 - 0
bi-server/src/main/java/com/usoftchina/bi/server/dao/dashboard/DashBoardMenuMapper.java

@@ -55,6 +55,14 @@ public interface DashBoardMenuMapper {
     @Delete("DELETE FROM BI_DASHBOARDS_MENU WHERE BDM_ID = #{id, jdbcType=INTEGER}")
     void deleteByPrimaryKey(Long id);
 
+    /**
+     * 查询此看板目录下有多少个看板
+     * @param id        看板目录ID
+     * @return
+     */
+    @Select("SELECT COUNT(*) FROM BI_DASHBOARDS WHERE BD_MENUID = #{id}")
+    int countDashboardByMenuId(Long id);
+
     /**
      * 更新看板所属目录
      * @param dashBoardUpdateMenuInfo

+ 6 - 0
bi-server/src/main/java/com/usoftchina/bi/server/service/dashboard/DashBoardMenuService.java

@@ -2,6 +2,7 @@ package com.usoftchina.bi.server.service.dashboard;
 
 import com.usoftchina.bi.core.base.RepCode;
 import com.usoftchina.bi.core.base.RepEntity;
+import com.usoftchina.bi.core.exception.MyException;
 import com.usoftchina.bi.core.utils.GetTokenDataUtil;
 import com.usoftchina.bi.server.dao.dashboard.DashBoardMenuMapper;
 import com.usoftchina.bi.server.model.vo.configVo.DashBoardMenuInfo;
@@ -51,6 +52,11 @@ public class DashBoardMenuService {
 
     public void deleteById(Long id){
         Assert.state(id > 0, "参数错误");
+        // 判断是否存在报表,存在不允许删除目录
+        int count = dashBoardMenuMapper.countDashboardByMenuId(id);
+        if (count > 0) {
+            throw new MyException(RepCode.MENU_USED_DASHBOARD);
+        }
         dashBoardMenuMapper.deleteByPrimaryKey(id);
     }