From 4c60abde233ac606a8f9cfb8484f54337a239874 Mon Sep 17 00:00:00 2001 From: Mzaxd Date: Fri, 28 Apr 2023 09:09:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A1=A5=E6=8A=A5=E8=A1=A8=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E8=A1=A8=E7=9A=84=E7=9B=B8=E5=85=B3Service=20Dao?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/report/dao/mysql/ReportContentDao.java | 18 ++++ .../adc/da/report/eo/ReportContentEntity.java | 46 +++++++++++ .../report/service/IReportContentService.java | 24 ++++++ .../impl/IReportContentServiceImpl.java | 82 +++++++++++++++++++ 4 files changed, 170 insertions(+) create mode 100644 adc-da-report/src/main/java/com/adc/da/report/dao/mysql/ReportContentDao.java create mode 100644 adc-da-report/src/main/java/com/adc/da/report/eo/ReportContentEntity.java create mode 100644 adc-da-report/src/main/java/com/adc/da/report/service/IReportContentService.java create mode 100644 adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java diff --git a/adc-da-report/src/main/java/com/adc/da/report/dao/mysql/ReportContentDao.java b/adc-da-report/src/main/java/com/adc/da/report/dao/mysql/ReportContentDao.java new file mode 100644 index 0000000..5ff3602 --- /dev/null +++ b/adc-da-report/src/main/java/com/adc/da/report/dao/mysql/ReportContentDao.java @@ -0,0 +1,18 @@ +package com.adc.da.report.dao.mysql; + +import com.adc.da.report.eo.ReportContentEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author ThinkBook +* @description 针对表【ts_report_content】的数据库操作Mapper +* @createDate 2023-04-27 11:48:22 +* @Entity com.adc.da.report.eo.ReportContentEntity +*/ +public interface ReportContentDao extends BaseMapper { + +} + + + + diff --git a/adc-da-report/src/main/java/com/adc/da/report/eo/ReportContentEntity.java b/adc-da-report/src/main/java/com/adc/da/report/eo/ReportContentEntity.java new file mode 100644 index 0000000..86feeb8 --- /dev/null +++ b/adc-da-report/src/main/java/com/adc/da/report/eo/ReportContentEntity.java @@ -0,0 +1,46 @@ +package com.adc.da.report.eo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +/** + * + * @author Caihaohan + * @TableName ts_report_content + */ +@TableName(value ="ts_report_content") +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = true) +public class ReportContentEntity implements Serializable { + + /** + * 主键id + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 报告id + */ + @TableField(value = "report_id") + private String reportId; + + /** + * 文件内容 + */ + @TableField(value = "report_content") + private String reportContent; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/adc-da-report/src/main/java/com/adc/da/report/service/IReportContentService.java b/adc-da-report/src/main/java/com/adc/da/report/service/IReportContentService.java new file mode 100644 index 0000000..37ce02d --- /dev/null +++ b/adc-da-report/src/main/java/com/adc/da/report/service/IReportContentService.java @@ -0,0 +1,24 @@ +package com.adc.da.report.service; + +import com.adc.da.report.eo.ReportContentEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.io.FileNotFoundException; +import java.io.IOException; + +/** +* @author ThinkBook +* @description 针对表【ts_report_content】的数据库操作Service +* @createDate 2023-04-27 11:48:22 +*/ +public interface IReportContentService extends IService { + + + /** + * 插入报告内容表 + * + * @param reportId 报告id + * @param fileId 文件id + */ + void insertReportContent(String reportId, String fileId) throws IOException; +} diff --git a/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java new file mode 100644 index 0000000..d0a545e --- /dev/null +++ b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java @@ -0,0 +1,82 @@ +package com.adc.da.report.service.impl; + +import com.adc.da.report.dao.mysql.FileDao; +import com.adc.da.report.eo.FileEntity; +import com.adc.da.report.util.FileContentUtil; +import com.adc.da.report.util.LocalFileUtil; +import com.adc.da.report.util.OSSClientUtil; +import com.adc.da.report.util.ObsBootUtil; +import com.adc.da.util.utils.FileUtil; +import com.adc.da.util.utils.UUID; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.adc.da.report.eo.ReportContentEntity; +import com.adc.da.report.service.IReportContentService; +import com.adc.da.report.dao.mysql.ReportContentDao; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +/** +* @author Caihaohan +* @description 针对表【ts_report_content】的数据库操作Service实现 +* @createDate 2023-04-27 11:48:22 +*/ +@Service +@Slf4j +public class IReportContentServiceImpl extends ServiceImpl + implements IReportContentService { + + @Value("${uploadFile}") + private String uploadFile; + + @Value("${uploadType}") + private String uploadType; + + @Resource + private OSSClientUtil ossClientUtil; + + @Resource + private ObsBootUtil obsBootUtil; + + @Resource + private LocalFileUtil localFileUtil; + + @Resource + private FileDao fileDao; + + @Override + @Transactional(rollbackFor = Exception.class) + public void insertReportContent(String reportId, String fileId) throws IOException { + //获取文件 + FileEntity fileEntity = fileDao.selectById(fileId); + String path = uploadFile + fileEntity.getSavePath(); + FileOutputStream outputStream = new FileOutputStream(path); + // 上传方式:阿里云:alioss 华为云:hwobs + if ("hwobs".equals(uploadType)) { + obsBootUtil.getFileFromOBS(fileEntity.getSavePath(), outputStream); + } else if ("alioss".equals(uploadType)) { + ossClientUtil.getFileFromOSS(fileEntity.getSavePath(), outputStream); + } else if ("local".equals(uploadType)) { + localFileUtil.getFileFromLocal(fileEntity.getSavePath(), outputStream); + } + File file = new File(path); + //解析出内容 + String content = FileContentUtil.readFileContent(file); + //将内容存入 + ReportContentEntity reportContentEntity = new ReportContentEntity(UUID.randomUUID10(), reportId, content); + save(reportContentEntity); + //将文件删除 + FileUtil.deleteFile(path); + } +} + + + +