|
|
@@ -14,17 +14,20 @@ 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.vo.*;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author reghao
|
|
|
* @date 2023-11-10 15:16:35
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
public class DiskAlbumService {
|
|
|
@DubboReference(check = false, timeout = 60_000)
|
|
|
@@ -51,7 +54,16 @@ public class DiskAlbumService {
|
|
|
|
|
|
public void addAlbumFile(AlbumAdd albumAdd) {
|
|
|
long albumId = albumAdd.getAlbumId();
|
|
|
- List<String> fileIds = albumAdd.getFileIds();
|
|
|
+ Set<String> existFileIds = diskAlbumMapper.findByAlbumId(albumId).stream()
|
|
|
+ .map(DiskAlbumFile::getFileId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ List<String> fileIds = albumAdd.getFileIds().stream()
|
|
|
+ .filter(fileId -> !existFileIds.contains(fileId))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (fileIds.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
long loginUser = UserContext.getUserId();
|
|
|
List<DiskAlbumFile> list = netDiskMapper.findByFileIds(fileIds).stream()
|
|
|
.filter(netDisk -> netDisk.getFileType() == ObjectType.Image.getCode()
|
|
|
@@ -97,7 +109,7 @@ public class DiskAlbumService {
|
|
|
String signedUrl = ossService.getSignedUrlByUrl(channelCode, coverUrl);
|
|
|
diskAlbum.setCoverUrl(signedUrl);
|
|
|
} catch (Exception e) {
|
|
|
- // ignore
|
|
|
+ log.error("{}", e.getMessage());
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -105,9 +117,15 @@ public class DiskAlbumService {
|
|
|
}
|
|
|
|
|
|
public PageList<NetDiskDetail> getDiskAlbumDetail(long albumId) {
|
|
|
+ long loginUser = UserContext.getUserId();
|
|
|
+ DiskAlbum diskAlbum = diskAlbumMapper.findDiskAlbum(albumId);
|
|
|
+ long createBy = diskAlbum.getCreateBy();
|
|
|
+ if (createBy != loginUser) {
|
|
|
+ return PageList.empty();
|
|
|
+ }
|
|
|
+
|
|
|
List<DiskAlbumFile> diskAlbumFileList = diskAlbumMapper.findByAlbumId(albumId);
|
|
|
List<String> fileIds = diskAlbumFileList.stream().map(DiskAlbumFile::getFileId).collect(Collectors.toList());
|
|
|
-
|
|
|
if (!fileIds.isEmpty()) {
|
|
|
List<NetDiskDetail> netDiskDetailList = netDiskMapper.findByFileIds(fileIds).stream().map(netDisk -> {
|
|
|
String objectId = netDisk.getFileId();
|