|
|
@@ -3,18 +3,21 @@ package com.izouma.nineth.service;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.izouma.nineth.config.Constants;
|
|
|
import com.izouma.nineth.domain.DestroyRecord;
|
|
|
+import com.izouma.nineth.domain.RecordRank;
|
|
|
import com.izouma.nineth.domain.SysConfig;
|
|
|
-import com.izouma.nineth.dto.DestroyRecordRankDTO;
|
|
|
import com.izouma.nineth.dto.PageQuery;
|
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
|
import com.izouma.nineth.repo.DestroyRecordRepo;
|
|
|
+import com.izouma.nineth.repo.RecordRankRepo;
|
|
|
import com.izouma.nineth.repo.SysConfigRepo;
|
|
|
import com.izouma.nineth.utils.JpaUtils;
|
|
|
import jodd.util.StringUtil;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -26,11 +29,13 @@ public class DestroyRecordService {
|
|
|
|
|
|
private DestroyRecordRepo destroyRecordRepo;
|
|
|
|
|
|
+ private RecordRankRepo recordRankRepo;
|
|
|
+
|
|
|
public Page<DestroyRecord> all(PageQuery pageQuery) {
|
|
|
return destroyRecordRepo.findAll(JpaUtils.toSpecification(pageQuery, DestroyRecord.class), JpaUtils.toPageRequest(pageQuery));
|
|
|
}
|
|
|
|
|
|
- public List<DestroyRecordRankDTO> destroyRecordRank(String rare) {
|
|
|
+ public List<RecordRank> destroyRecordRank(String rare) {
|
|
|
String not = null;
|
|
|
if (Constants.Rarity.SSR.equals(rare)) {
|
|
|
not = "%" + Constants.Rarity.U + " #%";
|
|
|
@@ -49,6 +54,13 @@ public class DestroyRecordService {
|
|
|
List<Map<String, String>> map = destroyRecordRepo.destroyRecordRank(blindBoxId, "%" + rare + " #%", not);
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
jsonArray.addAll(map);
|
|
|
- return jsonArray.toJavaList(DestroyRecordRankDTO.class);
|
|
|
+ List<RecordRank> recordRanks = jsonArray.toJavaList(RecordRank.class);
|
|
|
+ List<RecordRank> dbRecordRanks = recordRankRepo.findAllByBlindBoxIdAndRare(blindBoxId, rare);
|
|
|
+ if (CollectionUtils.isEmpty(dbRecordRanks)) {
|
|
|
+ return recordRanks;
|
|
|
+ }
|
|
|
+ recordRanks.addAll(dbRecordRanks);
|
|
|
+ recordRanks.sort(Comparator.comparingInt(RecordRank::getNum).reversed());
|
|
|
+ return recordRanks;
|
|
|
}
|
|
|
}
|