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.lambdaQuery().eq(ReportFileEntity::getName, getFileName(file))); byte[] content = reportFileEntity.getContent(); return new ByteArrayInputStream(content); } public void deleteReport(String file) { this.service.remove(Wrappers.lambdaUpdate().eq(ReportFileEntity::getName, getFileName(file))); } public List getReportFiles() { List list = this.service.list(); List 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.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; } }