Browse Source

超级管理员查询数据源数据相关数据调整

chenw 6 years ago
parent
commit
eb625078b5

+ 13 - 0
bi-server/src/main/java/com/usoftchina/bi/server/dao/dataSource/DataConnectorMapper.java

@@ -94,6 +94,19 @@ public interface DataConnectorMapper {
     List<DataConnectorList> getDataConnectorList(@Param("id") int id, TestPage testPage);
 
 
+    /**
+     * 查询已经启用的数据源列表
+     * @param id
+     * @param testPage
+     * @return
+     */
+    @Select("select id as dataId, con_type as type, data_name as dataName, data_tag as dataTag, data_note as note, " +
+            "bc.create_by as createBy, bc.create_date as createDate," +
+            "used_number as usedNumber, db_config as dbConfig ,BD_group as connectorGroup, " +
+            "create_id as createId, demo from bi_data_connectors bc where is_open = '1' ORDER BY dataId DESC")
+    @ResultMap("DataConnectorListResultMap")
+    List<DataConnectorList> getDataConnectorListWithoutLimit(@Param("id") int id, TestPage testPage);
+
     /*
     转交数据源
      */

+ 15 - 8
bi-server/src/main/java/com/usoftchina/bi/server/service/dataSource/DataConnectorService.java

@@ -128,9 +128,14 @@ public class DataConnectorService {
      */
 //    @Cacheable(value = "dataConnector", key = "#testPage.pageNum")
     public RepEntity getListConnector(String token, TestPage testPage) {
-        Map<String, String> resultMap = GetTokenDataUtil.getTokenData(token);
-        String id = resultMap.get("id");
-        List<DataConnectorList> listConnector = dataConnectorMapper.getDataConnectorList(Integer.parseInt(id), testPage.enablePaging());
+        int id = BaseContextHolder.getUserId();
+        String role = BaseContextHolder.getRole();
+        List<DataConnectorList> listConnector = new ArrayList<>();
+        if ("superAdmin".equals(role)) {
+            listConnector = dataConnectorMapper.getDataConnectorListWithoutLimit(id, testPage.enablePaging());
+        }else {
+            listConnector = dataConnectorMapper.getDataConnectorList(id, testPage.enablePaging());
+        }
         List<DataConnectorList> listConnectors = new ArrayList<>();
         Iterator isList = listConnector.iterator();
         while (isList.hasNext()) {
@@ -207,9 +212,10 @@ public class DataConnectorService {
      */
     public RepEntity changeOrder(ChangeOrderInfo changeOrderInfo) {
         int userId = BaseContextHolder.getUserId();
+        String role = BaseContextHolder.getRole();
         String name = BaseContextHolder.getUserName();
         int createId = dataConnectorMapper.getCreateIdById(changeOrderInfo.getId());
-        if (createId != userId) {
+        if (createId != userId && !"superAdmin".equals(role)) {
             return new RepEntity(RepCode.NoAuthority);
         }
         dataConnectorMapper.updataOrder(name, changeOrderInfo.getUserId(), changeOrderInfo.getId());
@@ -308,8 +314,7 @@ public class DataConnectorService {
      */
     public RepEntity updataDataConnectorGroup(String token, GroupInfo groupInfo) {
         dataConnectorMapper.updataConnectorGroup(groupInfo);
-        Map<String, String> resMap = GetTokenDataUtil.getTokenData(token);
-        String username = resMap.get("name");
+        String username = BaseContextHolder.getUserName();
         messageLogService.update("数据源分组", groupInfo.getGroupName(), username, "更新分组");
         return new RepEntity(RepCode.success);
     }
@@ -365,14 +370,16 @@ public class DataConnectorService {
         int baseId = getChartsDataUtilService.getBaseIdByConnect(dataId);
         logger.info("切换数据库:{}", baseId);
 
-        Map<String, String> resultMap = GetTokenDataUtil.getTokenData(token);
-        int id = Integer.parseInt(resultMap.get("id"));
+        int id = BaseContextHolder.getUserId();
         int createId = dataConnectorMapper.getCreateIdById(dataId);
         ColumnValuesInfo columnValuesInfo = new ColumnValuesInfo();
         ColumnConfigAndSql columnConfigAndSql = chartsConfigMapper.getConfigAndSql(dataId);
         String sql = columnConfigAndSql.getSql();
         String columnConfig = columnConfigAndSql.getColumnConfig();
         columnValuesInfo.setColumnConfig(columnConfig);
+        if ("superAdmin".equals(BaseContextHolder.getRole())) {
+            id = createId;
+        }
         String sqls = chartsUtilService.columnNameUtil(id, dataId, sql, true, 0, createId);
 
         try {