Browse Source

看板目录取数逻辑调整

chenw 6 years ago
parent
commit
0182202ee2

+ 33 - 3
bi-server/src/main/java/com/usoftchina/bi/server/dao/dashboard/DashBoardMenuMapper.java

@@ -13,11 +13,31 @@ import java.util.List;
 @Repository
 public interface DashBoardMenuMapper {
 
+    /**
+     * 普通用户/管理员查看
+     * @param userId
+     * @param id
+     * @return
+     */
     @Select("SELECT BDM_ID id,BDM_NAME name,'menu' type,BDM_PARENTID parentId FROM BI_DASHBOARDS_MENU WHERE BDM_PARENTID = #{id, jdbcType=INTEGER} "
-            + "UNION ALL "
-            + "SELECT ID id,BD_NAME name,'dashboard' type,BD_MENUID parentId FROM BI_DASHBOARDS WHERE BD_MENUID = #{id, jdbcType=INTEGER} AND CREATE_ID = #{userId,jdbcType=INTEGER}")
+            + " UNION "
+            + " SELECT ID id,BD_NAME name,'dashboard' type,BD_MENUID parentId FROM BI_DASHBOARDS WHERE BD_MENUID = #{id, jdbcType=INTEGER} AND CREATE_ID = #{userId,jdbcType=INTEGER} "
+            + " UNION "
+            + " SELECT ID id,BD_NAME name,'dashboard' type,BD_MENUID parentId FROM BI_POWER_USERS INNER JOIN BI_DASHBOARDS ON ID = BPU_DASHBOARDID WHERE BPU_USERID = #{userId,jdbcType=INTEGER} "
+            + " UNION "
+            + " SELECT ID id,BD_NAME name,'dashboard' type,BD_MENUID parentId FROM BI_POWER_USERS INNER JOIN BI_DASHBOARDS ON ID = BPU_DASHBOARDID WHERE BPU_USERGROUPID IN (SELECT BR_USER_GROUP FROM BI_USER_REL_GROUPS WHERE BR_USER_ID = #{userId,jdbcType=INTEGER}) ")
     List<DashboardMenuRespDTO> getMenuById(@Param("userId") int userId, @Param("id") int id);
 
+    /**
+     * 超级用户查看
+     * @param id
+     * @return
+     */
+    @Select("SELECT BDM_ID id,BDM_NAME name,'menu' type,BDM_PARENTID parentId FROM BI_DASHBOARDS_MENU WHERE BDM_PARENTID = #{id, jdbcType=INTEGER} "
+            + " UNION "
+            + " SELECT ID id,BD_NAME name,'dashboard' type,BD_MENUID parentId FROM BI_DASHBOARDS WHERE BD_MENUID = #{id, jdbcType=INTEGER} ")
+    List<DashboardMenuRespDTO> getMenuWithNoLimit(int id);
+
     /**
      * 保存
      * @param dashBoardMenuInfo
@@ -71,7 +91,7 @@ public interface DashBoardMenuMapper {
     void updateDashBoardMenu(DashBoardUpdateMenuInfo dashBoardUpdateMenuInfo);
 
     /**
-     * 获取目录下的所有看板
+     * 普通用户/管理员 获取目录下的所有看板
      * @param userId
      * @param menuId
      * @return
@@ -82,4 +102,14 @@ public interface DashBoardMenuMapper {
             + "AND CREATE_ID = #{userId,jdbcType=INTEGER}")
     List<Dashboards> getDashBoardByMenuId(@Param("userId") int userId, @Param("menuId") int menuId);
 
+    /**
+     * 超级用户 获取目录下的所有看板
+     * @param menuId
+     * @return
+     */
+    @Select("SELECT id, bd_note as bdNote, bd_name as bdName, CONFIGURATION as bdConfiguration, CREATE_BY as createBy, "
+            + "create_id as createId, CREATE_DATE as createDate, BD_THUMBNAIL as thumbnail, relation_columns as relationColumns, "
+            + "filters, demo, bd_code as bdCode,BD_MENUID as menuId  FROM BI_DASHBOARDS WHERE BD_MENUID = #{menuId,jdbcType=INTEGER} ")
+    List<Dashboards> getDashBoardByMenuIdWithoutLimit(@Param("menuId") int menuId);
+
 }

+ 19 - 7
bi-server/src/main/java/com/usoftchina/bi/server/service/dashboard/DashBoardMenuService.java

@@ -1,5 +1,6 @@
 package com.usoftchina.bi.server.service.dashboard;
 
+import com.usoftchina.bi.core.base.BaseContextHolder;
 import com.usoftchina.bi.core.base.RepCode;
 import com.usoftchina.bi.core.base.RepEntity;
 import com.usoftchina.bi.core.exception.MyException;
@@ -13,6 +14,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -26,16 +28,21 @@ public class DashBoardMenuService {
     private DashBoardMenuMapper dashBoardMenuMapper;
 
     public List<DashboardMenuRespDTO> list(String token){
-        int userId = Integer.parseInt(GetTokenDataUtil.getTokenData(token).get("id"));
-        return getData(userId, 0);
+        String role = BaseContextHolder.getRole();
+        return getData(BaseContextHolder.getUserId(), 0, role);
     }
 
-    private List<DashboardMenuRespDTO> getData(int userId, int id){
-        List<DashboardMenuRespDTO> dashboardMenuRespDTOList = dashBoardMenuMapper.getMenuById(userId, id);
+    private List<DashboardMenuRespDTO> getData(int userId, int id, String role){
+        List<DashboardMenuRespDTO> dashboardMenuRespDTOList = new ArrayList<>();
+        if (!"superAdmin".equals(role)) {
+            dashboardMenuRespDTOList = dashBoardMenuMapper.getMenuById(userId, id);
+        }else {
+            dashboardMenuRespDTOList = dashBoardMenuMapper.getMenuWithNoLimit(id);
+        }
         if (!CollectionUtils.isEmpty(dashboardMenuRespDTOList)) {
             for (DashboardMenuRespDTO dashboardMenuRespDTO : dashboardMenuRespDTOList) {
                 if ("menu".equals(dashboardMenuRespDTO.getType())) {
-                    dashboardMenuRespDTO.setChildren(getData(userId, dashboardMenuRespDTO.getId()));
+                    dashboardMenuRespDTO.setChildren(getData(userId, dashboardMenuRespDTO.getId(), role));
                 }
             }
         }
@@ -65,8 +72,13 @@ public class DashBoardMenuService {
     }
 
     public RepEntity getDashBoardByMenuId(String token, int menuId){
-        int userId = Integer.parseInt(GetTokenDataUtil.getTokenData(token).get("id"));
-        return new RepEntity(RepCode.success, dashBoardMenuMapper.getDashBoardByMenuId(userId, menuId));
+        int userId = BaseContextHolder.getUserId();
+        String role = BaseContextHolder.getRole();
+        if (!"superAdmin".equals(role)) {
+            return new RepEntity(RepCode.success, dashBoardMenuMapper.getDashBoardByMenuId(userId, menuId));
+        }else {
+            return new RepEntity(RepCode.success, dashBoardMenuMapper.getDashBoardByMenuIdWithoutLimit(menuId));
+        }
     }
 
 }