package com.qianwen.core.report.provider;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
//import com.bstek.ureport.provider.report.ReportFile;
|
//import com.bstek.ureport.provider.report.ReportProvider;
|
import java.io.ByteArrayInputStream;
|
import java.io.InputStream;
|
import java.lang.invoke.SerializedLambda;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import com.qianwen.core.report.entity.ReportFileEntity;
|
import com.qianwen.core.report.props.ReportDatabaseProperties;
|
import com.qianwen.core.report.service.IReportFileService;
|
import com.qianwen.core.tool.utils.DateUtil;
|
|
/* loaded from: blade-starter-report-9.3.0.0-SNAPSHOT.jar:org/springblade/core/report/provider/DatabaseProvider.class */
|
public class DatabaseProvider {// implements ReportProvider
|
private final ReportDatabaseProperties properties;
|
private final IReportFileService service;
|
|
public DatabaseProvider(final ReportDatabaseProperties properties, final IReportFileService service) {
|
this.properties = properties;
|
this.service = service;
|
}
|
|
public InputStream loadReport(String file) {
|
ReportFileEntity reportFileEntity = (ReportFileEntity)this.service.getOne(Wrappers.<ReportFileEntity>lambdaQuery().eq(ReportFileEntity::getName, getFileName(file)));
|
byte[] content = reportFileEntity.getContent();
|
return new ByteArrayInputStream(content);
|
}
|
|
public void deleteReport(String file) {
|
this.service.remove(Wrappers.<ReportFileEntity>lambdaUpdate().eq(ReportFileEntity::getName, getFileName(file)));
|
}
|
/*
|
public List<ReportFile> getReportFiles() {
|
List<ReportFileEntity> list = this.service.list();
|
List<ReportFile> reportFiles = new ArrayList<>();
|
list.forEach(reportFileEntity -> reportFiles.add(new ReportFile(reportFileEntity.getName(), reportFileEntity.getUpdateTime())));
|
return reportFiles;
|
}*/
|
|
public void saveReport(String file, String content) {
|
String fileName = getFileName(file);
|
ReportFileEntity reportFileEntity = (ReportFileEntity)this.service.getOne(Wrappers.<ReportFileEntity>lambdaQuery().eq(ReportFileEntity::getName, fileName));
|
Date now = DateUtil.now();
|
if (reportFileEntity == null) {
|
reportFileEntity = new ReportFileEntity();
|
reportFileEntity.setName(fileName);
|
reportFileEntity.setContent(content.getBytes());
|
reportFileEntity.setCreateTime(now);
|
reportFileEntity.setIsDeleted(Integer.valueOf(0));
|
} else {
|
reportFileEntity.setContent(content.getBytes());
|
}
|
reportFileEntity.setUpdateTime(now);
|
this.service.saveOrUpdate(reportFileEntity);
|
}
|
|
public String getName() {
|
return this.properties.getName();
|
}
|
|
public boolean disabled() {
|
return this.properties.isDisabled();
|
}
|
|
public String getPrefix() {
|
return this.properties.getPrefix();
|
}
|
|
private String getFileName(String name) {
|
if (name.startsWith(getPrefix()))
|
name = name.substring(getPrefix().length());
|
return name;
|
}
|
}
|