Browse Source

转档模块 增加outputFile记录

songfuqiang 2 years ago
parent
commit
896b162d97

+ 4 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/pojo/MissionFileVO.java

@@ -59,6 +59,10 @@ public class MissionFileVO {
      * 文件大小
      */
     private BigDecimal size;
+    /**
+     * 转档后文件大小
+     */
+    private Integer convertSize;
     /**
      * 源文件类型
      */

+ 5 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/pojo/comPdfKit/FileInfoDto.java

@@ -45,6 +45,11 @@ public class FileInfoDto {
      */
     private String fileSize;
 
+    /**
+     * 转档后文件大小
+     */
+    private String convertSize;
+
     /**
      * 转换消耗时间
      */

+ 16 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/service/OutputFileService.java

@@ -0,0 +1,16 @@
+package cn.kdan.pdf.backend.core.service;
+
+import cn.kdan.pdf.backend.core.model.OutputFiles;
+
+/**
+ * @author : sfq
+ * @date : 2023/1/10 15:00
+ */
+public interface OutputFileService {
+
+    /**
+     * 插入数据
+     */
+    void insert(OutputFiles outputFile);
+
+}

+ 15 - 10
backend-core/src/main/java/cn/kdan/pdf/backend/core/service/impl/MissionServiceImpl.java

@@ -5,10 +5,7 @@ import cn.kdan.pdf.backend.core.constant.MissionConstant;
 import cn.kdan.pdf.backend.core.enums.MissionFileStatusEnum;
 import cn.kdan.pdf.backend.core.enums.SubscriberTypeEnum;
 import cn.kdan.pdf.backend.core.mapper.MissionsMapper;
-import cn.kdan.pdf.backend.core.model.ConvertTypes;
-import cn.kdan.pdf.backend.core.model.Members;
-import cn.kdan.pdf.backend.core.model.MissionFiles;
-import cn.kdan.pdf.backend.core.model.Missions;
+import cn.kdan.pdf.backend.core.model.*;
 import cn.kdan.pdf.backend.core.model.member.MemberInfo;
 import cn.kdan.pdf.backend.core.params.MissionCreateParam;
 import cn.kdan.pdf.backend.core.pojo.ConvertTypeVo;
@@ -18,10 +15,7 @@ import cn.kdan.pdf.backend.core.pojo.comPdfKit.CreateTaskResult;
 import cn.kdan.pdf.backend.core.pojo.comPdfKit.FileInfoDto;
 import cn.kdan.pdf.backend.core.pojo.comPdfKit.QueryTaskInfoResult;
 import cn.kdan.pdf.backend.core.pojo.comPdfKit.WebhookSendDTO;
-import cn.kdan.pdf.backend.core.service.ConvertFileService;
-import cn.kdan.pdf.backend.core.service.MemberService;
-import cn.kdan.pdf.backend.core.service.MissionFilesService;
-import cn.kdan.pdf.backend.core.service.MissionService;
+import cn.kdan.pdf.backend.core.service.*;
 import cn.kdan.pdf.backend.core.utils.ComPdfKitUtils;
 import constant.CommonConstant;
 import exception.BackendRuntimeException;
@@ -38,7 +32,6 @@ import utils.DistributedLocker;
 import utils.JsonUtils;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 import java.util.*;
 
 /**
@@ -60,6 +53,8 @@ public class MissionServiceImpl implements MissionService {
     ConvertFileService convertFileService;
     @Resource
     private DistributedLocker distributedLocker;
+    @Resource
+    private OutputFileService outputFileService;
 
     /**
      * saas任务完成状态
@@ -313,6 +308,16 @@ public class MissionServiceImpl implements MissionService {
                         missionFiles.setStatus(MissionFileStatusEnum.SUCCESS.value());
                         missionFiles.setUpdatedAt(new Date());
                         missionFilesService.update(missionFiles);
+                        OutputFiles outputFile = new OutputFiles();
+                        outputFile.setId(CommonUtils.generateId());
+                        outputFile.setMissionId(missionFiles.getMissionId());
+                        outputFile.setMemberId(members.getId());
+                        outputFile.setMissionFileId(missionFiles.getId());
+                        outputFile.setFileName(missionFiles.getOutFilename());
+                        outputFile.setOriginalFilename(missionFiles.getOriginalFilename());
+                        outputFile.setPath(missionFiles.getPath());
+                        outputFile.setSize(Integer.valueOf(file.getConvertSize()));
+                        outputFileService.insert(outputFile);
                     }
                 }else if ("failed".equals(file.getStatus())){
                     //先查询文件状态是否已更新成失败状态,已更新则不返回券数
@@ -346,7 +351,7 @@ public class MissionServiceImpl implements MissionService {
             missionFiles.setFailReason(file.getFailureReason());
         }
         missionFiles.setPrice(0);
-        missionFiles.setSize(BigDecimal.ZERO);
+//        missionFiles.setSize(BigDecimal.ZERO);
         missionFiles.setUpdatedAt(new Date());
         missionFiles.setConvertEndAt(new Date());
         missionFilesService.update(missionFiles);

+ 27 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/service/impl/OutputFileServiceImpl.java

@@ -0,0 +1,27 @@
+package cn.kdan.pdf.backend.core.service.impl;
+
+import cn.kdan.pdf.backend.core.mapper.OutputFilesMapper;
+import cn.kdan.pdf.backend.core.model.OutputFiles;
+import cn.kdan.pdf.backend.core.service.OutputFileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * @author sfq
+ * @description
+ */
+@Service
+public class OutputFileServiceImpl implements OutputFileService {
+
+    @Autowired
+    private OutputFilesMapper outputFilesMapper;
+
+    @Override
+    public void insert(OutputFiles outputFile) {
+        outputFile.setCreatedAt(new Date());
+        outputFile.setUpdatedAt(new Date());
+        outputFilesMapper.insert(outputFile);
+    }
+}

+ 3 - 1
backend-core/src/main/resources/sqlmap/ext/ExtMissionFilesMapper.xml

@@ -32,12 +32,14 @@
         <result column="ocr_code" jdbcType="VARCHAR" property="ocrCode"/>
         <result column="input_type" jdbcType="VARCHAR" property="inputType"/>
         <result column="output_type" jdbcType="VARCHAR" property="outputType"/>
+        <result column="convert_size" jdbcType="INTEGER" property="convertSize"/>
     </resultMap>
 
     <select id="getMissionFileListWithConvertType" resultMap="BaseResultMap">
-        select mf.*, ct.input_type, ct.output_type
+        select mf.*, o.size as convert_size, ct.input_type, ct.output_type
         from mission_files mf
                  left join convert_types ct on ct.id = mf.convert_type_id
+                 left join output_files o on o.mission_file_id = mf.id
         where mf.member_id = #{memberId}
           and mf.deleted_at is null
           and status not in(0,1)