24282 2 năm trước cách đây
mục cha
commit
e635b83006

+ 1 - 1
hx-file/src/main/java/com/fjhx/file/entity/FileInfo.java

@@ -36,6 +36,6 @@ public class FileInfo extends BasePo {
     /**
      * 业务类型
      */
-    private Byte businessType;
+    private Integer businessType;
 
 }

+ 20 - 0
hx-file/src/main/java/com/fjhx/file/entity/ObsFile.java

@@ -0,0 +1,20 @@
+package com.fjhx.file.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ObsFile {
+
+    /**
+     * 文件id
+     */
+    private Long id;
+
+    /**
+     * 文件链接
+     */
+    private String fileUrl;
+
+}

+ 2 - 2
hx-file/src/main/java/com/fjhx/file/service/FileInfoService.java

@@ -1,7 +1,7 @@
 package com.fjhx.file.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
 import com.fjhx.file.entity.*;
+import com.ruoyi.common.core.service.BaseService;
 
 import java.util.List;
 
@@ -13,7 +13,7 @@ import java.util.List;
  * @author
  * @since 2023-03-14
  */
-public interface FileInfoService extends IService<FileInfo> {
+public interface FileInfoService extends BaseService<FileInfo> {
 
     /**
      * 获取前端直传签名

+ 97 - 0
hx-file/src/main/java/com/fjhx/file/util/ObsFileUtil.java

@@ -0,0 +1,97 @@
+package com.fjhx.file.util;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.fjhx.file.entity.FileInfo;
+import com.fjhx.file.entity.ObsFile;
+import com.fjhx.file.service.FileInfoService;
+import com.ruoyi.common.core.domain.BaseIdPo;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class ObsFileUtil {
+
+    private static final FileInfoService fileInfoService = SpringUtil.getBean(FileInfoService.class);
+    private static int defaultFileType = 0;
+
+    /**
+     * 保存文件
+     *
+     * @param obsFileList  文件列表
+     * @param businessId   业务id
+     * @param businessType 业务文件类型
+     */
+    private void saveFile(List<ObsFile> obsFileList, Long businessId, Integer businessType) {
+        if (obsFileList.size() == 0) {
+            return;
+        }
+
+        List<FileInfo> fileInfoList = BeanUtil.copyToList(obsFileList, FileInfo.class);
+        for (FileInfo fileInfo : fileInfoList) {
+            fileInfo.setBusinessId(businessId);
+            fileInfo.setBusinessType(businessType);
+        }
+        fileInfoService.updateBatchById(fileInfoList);
+    }
+
+    /**
+     * 保存文件
+     *
+     * @param obsFileList 文件列表
+     * @param businessId  业务id
+     */
+    private void saveFile(List<ObsFile> obsFileList, Long businessId) {
+        this.saveFile(obsFileList, businessId, defaultFileType);
+    }
+
+    /**
+     * 更新文件
+     *
+     * @param obsFileList  文件列表
+     * @param businessId   业务id
+     * @param businessType 业务文件类型
+     */
+    private void editFile(List<ObsFile> obsFileList, Long businessId, Integer businessType) {
+        if (obsFileList.size() == 0) {
+            return;
+        }
+
+        // 删除不包含在此列表的业务id文件
+        List<Long> obsFileId = obsFileList.stream().map(ObsFile::getId).collect(Collectors.toList());
+        fileInfoService.remove(q -> q.notIn(BaseIdPo::getId, obsFileId).eq(FileInfo::getBusinessId, businessId));
+
+        // 更新在此列表的文件
+        this.saveFile(obsFileList, businessId, businessType);
+    }
+
+    /**
+     * 更新文件
+     *
+     * @param obsFileList 文件列表
+     * @param businessId  业务id
+     */
+    private void editFile(List<ObsFile> obsFileList, Long businessId) {
+        this.editFile(obsFileList, businessId, defaultFileType);
+    }
+
+    /**
+     * 删除文件
+     *
+     * @param businessId   业务id
+     * @param businessType 业务文件类型
+     */
+    private void removeFile(Long businessId, Integer businessType) {
+        fileInfoService.remove(q -> q.eq(FileInfo::getBusinessId, businessId).eq(FileInfo::getBusinessType, businessType));
+    }
+
+    /**
+     * 删除文件
+     *
+     * @param businessId 业务id
+     */
+    private void removeFile(Long businessId) {
+        fileInfoService.remove(q -> q.eq(FileInfo::getBusinessId, businessId));
+    }
+
+}

+ 1 - 0
hx-file/src/main/resources/mapper/FileInfoMapper.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.file.mapper.FileInfoMapper">
+    
     <select id="getList" resultType="com.fjhx.file.entity.FileInfoVo">
         select fi.id,
                fi.url,