refactor(info-query): 转换旧逻辑到新逻辑
This commit is contained in:
@@ -11,12 +11,14 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.eshore.odcp.hudi.connector.entity.FlinkJob;
|
||||
import com.eshore.odcp.hudi.connector.entity.SyncState;
|
||||
import com.eshore.odcp.hudi.connector.entity.TableMeta;
|
||||
import com.eshore.odcp.hudi.connector.exception.SyncStateNotFoundException;
|
||||
import com.eshore.odcp.hudi.connector.utils.database.DatabaseService;
|
||||
import com.lanyuanxiaoyao.service.configuration.entity.PageResponse;
|
||||
import com.lanyuanxiaoyao.service.configuration.entity.info.*;
|
||||
import com.lanyuanxiaoyao.service.info.configuration.SQLLoggerProvider;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import org.eclipse.collections.api.factory.Lists;
|
||||
import org.eclipse.collections.api.list.ImmutableList;
|
||||
import org.eclipse.collections.api.map.ImmutableMap;
|
||||
@@ -78,7 +80,55 @@ public class InfoService {
|
||||
@Cacheable(value = "sync-state", sync = true, key = "#flinkJobId.toString()+#alias")
|
||||
@Retryable(Throwable.class)
|
||||
public SyncState syncState(Long flinkJobId, String alias) {
|
||||
return databaseService.getSyncState(flinkJobId, alias);
|
||||
return Lists.immutable.ofAll(
|
||||
mysqlJdbcTemplate.query(
|
||||
SqlBuilder.select(
|
||||
TbAppFlinkJobConfig.ID_A,
|
||||
TbAppCollectTableInfo.ALIAS_A,
|
||||
TbAppHudiSyncState.MESSAGE_ID_A,
|
||||
TbAppHudiSyncState.SOURCE_START_TIME_A,
|
||||
TbAppHudiSyncState.SOURCE_CHECKPOINT_TIME_A,
|
||||
TbAppHudiSyncState.SOURCE_PUBLISH_TIME_A,
|
||||
TbAppHudiSyncState.SOURCE_OP_TIME_A,
|
||||
TbAppHudiSyncState.COMPACTION_START_TIME_A,
|
||||
TbAppHudiSyncState.COMPACTION_FINISH_TIME_A,
|
||||
TbAppHudiSyncState.COMPACTION_APPLICATION_ID_A,
|
||||
TbAppHudiSyncState.COMPACTION_STATUS_A,
|
||||
TbAppHudiSyncState.COMPACTION_STATUS_TIME_A,
|
||||
TbAppHudiSyncState.COMPACTION_LATEST_OP_TS_A
|
||||
)
|
||||
.from(
|
||||
TbAppFlinkJobConfig._alias_,
|
||||
TbAppCollectTableInfo._alias_,
|
||||
TbAppHudiSyncState._alias_
|
||||
)
|
||||
.whereEq(TbAppFlinkJobConfig.ID_A, Column.as(TbAppCollectTableInfo.FLINK_JOB_ID_A))
|
||||
.andEq(TbAppHudiSyncState.ID_A, Column.as(StrUtil.format("concat({}, '-', {})", TbAppFlinkJobConfig.ID_A, TbAppCollectTableInfo.ALIAS_A)))
|
||||
.andEq(TbAppFlinkJobConfig.STATUS_A, STATUS_Y)
|
||||
.andEq(TbAppCollectTableInfo.STATUS_A, STATUS_Y)
|
||||
.andEq(ObjectUtil.isNotNull(flinkJobId), TbAppFlinkJobConfig.ID_A, flinkJobId)
|
||||
.andEq(StrUtil.isNotBlank(alias), TbAppCollectTableInfo.ALIAS_A, alias)
|
||||
.build(),
|
||||
(rs, row) -> {
|
||||
Function<Timestamp, Long> dateConvertor = timestamp -> timestamp == null ? 0 : timestamp.getTime();
|
||||
return SyncState.builder()
|
||||
.flinkJobId(rs.getLong(1))
|
||||
.alias(rs.getString(2))
|
||||
.messageId(rs.getString(3))
|
||||
.sourceStartTime(dateConvertor.apply(rs.getTimestamp(4)))
|
||||
.sourceCheckpointTime(dateConvertor.apply(rs.getTimestamp(5)))
|
||||
.sourcePublishTime(dateConvertor.apply(rs.getTimestamp(6)))
|
||||
.sourceOperationTime(dateConvertor.apply(rs.getTimestamp(7)))
|
||||
.compactionStartTime(dateConvertor.apply(rs.getTimestamp(8)))
|
||||
.compactionFinishTime(dateConvertor.apply(rs.getTimestamp(9)))
|
||||
.compactionApplicationId(rs.getString(10))
|
||||
.compactionStatus(rs.getString(11))
|
||||
.compactionStatusTime(dateConvertor.apply(rs.getTimestamp(12)))
|
||||
.compactionLatestOperationTime(dateConvertor.apply(rs.getTimestamp(13)))
|
||||
.build();
|
||||
}
|
||||
)
|
||||
).getFirstOptional().orElseThrow(SyncStateNotFoundException::new);
|
||||
}
|
||||
|
||||
private SqlBuilder generateJobIdAndAliasCriteria(
|
||||
|
||||
Reference in New Issue
Block a user