|
|
@@ -14,6 +14,7 @@ import com.izouma.tcg.dto.PageQuery;
|
|
|
import com.izouma.tcg.dto.cardCase.CardCaseDTO;
|
|
|
import com.izouma.tcg.dto.cardCase.CardCaseInputDTO;
|
|
|
import com.izouma.tcg.dto.cardCase.CardDTO;
|
|
|
+import com.izouma.tcg.dto.cardCase.CaseDTO;
|
|
|
import com.izouma.tcg.enums.AuthorityName;
|
|
|
import com.izouma.tcg.enums.CaseStatus;
|
|
|
import com.izouma.tcg.enums.OrderStatus;
|
|
|
@@ -142,6 +143,46 @@ public class CardCaseService {
|
|
|
return getCardCaseDTOS(cardCases);
|
|
|
}
|
|
|
|
|
|
+ private List<CardCaseDTO> getCustomSearchResult(List<CaseDTO> caseDTOS) {
|
|
|
+ List<CardCaseDTO> result = new ArrayList<>();
|
|
|
+ caseDTOS.forEach(caseDTO -> {
|
|
|
+ CardCaseDTO cardCaseDTO = new CardCaseDTO();
|
|
|
+ cardCaseDTO.setCardCaseId(caseDTO.getCardCaseId());
|
|
|
+ Collection collection = collectionRepo.findById(caseDTO.getCollectionId()).orElse(null);
|
|
|
+ if (caseDTO.getCaseName() != null) {
|
|
|
+ cardCaseDTO.setCaseName(caseDTO.getCaseName());
|
|
|
+ } else {
|
|
|
+ cardCaseDTO
|
|
|
+ .setCaseName(collection
|
|
|
+ .getName());
|
|
|
+ }
|
|
|
+ if (caseDTO.getImages().size() == 0) {
|
|
|
+ cardCaseDTO.setImage(collection.getImages().get(0));
|
|
|
+ } else {
|
|
|
+ cardCaseDTO.setImage(caseDTO.getImages().get(0));
|
|
|
+ }
|
|
|
+ cardCaseDTO.setEndTime(caseDTO.getEndTime());
|
|
|
+ cardCaseDTO.setCaseStatus(caseDTO.getCaseStatus().toString());
|
|
|
+ Integer totalCount = cardBoxRepo.countAllByCardCaseId(caseDTO.getCardCaseId());
|
|
|
+ Integer preorderCount = cardBoxRepo.countAllByCardCaseIdAndUserIdNotNull(caseDTO.getCardCaseId());
|
|
|
+ Integer otherPreorderCount = cardBoxRepo.countAllByCardCaseIdAndBindNameNotNull(caseDTO.getCardCaseId());
|
|
|
+ preorderCount = preorderCount + otherPreorderCount;
|
|
|
+ cardCaseDTO.setPrice(caseDTO.getPrice());
|
|
|
+ if (caseDTO.isSpecial()) {
|
|
|
+ cardCaseDTO.setTotal(totalCount / 2);
|
|
|
+ cardCaseDTO.setPreorder(preorderCount / 2);
|
|
|
+ } else {
|
|
|
+ cardCaseDTO.setPreorder(preorderCount);
|
|
|
+ cardCaseDTO.setTotal(totalCount);
|
|
|
+ }
|
|
|
+ cardCaseDTO.setLiveNow(caseDTO.isLiveNow());
|
|
|
+ cardCaseDTO.setInstant(caseDTO.isInstant());
|
|
|
+ cardCaseDTO.setRoomId(caseDTO.getRoomId());
|
|
|
+ result.add(cardCaseDTO);
|
|
|
+ });
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
private List<CardCaseDTO> getCardCaseDTOS(List<CardCase> cardCases) {
|
|
|
List<CardCaseDTO> result = new ArrayList<>();
|
|
|
cardCases.forEach(cardCase -> {
|
|
|
@@ -191,24 +232,22 @@ public class CardCaseService {
|
|
|
|
|
|
|
|
|
public List<CardCaseDTO> showCardCasesMA(CaseStatus caseStatus, Long collectionId, String search, Long seriesId) {
|
|
|
- List<CardCase> cardCases = new ArrayList<>();
|
|
|
+ List<CaseDTO> cardCases = new ArrayList<>();
|
|
|
Set<Long> collectionIds = new HashSet<>();
|
|
|
if (StringUtils.isNotBlank(search)) {
|
|
|
collectionIds = collectionRepo.findAllByNameLike("%" + search + "%").stream().map(Collection::getId)
|
|
|
.collect(Collectors.toSet());
|
|
|
- cardCases = cardCaseRepo
|
|
|
- .findAllByCaseStatusAndCollectionIdInAndSeriesIdOrderByCreatedAtDesc(caseStatus, collectionIds, seriesId);
|
|
|
}
|
|
|
if (collectionId != null) {
|
|
|
collectionIds.add(collectionId);
|
|
|
- cardCases = cardCaseRepo
|
|
|
- .findAllByCaseStatusAndCollectionIdInAndSeriesIdOrderByCreatedAtDesc(caseStatus, collectionIds, seriesId);
|
|
|
}
|
|
|
if (collectionId == null & StringUtils.isBlank(search)) {
|
|
|
- cardCases = cardCaseRepo.findAllByCaseStatusAndSeriesIdOrderByCreatedAtDesc(caseStatus, seriesId);
|
|
|
+ cardCases = cardCaseRepo.customFindList1(caseStatus, seriesId);
|
|
|
+ } else {
|
|
|
+ cardCases = cardCaseRepo
|
|
|
+ .customFindList2(caseStatus, collectionIds, seriesId);
|
|
|
}
|
|
|
- cardCases.removeIf(BaseEntity::isDel);
|
|
|
- return getCardCaseDTOS(cardCases);
|
|
|
+ return getCustomSearchResult(cardCases);
|
|
|
}
|
|
|
|
|
|
public Map<String, Object> showCaseInfoMA(Long caseId) {
|