Merge pull request #12580 from dataease/pr@dev@fixExportdata

Pr@dev@fix exportdata
This commit is contained in:
taojinlong 2024-10-09 10:43:34 +08:00 committed by GitHub
commit 1e7eefa274
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 30 additions and 5 deletions

View File

@ -21,4 +21,6 @@ public class DatasetTaskGridRequest extends KeywordRequest {
private String id;
private Long userId;
private String datasetId;
}

View File

@ -5,12 +5,18 @@ import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.List;
@Getter
@Setter
public class PgConfiguration extends JdbcConfiguration {
private String driver = "org.postgresql.Driver";
private String extraParams = "";
private List<String> illegalParameters = Arrays.asList("socketFactory", "socketFactoryArg", "sslfactory", "sslfactoryarg", "loggerLevel", "loggerFile", "allowUrlInLocalInfile", "allowLoadLocalInfileInPath");
public String getJdbc() {
if (StringUtils.isEmpty(extraParams.trim())) {
@ -27,6 +33,11 @@ public class PgConfiguration extends JdbcConfiguration {
.replace("SCHEMA", getSchema().trim());
}
} else {
for (String illegalParameter : illegalParameters) {
if (getExtraParams().toLowerCase().contains(illegalParameter.toLowerCase()) || URLDecoder.decode(getExtraParams()).contains(illegalParameter.toLowerCase())) {
throw new RuntimeException("Illegal parameter: " + illegalParameter);
}
}
return "jdbc:postgresql://HOSTNAME:PORT/DATABASE?EXTRA_PARAMS"
.replace("HOSTNAME", getHost().trim())
.replace("PORT", getPort().toString().trim())

View File

@ -23,6 +23,8 @@ public interface ExtDataSetTaskMapper {
List<DataSetTaskDTO> userTaskList(DatasetTaskGridRequest request);
String datasetPrivileges(DatasetTaskGridRequest request);
List<DataSetTaskDTO> taskWithTriggers(DatasetTaskGridRequest request);
List<DataSetTaskDTO> findByPanelId(@Param("panelId") String panelId);

View File

@ -136,9 +136,12 @@
</select>
<select id="datasetPrivileges" resultType="String" parameterType="io.dataease.controller.dataset.request.DatasetTaskGridRequest">
SELECT get_auths(#{datasetId}, 'dataset', #{userId})
</select>
<select id="userTaskList" resultMap="TaskResult" parameterType="io.dataease.controller.dataset.request.DatasetTaskGridRequest">
SELECT dataset_table.name as table_name, get_auths(dataset_table_task.table_id,'dataset', #{userId}) as
`privileges`,dataset_table_task.* , qrtz_triggers.NEXT_FIRE_TIME
SELECT dataset_table.name as table_name,dataset_table_task.* , qrtz_triggers.NEXT_FIRE_TIME
FROM dataset_table_task
left join dataset_table on dataset_table.id=dataset_table_task.table_id
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME and qrtz_triggers.TRIGGER_STATE != 'PAUSED'

View File

@ -145,6 +145,8 @@ public class DorisQueryProvider extends QueryProvider {
if (f.getDeExtractType() == 1) {
if (f.getDeType() == 2 || f.getDeType() == 3) {
fieldName = String.format(DorisConstants.UNIX_TIMESTAMP, originField) + "*1000";
} else if (f.getDeType().equals(DeTypeConstants.DE_STRING)) {
fieldName = String.format(DorisConstants.CAST, originField, DorisConstants.VARCHAR);
} else {
fieldName = originField;
}

View File

@ -271,7 +271,12 @@ public class DataSetTableTaskService {
return extDataSetTaskMapper.taskList(request);
} else {
request.setUserId(AuthUtils.getUser().getUserId());
return extDataSetTaskMapper.userTaskList(request);
List<DataSetTaskDTO> dataSetTaskDTOS = extDataSetTaskMapper.userTaskList(request);
dataSetTaskDTOS.forEach(dataSetTaskDTO -> {
request.setDatasetId(dataSetTaskDTO.getId());
dataSetTaskDTO.setPrivileges(extDataSetTaskMapper.datasetPrivileges(request));
});
return dataSetTaskDTOS;
}
}
@ -312,10 +317,10 @@ public class DataSetTableTaskService {
record.setStatus(datasetTableTask.getStatus());
datasetTableTaskMapper.updateByExampleSelective(record, datasetTableTaskExample);
if(datasetTableTask.getStatus().equalsIgnoreCase(TaskStatus.Pending.name())){
if (datasetTableTask.getStatus().equalsIgnoreCase(TaskStatus.Pending.name())) {
scheduleService.pauseTrigger(datasetTableTask);
}
if(datasetTableTask.getStatus().equalsIgnoreCase(TaskStatus.Underway.name())){
if (datasetTableTask.getStatus().equalsIgnoreCase(TaskStatus.Underway.name())) {
scheduleService.resumeTrigger(datasetTableTask);
}
}