Explorar o código

更新 content-service/vod 的 AlbumPostController

reghao hai 6 meses
pai
achega
a208d45208

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

@@ -1,11 +1,12 @@
 package cn.reghao.tnb.content.app.vod.controller;
 
+import cn.reghao.jutil.jdk.db.PageList;
 import cn.reghao.jutil.jdk.result.Result;
 import cn.reghao.jutil.web.WebResult;
 import cn.reghao.tnb.common.auth.AuthUser;
+import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.content.app.vod.model.dto.*;
-import cn.reghao.tnb.content.app.vod.model.query.AlbumQuery;
-import cn.reghao.tnb.content.app.vod.model.vo.AlbumItem;
+import cn.reghao.tnb.content.app.vod.model.vo.AlbumInfo;
 import cn.reghao.tnb.content.app.vod.service.AlbumService;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
@@ -50,6 +51,15 @@ public class AlbumPostController {
         return WebResult.success(albumService.getSelectOptions());
     }
 
+    @AuthUser
+    @Operation(summary = "获取用户的稿件合集", description = "N")
+    @GetMapping(value = "/user", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String getUserAlbum(@RequestParam("pn") int pageNumber) {
+        long loginUser = UserContext.getUserId();
+        PageList<AlbumInfo> pageList = albumService.getUserAlbums(loginUser, pageNumber);
+        return WebResult.success(pageList);
+    }
+
     @AuthUser
     @Operation(summary = "获取稿件合集中的内容", description = "N")
     @GetMapping(value = "/item", produces = MediaType.APPLICATION_JSON_VALUE)

+ 36 - 0
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/AlbumService.java

@@ -133,6 +133,42 @@ public class AlbumService {
         return PageList.pageList(pn, pageSize, total, list1);
     }
 
+    public PageList<AlbumInfo> getUserAlbums(long userId, int pn) {
+        List<Integer> scopes = contentPermission.getUserScopes();
+        long loginUser = UserContext.getUserId();
+        if (loginUser == userId) {
+            scopes.add(PostScope.PRIVATE.getCode());
+        }
+
+        AlbumQuery albumQuery = new AlbumQuery.Builder()
+                .createBy(userId)
+                .scope(scopes)
+                .build();
+
+        int total = albumRepository.countPostAlbum(albumQuery);
+        Page page = new Page(pn, pageSize);
+        List<PostAlbum> list = albumRepository.getPostAlbums(page, albumQuery);
+        List<AlbumInfo> list1 = list.stream().map(postAlbum -> {
+            int scope = postAlbum.getScope();
+            String coverUrl = postAlbum.getCoverUrl();
+            if (scope != PostScope.PUBLIC.getCode() && coverUrl != null) {
+                ImageFile imageFile = imageRepository.getByUrl(coverUrl);
+                if (imageFile != null) {
+                    int channelCode = imageFile.getChannelCode();
+                    String objectId = imageFile.getObjectId();
+                    try {
+                        String signedUrl = ossService.getSignedUrl(channelCode, objectId);
+                        postAlbum.setCoverUrl(signedUrl);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+            return new AlbumInfo(postAlbum);
+        }).collect(Collectors.toList());
+        return PageList.pageList(pn, pageSize, total, list1);
+    }
+
     public String getAlbumContent(Long albumId, Integer pn) {
         long loginUser = UserContext.getUserId();
         AlbumQuery albumQuery;