Forráskód Böngészése

只有 file-service 依赖 oss-sdk, 并且只有 file-service 会使用 cn.reghao.oss.api 包中的类

reghao 1 hónapja
szülő
commit
7a671de26d
45 módosított fájl, 358 hozzáadás és 594 törlés
  1. 9 9
      content/content-service/src/main/java/cn/reghao/tnb/content/app/chat/service/ChatMessageService.java
  2. 0 47
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/controller/AudioController.java
  3. 0 54
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/controller/AudioPostController.java
  4. 0 20
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/mapper/AudioFileMapper.java
  5. 0 26
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/mapper/AudioPostMapper.java
  6. 0 38
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/repository/AudioRepository.java
  7. 24 0
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/model/dto/ImageUrlDto.java
  8. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/model/vo/StatusCard.java
  9. 0 74
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/service/AudioService.java
  10. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/service/ImagePostService.java
  11. 4 4
      content/content-service/src/main/java/cn/reghao/tnb/content/app/mall/service/ProductService.java
  12. 2 2
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/controller/VideoPostController.java
  13. 1 3
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/mapper/VideoFileMapper.java
  14. 3 3
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/mapper/VideoPostMapper.java
  15. 5 5
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/repository/VideoRepository.java
  16. 24 0
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/dto/VideoUrlDto.java
  17. 8 8
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/po/PostItem.java
  18. 16 16
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/po/VideoFile.java
  19. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/AdminVodService.java
  20. 4 10
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/CrawledDataService.java
  21. 2 2
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/VideoPostQuery.java
  22. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/VideoService.java
  23. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPlayServiceImpl.java
  24. 8 7
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPostQueryImpl.java
  25. 18 27
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPostServiceImpl.java
  26. 0 37
      content/content-service/src/main/resources/mapper/data/AudioFileMapper.xml
  27. 0 39
      content/content-service/src/main/resources/mapper/data/AudioPostMapper.xml
  28. 1 6
      content/content-service/src/main/resources/mapper/vod/VideoFileMapper.xml
  29. 2 2
      content/content-service/src/main/resources/mapper/vod/VideoPostMapper.xml
  30. 0 12
      content/content-service/src/test/java/cn/reghao/tnb/content/app/geo/service/GeoTest.java
  31. 27 0
      file/file-api/src/main/java/cn/reghao/file/api/dto/ImageMeta.java
  32. 24 0
      file/file-api/src/main/java/cn/reghao/file/api/dto/ObjectMeta.java
  33. 29 0
      file/file-api/src/main/java/cn/reghao/file/api/dto/VideoMeta.java
  34. 5 15
      file/file-api/src/main/java/cn/reghao/file/api/iface/OssService.java
  35. 5 0
      file/file-service/pom.xml
  36. 11 11
      file/file-service/src/main/java/cn/reghao/tnb/file/app/controller/FileOssController.java
  37. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/constant/UploadChannelType.java
  38. 46 54
      file/file-service/src/main/java/cn/reghao/tnb/file/app/rpc/StoreServiceWrapperRouter.java
  39. 4 4
      file/file-service/src/main/java/cn/reghao/tnb/file/app/service/AvatarService.java
  40. 45 0
      file/file-service/src/main/java/cn/reghao/tnb/file/app/service/OssUploadService.java
  41. 5 5
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/model/vo/DiskFileDetail.java
  42. 7 5
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/CamRecordService.java
  43. 10 11
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/DiskFileService.java
  44. 0 8
      file/pom.xml
  45. 3 24
      zzz/build.sh

+ 9 - 9
content/content-service/src/main/java/cn/reghao/tnb/content/app/chat/service/ChatMessageService.java

@@ -1,9 +1,9 @@
 package cn.reghao.tnb.content.app.chat.service;
 
+import cn.reghao.file.api.dto.ObjectMeta;
 import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.converter.DateTimeConverter;
 import cn.reghao.jutil.jdk.string.SnowFlake;
-import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.content.app.chat.db.mapper.*;
 import cn.reghao.tnb.content.app.chat.model.constant.MsgType;
