Преглед изворни кода

FileMetaMapper 添加 countByObjectNamePrefix 方法

reghao пре 1 година
родитељ
комит
ccb45e946a

+ 2 - 1
oss-api/src/main/java/cn/reghao/oss/api/iface/StoreService.java

@@ -18,7 +18,8 @@ import java.util.List;
  * @date 2023-08-01 14:51:50
  */
 public interface StoreService {
-    void createChannel(String channelPrefix);
+    void createChannel(String channelPrefix, int scope);
+    int countChannelObjects(String channelPrefix, int userId);
     List<DiskVolume> getDiskVolumes();
     String getUploadToken(int channelId, int loginUser, int expire);
 

+ 0 - 34
oss-api/src/main/java/cn/reghao/oss/api/iface/StoreServiceWrapper.java

@@ -1,34 +0,0 @@
-package cn.reghao.oss.api.iface;
-
-import cn.reghao.oss.api.dto.ObjectInfo;
-import cn.reghao.oss.api.dto.disk.DiskVolume;
-import cn.reghao.oss.api.dto.media.AudioInfo;
-import cn.reghao.oss.api.dto.media.ConvertedImageInfo;
-import cn.reghao.oss.api.dto.media.ImageInfo;
-import cn.reghao.oss.api.dto.media.VideoInfo;
-
-import java.util.List;
-
-/**
- * 对 oss-store 进行操作
- * 第三方通过 oss-console 调用
- *
- * @author reghao
- * @date 2024-04-23 15:14:06
- */
-public interface StoreServiceWrapper {
-    Integer getChannelScope(int channelId);
-    void createChannel(int channelId, String channelPrefix);
-    List<DiskVolume> getDiskVolumes(int channelId);
-
-    void setObjectScope(int channelId, String objectId, int scope);
-    void deleteByObjectId(int channelId, String objectId);
-    void deleteByObjectUrl(String objectUrl);
-    ObjectInfo getObjectInfo(int channelId, String objectId);
-    String getSignedUrl(int channelId, String objectId);
-
-    VideoInfo getVideoInfo(int channelId, String objectId);
-    ImageInfo getImageInfo(int channelId, String objectId);
-    ConvertedImageInfo getWebpInfo(int channelId, String objectId);
-    AudioInfo getAudioInfo(int channelId, String objectId);
-}

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

@@ -17,6 +17,7 @@ import java.util.List;
 public interface FileMetaMapper extends BaseMapper<FileMeta> {
     void updateScopeByObjectName(@Param("scope") int scope, @Param("objectName") String objectName);
 
+    int countByObjectNamePrefix(@Param("objectName") String objectName, @Param("uploadBy") int uploadBy);
     FileMeta findBySha256sum(String sha256sum);
     FileMeta findByObjectName(String objectName);
     FileMeta findByObjectId(String objectId);

+ 4 - 0
oss-store/src/main/java/cn/reghao/oss/store/db/repository/ObjectRepository.java

@@ -70,6 +70,10 @@ public class ObjectRepository {
         dataBlockMapper.delete(dataBlock);
     }
 
+    public int countByObjectNamePrefix(String objectName, int uploadBy) {
+        return fileMetaMapper.countByObjectNamePrefix(objectName, uploadBy);
+    }
+
     public FileMeta getByObjectName(String objectName) {
         return fileMetaMapper.findByObjectName(objectName);
     }

+ 17 - 2
oss-store/src/main/java/cn/reghao/oss/store/rpc/StoreServiceImpl.java

@@ -62,8 +62,18 @@ public class StoreServiceImpl implements StoreService {
     }
 
     @Override
-    public void createChannel(String channelPrefix) {
-        objectNameService.createParentDirs(channelPrefix, ObjectScope.PUBLIC.getCode());
+    public void createChannel(String channelPrefix, int scope) {
+        ObjectScope objectScope = ObjectScope.getByCode(scope);
+        if (objectScope == null) {
+        }
+
+        objectNameService.createParentDirs(channelPrefix, scope);
+    }
+
+    @Override
+    public int countChannelObjects(String channelPrefix, int userId) {
+        int total = objectRepository.countByObjectNamePrefix(channelPrefix, userId);
+        return total;
     }
 
     @Override
@@ -119,6 +129,11 @@ public class StoreServiceImpl implements StoreService {
             return null;
         }
 
+        return getObjectInfo(fileMeta);
+    }
+
+    private ObjectInfo getObjectInfo(FileMeta fileMeta) {
+        String objectId = fileMeta.getObjectId();
         String objectName = fileMeta.getObjectName();
         int fileType = fileMeta.getFileType();
         String filename = fileMeta.getFilename();

+ 5 - 0
oss-store/src/main/resources/mapper/FileMetaMapper.xml

@@ -77,6 +77,11 @@
         limit #{max}
     </select>
 
+    <select id="countByObjectNamePrefix" resultType="java.lang.Integer">
+        select count(*)
+        from file_meta
+        where file_type!=1000 and object_name like concat(#{objectName},'%') and upload_by=#{uploadBy};
+    </select>
     <select id="findBySha256sum" resultType="cn.reghao.oss.store.model.po.FileMeta">
         select * from file_meta
         where sha256sum=#{sha256sum}