|
|
@@ -1,15 +1,14 @@
|
|
|
package com.izouma.nineth.service;
|
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.izouma.nineth.TokenHistory;
|
|
|
import com.izouma.nineth.config.Constants;
|
|
|
import com.izouma.nineth.config.GeneralProperties;
|
|
|
import com.izouma.nineth.converter.LongArrayConverter;
|
|
|
import com.izouma.nineth.domain.Collection;
|
|
|
import com.izouma.nineth.domain.*;
|
|
|
-import com.izouma.nineth.dto.PageQuery;
|
|
|
-import com.izouma.nineth.dto.PageWrapper;
|
|
|
-import com.izouma.nineth.dto.UserHistory;
|
|
|
+import com.izouma.nineth.dto.*;
|
|
|
import com.izouma.nineth.enums.*;
|
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
|
import com.izouma.nineth.repo.*;
|
|
|
@@ -18,8 +17,10 @@ import com.izouma.nineth.utils.SecurityUtils;
|
|
|
import com.izouma.nineth.utils.TokenUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
|
@@ -78,6 +79,42 @@ public class AssetService {
|
|
|
return all;
|
|
|
}
|
|
|
|
|
|
+ public List<AssetDTO> superimposition(PageQuery pageQuery) {
|
|
|
+ List<AssetDTO> assetDTOs = new ArrayList<>();
|
|
|
+ // 根据条件查询所有资产
|
|
|
+ List<Asset> assets = assetRepo.findAll(JpaUtils.toSpecification(pageQuery, Asset.class));
|
|
|
+ if (CollectionUtils.isEmpty(assets)) {
|
|
|
+ return assetDTOs;
|
|
|
+ }
|
|
|
+ // 取出资产中未开启盲盒数据
|
|
|
+ List<Asset> blindBoxClosedAssets = assets.stream().filter(asset -> !asset.isOpened() && CollectionType.BLIND_BOX.equals(asset.getType())).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(blindBoxClosedAssets)) {
|
|
|
+ blindBoxClosedAssets.forEach(asset -> {
|
|
|
+ assetDTOs.add(AssetDTO.create(Lists.newArrayList(asset)));
|
|
|
+ });
|
|
|
+ // 移除资产中未开启盲盒数据
|
|
|
+ assets.removeAll(blindBoxClosedAssets);
|
|
|
+ }
|
|
|
+ // 取出资产中所有未设置prefixName的值
|
|
|
+ List<Asset> prefixNameIsNullAssets = assets.stream().filter(asset -> StringUtils.isBlank(asset.getPrefixName())).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(prefixNameIsNullAssets)) {
|
|
|
+ prefixNameIsNullAssets.forEach(asset -> {
|
|
|
+ assetDTOs.add(AssetDTO.create(Lists.newArrayList(asset)));
|
|
|
+ });
|
|
|
+ assets.removeAll(prefixNameIsNullAssets);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(assets)) {
|
|
|
+ // 取出资产中所有prefixName
|
|
|
+ List<String> prefixNames = assets.stream().map(Asset::getPrefixName).distinct().collect(Collectors.toList());
|
|
|
+ // 将资产中相同prefixName归类(除未开启盲盒和未设置prefixName)
|
|
|
+ prefixNames.forEach(str -> {
|
|
|
+ List<Asset> collect = assets.stream().filter(asset -> str.equals(asset.getPrefixName())).collect(Collectors.toList());
|
|
|
+ assetDTOs.add(AssetDTO.create(collect));
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return assetDTOs;
|
|
|
+ }
|
|
|
+
|
|
|
public Asset createAsset(Collection collection, User user, Long orderId, BigDecimal price, String type,
|
|
|
Integer number, boolean safeFlag) {
|
|
|
Asset asset = Asset.create(collection, user);
|
|
|
@@ -761,7 +798,7 @@ public class AssetService {
|
|
|
userRepo.addDestroyPoint(userId, 1);
|
|
|
}
|
|
|
|
|
|
- public int getRoyalties(Long minterId, int royalties,Long userId) {
|
|
|
+ public int getRoyalties(Long minterId, int royalties, Long userId) {
|
|
|
if (royalties == 3) {
|
|
|
return 3;
|
|
|
}
|