From f58b09e46a9ee615c4b05837d8027ddabf87d4bb Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 14 Nov 2024 15:39:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E6=BA=90):=20api?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=BA=90=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=81=9C=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/auto/entity/CoreDatasourceTask.java | 49 +++++++------------ .../manage/DatasourceSyncManage.java | 18 +++---- .../datasource/server/DatasourceServer.java | 8 +-- .../server/DatasourceTaskServer.java | 20 ++++---- .../listener/DataSourceInitStartListener.java | 17 +++---- 5 files changed, 47 insertions(+), 65 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/datasource/dao/auto/entity/CoreDatasourceTask.java b/core/core-backend/src/main/java/io/dataease/datasource/dao/auto/entity/CoreDatasourceTask.java index 4f54a7a139..3c1d5505b3 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/dao/auto/entity/CoreDatasourceTask.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/dao/auto/entity/CoreDatasourceTask.java @@ -3,11 +3,12 @@ package io.dataease.datasource.dao.auto.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + import java.io.Serializable; /** *

- * + * *

* * @author fit2cloud @@ -64,11 +65,6 @@ public class CoreDatasourceTask implements Serializable { */ private String simpleCronType; - /** - * 结束限制 0 无限制 1 设定结束时间 - */ - private String endLimit; - /** * 结束时间 */ @@ -168,14 +164,6 @@ public class CoreDatasourceTask implements Serializable { this.simpleCronType = simpleCronType; } - public String getEndLimit() { - return endLimit; - } - - public void setEndLimit(String endLimit) { - this.endLimit = endLimit; - } - public Long getEndTime() { return endTime; } @@ -227,22 +215,21 @@ public class CoreDatasourceTask implements Serializable { @Override public String toString() { return "CoreDatasourceTask{" + - "id = " + id + - ", dsId = " + dsId + - ", name = " + name + - ", updateType = " + updateType + - ", startTime = " + startTime + - ", syncRate = " + syncRate + - ", cron = " + cron + - ", simpleCronValue = " + simpleCronValue + - ", simpleCronType = " + simpleCronType + - ", endLimit = " + endLimit + - ", endTime = " + endTime + - ", createTime = " + createTime + - ", lastExecTime = " + lastExecTime + - ", lastExecStatus = " + lastExecStatus + - ", extraData = " + extraData + - ", taskStatus = " + taskStatus + - "}"; + "id = " + id + + ", dsId = " + dsId + + ", name = " + name + + ", updateType = " + updateType + + ", startTime = " + startTime + + ", syncRate = " + syncRate + + ", cron = " + cron + + ", simpleCronValue = " + simpleCronValue + + ", simpleCronType = " + simpleCronType + + ", endTime = " + endTime + + ", createTime = " + createTime + + ", lastExecTime = " + lastExecTime + + ", lastExecStatus = " + lastExecStatus + + ", extraData = " + extraData + + ", taskStatus = " + taskStatus + + "}"; } } diff --git a/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java b/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java index 3bc4e5c64d..a9f22716b9 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java @@ -324,18 +324,14 @@ public class DatasourceSyncManage { scheduleManager.getDefaultJobDataMap(datasourceTask.getDsId().toString(), datasourceTask.getCron(), datasourceTask.getId().toString(), datasourceTask.getUpdateType())); } else { Date endTime; - if (StringUtils.equalsIgnoreCase(datasourceTask.getEndLimit().toString(), "1")) { - if (datasourceTask.getEndTime() == null || datasourceTask.getEndTime() == 0) { - endTime = null; - } else { - endTime = new Date(datasourceTask.getEndTime()); - if (endTime.before(new Date())) { - deleteSchedule(datasourceTask); - return; - } - } - } else { + if (datasourceTask.getEndTime() == null || datasourceTask.getEndTime() == 0) { endTime = null; + } else { + endTime = new Date(datasourceTask.getEndTime()); + if (endTime.before(new Date())) { + deleteSchedule(datasourceTask); + return; + } } scheduleManager.addOrUpdateCronJob(new JobKey(datasourceTask.getId().toString(), datasourceTask.getDsId().toString()), diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 1ab3845ace..ca3eb8bea1 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -288,7 +288,7 @@ public class DatasourceServer implements DatasourceApi { if (StringUtils.equalsIgnoreCase(coreDatasourceTask.getSyncRate(), RIGHTNOW.toString())) { coreDatasourceTask.setCron(null); } else { - if (StringUtils.equalsIgnoreCase(coreDatasourceTask.getEndLimit(), "1") && coreDatasourceTask.getStartTime() > coreDatasourceTask.getEndTime()) { + if (coreDatasourceTask.getEndTime() != null && coreDatasourceTask.getEndTime() > 0 && coreDatasourceTask.getStartTime() > coreDatasourceTask.getEndTime()) { DEException.throwException("结束时间不能小于开始时间!"); } } @@ -377,7 +377,7 @@ public class DatasourceServer implements DatasourceApi { coreDatasourceTask.setStartTime(System.currentTimeMillis() - 20 * 1000); coreDatasourceTask.setCron(null); } else { - if (StringUtils.equalsIgnoreCase(coreDatasourceTask.getEndLimit(), "1") && coreDatasourceTask.getStartTime() > coreDatasourceTask.getEndTime()) { + if (coreDatasourceTask.getEndTime() != null && coreDatasourceTask.getEndTime() > 0 && coreDatasourceTask.getStartTime() > coreDatasourceTask.getEndTime()) { DEException.throwException("结束时间不能小于开始时间!"); } } @@ -1149,10 +1149,10 @@ public class DatasourceServer implements DatasourceApi { params.add(apiDefinition); } } - if(CollectionUtils.isNotEmpty(params)){ + if (CollectionUtils.isNotEmpty(params)) { datasourceDTO.setParamsStr(RsaUtils.symmetricEncrypt(JsonUtil.toJSONString(params).toString())); } - if(CollectionUtils.isNotEmpty(apiDefinitionListWithStatus)){ + if (CollectionUtils.isNotEmpty(apiDefinitionListWithStatus)) { datasourceDTO.setApiConfigurationStr(RsaUtils.symmetricEncrypt(JsonUtil.toJSONString(apiDefinitionListWithStatus).toString())); } if (success == apiDefinitionList.size()) { diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceTaskServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceTaskServer.java index 4f630156fc..d147caedef 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceTaskServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceTaskServer.java @@ -51,16 +51,16 @@ public class DatasourceTaskServer { return CollectionUtils.isEmpty(coreDatasourceTasks) ? new CoreDatasourceTask() : coreDatasourceTasks.get(0); } - public CoreDatasourceTaskLog lastSyncLogForTable(Long dsId, String tableName){ + public CoreDatasourceTaskLog lastSyncLogForTable(Long dsId, String tableName) { List coreDatasourceTaskLogs = new ArrayList<>(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ds_id", dsId); queryWrapper.eq("table_name", tableName); queryWrapper.orderByDesc("start_time"); List logs = coreDatasourceTaskLogMapper.selectList(queryWrapper); - if(!CollectionUtils.isEmpty(logs)){ + if (!CollectionUtils.isEmpty(logs)) { return logs.get(0); - }else { + } else { return null; } } @@ -69,7 +69,7 @@ public class DatasourceTaskServer { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ds_id", dsId); List coreDatasourceTasks = datasourceTaskMapper.selectList(queryWrapper); - if(!CollectionUtils.isEmpty(coreDatasourceTasks)){ + if (!CollectionUtils.isEmpty(coreDatasourceTasks)) { datasourceSyncManage.deleteSchedule(coreDatasourceTasks.get(0)); } datasourceTaskMapper.delete(queryWrapper); @@ -79,14 +79,15 @@ public class DatasourceTaskServer { coreDatasourceTask.setId(IDUtils.snowID()); datasourceTaskMapper.insert(coreDatasourceTask); } + public void delete(Long id) { datasourceTaskMapper.deleteById(id); } public void update(CoreDatasourceTask coreDatasourceTask) { - if(coreDatasourceTask.getId() == null){ + if (coreDatasourceTask.getId() == null) { datasourceTaskMapper.insert(coreDatasourceTask); - }else { + } else { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("id", coreDatasourceTask.getId()); datasourceTaskMapper.updateById(coreDatasourceTask); @@ -94,15 +95,16 @@ public class DatasourceTaskServer { } - public void updateByDsIds(List dsIds){ + public void updateByDsIds(List dsIds) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.in("ds_id", dsIds); CoreDatasourceTask record = new CoreDatasourceTask(); record.setTaskStatus(TaskStatus.WaitingForExecution.name()); datasourceTaskMapper.update(record, updateWrapper); } + public void checkTaskIsStopped(CoreDatasourceTask coreDatasourceTask) { - if (coreDatasourceTask.getEndLimit() != null && StringUtils.equalsIgnoreCase(coreDatasourceTask.getEndLimit(), "1")) { // 结束限制 0 无限制 1 设定结束时间' + if (coreDatasourceTask.getEndTime() != null && coreDatasourceTask.getEndTime() > 0) { List dataSetTaskDTOS = taskWithTriggers(coreDatasourceTask.getId()); if (CollectionUtils.isEmpty(dataSetTaskDTOS)) { return; @@ -170,7 +172,7 @@ public class DatasourceTaskServer { if (coreDatasourceTask.getSyncRate().equalsIgnoreCase(ScheduleType.RIGHTNOW.name())) { record.setTaskStatus(TaskStatus.Stopped.name()); } else { - if (coreDatasourceTask.getEndLimit() != null && StringUtils.equalsIgnoreCase(coreDatasourceTask.getEndLimit(), "1")) { + if (coreDatasourceTask.getEndTime() != null && coreDatasourceTask.getEndTime() > 0) { List dataSetTaskDTOS = taskWithTriggers(coreDatasourceTask.getId()); if (CollectionUtils.isEmpty(dataSetTaskDTOS)) { return; diff --git a/core/core-backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java b/core/core-backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java index fee35578aa..2e618ad5bd 100644 --- a/core/core-backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java +++ b/core/core-backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java @@ -38,25 +38,23 @@ public class DataSourceInitStartListener implements ApplicationListener list = datasourceTaskServer.listAll(); for (CoreDatasourceTask task : list) { try { if (!StringUtils.equalsIgnoreCase(task.getSyncRate(), DatasourceTaskServer.ScheduleType.RIGHTNOW.toString())) { - if (StringUtils.equalsIgnoreCase(task.getEndLimit(), "1")) { - if (task.getEndTime() != null && task.getEndTime() > 0) { - if (task.getEndTime() > System.currentTimeMillis()) { - datasourceSyncManage.addSchedule(task); - } - } else { + if (task.getEndTime() != null && task.getEndTime() > 0) { + if (task.getEndTime() > System.currentTimeMillis()) { datasourceSyncManage.addSchedule(task); + } else { + datasourceSyncManage.deleteSchedule(task); } } else { datasourceSyncManage.addSchedule(task); @@ -70,12 +68,11 @@ public class DataSourceInitStartListener implements ApplicationListener coreSysSettings = sysParameterManage.groupList("basic."); datasourceServer.addJob(coreSysSettings); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } - }