Procházet zdrojové kódy

更新 FileInfo 中的字段

reghao před 1 rokem
rodič
revize
3e897fa896

+ 6 - 9
oss-api/src/main/java/cn/reghao/oss/api/dto/FileInfo.java

@@ -1,27 +1,24 @@
 package cn.reghao.oss.api.dto;
 
+import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 import java.io.Serializable;
-import java.time.LocalDateTime;
 
 /**
  * @author reghao
  * @date 2024-07-11 16:42:40
  */
+@AllArgsConstructor
 @Getter
 public class FileInfo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private String objectId;
     private String objectName;
-    private Integer fileType;
+    private int fileType;
+    private String fileTypeStr;
     private String filename;
-    private Long size;
-    private Integer storageType;
-    private LocalDateTime updateTime;
-
-    public FileInfo() {
-        this.storageType = 1;
-    }
+    private String size;
+    private String updateTime;
 }

+ 1 - 2
oss-store/src/main/java/cn/reghao/oss/store/db/mapper/FileMetaMapper.java

@@ -1,7 +1,6 @@
 package cn.reghao.oss.store.db.mapper;
 
 import cn.reghao.jutil.jdk.db.Page;
-import cn.reghao.oss.api.dto.FileInfo;
 import cn.reghao.oss.store.model.po.FileMeta;
 import cn.reghao.oss.api.dto.ObjectMeta;
 import cn.reghao.jutil.jdk.db.BaseMapper;
@@ -26,7 +25,7 @@ public interface FileMetaMapper extends BaseMapper<FileMeta> {
     ObjectMeta findObjectMetaByName(@Param("objectName") String objectName, @Param("owner") int owner);
     ObjectMeta findObjectMetaById(String objectId);
     int countByPid(String pid);
-    List<FileInfo> findPidByPage(Page page, @Param("pid") String pid);
+    List<FileMeta> findPidByPage(Page page, @Param("pid") String pid);
 
     /******************************************************************************************************************/
     List<FileMeta> findAll0(@Param("objectId") String objectId, @Param("max") Integer max, @Param("regex") String regex);

+ 19 - 11
oss-store/src/main/java/cn/reghao/oss/store/db/repository/ObjectRepository.java

@@ -1,6 +1,10 @@
 package cn.reghao.oss.store.db.repository;
 
+import cn.reghao.jutil.jdk.converter.ByteConverter;
+import cn.reghao.jutil.jdk.converter.ByteType;
+import cn.reghao.jutil.jdk.converter.DateTimeConverter;
 import cn.reghao.jutil.jdk.db.Page;
+import cn.reghao.oss.api.constant.ObjectType;
 import cn.reghao.oss.api.dto.FileInfo;
 import cn.reghao.oss.api.iface.ConsoleService;
 import cn.reghao.oss.store.db.mapper.DataBlockMapper;
@@ -29,6 +33,7 @@ public class ObjectRepository {
     private final FileMetaMapper fileMetaMapper;
     private final DataBlockMapper dataBlockMapper;
     private ConsoleService consoleService;
+    private ByteConverter byteConverter = new ByteConverter();
 
     public ObjectRepository(FileMetaMapper fileMetaMapper, DataBlockMapper dataBlockMapper) {
         this.fileMetaMapper = fileMetaMapper;
@@ -107,8 +112,19 @@ public class ObjectRepository {
 
     public List<FileInfo> getObjectsByPage(String pid, int pn, int ps) {
         Page page = new Page(pn, ps);
-        List<FileInfo> list = fileMetaMapper.findPidByPage(page, pid);
-        return list;
+        List<FileMeta> list = fileMetaMapper.findPidByPage(page, pid);
+        return list.stream().map(this::getFileInfo).collect(Collectors.toList());
+    }
+
+    private FileInfo getFileInfo(FileMeta fileMeta) {
+        String objectId = fileMeta.getObjectId();
+        String objectName = fileMeta.getObjectName();
+        int fileType = fileMeta.getFileType();
+        String fileTypeStr = ObjectType.getDescByCode(fileMeta.getFileType());
+        String filename = fileMeta.getFilename();
+        String size = byteConverter.convert(ByteType.Bytes, fileMeta.getSize());
+        String updateTime = DateTimeConverter.format(fileMeta.getUpdateTime());
+        return new FileInfo(objectId, objectName, fileType, fileTypeStr, filename, size, updateTime);
     }
 
     List<FileInfo> getObjects() {
@@ -128,14 +144,6 @@ public class ObjectRepository {
             list = fileMetaMapper.findAll2(bucket, prefix, startAfter, maxKeys);
         }
 
-        return list.stream().map(fileMeta -> {
-            String objectId = fileMeta.getObjectId();
-            String objectName = fileMeta.getObjectName();
-            int fileType = fileMeta.getFileType();
-            String filename = fileMeta.getFilename();
-            long size = fileMeta.getSize();
-            LocalDateTime updateTime = fileMeta.getUpdateTime();
-            return new FileInfo();
-        }).collect(Collectors.toList());
+        return list.stream().map(this::getFileInfo).collect(Collectors.toList());
     }
 }

+ 3 - 1
oss-store/src/main/java/cn/reghao/oss/store/rpc/StoreServiceImpl.java

@@ -123,7 +123,9 @@ public class StoreServiceImpl implements StoreService {
     @Override
     public void deleteByObjectName(String objectName, int owner) {
         FileMeta fileMeta = objectRepository.getByObjectName(objectName, owner);
-        objectRepository.updateSetDelete(fileMeta);
+        if (fileMeta != null) {
+            objectRepository.updateSetDelete(fileMeta);
+        }
 //        objectRepository.deleteObject(fileMeta);
     }
 

+ 2 - 8
oss-store/src/main/resources/mapper/FileMetaMapper.xml

@@ -136,20 +136,14 @@
             #{id}
         </foreach>
     </select>
-    <select id="findByPid" resultType="cn.reghao.oss.api.dto.FileInfo">
-        select size,object_name,object_id,file_type,filename,update_time
-        from file_meta
-        where deleted=0 and pid=#{pid}
-        limit #{pageSize}
-    </select>
 
     <select id="countByPid" resultType="java.lang.Integer">
         select count(*)
         from file_meta
         where deleted=0 and pid=#{pid}
     </select>
-    <select id="findPidByPage" resultType="cn.reghao.oss.api.dto.FileInfo">
-        select size,object_name,object_id,file_type,filename,update_time
+    <select id="findPidByPage" resultType="cn.reghao.oss.store.model.po.FileMeta">
+        select *
         from file_meta
         where deleted=0 and pid=#{pid}
     </select>