|
@@ -911,23 +911,26 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
|
|
|
@Override
|
|
|
public UserTenantAlbumRecordWrapper.LastUserTenantAlbumRecord last(Long userId,Long albumId) {
|
|
|
|
|
|
- UserTenantAlbumRecord record = this.lambdaQuery()
|
|
|
+ List<UserTenantAlbumRecord> albumRecords = this.lambdaQuery()
|
|
|
.eq(UserTenantAlbumRecord::getUserId, userId)
|
|
|
.eq(UserTenantAlbumRecord::getEfficientFlag, true)
|
|
|
- .eq(albumId != null, UserTenantAlbumRecord::getTenantAlbumId, albumId)
|
|
|
- .orderByAsc(UserTenantAlbumRecord::getEndTime)
|
|
|
- .orderByAsc(UserTenantAlbumRecord::getId)
|
|
|
- .last("limit 1")
|
|
|
- .one();
|
|
|
+ .eq(albumId != null, UserTenantAlbumRecord::getTenantAlbumId, albumId).list();
|
|
|
UserTenantAlbumRecordWrapper.LastUserTenantAlbumRecord lastUserTenantAlbumRecord = new UserTenantAlbumRecordWrapper.LastUserTenantAlbumRecord();
|
|
|
Long tenantAlbumId = null;
|
|
|
Date endTime = null;
|
|
|
- if (record != null) {
|
|
|
+ if (CollectionUtils.isNotEmpty(albumRecords)) {
|
|
|
+
|
|
|
+ Map<Long, UserTenantAlbumRecord> recordMap = albumRecords.stream()
|
|
|
+ .collect(Collectors.toMap(UserTenantAlbumRecord::getTenantAlbumId,
|
|
|
+ Function.identity(), (o, n) -> o.getEndTime().after(n.getEndTime()) ? o : n));
|
|
|
+
|
|
|
+ UserTenantAlbumRecord record = recordMap.values().stream()
|
|
|
+ .min(Comparator.comparing(UserTenantAlbumRecord::getEndTime)).get();
|
|
|
tenantAlbumId = record.getTenantAlbumId();
|
|
|
endTime = record.getEndTime();
|
|
|
}else {
|
|
|
|
|
|
- record = this.lambdaQuery()
|
|
|
+ UserTenantAlbumRecord record = this.lambdaQuery()
|
|
|
.eq(UserTenantAlbumRecord::getUserId, userId)
|
|
|
.eq(UserTenantAlbumRecord::getEfficientFlag, false)
|
|
|
.eq(albumId != null, UserTenantAlbumRecord::getTenantAlbumId, albumId)
|