我的cp列表i更改

(cherry picked from commit f098c903b296c34bf1859ebb7cb8eb60ba92ca38)
This commit is contained in:
tianfeng 2026-04-29 18:47:01 +08:00
parent 8493acdb35
commit 0ff77e6605

View File

@ -17,10 +17,12 @@ import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 用户cp对查询.
@ -51,27 +53,44 @@ public class UserCpPairUserProfileQryExe {
UserProfileDTO meUserProfileDTO = userProfileAppConvertor.toSimpleUserProfileDTO(meUser);
return cpList.stream()
.map(cp -> {
String status = dismissing.stream()
.anyMatch(d -> d.getCpUserId().equals(cp.getCpUserId())) ? "DISMISSING" : "NORMAL";
return new CpPairUserProfileCO()
.setMeUserProfile(meUserProfileDTO)
.setCpUserProfile(getUserProfile(cp.getCpUserId()))
.setStatus(status)
.setCpValue(cp.getCpValue())
.setDays(cp.getDays())
.setFirstDay(cp.getFirstDay())
.setCpLevel(cp.getCpLevel())
.setNextLevelExp(cp.getNextLevelExp())
.setLoveHeartLevel(cp.getLoveHeartLevel())
.setMicEffectLevel(cp.getMicEffectLevel())
.setProfileCardLevel(cp.getProfileCardLevel())
.setGiftWindowLevel(cp.getGiftWindowLevel())
.setHasNonMicEffect(cp.getHasNonMicEffect())
.setSelfRing(cp.getSelfRing());
})
.sorted(Comparator.comparing(CpPairUserProfileCO::getCpValue).reversed())
// 已在 cpList 中的 cpUserIdNORMAL避免 dismissing 重复追加
Set<Long> normalCpUserIds = cpList.stream()
.map(CpSimpleUserProfileCO::getCpUserId)
.collect(Collectors.toSet());
List<CpPairUserProfileCO> result = new ArrayList<>();
// NORMAL CPcache 数据status 固定为 NORMAL
cpList.stream()
.map(cp -> new CpPairUserProfileCO()
.setMeUserProfile(meUserProfileDTO)
.setCpUserProfile(getUserProfile(cp.getCpUserId()))
.setStatus("NORMAL")
.setCpValue(cp.getCpValue())
.setDays(cp.getDays())
.setFirstDay(cp.getFirstDay())
.setCpLevel(cp.getCpLevel())
.setNextLevelExp(cp.getNextLevelExp())
.setLoveHeartLevel(cp.getLoveHeartLevel())
.setMicEffectLevel(cp.getMicEffectLevel())
.setProfileCardLevel(cp.getProfileCardLevel())
.setGiftWindowLevel(cp.getGiftWindowLevel())
.setHasNonMicEffect(cp.getHasNonMicEffect())
.setSelfRing(cp.getSelfRing()))
.forEach(result::add);
// DISMISSING CP不在 NORMAL 列表中的才追加避免重复
dismissing.stream()
.filter(d -> !normalCpUserIds.contains(d.getCpUserId()))
.map(d -> new CpPairUserProfileCO()
.setMeUserProfile(meUserProfileDTO)
.setCpUserProfile(getUserProfile(d.getCpUserId()))
.setStatus("DISMISSING"))
.forEach(result::add);
return result.stream()
.sorted(Comparator.comparing(CpPairUserProfileCO::getCpValue,
Comparator.nullsLast(Comparator.reverseOrder())))
.toList();
}