diff --git a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/InfoService.java b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/InfoService.java index 3d57302..662d48a 100644 --- a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/InfoService.java +++ b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/InfoService.java @@ -99,4 +99,10 @@ public interface InfoService { @Get("/updated_version_tables") ImmutableList updatedVersionTables(); + + @Get("/exists_table") + Boolean existsTable(@Query("flink_job_id") Long flinkJobId, @Query("alias") String alias); + + @Get("/non_exists_table") + Boolean nonExistsTable(@Query("flink_job_id") Long flinkJobId, @Query("alias") String alias); } diff --git a/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/controller/InfoController.java b/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/controller/InfoController.java index 129ac97..5f49a67 100644 --- a/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/controller/InfoController.java +++ b/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/controller/InfoController.java @@ -215,4 +215,14 @@ public class InfoController { ObjectUtil.isNull(filterCompletes) ? Lists.immutable.empty() : Lists.immutable.ofAll(filterCompletes) ); } + + @GetMapping("/exists_table") + public Boolean existsTable(@RequestParam(value = "flink_job_id") Long flinkJobId, @RequestParam(value = "alias") String alias) { + return infoService.existsTable(flinkJobId, alias); + } + + @GetMapping("/non_exists_table") + public Boolean nonExistsTable(@RequestParam(value = "flink_job_id") Long flinkJobId, @RequestParam(value = "alias") String alias) { + return !infoService.existsTable(flinkJobId, alias); + } } diff --git a/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/service/InfoService.java b/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/service/InfoService.java index 1d45216..6f2d1a7 100644 --- a/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/service/InfoService.java +++ b/service-info-query/src/main/java/com/lanyuanxiaoyao/service/info/service/InfoService.java @@ -725,4 +725,24 @@ public class InfoService { return new PageResponse<>(list, total); }); } + + private static final Alias TABLE_FLINK_JOB = Alias.of(StrUtil.format("{}.tb_app_flink_job_config", DATABASE_NAME), "tafjc"); + private static final String TABLE_FLINK_JOB_ID = column(TABLE_FLINK_JOB, "id"); + private static final String TABLE_FLINK_JOB_STATUS = column(TABLE_FLINK_JOB, "status"); + + @Cacheable(value = "exists-table", sync = true) + @Retryable(Throwable.class) + public Boolean existsTable(Long flinkJobId, String alias) { + return mysqlJdbcTemplate.queryForObject( + SqlBuilder.select("count(*) > 0") + .from(TABLE_INFO, TABLE_FLINK_JOB) + .whereEq(TABLE_INFO_FLINK_JOB_ID, Column.as(TABLE_FLINK_JOB_ID)) + .andEq(TABLE_FLINK_JOB_ID, flinkJobId) + .andEq(TABLE_INFO_ALIAS, alias) + .andEq(TABLE_FLINK_JOB_STATUS, "y") + .andEq(TABLE_INFO_STATUS, "y") + .build(), + Boolean.class + ); + } } diff --git a/service-info-query/src/test/java/SqlBuilderTests.java b/service-info-query/src/test/java/SqlBuilderTests.java index ed0df77..dc4561b 100644 --- a/service-info-query/src/test/java/SqlBuilderTests.java +++ b/service-info-query/src/test/java/SqlBuilderTests.java @@ -37,12 +37,19 @@ public class SqlBuilderTests { private static final String TABLE_COMPACTION_METRICS_FLINK_JOB_ID = column(TABLE_COMPACTION_METRICS, "flink_job_id"); private static final String TABLE_COMPACTION_METRICS_ALIAS = column(TABLE_COMPACTION_METRICS, "alias"); + private static final Alias TABLE_FLINK_JOB = Alias.of(StrUtil.format("{}.tb_app_flink_job_config", DATABASE_NAME), "tafjc"); + private static final String TABLE_FLINK_JOB_ID = column(TABLE_FLINK_JOB, "id"); + private static final String TABLE_FLINK_JOB_STATUS = column(TABLE_FLINK_JOB, "status"); + public static void main(String[] args) { System.out.println(SqlFormatter.format( - SqlBuilder.select(StrUtil.format("concat({}, '-', {})", TABLE_VERSION_FLINK_JOB_ID, TABLE_VERSION_ALIAS)) - .from(TABLE_VERSION) - .whereEq(TABLE_VERSION_SCHEDULED, false) - .andEq(TABLE_VERSION_VERSION, Column.as("date_format(subdate(current_date(), 1), '%Y%m%d')")) + SqlBuilder.select("count(*) > 0") + .from(TABLE_INFO, TABLE_FLINK_JOB) + .whereEq(TABLE_INFO_FLINK_JOB_ID, Column.as(TABLE_FLINK_JOB_ID)) + .andEq(TABLE_FLINK_JOB_ID, 1552408244680593408L) + .andEq(TABLE_INFO_ALIAS, "crm_order_ord_prod_inst_sub_his") + .andEq(TABLE_FLINK_JOB_STATUS, "y") + .andEq(TABLE_INFO_STATUS, "y") .build() )); }