Browse Source

媒体文件处理 1.文件夹容量计算优化

S0025136190 1 year ago
parent
commit
c49c1f5f31

+ 13 - 0
Backend/sample/src/main/java/com/dji/sample/media/dao/IFileSumMapper.java

@@ -0,0 +1,13 @@
+package com.dji.sample.media.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dji.sample.media.model.MediaFileEntity;
+import com.dji.sample.media.model.MediaFileSumEntity;
+
+/**
+ * @author hqjiang
+ * @version 1.0
+ * @date 2024/7/9
+ */
+public interface IFileSumMapper extends BaseMapper<MediaFileSumEntity> {
+}

+ 0 - 5
Backend/sample/src/main/java/com/dji/sample/media/model/MediaFileEntity.java

@@ -126,10 +126,5 @@ public class MediaFileEntity implements Serializable {
     @TableField("duration_seconds")
     private Integer durationSeconds;
 
-    @TableField("sum(size)")
-    private Long sumSize;
-
-
-
 }
 

+ 32 - 0
Backend/sample/src/main/java/com/dji/sample/media/model/MediaFileSumEntity.java

@@ -0,0 +1,32 @@
+package com.dji.sample.media.model;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author sean
+ * @version 0.2
+ * @date 2021/12/9
+ */
+@TableName(value = "media_file")
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class MediaFileSumEntity implements Serializable {
+    @TableField("dir_id")
+    private Integer dirId;
+
+    @TableField("sum(size)")
+    private Long sumSize;
+
+
+
+}
+

+ 20 - 14
Backend/sample/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java

@@ -13,6 +13,7 @@ import com.dji.sample.manage.model.dto.DeviceDictionaryDTO;
 import com.dji.sample.manage.service.IDeviceDictionaryService;
 import com.dji.sample.map.model.param.MediaFileQueryParam;
 import com.dji.sample.media.dao.IFileMapper;
+import com.dji.sample.media.dao.IFileSumMapper;
 import com.dji.sample.media.model.*;
 import com.dji.sample.media.service.IFileService;
 import com.dji.sample.media.service.IMediaDirService;
@@ -58,6 +59,9 @@ public class FileServiceImpl implements IFileService {
     @Autowired
     private IFileMapper mapper;
 
+    @Autowired
+    private IFileSumMapper sumMapper;
+
     @Autowired
     private IDeviceDictionaryService deviceDictionaryService;
 
@@ -393,16 +397,18 @@ public class FileServiceImpl implements IFileService {
     }
 
     private MediaTypeEnum convertMediaType(MediaFileEntity entity) {
-        if(entity.getMediaType().startsWith(IMAGE)) {
-            if(entity.getIsOriginal()) {
-                return MediaTypeEnum.PIC_ORIGIN;
-            } else {
-                return MediaTypeEnum.PIC_SHOT;
+        if(StringUtils.hasText(entity.getMediaType())) {
+            if (entity.getMediaType().startsWith(IMAGE)) {
+                if (entity.getIsOriginal()) {
+                    return MediaTypeEnum.PIC_ORIGIN;
+                } else {
+                    return MediaTypeEnum.PIC_SHOT;
+                }
+            } else if (entity.getMediaType().startsWith(VIDEO)) {
+                return MediaTypeEnum.VIDEO;
+            } else if (entity.getMediaType().startsWith("jfif")) {
+                return MediaTypeEnum.PIC_PANORAMA;
             }
-        } else if(entity.getMediaType().startsWith(VIDEO)) {
-            return MediaTypeEnum.VIDEO;
-        } else if(entity.getMediaType().startsWith("jfif")) {
-            return MediaTypeEnum.PIC_PANORAMA;
         }
         return MediaTypeEnum.UNKNOWN;
     }
@@ -530,12 +536,12 @@ public class FileServiceImpl implements IFileService {
 
     @Override
     public Map<Integer, Long> getParentDirSize(List<Integer> dirIds) {
-        return mapper.selectList( new LambdaQueryWrapper<MediaFileEntity>()
-                .select(MediaFileEntity::getDirId,MediaFileEntity::getSumSize)
-                .in(MediaFileEntity::getDirId, dirIds)
-                .groupBy(MediaFileEntity::getDirId)
+        return sumMapper.selectList( new LambdaQueryWrapper<MediaFileSumEntity>()
+                .select(MediaFileSumEntity::getDirId,MediaFileSumEntity::getSumSize)
+                .in(MediaFileSumEntity::getDirId, dirIds)
+                .groupBy(MediaFileSumEntity::getDirId)
                 ).stream()
-                .collect(Collectors.toMap(a -> a.getDirId(), MediaFileEntity::getSumSize));
+                .collect(Collectors.toMap(a -> a.getDirId(), MediaFileSumEntity::getSumSize));
     }
 
 }