|
|
@@ -1,6 +1,7 @@
|
|
|
package cn.reghao.tnb.content.app.disk.service;
|
|
|
|
|
|
import cn.reghao.file.api.iface.OssService;
|
|
|
+import cn.reghao.jutil.jdk.db.Page;
|
|
|
import cn.reghao.jutil.jdk.db.PageList;
|
|
|
import cn.reghao.jutil.jdk.result.Result;
|
|
|
import cn.reghao.jutil.tool.id.SnowFlake;
|
|
|
@@ -16,6 +17,7 @@ import cn.reghao.tnb.content.app.disk.model.dto.AlbumCreate;
|
|
|
import cn.reghao.tnb.content.app.disk.model.po.DiskAlbum;
|
|
|
import cn.reghao.tnb.content.app.disk.model.po.DiskAlbumFile;
|
|
|
import cn.reghao.tnb.content.app.disk.model.po.DiskFile;
|
|
|
+import cn.reghao.tnb.content.app.disk.model.query.DiskQuery;
|
|
|
import cn.reghao.tnb.content.app.disk.model.vo.*;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
@@ -153,8 +155,9 @@ public class DiskAlbumService {
|
|
|
List<DiskAlbumFile> diskAlbumFileList = diskAlbumMapper.findDiskAlbumFiles(albumId);
|
|
|
List<String> fileIds = diskAlbumFileList.stream().map(DiskAlbumFile::getFileId).collect(Collectors.toList());
|
|
|
if (fileIds.isEmpty()) {
|
|
|
- return null;
|
|
|
+ return new DiskAlbumDetail(diskAlbum, Collections.emptyList());
|
|
|
}
|
|
|
+
|
|
|
Map<String, Integer> map = new HashMap<>();
|
|
|
for (DiskAlbumFile diskAlbumFile : diskAlbumFileList) {
|
|
|
map.put(diskAlbumFile.getFileId(), diskAlbumFile.getPos());
|
|
|
@@ -170,4 +173,40 @@ public class DiskAlbumService {
|
|
|
.collect(Collectors.toList());
|
|
|
return new DiskAlbumDetail(diskAlbum, diskFileDetailList);
|
|
|
}
|
|
|
+
|
|
|
+ public PageList<DiskAlbumImage> getAlbumImages(int pageNumber, int pageSize) {
|
|
|
+ long loginUser = UserContext.getUserId();
|
|
|
+ List<Long> albumIds = diskAlbumMapper.findByCreateBy(loginUser).stream()
|
|
|
+ .map(DiskAlbum::getAlbumId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Set<String> imageFileIdSet = new HashSet<>();
|
|
|
+ if (!albumIds.isEmpty()) {
|
|
|
+ imageFileIdSet.addAll(diskAlbumMapper.findBykAlbumIds(albumIds));
|
|
|
+ }
|
|
|
+
|
|
|
+ DiskQuery.Builder builder = new DiskQuery.Builder()
|
|
|
+ .pageNumber(pageNumber)
|
|
|
+ .pageSize(pageSize)
|
|
|
+ .fileType(ObjectType.Image.getCode())
|
|
|
+ .owner(loginUser);
|
|
|
+ DiskQuery diskQuery = builder.build();
|
|
|
+ Page page = new Page(pageNumber, pageSize);
|
|
|
+ int total = diskFileMapper.countSha256sumGroupByDiskQuery(diskQuery).size();
|
|
|
+
|
|
|
+ List<DiskFile> diskFileList = diskFileMapper.findSha256sumGroupByPage(page, diskQuery).stream()
|
|
|
+ .filter(diskFile -> !imageFileIdSet.contains(diskFile.getFileId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<DiskAlbumImage> list = diskFileList.stream().map(DiskAlbumImage::new).collect(Collectors.toList());
|
|
|
+ for (DiskAlbumImage diskAlbumImage : list) {
|
|
|
+ String fileId = diskAlbumImage.getFileId();
|
|
|
+ try {
|
|
|
+ String signedUrl = ossService.getSignedUrl(channelCode, fileId);
|
|
|
+ diskAlbumImage.setUrl(signedUrl);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return PageList.pageList(diskQuery.getPageNumber(), diskQuery.getPageSize(), total, list);
|
|
|
+ }
|
|
|
}
|