From 9b4433fddf5b401edb0aace8a404ac733b122702 Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期四, 03 四月 2025 14:35:02 +0800 Subject: [PATCH] 添加非密字段显示 --- Source/BladeX-Tool/blade-starter-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 111 insertions(+), 0 deletions(-) diff --git a/Source/BladeX-Tool/blade-starter-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java b/Source/BladeX-Tool/blade-starter-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java new file mode 100644 index 0000000..2790e2e --- /dev/null +++ b/Source/BladeX-Tool/blade-starter-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 搴勯獮 (smallchill@163.com) + */ +package org.springblade.core.report.provider; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.bstek.ureport.provider.report.ReportFile; +import com.bstek.ureport.provider.report.ReportProvider; +import lombok.AllArgsConstructor; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.report.entity.ReportFileEntity; +import org.springblade.core.report.props.ReportDatabaseProperties; +import org.springblade.core.report.service.IReportFileService; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 鏁版嵁搴撴枃浠跺鐞� + * + * @author Chill + */ +@AllArgsConstructor +public class DatabaseProvider implements ReportProvider { + + private final ReportDatabaseProperties properties; + private final IReportFileService service; + + @Override + public InputStream loadReport(String file) { + ReportFileEntity reportFileEntity = service.getOne(Wrappers.<ReportFileEntity>lambdaQuery().eq(ReportFileEntity::getName, getFileName(file))); + byte[] content = reportFileEntity.getContent(); + return new ByteArrayInputStream(content); + } + + @Override + public void deleteReport(String file) { + service.remove(Wrappers.<ReportFileEntity>lambdaUpdate().eq(ReportFileEntity::getName, getFileName(file))); + } + + @Override + public List<ReportFile> getReportFiles() { + List<ReportFileEntity> list = service.list(); + List<ReportFile> reportFiles = new ArrayList<>(); + list.forEach(reportFileEntity -> reportFiles.add(new ReportFile(reportFileEntity.getName(), reportFileEntity.getUpdateTime()))); + return reportFiles; + } + + @Override + public void saveReport(String file, String content) { + String fileName = getFileName(file); + ReportFileEntity reportFileEntity = 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(BladeConstant.DB_NOT_DELETED); + } else { + reportFileEntity.setContent(content.getBytes()); + } + reportFileEntity.setUpdateTime(now); + service.saveOrUpdate(reportFileEntity); + } + + @Override + public String getName() { + return properties.getName(); + } + + @Override + public boolean disabled() { + return properties.isDisabled(); + } + + @Override + public String getPrefix() { + return properties.getPrefix(); + } + + /** + * 鑾峰彇鏍囧噯鏍煎紡鏂囦欢鍚� + * + * @param name 鍘熸枃浠跺悕 + */ + private String getFileName(String name) { + if (name.startsWith(getPrefix())) { + name = name.substring(getPrefix().length()); + } + return name; + } + +} -- Gitblit v1.9.3