diff --git a/core/backend/src/main/java/io/dataease/commons/constants/ParamConstants.java b/core/backend/src/main/java/io/dataease/commons/constants/ParamConstants.java index 5889f54a86..ece698c7f3 100644 --- a/core/backend/src/main/java/io/dataease/commons/constants/ParamConstants.java +++ b/core/backend/src/main/java/io/dataease/commons/constants/ParamConstants.java @@ -113,6 +113,7 @@ public interface ParamConstants { LOG_TIME_OUT("basic.logTimeOut"), DS_SYNC_LOG_TIME_OUT("basic.dsSyncLogTimeOut"), + EXPORT_FILE_TIME_OUT("basic.exportFileTimeOut"), DS_CHECK_INTERVAL("basic.dsCheckInterval"), DS_CHECK_INTERVAL_TYPE("basic.dsCheckIntervalType"), DEFAULT_LOGIN_TYPE("basic.loginType"), diff --git a/core/backend/src/main/java/io/dataease/controller/sys/response/BasicInfo.java b/core/backend/src/main/java/io/dataease/controller/sys/response/BasicInfo.java index c4340ab033..505827dc66 100644 --- a/core/backend/src/main/java/io/dataease/controller/sys/response/BasicInfo.java +++ b/core/backend/src/main/java/io/dataease/controller/sys/response/BasicInfo.java @@ -17,6 +17,8 @@ public class BasicInfo extends LoginLimitInfo implements Serializable { private String logTimeOut; @ApiModelProperty("数据同步日志保留时间") private String dsSyncLogTimeOut; + @ApiModelProperty("后台导出文件保留时间") + private String exportFileTimeOut; @ApiModelProperty("显示首页") private String openHomePage; @ApiModelProperty("默认登录方式") diff --git a/core/backend/src/main/java/io/dataease/service/CleaningRebotService.java b/core/backend/src/main/java/io/dataease/service/CleaningRebotService.java index 2288ee25de..c29e856189 100644 --- a/core/backend/src/main/java/io/dataease/service/CleaningRebotService.java +++ b/core/backend/src/main/java/io/dataease/service/CleaningRebotService.java @@ -2,6 +2,7 @@ package io.dataease.service; import io.dataease.ext.CleaningRebotMapper; import io.dataease.service.dataset.DataSetTableTaskLogService; +import io.dataease.service.exportCenter.ExportCenterService; import io.dataease.service.message.SysMsgService; import io.dataease.service.sys.log.LogService; import org.springframework.beans.factory.annotation.Value; @@ -27,6 +28,8 @@ public class CleaningRebotService { @Resource private DataSetTableTaskLogService dataSetTableTaskLogService; + @Resource + private ExportCenterService exportCenterService; public void execute() { int floatDept = 0; do { @@ -47,5 +50,6 @@ public class CleaningRebotService { logService.cleanDisusedLog(); sysMsgService.cleanDisusedMsg(); dataSetTableTaskLogService.cleanLog(); + exportCenterService.cleanLog(); } } diff --git a/core/backend/src/main/java/io/dataease/service/exportCenter/ExportCenterService.java b/core/backend/src/main/java/io/dataease/service/exportCenter/ExportCenterService.java index 0a9ea0832e..c737282731 100644 --- a/core/backend/src/main/java/io/dataease/service/exportCenter/ExportCenterService.java +++ b/core/backend/src/main/java/io/dataease/service/exportCenter/ExportCenterService.java @@ -1,8 +1,7 @@ package io.dataease.service.exportCenter; - -import com.alibaba.excel.EasyExcel; import com.google.gson.Gson; +import io.dataease.commons.constants.ParamConstants; import io.dataease.commons.constants.SysLogConstants; import io.dataease.commons.utils.*; import io.dataease.controller.request.chart.ChartExtRequest; @@ -39,6 +38,7 @@ import io.dataease.service.dataset.*; import io.dataease.service.datasource.DatasourceService; import io.dataease.service.engine.EngineService; import io.dataease.service.panel.PanelGroupService; +import io.dataease.service.system.SystemParameterService; import io.dataease.websocket.entity.WsMessage; import io.dataease.websocket.service.WsService; import org.apache.commons.collections4.CollectionUtils; @@ -72,6 +72,8 @@ import java.util.stream.Collectors; @Service public class ExportCenterService { + @Resource + private SystemParameterService systemParameterService; @Resource private ChartViewMapper chartViewMapper; @Resource @@ -1329,7 +1331,27 @@ public class ExportCenterService { map.put("data", jsonArray); return map; } + private static final String LOG_RETENTION = "30"; + public void cleanLog() { + String value = systemParameterService.getValue(ParamConstants.BASIC.EXPORT_FILE_TIME_OUT.getValue()); + value = StringUtils.isBlank(value) ? LOG_RETENTION : value; + int logRetention = Integer.parseInt(value); + Calendar instance = Calendar.getInstance(); + Calendar startInstance = (Calendar) instance.clone(); + startInstance.add(Calendar.DATE, -logRetention); + startInstance.set(Calendar.HOUR_OF_DAY, 0); + startInstance.set(Calendar.MINUTE, 0); + startInstance.set(Calendar.SECOND, 0); + startInstance.set(Calendar.MILLISECOND, -1); + long timeInMillis = startInstance.getTimeInMillis(); + ExportTaskExample exportTaskExample = new ExportTaskExample(); + ExportTaskExample.Criteria criteria = exportTaskExample.createCriteria(); + criteria.andExportTimeLessThan(timeInMillis); + exportTaskMapper.selectByExample(exportTaskExample).forEach(exportTask -> { + delete(exportTask.getId()); + }); + } } diff --git a/core/backend/src/main/java/io/dataease/service/system/SystemParameterService.java b/core/backend/src/main/java/io/dataease/service/system/SystemParameterService.java index e37c18c7cc..be93f452d5 100644 --- a/core/backend/src/main/java/io/dataease/service/system/SystemParameterService.java +++ b/core/backend/src/main/java/io/dataease/service/system/SystemParameterService.java @@ -87,6 +87,9 @@ public class SystemParameterService { if (StringUtils.equals(param.getParamKey(), ParamConstants.BASIC.DS_SYNC_LOG_TIME_OUT.getValue())) { result.setDsSyncLogTimeOut(param.getParamValue()); } + if (StringUtils.equals(param.getParamKey(), ParamConstants.BASIC.EXPORT_FILE_TIME_OUT.getValue())) { + result.setExportFileTimeOut(param.getParamValue()); + } if (StringUtils.equals(param.getParamKey(), ParamConstants.BASIC.DEFAULT_LOGIN_TYPE.getValue())) { String paramValue = param.getParamValue(); result.setLoginType(StringUtils.isNotBlank(paramValue) ? Integer.parseInt(paramValue) : 0); diff --git a/core/frontend/src/lang/en.js b/core/frontend/src/lang/en.js index 4446dd2642..272213ac1a 100644 --- a/core/frontend/src/lang/en.js +++ b/core/frontend/src/lang/en.js @@ -1081,6 +1081,7 @@ export default { message_retention_time: 'Message retention time', log_retention_time: 'Log retention time', ds_sync_log_retention_time: 'Data sync log retention time', + export_file_retention_time: 'Export file retention time', ds_check_time: 'Data source detection interval', test_mail_recipient: 'Used only as a test mail recipient', to_enable_tsl: 'If the SMTP port is 587, you usually need to enable TSL', diff --git a/core/frontend/src/lang/tw.js b/core/frontend/src/lang/tw.js index a4ef2e00a1..42cf038913 100644 --- a/core/frontend/src/lang/tw.js +++ b/core/frontend/src/lang/tw.js @@ -1081,6 +1081,7 @@ export default { message_retention_time: '消息保留時間', log_retention_time: '日誌保留時間', ds_sync_log_retention_time: '數據同步日誌保留時間', + export_file_retention_time: '导出文件保留時間', ds_check_time: '數據源檢測時間間隔', test_mail_recipient: '僅用來作為測試郵件收件人', to_enable_tsl: '如果SMTP埠是587,通常需要啟用TSL', diff --git a/core/frontend/src/lang/zh.js b/core/frontend/src/lang/zh.js index a5a3f4329e..d3a1e4e59b 100644 --- a/core/frontend/src/lang/zh.js +++ b/core/frontend/src/lang/zh.js @@ -1076,6 +1076,7 @@ export default { message_retention_time: '消息保留时间', log_retention_time: '日志保留时间', ds_sync_log_retention_time: '数据同步日志保留时间', + export_file_retention_time: '后台导出文件保留时间', ds_check_time: '数据源检测时间间隔', test_mail_recipient: '仅用来作为测试邮件收件人', to_enable_tsl: '如果SMTP端口是587,通常需要启用TSL', diff --git a/core/frontend/src/views/system/sysParam/BasicSetting.vue b/core/frontend/src/views/system/sysParam/BasicSetting.vue index a009145813..492b0381d3 100644 --- a/core/frontend/src/views/system/sysParam/BasicSetting.vue +++ b/core/frontend/src/views/system/sysParam/BasicSetting.vue @@ -96,6 +96,18 @@ >{{ $t('components.day') }} + + + +