yangys
2024-05-18 cc0bdfb33ef638dfafe3185c92c7076d815e1c9b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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;
      }
}