chenw 7 лет назад
Родитель
Сommit
bde48ee080

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

@@ -140,6 +140,14 @@ public interface DataConnectorMapper {
     @Select("SELECT COUNT(*) FROM BI_CHARTS WHERE BD_DATA_ID = #{id}")
     int countChartsById(Long id);
 
+    /**
+     * 是否存在数据连接
+     * @param databases
+     * @return
+     */
+    @Select("SELECT COUNT(*) FROM BI_DATABASES WHERE ADDRASS = #{addrass,jdbcType=VARCHAR} AND PORT = #{port,jdbcType=VARCHAR} AND USER_NAME = #{userName,jdbcType=VARCHAR}")
+    int countDataBases(Databases databases);
+
     /*
     删除数据源
      */

+ 13 - 3
bi-server/src/main/java/com/usoftchina/bi/server/service/dataSource/DataBasesService.java

@@ -52,9 +52,10 @@ public class DataBasesService {
         }
         Databases databases = new Databases();
         BeanUtils.copyProperties(databasesInfo, databases);
+        //校验此数据连接是否已存在
+        validExists(databases);
         //校验此连接是否可用
         implementSqlService.connectTest(databases);
-        LOGGER.info("校验此连接是否可用完成...");
 
         String note = databases.getNote();
         if (note == null || "".equals(note)){
@@ -62,16 +63,25 @@ public class DataBasesService {
             databases.setNote(note);
         }
         dataConnectorMapper.inputDataBases(databases);
-        LOGGER.info("执行完保存数据源操作...");
         int id = databases.getId();
         databasesInfo.setId(id);
         //添加数据源可切换
         addDataSource(databasesInfo);
 
-        LOGGER.info("返回RepEntity,data={}", id);
         return new RepEntity(RepCode.success,id);
     }
 
+    /**
+     * 校验此数据连接是否已存在
+     * @param databases
+     */
+    private void validExists(Databases databases){
+        int count = dataConnectorMapper.countDataBases(databases);
+        if (count > 0) {
+            throw new MyException("已存在用户名为 " + databases.getUserName() + " 的数据连接!");
+        }
+    }
+
     /*
    查看数据库配置列表
     */