@@ -89,15 +89,15 @@ public class ChatMessageService {
 
         try {
             int channelCode = 110;
-            ObjectInfo objectInfo = ossService.getObjectInfo(uploadId);
-            if (objectInfo == null) {
+            ObjectMeta objectMeta = ossService.getObjectMeta(uploadId);
+            if (objectMeta == null) {
                 return;
             }
 
             String signedUrl = ossService.getSignedUrl(uploadId);
-            String filename = objectInfo.getFilename();
+            String filename = objectMeta.getFilename();
             String suffix = getSuffix(filename);
-            int fileType = objectInfo.getFileType();
+            int fileType = objectMeta.getFileType();
             /*int width = objectInfo.getWidth();
             int height = objectInfo.getHeight();*/
             int width = 480;
@@ -138,12 +138,12 @@ public class ChatMessageService {
 
         try {
             int channelCode = 110;
-            ObjectInfo objectInfo = ossService.getObjectInfo(uploadId);
-            if (objectInfo == null) {
+            ObjectMeta objectMeta = ossService.getObjectMeta(uploadId);
+            if (objectMeta == null) {
                 return;
             }
-            int fileType = objectInfo.getFileType();
-            String filename = objectInfo.getFilename();
+            int fileType = objectMeta.getFileType();
+            String filename = objectMeta.getFilename();
 
             ChatDialog chatDialog = chatDialogMapper.findByReceiverAndUserId(receiverId, loginUser);
             long chatId = chatDialog.getChatId();

+ 0 - 47
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/controller/AudioController.java

@@ -1,47 +0,0 @@
-package cn.reghao.tnb.content.app.data.controller;
-
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.content.app.data.model.vo.AudioInfo;
-import cn.reghao.tnb.content.app.data.model.vo.UserAudioCard;
-import cn.reghao.tnb.content.app.data.service.AudioService;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2023-10-12 13:49:11
- */
-@Tag(name = "音频接口")
-@RestController
-@RequestMapping("/api/content/audio")
-public class AudioController {
-    private final AudioService audioService;
-    
-    public AudioController(AudioService audioService) {
-        this.audioService = audioService;
-    }
-    
-    @Operation(summary = "获取音频列表")
-    @GetMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getAudios(@RequestParam("page") int page) {
-        PageList<UserAudioCard> pageList = audioService.getAudios(page);
-        return WebResult.success(pageList);
-    }
-
-    @Operation(summary = "获取用户音频列表")
-    @GetMapping(value = "/user", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getUserAudios(@RequestParam("page") int page, @RequestParam("userId") long userId) {
-        PageList<UserAudioCard> pageList = audioService.getPageByUserId(userId, page);
-        return WebResult.success(pageList);
-    }
-    
-    @Operation(summary = "获取音频详细信息")
-    @GetMapping(value = "/{audioId}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getAudioInfo(@PathVariable("audioId") String audioId) {
-        AudioInfo audioInfo = audioService.getAudioInfo(audioId);
-        return WebResult.success(audioInfo);
-    }
-}

+ 0 - 54
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/controller/AudioPostController.java

@@ -1,54 +0,0 @@
-package cn.reghao.tnb.content.app.data.controller;
-
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.common.auth.AuthUser;
-import cn.reghao.tnb.content.app.data.model.dto.AudioPublishSbt;
-import cn.reghao.tnb.content.app.data.model.dto.AudioScopeUpdate;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2023-01-29 10:12:06
- */
-@Tag(name = "音频贴接口")
-@RestController
-@RequestMapping("/api/content/post/audio")
-public class AudioPostController {
-    @AuthUser
-    @Operation(summary = "添加音频贴")
-    @PostMapping("")
-    public String submitAudioPost(@RequestBody @Validated AudioPublishSbt audioPublishSbt) {
-        return WebResult.success();
-    }
-
-    @AuthUser
-    @Operation(summary = "更新音频贴可见范围")
-    @PostMapping("/update/scope")
-    public String updateAudioScope(@RequestBody @Validated AudioScopeUpdate audioScopeUpdate) {
-        return WebResult.success();
-    }
-
-    @AuthUser
-    @Operation(summary = "删除音频贴")
-    @DeleteMapping("/{audioId}")
-    public String deleteAudioPost(@PathVariable("audioId") String audioId) {
-        return WebResult.success();
-    }
-
-    @AuthUser
-    @Operation(summary = "获取音频贴")
-    @GetMapping("/{audioId}")
-    public String getAudioPost(@PathVariable("audioId") String audioId) {
-        return WebResult.success();
-    }
-
-    @AuthUser
-    @Operation(summary = "获取音频贴列表")
-    @GetMapping("")
-    public String getAudioPosts(@RequestParam("page") int page) {
-        return WebResult.success();
-    }
-}

+ 0 - 20
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/mapper/AudioFileMapper.java

@@ -1,20 +0,0 @@
-package cn.reghao.tnb.content.app.data.db.mapper;
-
-import cn.reghao.jutil.jdk.web.db.BaseMapper;
-import cn.reghao.tnb.content.app.data.model.po.AudioFile;
-import cn.reghao.oss.api.dto.media.AudioInfo;
-import cn.reghao.oss.api.dto.media.AudioUrl;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2023-07-05 16:47:46
- */
-@Mapper
-public interface AudioFileMapper extends BaseMapper<AudioFile> {
-    List<AudioFile> findByAudioFileId(String audioFileId);
-    List<AudioInfo> findAudioInfo(String audioFileId);
-    List<AudioUrl> findAudioUrl(String audioFileId);
-}

+ 0 - 26
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/mapper/AudioPostMapper.java

@@ -1,26 +0,0 @@
-package cn.reghao.tnb.content.app.data.db.mapper;
-
-import cn.reghao.jutil.jdk.web.db.BaseMapper;
-import cn.reghao.jutil.jdk.web.db.Page;
-import cn.reghao.tnb.content.app.data.model.dto.AudioScopeUpdate;
-import cn.reghao.tnb.content.app.data.model.po.AudioPost;
-import cn.reghao.tnb.content.app.data.model.vo.UserAudioCard;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2023-01-29 10:07:19
- */
-@Mapper
-public interface AudioPostMapper extends BaseMapper<AudioPost> {
-    void updateAudioScope(AudioScopeUpdate audioScopeUpdate);
-
-    int countByUserId(@Param("userId") long userId);
-    List<UserAudioCard> findAudioCardByUserIdAndByPage(Page page, long userId);
-
-    AudioPost findByAudioId(String audioId);
-    UserAudioCard findAudioInfo(@Param("audioId") String audioId);
-}

+ 0 - 38
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/repository/AudioRepository.java

@@ -1,38 +0,0 @@
-package cn.reghao.tnb.content.app.data.db.repository;
-
-import cn.reghao.tnb.content.app.data.db.mapper.AudioFileMapper;
-import cn.reghao.tnb.content.app.data.model.po.AudioFile;
-import cn.reghao.oss.api.dto.media.AudioInfo;
-import cn.reghao.oss.api.dto.media.AudioUrl;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2023-08-28 15:00:43
- */
-@Repository
-public class AudioRepository {
-    private final AudioFileMapper audioFileMapper;
-
-    public AudioRepository(AudioFileMapper audioFileMapper) {
-        this.audioFileMapper = audioFileMapper;
-    }
-
-    public void saveAudioFiles(List<AudioFile> audioFiles) {
-        audioFileMapper.saveAll(audioFiles);
-    }
-
-    public List<AudioFile> findAudioFiles(String audioFileId) {
-        return audioFileMapper.findByAudioFileId(audioFileId);
-    }
-
-    public List<AudioInfo> getAudioInfo(String audioFileId) {
-        return audioFileMapper.findAudioInfo(audioFileId);
-    }
-
-    public List<AudioUrl> getAudioUrls(String audioFileId) {
-        return audioFileMapper.findAudioUrl(audioFileId);
-    }
-}

+ 24 - 0
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/model/dto/ImageUrlDto.java

@@ -0,0 +1,24 @@
+package cn.reghao.tnb.content.app.data.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @author reghao
+ * @date 2023-08-28 15:50:38
+ */
+@Setter
+@Getter
+public class ImageUrlDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String imageFileId;
+    private String originalUrl;
+    private String thumbnailUrl;
+
+    public ImageUrlDto(String imageFileId) {
+        this.imageFileId = imageFileId;
+    }
+}

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/model/vo/StatusCard.java

@@ -1,6 +1,6 @@
 package cn.reghao.tnb.content.app.data.model.vo;
 
-import cn.reghao.oss.api.dto.media.ImageUrlDto;
+import cn.reghao.tnb.content.app.data.model.dto.ImageUrlDto;
 import cn.reghao.tnb.user.api.dto.UserInfo;
 import lombok.Data;
 

+ 0 - 74
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/service/AudioService.java

@@ -1,74 +0,0 @@
-package cn.reghao.tnb.content.app.data.service;
-
-import cn.reghao.jutil.jdk.web.db.Page;
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.content.app.data.db.mapper.AudioPostMapper;
-import cn.reghao.tnb.content.app.data.model.po.AudioPost;
-import cn.reghao.tnb.content.app.data.model.vo.AudioInfo;
-import cn.reghao.tnb.content.app.data.model.vo.UserAudioCard;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2023-10-12 13:49:01
- */
-@Service
-public class AudioService {
-    private final int pageSize = 10;
-    private final AudioPostMapper audioPostMapper;
-
-    public AudioService(AudioPostMapper audioPostMapper) {
-        this.audioPostMapper = audioPostMapper;
-    }
-
-    public PageList<UserAudioCard> getAudios(int page) {
-        long userId = UserContext.getUserId();
-        int total = audioPostMapper.countByUserId(userId);
-        Page page1 = new Page(page, pageSize);
-        List<UserAudioCard> list = audioPostMapper.findAudioCardByUserIdAndByPage(page1, userId);
-        return PageList.pageList(page, pageSize, total, list);
-    }
-
-    public PageList<UserAudioCard> getPageByUserId(long userId, int page) {
-        int total = audioPostMapper.countByUserId(userId);
-        Page page1 = new Page(page, pageSize);
-        List<UserAudioCard> list = audioPostMapper.findAudioCardByUserIdAndByPage(page1, userId);
-        return PageList.pageList(page, pageSize, total, list);
-    }
-
-    public AudioInfo getAudioInfo(String audioId) {
-        AudioPost audioPost = audioPostMapper.findByAudioId(audioId);
-        if (audioPost == null) {
-            return null;
-        }
-
-        long loginUser = UserContext.getUserId();
-        String audioFileId = audioPost.getAudioFileId();
-        try {
-            int reqUser = 1;
-            /*List<AudioUrl> list = ossConsoleClient.getAudioUrls(audioFileId, reqUser);
-            if (list.isEmpty()) {
-                return null;
-            }
-            String audioUrl = list.get(0).getUrl();
-
-            long userId = UserContext.getUserId();
-            double currentTime = 0.0;
-            if (userId != -1) {
-                Double currentTime1 = videoRecordService.getCurrentTime(userId, audioId);
-                if (currentTime1 != null) {
-                    currentTime = currentTime1;
-                }
-            }
-
-            return new AudioFileInfo(audioPost, audioUrl, currentTime);*/
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        return null;
-    }
-}

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/service/ImagePostService.java

@@ -90,7 +90,7 @@ public class ImagePostService {
         String imageFileId = albumImageData.getImageFileId();
         int channelCode = postAlbum.getChannelCode();
         try {
-            //ObjectInfo objectInfo = ossService.getObjectInfo(coverFileId);
+            //ObjectMeta objectMeta = ossService.getObjectMeta(coverFileId);
             /*Map<String, ConvertedImageInfo> map = imageFileIds.stream()
                     .map(imageFileId -> ossService.getWebpInfo(channelCode, imageFileId))
                     .filter(Objects::nonNull)

+ 4 - 4
content/content-service/src/main/java/cn/reghao/tnb/content/app/mall/service/ProductService.java

@@ -1,11 +1,11 @@
 package cn.reghao.tnb.content.app.mall.service;
 
+import cn.reghao.file.api.dto.ObjectMeta;
 import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.web.db.PageList;
 import cn.reghao.jutil.jdk.web.result.Result;
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
 import cn.reghao.jutil.jdk.string.SnowFlake;
-import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.tnb.auth.api.iface.AccountQuery;
 import cn.reghao.tnb.content.api.dto.TaobaoItem;
 import cn.reghao.tnb.content.app.mall.db.mapper.ProductMapper;
@@ -60,14 +60,14 @@ public class ProductService {
 
     public Result addProduct(ProductAddDto productAddDto) throws Exception {
         String coverFileId = productAddDto.getCoverFileId();
-        ObjectInfo objectInfo = ossService.getObjectInfo(coverFileId);
-        if (objectInfo == null) {
+        ObjectMeta objectMeta = ossService.getObjectMeta(coverFileId);
+        if (objectMeta == null) {
             String errMsg = String.format("封面文件 %s 在 oss 中不存在", coverFileId);
             return Result.fail(errMsg);
         }
 
         long productId = idGenerator.nextId();
-        String coverUrl = objectInfo.getUrl();
+        String coverUrl = objectMeta.getUrl();
         Product product = new Product(productAddDto, productId, coverUrl);
         productMapper.save(product);
         return Result.success();

+ 2 - 2
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/controller/VideoPostController.java

@@ -1,5 +1,6 @@
 package cn.reghao.tnb.content.app.vod.controller;
 
+import cn.reghao.file.api.dto.VideoMeta;
 import cn.reghao.jutil.jdk.web.db.PageList;
 import cn.reghao.jutil.jdk.web.result.Result;
 import cn.reghao.tnb.common.web.WebResult;
@@ -11,7 +12,6 @@ import cn.reghao.tnb.content.app.vod.model.dto.*;
 import cn.reghao.tnb.content.api.dto.UserVideoPost;
 import cn.reghao.tnb.content.app.vod.service.VideoPostQuery;
 import cn.reghao.tnb.content.app.vod.service.VideoPostService;
-import cn.reghao.oss.api.dto.media.VideoInfo;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.http.MediaType;
@@ -110,7 +110,7 @@ public class VideoPostController {
     @Operation(summary = "获取视频稿件的文件资源", description = "N")
     @GetMapping("/resource/{videoId}")
     public String getVideoResource(@PathVariable("videoId") String videoId) {
-        List<VideoInfo> list = videoPostQuery.getVideoResource(videoId);
+        List<VideoMeta> list = videoPostQuery.getVideoResource(videoId);
         return WebResult.success(list);
     }
 }

+ 1 - 3
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/mapper/VideoFileMapper.java

@@ -2,8 +2,7 @@ package cn.reghao.tnb.content.app.vod.db.mapper;
 
 import cn.reghao.jutil.jdk.web.db.BaseMapper;
 import cn.reghao.tnb.content.app.vod.model.po.VideoFile;
-import cn.reghao.oss.api.dto.media.VideoInfo;
-import cn.reghao.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.tnb.content.app.vod.model.dto.VideoUrlDto;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -19,5 +18,4 @@ public interface VideoFileMapper extends BaseMapper<VideoFile> {
     List<VideoUrlDto> findVideoUrls(String videoId);
     List<VideoFile> findByVideoId(String videoId);
     VideoFile findByVideoFileId(String objectId);
-    List<VideoInfo> findVideoInfo(String objectId);
 }

+ 3 - 3
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/mapper/VideoPostMapper.java

@@ -1,5 +1,6 @@
 package cn.reghao.tnb.content.app.vod.db.mapper;
 
+import cn.reghao.file.api.dto.VideoMeta;
 import cn.reghao.jutil.jdk.web.db.BaseMapper;
 import cn.reghao.jutil.jdk.web.db.Page;
 import cn.reghao.tnb.common.db.GroupCount;
@@ -11,7 +12,6 @@ import cn.reghao.tnb.content.app.vod.model.po.BannerVideo;
 import cn.reghao.tnb.content.app.vod.model.po.VideoPost;
 import cn.reghao.tnb.content.app.vod.model.vo.*;
 import cn.reghao.tnb.content.app.vod.model.dto.SearchCriteria;
-import cn.reghao.oss.api.dto.media.VideoInfo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -27,11 +27,11 @@ public interface VideoPostMapper extends BaseMapper<VideoPost> {
     void updateVideoScope(VideoScopeUpdate videoScopeUpdate);
     void updateVideoInfo(VideoInfoUpdate videoInfoUpdate);
     void updateVideoCover(@Param("videoId") String videoId, @Param("coverUrl") String coverUrl);
-    void updateVideoFile(@Param("videoId") String videoId, @Param("videoInfo") VideoInfo videoInfo);
+    void updateVideoFile(@Param("videoId") String videoId, @Param("videoMeta") VideoMeta videoMeta);
     void updateVideoStatus(@Param("videoId") String videoId, @Param("status") int status);
     void updateVideoPublish(VideoPost videoPost);
     void updateVideoCached(@Param("videoId") String videoId,
-                           @Param("videoInfo") VideoInfo videoInfo,
+                           @Param("videoMeta") VideoMeta videoMeta,
                            @Param("channelCode") int channelCode);
     void deleteByVideoId(String videoId);
 

+ 5 - 5
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/repository/VideoRepository.java

@@ -1,5 +1,6 @@
 package cn.reghao.tnb.content.app.vod.db.repository;
 
+import cn.reghao.file.api.dto.VideoMeta;
 import cn.reghao.tnb.common.db.GroupCount;
 import cn.reghao.tnb.content.app.vod.db.mapper.VideoFileMapper;
 import cn.reghao.tnb.content.app.vod.db.mapper.VideoPostMapper;
@@ -7,8 +8,7 @@ import cn.reghao.tnb.content.app.vod.db.mapper.VideoStatisticMapper;
 import cn.reghao.tnb.content.app.vod.model.po.VideoFile;
 import cn.reghao.tnb.content.app.vod.model.po.VideoPost;
 import cn.reghao.tnb.content.app.vod.model.po.VideoStatistic;
-import cn.reghao.oss.api.dto.media.VideoInfo;
-import cn.reghao.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.tnb.content.app.vod.model.dto.VideoUrlDto;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
@@ -56,10 +56,10 @@ public class VideoRepository {
 
     @Transactional(rollbackFor = Exception.class)
     @Deprecated
-    public void updateBiliVideoFile(String videoId, VideoInfo videoInfo, int channelCode) {
-        VideoFile videoFile = new VideoFile(videoId, videoInfo, channelCode);
+    public void updateBiliVideoFile(String videoId, VideoMeta videoMeta, int channelCode) {
+        VideoFile videoFile = new VideoFile(videoId, videoMeta, channelCode);
         videoFileMapper.save(videoFile);
-        videoPostMapper.updateVideoCached(videoId, videoInfo, channelCode);
+        videoPostMapper.updateVideoCached(videoId, videoMeta, channelCode);
     }
 
     public void updateVideoStatistic(VideoStatistic videoStatistic) {

+ 24 - 0
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/dto/VideoUrlDto.java

@@ -0,0 +1,24 @@
+package cn.reghao.tnb.content.app.vod.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @author reghao
+ * @date 2023-01-10 09:51:53
+ */
+@Getter
+@Setter
+public class VideoUrlDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String objectId;
+    private int channelCode;
+    private String type;
+    private String url;
+    private int width;
+    private int height;
+    private String quality;
+}

+ 8 - 8
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/po/PostItem.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.model.po;
 
+import cn.reghao.file.api.dto.ImageMeta;
 import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.oss.api.dto.media.ImageInfo;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 
@@ -49,16 +49,16 @@ public class PostItem extends BaseObject<Integer> {
         this.horizontal = false;
     }
 
-    public PostItem(long albumId, int channelCode, ImageInfo imageInfo) {
+    public PostItem(long albumId, int channelCode, ImageMeta imageMeta) {
         this.albumId = albumId;
         this.postId = "";
         this.pos = 1;
         this.channelCode = channelCode;
-        this.objectId = imageInfo.getObjectId();
-        this.format = imageInfo.getFormat();
-        this.url = imageInfo.getUrl();
-        this.width = imageInfo.getWidth();
-        this.height = imageInfo.getHeight();
-        this.horizontal = imageInfo.getWidth() > imageInfo.getHeight();
+        this.objectId = imageMeta.getObjectId();
+        this.format = imageMeta.getFormat();
+        this.url = imageMeta.getUrl();
+        this.width = imageMeta.getWidth();
+        this.height = imageMeta.getHeight();
+        this.horizontal = imageMeta.getWidth() > imageMeta.getHeight();
     }
 }

+ 16 - 16
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/po/VideoFile.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.model.po;
 
+import cn.reghao.file.api.dto.VideoMeta;
 import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.oss.api.dto.media.VideoInfo;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
@@ -57,22 +57,22 @@ public class VideoFile extends BaseObject<Integer> {
     @NotNull
     private Long size;
 
-    public VideoFile(String videoId, VideoInfo videoInfo, int channelCode) {
+    public VideoFile(String videoId, VideoMeta videoMeta, int channelCode) {
         this.videoId = videoId;
-        this.objectId = videoInfo.getObjectId();
+        this.objectId = videoMeta.getObjectId();
         this.channelCode = channelCode;
-        this.videoCodec = videoInfo.getVideoCodec();
-        this.vbitRate = videoInfo.getVbitRate();
-        this.audioCodec = videoInfo.getAudioCodec();
-        this.abitRate = videoInfo.getAbitRate();
-        this.formatName = videoInfo.getFormatName();
-        this.urlType = videoInfo.getUrlType();
-        this.url = videoInfo.getUrl();
-        this.quality = videoInfo.getQuality();
-        this.width = videoInfo.getWidth();
-        this.height = videoInfo.getHeight();
-        this.horizontal = videoInfo.getWidth()>videoInfo.getHeight();
-        this.duration = videoInfo.getDuration();
-        this.size = videoInfo.getSize();
+        this.videoCodec = videoMeta.getVideoCodec();
+        this.vbitRate = videoMeta.getVbitRate();
+        this.audioCodec = videoMeta.getAudioCodec();
+        this.abitRate = videoMeta.getAbitRate();
+        this.formatName = videoMeta.getFormatName();
+        this.urlType = videoMeta.getUrlType();
+        this.url = videoMeta.getUrl();
+        this.quality = videoMeta.getQuality();
+        this.width = videoMeta.getWidth();
+        this.height = videoMeta.getHeight();
+        this.horizontal = videoMeta.getWidth()>videoMeta.getHeight();
+        this.duration = videoMeta.getDuration();
+        this.size = videoMeta.getSize();
     }
 }

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/AdminVodService.java

@@ -6,7 +6,7 @@ import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.web.db.Page;
 import cn.reghao.jutil.jdk.web.db.PageList;
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
-import cn.reghao.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.tnb.content.app.vod.model.dto.VideoUrlDto;
 import cn.reghao.tnb.content.api.constant.PostScope;
 import cn.reghao.tnb.content.api.dto.*;
 import cn.reghao.tnb.content.app.vod.db.mapper.SiteNoticeMapper;

+ 4 - 10
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/CrawledDataService.java

@@ -1,11 +1,10 @@
 package cn.reghao.tnb.content.app.vod.service;
 
+import cn.reghao.file.api.dto.VideoMeta;
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.oss.api.dto.media.VideoInfo;
 import cn.reghao.tnb.auth.api.dto.AccountInfo;
 import cn.reghao.tnb.auth.api.dto.CrawledUser;
 import cn.reghao.tnb.auth.api.iface.AccountQuery;
-import cn.reghao.tnb.content.api.constant.PostScope;
 import cn.reghao.tnb.content.api.dto.VideoFileUpdate;
 import cn.reghao.tnb.content.api.dto.spider.CrawledVideo;
 import cn.reghao.tnb.content.app.vod.db.repository.VideoRepository;
@@ -73,17 +72,12 @@ public class CrawledDataService {
         int channelCode = 101;
         String videoFileId = videoFileUpdate.getVideoFileId();
         try {
-            VideoInfo videoInfo = ossService.getVideoInfo(videoFileId);
-            if (videoInfo == null) {
+            VideoMeta videoMeta = ossService.getVideoMeta(videoFileId);
+            if (videoMeta == null) {
                 log.error("{} not exist", videoFileId);
                 return;
             }
-
-            videoRepository.updateBiliVideoFile(videoId, videoInfo, channelCode);
-            int scope = videoPost.getScope();
-            if (scope != PostScope.PRIVATE.getCode()) {
-                ossService.setObjectScope(videoFileId, scope);
-            }
+            videoRepository.updateBiliVideoFile(videoId, videoMeta, channelCode);
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 2 - 2
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/VideoPostQuery.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.service;
 
+import cn.reghao.file.api.dto.VideoMeta;
 import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.oss.api.dto.media.VideoInfo;
 import cn.reghao.tnb.content.api.dto.*;
 import cn.reghao.tnb.content.app.vod.model.po.VideoPost;
 import cn.reghao.tnb.content.app.vod.model.vo.BannerVideoVO;
@@ -32,6 +32,6 @@ public interface VideoPostQuery {
      * @date 2023-11-27 11:01:22
      */
     PageList<UserVideoPost> getUserVideoPost(int pageNumber);
-    List<VideoInfo> getVideoResource(String videoId);
+    List<VideoMeta> getVideoResource(String videoId);
     UserVideoPost getUserVideoDetail(String videoId);
 }

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/VideoService.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.service;
 
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.tnb.content.app.vod.model.dto.VideoUrlDto;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.content.app.vod.db.repository.VideoRepository;
 import cn.reghao.tnb.content.app.vod.model.po.VideoPost;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPlayServiceImpl.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.service.impl;
 
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.tnb.content.app.vod.model.dto.VideoUrlDto;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.common.db.PageScroll;
 import cn.reghao.tnb.common.util.ConstantId;

+ 8 - 7
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPostQueryImpl.java

@@ -1,11 +1,11 @@
 package cn.reghao.tnb.content.app.vod.service.impl;
 
+import cn.reghao.file.api.dto.VideoMeta;
 import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.web.db.Page;
 import cn.reghao.jutil.jdk.web.db.PageList;
 import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.oss.api.dto.media.VideoInfo;
-import cn.reghao.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.tnb.content.app.vod.model.dto.VideoUrlDto;
 import cn.reghao.tnb.auth.api.iface.AccountQuery;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.common.util.StringUtil;
@@ -29,6 +29,7 @@ import cn.reghao.tnb.content.app.vod.service.TagService;
 import cn.reghao.tnb.content.app.vod.service.VideoPostQuery;
 import cn.reghao.tnb.user.api.dto.UserCard;
 import cn.reghao.tnb.user.api.iface.UserService;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.stereotype.Service;
 
@@ -44,6 +45,7 @@ import java.util.stream.Collectors;
  * @author reghao
  * @date 2024-08-06 21:01:22
  */
+@Slf4j
 @Service
 public class VideoPostQueryImpl implements VideoPostQuery {
     @DubboReference(check = false, retries = 0, timeout = 60_000)
@@ -297,21 +299,20 @@ public class VideoPostQueryImpl implements VideoPostQuery {
         return results;
     }
 
-    public List<VideoInfo> getVideoResource(String videoId) {
+    public List<VideoMeta> getVideoResource(String videoId) {
         VideoPost videoPost = videoPostMapper.findByVideoId(videoId);
         if (videoPost == null) {
             return Collections.emptyList();
         }
 
-        int channelCode = 105;
         List<VideoUrlDto> list = videoRepository.getVideoUrls(videoId);
         for (VideoUrlDto videoUrlDto : list) {
             String videoFileId = videoUrlDto.getObjectId();
             try {
-                VideoInfo videoInfo = ossService.getVideoInfo(videoFileId);
-                return videoInfo != null ? List.of(videoInfo) : Collections.emptyList();
+                VideoMeta videoMeta = ossService.getVideoMeta(videoFileId);
+                return videoMeta != null ? List.of(videoMeta) : Collections.emptyList();
             } catch (Exception e) {
-                e.printStackTrace();
+                log.error("{}", e.getMessage());
             }
         }
 

+ 18 - 27
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPostServiceImpl.java

@@ -1,13 +1,12 @@
 package cn.reghao.tnb.content.app.vod.service.impl;
 
+import cn.reghao.file.api.dto.ObjectMeta;
+import cn.reghao.file.api.dto.VideoMeta;
 import cn.reghao.file.api.iface.JobService;
 import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.web.result.Result;
 import cn.reghao.jutil.jdk.string.IdGenerator;
-import cn.reghao.oss.api.dto.ObjectChannel;
-import cn.reghao.oss.api.dto.ObjectInfo;
-import cn.reghao.oss.api.dto.media.VideoInfo;
-import cn.reghao.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.tnb.content.app.vod.model.dto.VideoUrlDto;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.content.api.constant.PostScope;
 import cn.reghao.tnb.content.api.dto.VideoFilePublish;
@@ -62,8 +61,8 @@ public class VideoPostServiceImpl implements VideoPostService {
         String title = videoFilePublish.getFilename();
         String videoFileId = videoFilePublish.getVideoFileId();
         int channelCode = videoFilePublish.getChannelCode();
-        VideoInfo videoInfo = ossService.getVideoInfo(videoFileId);
-        if (!videoInfo.getFormatName().contains("mov,mp4")) {
+        VideoMeta videoMeta = ossService.getVideoMeta(videoFileId);
+        if (!videoMeta.getFormatName().contains("mov,mp4")) {
             //long jobId = jobService.addConvertVideoJob(videoFileId, channelCode);
                 /*Result result1 = fileService.convertVideo(videoFileId, channelCode);
                 if (result1.getCode() == ResultStatus.SUCCESS.getCode()) {
@@ -74,7 +73,7 @@ public class VideoPostServiceImpl implements VideoPostService {
         }
 
         String videoId = idGenerator.getUuid();
-        VideoFile videoFile = new VideoFile(videoId, videoInfo, channelCode);
+        VideoFile videoFile = new VideoFile(videoId, videoMeta, channelCode);
         VideoPost videoPost = new VideoPost(videoId, title, videoFile);
         videoRepository.saveVideo(videoFile, videoPost);
         return videoId;
@@ -84,12 +83,12 @@ public class VideoPostServiceImpl implements VideoPostService {
         Result result;
         try {
             String coverFileId = videoPublishSbt.getCoverFileId();
-            ObjectInfo objectInfo = ossService.getObjectInfo(coverFileId);
-            if (objectInfo == null) {
+            ObjectMeta objectMeta = ossService.getObjectMeta(coverFileId);
+            if (objectMeta == null) {
                 String errMsg = String.format("封面文件 %s 在 oss 中不存在", coverFileId);
                 return Result.fail(errMsg);
             }
-            String coverUrl = objectInfo.getUrl();
+            String coverUrl = objectMeta.getUrl();
 
             String videoId = videoPublishSbt.getVideoId();
             VideoPost videoPost = videoRepository.getVideoPost(videoId);
@@ -107,16 +106,8 @@ public class VideoPostServiceImpl implements VideoPostService {
             String videoFileId = videoFile.getObjectId();
 
             int channelCode = videoFile.getChannelCode();
-            ObjectChannel objectChannel = ossService.getChannel(channelCode);
-            if (objectChannel == null ) {
-                String errMsg = String.format("channelCode %s 的 scope 在 oss 中不存在", channelCode);
-                return Result.fail(errMsg);
-            }
-
             int scope = videoPublishSbt.getScope();
-            if (objectChannel.getScope() != scope) {
-                ossService.setObjectScope(videoFileId, scope);
-            }
+            ossService.checkAndSetScope(videoFileId, scope);
 
             Set<String> tags = videoPublishSbt.getTags();
             String tags1 = tags.toString().replace("[", "").replace("]", "");
@@ -173,7 +164,7 @@ public class VideoPostServiceImpl implements VideoPostService {
             String videoFileId = videoUrlDto.getObjectId();
             try {
                 int scope = videoScopeUpdate.getScope();
-                ossService.setObjectScope(videoFileId, scope);
+                ossService.checkAndSetScope(videoFileId, scope);
                 videoPostMapper.updateVideoScope(videoScopeUpdate);
             } catch (Exception e) {
                 log.error("{}", e.getMessage());
@@ -200,12 +191,12 @@ public class VideoPostServiceImpl implements VideoPostService {
 
         String coverFileId = videoCoverUpdate.getCoverFileId();
         try {
-            ObjectInfo objectInfo = ossService.getObjectInfo(coverFileId);
-            if (objectInfo == null) {
+            ObjectMeta objectMeta = ossService.getObjectMeta(coverFileId);
+            if (objectMeta == null) {
                 return;
             }
 
-            String coverUrl = objectInfo.getUrl();
+            String coverUrl = objectMeta.getUrl();
             videoPostMapper.updateVideoCover(videoId, coverUrl);
             String currentCover = videoPost.getCoverUrl();
             deleteCoverFile(currentCover);
@@ -234,16 +225,16 @@ public class VideoPostServiceImpl implements VideoPostService {
             String videoFileId = videoFileUpdate.getVideoFileId();
             try {
                 int channelCode = 101;
-                VideoInfo videoInfo = ossService.getVideoInfo(videoFileId);
-                if (videoInfo == null) {
+                VideoMeta videoMeta = ossService.getVideoMeta(videoFileId);
+                if (videoMeta == null) {
                     log.error("{} not exist", videoFileId);
                     return;
                 }
 
-                videoPostMapper.updateVideoFile(videoId, videoInfo);
+                videoPostMapper.updateVideoFile(videoId, videoMeta);
                 int scope = videoPost.getScope();
                 if (scope != PostScope.PRIVATE.getCode()) {
-                    ossService.setObjectScope(videoId, scope);
+                    ossService.checkAndSetScope(videoId, scope);
                 }
 
                 ossService.deleteByObjectId(videoFileId);

+ 0 - 37
content/content-service/src/main/resources/mapper/data/AudioFileMapper.xml

@@ -1,37 +0,0 @@
-<?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="cn.reghao.tnb.content.app.data.db.mapper.AudioFileMapper">
-    <insert id="save" useGeneratedKeys="true" keyProperty="id">
-        insert into audio_file
-        (`audio_file_id`,`object_id`,`duration`,`codec`,`bit_rate`,`url`)
-        values
-        (#{audioFileId},#{objectId},#{duration},#{codec},#{bitRate},#{url})
-    </insert>
-    <insert id="saveAll" useGeneratedKeys="true" keyProperty="id">
-        insert into audio_file
-        (`audio_file_id`,`object_id`,`duration`,`codec`,`bit_rate`,`url`)
-        values
-        <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.audioFileId},#{item.objectId},#{item.duration},#{item.codec},#{item.bitRate},#{item.url})
-        </foreach>
-    </insert>
-
-    <select id="findByAudioFileId" resultType="cn.reghao.tnb.content.app.data.model.po.AudioFile">
-        select *
-        from audio_file
-        where audio_file_id=#{audioFileId}
-    </select>
-    <select id="findAudioInfo" resultType="cn.reghao.oss.api.dto.media.AudioInfo">
-        select audio_file_id,duration,codec,url
-        from audio_file
-        where audio_file_id=#{audioFileId}
-        order by id desc
-    </select>
-    <select id="findAudioUrl" resultType="cn.reghao.oss.api.dto.media.AudioUrl">
-        select audio_file_id,bit_rate,codec,url
-        from audio_file
-        where audio_file_id=#{audioFileId}
-        order by id desc
-    </select>
-</mapper>

+ 0 - 39
content/content-service/src/main/resources/mapper/data/AudioPostMapper.xml

@@ -1,39 +0,0 @@
-<?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="cn.reghao.tnb.content.app.data.db.mapper.AudioPostMapper">
-    <insert id="save" useGeneratedKeys="true" keyProperty="id">
-        insert into audio_post
-        (`audio_id`,`audio_file_id`,`audio_url`,`title`,`duration`,`codec`,`scope`,`publish_at`,`publish_by`)
-        values 
-        (#{audioId},#{audioFileId},#{audioUrl},#{title},#{duration},#{codec},#{scope},#{publishAt},#{publishBy})
-    </insert>
-
-    <update id="updateAudioScope">
-        update audio_post
-        set scope=#{scope}
-        where audio_id=#{audioId}
-    </update>
-
-    <select id="countByUserId" resultType="java.lang.Integer">
-        select count(*)
-        from audio_post
-        where publish_by=${userId}
-    </select>
-    <select id="findAudioCardByUserIdAndByPage" resultType="cn.reghao.tnb.content.app.data.model.vo.UserAudioCard">
-        select audio_id,title,audio_url,duration,codec,publish_at,scope
-        from audio_post
-        where publish_by=#{userId}
-        order by publish_at desc
-    </select>
-    <select id="findAudioInfo" resultType="cn.reghao.tnb.content.app.data.model.vo.UserAudioCard">
-        select audio_id,title,audio_url,duration,codec,publish_at,scope
-        from audio_post
-        where audio_id=#{audioId}
-    </select>
-    <select id="findByAudioId" resultType="cn.reghao.tnb.content.app.data.model.po.AudioPost">
-        select *
-        from audio_post
-        where audio_id=#{audioId}
-    </select>
-</mapper>

+ 1 - 6
content/content-service/src/main/resources/mapper/vod/VideoFileMapper.xml

@@ -27,11 +27,6 @@
         select *
         from vod_video_file
     </select>
-    <select id="findVideoInfo" resultType="cn.reghao.oss.api.dto.media.VideoInfo">
-        select object_id,duration,horizontal,quality,video_codec,audio_codec,url_type,url
-        from vod_video_file
-        where `deleted`=0 and object_id=#{objectId}
-    </select>
     <select id="findByVideoId" resultType="cn.reghao.tnb.content.app.vod.model.po.VideoFile">
         select *
         from vod_video_file
@@ -42,7 +37,7 @@
         from vod_video_file
         where `deleted`=0 and object_id=#{objectId}
     </select>
-    <select id="findVideoUrls" resultType="cn.reghao.oss.api.dto.media.VideoUrlDto">
+    <select id="findVideoUrls" resultType="cn.reghao.tnb.content.app.vod.model.dto.VideoUrlDto">
         select object_id,channel_code,url_type as type,url,width,height,quality
         from vod_video_file
         where `deleted`=0 and video_id=#{videoId}

+ 2 - 2
content/content-service/src/main/resources/mapper/vod/VideoPostMapper.xml

@@ -26,7 +26,7 @@
     </update>
     <update id="updateVideoFile">
         update vod_video_post
-        set update_time=now(),duration=#{videoInfo.duration},quality=#{videoInfo.quality}
+        set update_time=now(),duration=#{videoMeta.duration},quality=#{videoMeta.quality}
         where video_id=#{videoId}
     </update>
     <update id="updateVideoStatus">
@@ -41,7 +41,7 @@
     </update>
     <update id="updateVideoCached">
         update vod_video_post
-        set update_time=now(),duration=#{videoInfo.duration},`status`=2
+        set update_time=now(),duration=#{videoMeta.duration},`status`=2
         where video_id=#{videoId}
     </update>
 

+ 0 - 12
content/content-service/src/test/java/cn/reghao/tnb/content/app/geo/service/GeoTest.java

@@ -2,8 +2,6 @@ package cn.reghao.tnb.content.app.geo.service;
 
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
 import cn.reghao.jutil.jdk.io.TextFile;
-//import cn.reghao.oss.sdk.OssConsoleClient;
-//import cn.reghao.oss.sdk.model.OssConsoleConfig;
 import cn.reghao.tnb.content.app.ContentApplication;
 import cn.reghao.tnb.content.app.geo.db.mapper.*;
 import cn.reghao.tnb.content.app.geo.model.po.*;
@@ -125,17 +123,7 @@ public class GeoTest {
     CameraPhotoMapper cameraPhotoMapper;
     @Test
     void photoMapTest() {
-        //OssConsoleClient ossConsoleClient = getOssConsoleClient();
         List<CameraPhoto> list = cameraPhotoMapper.findAll();
-        for (CameraPhoto cameraPhoto : list) {
-            /*String objectId = cameraPhoto.getObjectId();
-            int channelCode = cameraPhoto.getChannelCode();
-            try {
-                ObjectInfo objectInfo = ossConsoleClient.getObjectInfo(channelCode, objectId);
-            } catch (Exception e) {
-                log.info("objectId {} not exist", objectId);
-            }*/
-        }
     }
 
     @Autowired

+ 27 - 0
file/file-api/src/main/java/cn/reghao/file/api/dto/ImageMeta.java

@@ -0,0 +1,27 @@
+package cn.reghao.file.api.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class ImageMeta implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    // 原始文件的 objectId
+    private String imageFileId;
+    private String objectId;
+    private String format;
+    private String url;
+    private Integer width;
+    private Integer height;
+    private Long size;
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+}

+ 24 - 0
file/file-api/src/main/java/cn/reghao/file/api/dto/ObjectMeta.java

@@ -0,0 +1,24 @@
+package cn.reghao.file.api.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class ObjectMeta implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String objectId;
+    private String objectName;
+    private int fileType;
+    private String filename;
+    private long size;
+    private String url;
+    private int scope;
+    private String sha256sum;
+    private String updateTime;
+}

+ 29 - 0
file/file-api/src/main/java/cn/reghao/file/api/dto/VideoMeta.java

@@ -0,0 +1,29 @@
+package cn.reghao.file.api.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class VideoMeta implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String objectId;
+    private String videoCodec;
+    private Long vbitRate;
+    private String audioCodec;
+    private Long abitRate;
+    private String formatName;
+    private String urlType;
+    private String url;
+    private String quality;
+    private Integer width;
+    private Integer height;
+    // 单位秒
+    private Integer duration;
+    private Long size;
+}

+ 5 - 15
file/file-api/src/main/java/cn/reghao/file/api/iface/OssService.java

@@ -1,27 +1,17 @@
 package cn.reghao.file.api.iface;
 
-import cn.reghao.oss.api.dto.ObjectChannel;
-import cn.reghao.oss.api.dto.ObjectInfo;
-import cn.reghao.oss.api.dto.ServerInfo;
-import cn.reghao.oss.api.dto.media.VideoInfo;
-import cn.reghao.oss.api.dto.rest.UploadFileRet;
-import cn.reghao.oss.api.dto.rest.UploadPrepare;
-import cn.reghao.oss.api.dto.rest.UploadPrepareRet;
-import cn.reghao.oss.api.dto.rest.UploadSample;
+import cn.reghao.file.api.dto.ObjectMeta;
+import cn.reghao.file.api.dto.VideoMeta;
 
 /**
  * @author reghao
  * @date 2024-07-03 14:40:25
  */
 public interface OssService {
-    ServerInfo getUploadStore(int channelCode);
-    UploadPrepareRet prepareUpload(UploadPrepare uploadPrepare);
-    UploadFileRet checkSample(UploadSample uploadSample);
-    ObjectChannel getChannel(int channelCode);
-    void setObjectScope(String objectId, int scope);
+    void checkAndSetScope(String objectId, int scope);
     void deleteByObjectId(String objectId);
     void deleteByObjectUrl(String objectUrl);
     String getSignedUrl(String objectId);
-    ObjectInfo getObjectInfo(String objectId);
-    VideoInfo getVideoInfo(String videoFileId);
+    ObjectMeta getObjectMeta(String objectId);
+    VideoMeta getVideoMeta(String videoFileId);
 }

+ 5 - 0
file/file-service/pom.xml

@@ -49,6 +49,11 @@
             <artifactId>content-api</artifactId>
             <version>1.0.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>cn.reghao.oss</groupId>
+            <artifactId>oss-sdk</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
 
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 11 - 11
file/file-service/src/main/java/cn/reghao/tnb/file/app/controller/FileOssController.java

@@ -7,8 +7,8 @@ import cn.reghao.oss.api.dto.rest.UploadSample;
 import cn.reghao.tnb.common.web.WebResult;
 import cn.reghao.oss.api.dto.ServerInfo;
 import cn.reghao.tnb.common.auth.AuthUser;
-import cn.reghao.file.api.constant.UploadChannelType;
-import cn.reghao.tnb.file.app.rpc.StoreServiceWrapperRouter;
+import cn.reghao.tnb.file.app.model.constant.UploadChannelType;
+import cn.reghao.tnb.file.app.service.OssUploadService;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.http.MediaType;
@@ -26,10 +26,10 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/api/file/oss")
 public class FileOssController {
-    private final StoreServiceWrapperRouter storeServiceWrapperRouter;
+    private final OssUploadService ossUploadService;
 
-    public FileOssController(StoreServiceWrapperRouter storeServiceWrapperRouter) {
-        this.storeServiceWrapperRouter = storeServiceWrapperRouter;
+    public FileOssController(OssUploadService ossUploadService) {
+        this.ossUploadService = ossUploadService;
     }
 
     @AuthUser
@@ -37,7 +37,7 @@ public class FileOssController {
     @PostMapping(value = "/serverinfo/image", produces = MediaType.APPLICATION_JSON_VALUE)
     public String getImageChannelInfo() throws Exception {
         int channelCode = UploadChannelType.imageChannel.getChannelCode();
-        ServerInfo serverInfo = storeServiceWrapperRouter.getUploadStore(channelCode);
+        ServerInfo serverInfo = ossUploadService.getUploadStore(channelCode);
         return serverInfo != null ? WebResult.success(serverInfo) : WebResult.failWithMsg("get ServerInfo failed");
     }
 
@@ -46,7 +46,7 @@ public class FileOssController {
     @PostMapping(value = "/serverinfo/photo", produces = MediaType.APPLICATION_JSON_VALUE)
     public String getPhotoChannelInfo() throws Exception {
         int channelCode = UploadChannelType.photoChannel.getChannelCode();
-        ServerInfo serverInfo = storeServiceWrapperRouter.getUploadStore(channelCode);
+        ServerInfo serverInfo = ossUploadService.getUploadStore(channelCode);
         return serverInfo != null ? WebResult.success(serverInfo) : WebResult.failWithMsg("get ServerInfo failed");
     }
 
@@ -55,7 +55,7 @@ public class FileOssController {
     @PostMapping(value = "/serverinfo/video", produces = MediaType.APPLICATION_JSON_VALUE)
     public String getVideoChannelInfo() throws Exception {
         int channelCode = UploadChannelType.videoChannel.getChannelCode();
-        ServerInfo serverInfo = storeServiceWrapperRouter.getUploadStore(channelCode);
+        ServerInfo serverInfo = ossUploadService.getUploadStore(channelCode);
         return serverInfo != null ? WebResult.success(serverInfo) : WebResult.failWithMsg("get ServerInfo failed");
     }
 
@@ -64,7 +64,7 @@ public class FileOssController {
     @PostMapping(value = "/serverinfo/file", produces = MediaType.APPLICATION_JSON_VALUE)
     public String getFileChannelInfo() throws Exception {
         int channelCode = UploadChannelType.fileChannel.getChannelCode();
-        ServerInfo serverInfo = storeServiceWrapperRouter.getUploadStore(channelCode);
+        ServerInfo serverInfo = ossUploadService.getUploadStore(channelCode);
         return serverInfo != null ? WebResult.success(serverInfo) : WebResult.failWithMsg("get ServerInfo failed");
     }
 
@@ -72,7 +72,7 @@ public class FileOssController {
     @Operation(summary = "文件上传前的预检", description = "N")
     @PostMapping(value = "/prepare_upload", produces = MediaType.APPLICATION_JSON_VALUE)
     public String prepareUpload(@RequestBody @Validated UploadPrepare uploadPrepare) throws Exception {
-        UploadPrepareRet uploadPrepareRet = storeServiceWrapperRouter.prepareUpload(uploadPrepare);
+        UploadPrepareRet uploadPrepareRet = ossUploadService.prepareUpload(uploadPrepare);
         return WebResult.success(uploadPrepareRet);
     }
 
@@ -80,7 +80,7 @@ public class FileOssController {
     @Operation(summary = "文件快传的二次检查", description = "N")
     @PostMapping(value = "/check_sample", produces = MediaType.APPLICATION_JSON_VALUE)
     public String checkSample(@RequestBody @Validated UploadSample uploadSample) throws Exception {
-        UploadFileRet uploadFileRet = storeServiceWrapperRouter.checkSample(uploadSample);
+        UploadFileRet uploadFileRet = ossUploadService.checkSample(uploadSample);
         return WebResult.success(uploadFileRet);
     }
 }

+ 1 - 1
file/file-api/src/main/java/cn/reghao/file/api/constant/UploadChannelType.java → file/file-service/src/main/java/cn/reghao/tnb/file/app/model/constant/UploadChannelType.java

@@ -1,4 +1,4 @@
-package cn.reghao.file.api.constant;
+package cn.reghao.tnb.file.app.model.constant;
 
 import cn.reghao.oss.api.constant.ObjectSize;
 import cn.reghao.oss.api.constant.ObjectScope;

+ 46 - 54
file/file-service/src/main/java/cn/reghao/tnb/file/app/rpc/StoreServiceWrapperRouter.java

@@ -1,17 +1,11 @@
 package cn.reghao.tnb.file.app.rpc;
 
+import cn.reghao.file.api.dto.VideoMeta;
+import cn.reghao.file.api.dto.ObjectMeta;
 import cn.reghao.file.api.iface.OssService;
 import cn.reghao.oss.api.constant.ObjectAction;
-import cn.reghao.oss.api.constant.ObjectScope;
-import cn.reghao.oss.api.dto.ObjectChannel;
 import cn.reghao.oss.api.dto.ObjectInfo;
-import cn.reghao.oss.api.dto.ServerInfo;
 import cn.reghao.oss.api.dto.media.VideoInfo;
-import cn.reghao.oss.api.dto.rest.UploadFileRet;
-import cn.reghao.oss.api.dto.rest.UploadPrepare;
-import cn.reghao.oss.api.dto.rest.UploadPrepareRet;
-import cn.reghao.oss.api.dto.rest.UploadSample;
-import cn.reghao.tnb.file.app.model.constant.OssType;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.stereotype.Service;
@@ -32,59 +26,23 @@ public class StoreServiceWrapperRouter implements OssService {
     }
 
     @Override
-    public ServerInfo getUploadStore(int channelCode) {
+    public void checkAndSetScope(String objectId, int scope) {
         try {
-            return ossClientManager.getOssClient().getServerInfo(channelCode);
+            ossClientManager.getOssClient().checkAndSetScope(objectId, scope);
         } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    public UploadPrepareRet prepareUpload(UploadPrepare uploadPrepare) {
-        try {
-            return ossClientManager.getOssClient().prepareUpload(uploadPrepare);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    public UploadFileRet checkSample(UploadSample uploadSample) {
-        try {
-            return ossClientManager.getOssClient().checkSample(uploadSample);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
+            log.error("{}", e.getMessage());
         }
     }
 
     @Override
-    public ObjectChannel getChannel(int channelCode) {
+    public void deleteByObjectId(String objectId) {
         try {
-            return ossClientManager.getOssClient().getChannel(channelCode);
-            /*if (ossType == OssType.localOss.getCode()) {
-                return ossClientManager.getOssClient().getChannel(channelCode);
-            } else if (ossType == OssType.aliyunOss.getCode()) {
-            }*/
+            ossClientManager.getOssClient().deleteObject(objectId);
         } catch (Exception e) {
-            throw new RuntimeException(e);
+            log.error("{}", e.getMessage());
         }
     }
 
-    @Override
-    public void setObjectScope(String objectId, int scope) {
-        if (ossType == OssType.localOss.getCode()) {
-            try {
-                ossClientManager.getOssClient().setObjectScope(objectId, scope);
-            } catch (Exception e) {
-                log.error("{}", e.getMessage());
-            }
-        } else if (ossType == OssType.aliyunOss.getCode()) {
-        }
-    }
-
-    @Override
-    public void deleteByObjectId(String objectId) {
-    }
-
     @Override
     public void deleteByObjectUrl(String objectUrl) {
     }
@@ -99,12 +57,46 @@ public class StoreServiceWrapperRouter implements OssService {
     }
 
     @Override
-    public ObjectInfo getObjectInfo(String objectId) {
-        return ossClientManager.getOssClient().getObjectInfo(objectId);
+    public ObjectMeta getObjectMeta(String objectId) {
+        ObjectInfo objectInfo = ossClientManager.getOssClient().getObjectInfo(objectId);
+        if (objectInfo == null) {
+            return null;
+        }
+
+        ObjectMeta objectMeta = new ObjectMeta();
+        objectMeta.setObjectId(objectInfo.getObjectId());
+        objectMeta.setObjectName(objectInfo.getObjectName());
+        objectMeta.setFileType(objectInfo.getFileType());
+        objectMeta.setFilename(objectInfo.getFilename());
+        objectMeta.setSize(objectInfo.getSize());
+        objectMeta.setUrl(objectInfo.getUrl());
+        objectMeta.setScope(objectInfo.getScope());
+        objectMeta.setSha256sum(objectInfo.getSha256sum());
+        objectMeta.setUpdateTime(objectInfo.getUpdateTime());
+        return objectMeta;
     }
 
     @Override
-    public VideoInfo getVideoInfo(String videoFileId) {
-        return ossClientManager.getOssClient().getVideoInfo(videoFileId);
+    public VideoMeta getVideoMeta(String videoFileId) {
+        VideoInfo videoInfo = ossClientManager.getOssClient().getVideoInfo(videoFileId);
+        if (videoInfo == null) {
+            return null;
+        }
+
+        VideoMeta videoMeta = new VideoMeta();
+        videoMeta.setObjectId(videoInfo.getObjectId());
+        videoMeta.setVideoCodec(videoInfo.getVideoCodec());
+        videoMeta.setVbitRate(videoInfo.getVbitRate());
+        videoMeta.setAudioCodec(videoInfo.getAudioCodec());
+        videoMeta.setAbitRate(videoInfo.getAbitRate());
+        videoMeta.setFormatName(videoInfo.getFormatName());
+        videoMeta.setUrlType(videoInfo.getUrlType());
+        videoMeta.setUrl(videoInfo.getUrl());
+        videoMeta.setQuality(videoInfo.getQuality());
+        videoMeta.setWidth(videoInfo.getWidth());
+        videoMeta.setHeight(videoInfo.getHeight());
+        videoMeta.setDuration(videoInfo.getDuration());
+        videoMeta.setSize(videoInfo.getSize());
+        return videoMeta;
     }
 }

+ 4 - 4
file/file-service/src/main/java/cn/reghao/tnb/file/app/service/AvatarService.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.file.app.service;
 
+import cn.reghao.file.api.dto.ObjectMeta;
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.tnb.auth.api.iface.AccountQuery;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.file.app.model.dto.AvatarUpdate;
@@ -25,9 +25,9 @@ public class AvatarService {
 
     public String updateAvatar(AvatarUpdate avatarUpdate) throws Exception {
         String uploadId = avatarUpdate.getUploadId();
-        ObjectInfo objectInfo = ossService.getObjectInfo(uploadId);
-        if (objectInfo != null) {
-            String avatarUrl = objectInfo.getUrl();
+        ObjectMeta objectMeta = ossService.getObjectMeta(uploadId);
+        if (objectMeta != null) {
+            String avatarUrl = objectMeta.getUrl();
             long loginUser = UserContext.getUserId();
             accountQuery.updateAvatar(loginUser, avatarUrl);
             return avatarUrl;

+ 45 - 0
file/file-service/src/main/java/cn/reghao/tnb/file/app/service/OssUploadService.java

@@ -0,0 +1,45 @@
+package cn.reghao.tnb.file.app.service;
+
+import cn.reghao.oss.api.dto.ServerInfo;
+import cn.reghao.oss.api.dto.rest.UploadFileRet;
+import cn.reghao.oss.api.dto.rest.UploadPrepare;
+import cn.reghao.oss.api.dto.rest.UploadPrepareRet;
+import cn.reghao.oss.api.dto.rest.UploadSample;
+import cn.reghao.tnb.file.app.rpc.OssClientManager;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class OssUploadService {
+    private final int ossType = 1;
+    private final OssClientManager ossClientManager;
+
+    public OssUploadService(OssClientManager ossClientManager) {
+        this.ossClientManager = ossClientManager;
+    }
+
+    public ServerInfo getUploadStore(int channelCode) {
+        try {
+            return ossClientManager.getOssClient().getServerInfo(channelCode);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public UploadPrepareRet prepareUpload(UploadPrepare uploadPrepare) {
+        try {
+            return ossClientManager.getOssClient().prepareUpload(uploadPrepare);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public UploadFileRet checkSample(UploadSample uploadSample) {
+        try {
+            return ossClientManager.getOssClient().checkSample(uploadSample);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

+ 5 - 5
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/model/vo/DiskFileDetail.java

@@ -1,6 +1,6 @@
 package cn.reghao.tnb.file.app.zdisk.model.vo;
 
-import cn.reghao.oss.api.dto.ObjectInfo;
+import cn.reghao.file.api.dto.ObjectMeta;
 import cn.reghao.tnb.file.app.zdisk.model.po.DiskFile;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
@@ -19,10 +19,10 @@ public class DiskFileDetail {
     private String filename;
     private String url;
 
-    public DiskFileDetail(ObjectInfo objectInfo, String signedUrl) {
-        this.fileId = objectInfo.getObjectId();
-        this.fileType = objectInfo.getFileType();
-        this.filename = objectInfo.getFilename();
+    public DiskFileDetail(ObjectMeta objectMeta, String signedUrl) {
+        this.fileId = objectMeta.getObjectId();
+        this.fileType = objectMeta.getFileType();
+        this.filename = objectMeta.getFilename();
         this.url = signedUrl;
     }
 

+ 7 - 5
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/CamRecordService.java

@@ -1,5 +1,6 @@
 package cn.reghao.tnb.file.app.zdisk.service;
 
+import cn.reghao.file.api.dto.VideoMeta;
 import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.converter.DateTimeConverter;
 import cn.reghao.jutil.jdk.web.db.Page;
@@ -17,6 +18,7 @@ import cn.reghao.tnb.file.app.zdisk.model.dto.CamRecordDto;
 import cn.reghao.tnb.file.app.zdisk.model.po.CamDevice;
 import cn.reghao.tnb.file.app.zdisk.model.po.CamRecord;
 import cn.reghao.tnb.common.util.IdService;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.stereotype.Service;
 
@@ -30,6 +32,7 @@ import java.util.Set;
  * @author reghao
  * @date 2023-12-08 16:06:39
  */
+@Slf4j
 @Service
 public class CamRecordService {
     @DubboReference(check = false, timeout = 60_000)
@@ -70,9 +73,8 @@ public class CamRecordService {
         try {
             int videoChannelCode = camRecordDto.getVideoChannelCode();
             String videoFileId = camRecordDto.getVideoFileId();
-            VideoInfo videoInfo = ossService.getVideoInfo(videoFileId);
-
-            int duration = videoInfo.getDuration();
+            VideoMeta videoMeta = ossService.getVideoMeta(videoFileId);
+            int duration = videoMeta.getDuration();
             long recordId = idService.getLongId();
             long startAt = camRecordDto.getStartAt();
             LocalDateTime startAt1 = DateTimeConverter.localDateTime(startAt);
@@ -80,7 +82,7 @@ public class CamRecordService {
             camRecordMapper.save(camRecord);
             return Result.success();
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("{}", e.getMessage());
         }
 
         return Result.fail("");
@@ -159,7 +161,7 @@ public class CamRecordService {
             String signedUrl = ossService.getSignedUrl(videoFileId);
             return new CamRecordDetail(camRecord, signedUrl);
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("{}", e.getMessage());
         }
 
         return null;

+ 10 - 11
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/DiskFileService.java

@@ -1,5 +1,6 @@
 package cn.reghao.tnb.file.app.zdisk.service;
 
+import cn.reghao.file.api.dto.ObjectMeta;
 import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.converter.ByteConverter;
 import cn.reghao.jutil.jdk.converter.ByteType;
@@ -12,7 +13,6 @@ import cn.reghao.tnb.file.app.zdisk.model.vo.DiskFileDetail;
 import cn.reghao.tnb.file.app.zdisk.model.vo.FileInfo;
 import cn.reghao.tnb.file.app.zdisk.model.vo.NamePath;
 import cn.reghao.oss.api.constant.ObjectType;
-import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.common.util.StringUtil;
 import cn.reghao.tnb.file.app.zdisk.db.mapper.DiskFileMapper;
@@ -21,7 +21,6 @@ import cn.reghao.tnb.file.app.zdisk.model.dto.UploadedFile;
 import cn.reghao.tnb.file.app.zdisk.model.dto.MoveFile;
 import cn.reghao.tnb.file.app.zdisk.model.po.DiskFile;
 import cn.reghao.tnb.file.app.zdisk.model.query.DiskQuery;
-import cn.reghao.tnb.file.app.zdisk.model.vo.*;
 import cn.reghao.tnb.file.app.zdisk.util.FileUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -58,22 +57,22 @@ public class DiskFileService {
         try {
             int channelCode = uploadedFile.getChannelCode();
             String uploadId = uploadedFile.getUploadId();
-            ObjectInfo objectInfo = ossService.getObjectInfo(uploadId);
-            String filename = objectInfo.getFilename();
+            ObjectMeta objectMeta = ossService.getObjectMeta(uploadId);
+            String filename = objectMeta.getFilename();
             String path = FileUtil.getCanonicalPath(String.format("%s/%s", parentPath, filename));
             DiskFile diskFile2 = findByPath(path);
             if (diskFile2 != null) {
                 return Result.fail("file exist");
             }
 
-            long size = objectInfo.getSize();
-            int fileType = objectInfo.getFileType();
-            String sha256sum = objectInfo.getSha256sum();
+            long size = objectMeta.getSize();
+            int fileType = objectMeta.getFileType();
+            String sha256sum = objectMeta.getSha256sum();
             DiskFile diskFile = new DiskFile(channelCode, uploadId, pid, path, filename, fileType, sha256sum, size);
             diskFileMapper.save(diskFile);
             return Result.success();
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("{}", e.getMessage());
         }
         return Result.fail("上传文件失败");
     }
@@ -585,11 +584,11 @@ public class DiskFileService {
 
     public DiskFileDetail getDiskFileDetail(int channelCode, String objectId) {
         try {
-            ObjectInfo objectInfo = ossService.getObjectInfo(objectId);
+            ObjectMeta objectMeta = ossService.getObjectMeta(objectId);
             String signedUrl = ossService.getSignedUrl(objectId);
-            return new DiskFileDetail(objectInfo, signedUrl);
+            return new DiskFileDetail(objectMeta, signedUrl);
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("{}", e.getMessage());
         }
 
         return null;

+ 0 - 8
file/pom.xml

@@ -19,12 +19,4 @@
         <maven.compiler.source>21</maven.compiler.source>
         <maven.compiler.target>21</maven.compiler.target>
     </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>cn.reghao.oss</groupId>
-            <artifactId>oss-sdk</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
 </project>

+ 3 - 24
zzz/build.sh

@@ -7,26 +7,12 @@
 set -e
 
 proj_dir=`pwd`
-env='dev'
-
-###############################################################################
-# 构建依赖
-###############################################################################
-build_dependencies() {
-  cd ${proj_dir}
-  git clone --depth=1 https://git.reghao.cn/reghao/jutil
-  cd jutil
-  mvn clean install -Dmaven.test.skip
-}
 
 install_dependencies() {
   cd ${proj_dir}
-  mvn clean install -Dmaven.test.skip -am -pl oss/oss-api/
-  mvn clean install -Dmaven.test.skip -am -pl oss/oss-sdk
-
   mvn clean install -Dmaven.test.skip -am -pl common
   mvn clean install -Dmaven.test.skip -am -pl common-auth
-  mvn clean install -Dmaven.test.skip -am -pl account/auth-api/
+  mvn clean install -Dmaven.test.skip -am -pl auth/auth-api/
   mvn clean install -Dmaven.test.skip -am -pl user/user-api/
   mvn clean install -Dmaven.test.skip -am -pl message/message-api/
   mvn clean install -Dmaven.test.skip -am -pl content/content-api/
@@ -37,12 +23,9 @@ install_dependencies() {
 
 deploy_dependencies() {
   cd ${proj_dir}
-  mvn clean deploy -Dmaven.test.skip -am -pl oss/oss-api/
-  mvn clean deploy -Dmaven.test.skip -am -pl oss/oss-sdk
-
   mvn clean deploy -Dmaven.test.skip -am -pl common
   mvn clean deploy -Dmaven.test.skip -am -pl common-auth
-  mvn clean deploy -Dmaven.test.skip -am -pl account/auth-api/
+  mvn clean deploy -Dmaven.test.skip -am -pl auth/auth-api/
   mvn clean deploy -Dmaven.test.skip -am -pl user/user-api/
   mvn clean deploy -Dmaven.test.skip -am -pl message/message-api/
   mvn clean deploy -Dmaven.test.skip -am -pl content/content-api/
@@ -51,12 +34,8 @@ deploy_dependencies() {
   mvn clean deploy -Dmaven.test.skip -am -pl data/data-api/
 }
 
-
-echo "构建第三方依赖..."
-#build_dependencies
-
 echo "安装 tnb 依赖到本地仓库..."
-#install_dependencies
+install_dependencies
 
 echo "部署 tnb 依赖到远程仓库..."
 #deploy_dependencies