wangqifan 2 лет назад
Родитель
Сommit
ec06bf044e
1 измененных файлов с 71 добавлено и 15 удалено
  1. 71 15
      src/main/java/com/izouma/nineth/service/AssetService.java

+ 71 - 15
src/main/java/com/izouma/nineth/service/AssetService.java

@@ -53,6 +53,9 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static java.util.stream.Collectors.toList;
 
 @Service
 @AllArgsConstructor
@@ -126,7 +129,7 @@ public class AssetService {
         List<Asset> blindBoxClosedAssets = assets.stream()
                                                  .filter(asset -> !asset.isOpened() && CollectionType.BLIND_BOX
                                                          .equals(asset.getType()))
-                                                 .collect(Collectors.toList());
+                                                 .collect(toList());
         if (CollectionUtils.isNotEmpty(blindBoxClosedAssets)) {
             blindBoxClosedAssets.forEach(asset -> {
                 assetDTOs.add(AssetDTO.create(Lists.newArrayList(asset)));
@@ -137,7 +140,7 @@ public class AssetService {
         // 取出资产中所有未设置prefixName的值
         List<Asset> prefixNameIsNullAssets = assets.stream()
                                                    .filter(asset -> StringUtils.isBlank(asset.getPrefixName()))
-                                                   .collect(Collectors.toList());
+                                                   .collect(toList());
         if (CollectionUtils.isNotEmpty(prefixNameIsNullAssets)) {
             prefixNameIsNullAssets.forEach(asset -> {
                 assetDTOs.add(AssetDTO.create(Lists.newArrayList(asset)));
@@ -149,12 +152,12 @@ public class AssetService {
             List<String> prefixNames = assets.stream()
                                              .map(Asset::getPrefixName)
                                              .distinct()
-                                             .collect(Collectors.toList());
+                                             .collect(toList());
             // 将资产中相同prefixName归类(除未开启盲盒和未设置prefixName)
             prefixNames.forEach(str -> {
                 List<Asset> collect = assets.stream()
                                             .filter(asset -> str.equals(asset.getPrefixName()))
-                                            .collect(Collectors.toList());
+                                            .collect(toList());
                 assetDTOs.add(AssetDTO.create(collect));
             });
         }
@@ -371,7 +374,7 @@ public class AssetService {
             numberSeq.setNumbers(map.entrySet().stream()
                                     .sorted(Map.Entry.comparingByValue())
                                     .map(Map.Entry::getKey)
-                                    .collect(Collectors.toList()));
+                                    .collect(toList()));
             numberSeqRepo.save(numberSeq);
         }
         return numberSeq.getNumbers().get(number);
@@ -730,7 +733,32 @@ public class AssetService {
                               collectionRepo.save(collection);
                           });
         }
+
+        Stream<DomainOrder> allDomainOrders = domainOrderRepo.findAll().stream();
+        List<DomainOrder> filteredDomainOrders = allDomainOrders
+                .filter(domainOrder -> domainOrder.getHyperLinkType() == HyperLinkType.COLLECTION)
+                .collect(toList());
+        for (DomainOrder filteredDomainOrder : filteredDomainOrders) {
+            String url = filteredDomainOrder.getAddress();
+            int secondSlashIndex = url.indexOf('/', url.indexOf('/') + 1);
+            if (url.length() > secondSlashIndex + 1) {
+                String secondNumber = url.substring(secondSlashIndex + 1);
+                if (!secondNumber.isEmpty()) {
+                    if (asset.getPublicCollectionId() != null && asset.getPublicCollectionId().equals(Long.parseLong(secondNumber))) {
+                        filteredDomainOrder.setOpenHyperLink(false);
+                        filteredDomainOrder.setHyperLinkType(null);
+                        filteredDomainOrder.setAddress(null);
+                        filteredDomainOrder.setCurrentOwnerId(null);
+                        domainOrderRepo.save(filteredDomainOrder);
+                    }
+                }
+            }
+        }
+
+
         asset.setConsignment(false);
+
+
         assetRepo.saveAndFlush(asset);
     }
 
@@ -758,8 +786,35 @@ public class AssetService {
         // 如果展厅有此藏品
         showCollectionRepo.deleteAllByCollectionId(asset.getPublicCollectionId());
 
+
+        Stream<DomainOrder> allDomainOrders = domainOrderRepo.findAll().stream();
+        List<DomainOrder> filteredDomainOrders = allDomainOrders
+                .filter(domainOrder -> domainOrder.getHyperLinkType() == HyperLinkType.COLLECTION)
+                .collect(toList());
+        for (DomainOrder filteredDomainOrder : filteredDomainOrders) {
+            String url = filteredDomainOrder.getAddress();
+            int secondSlashIndex = url.indexOf('/', url.indexOf('/') + 1);
+            if (url.length() > secondSlashIndex + 1) {
+                String secondNumber = url.substring(secondSlashIndex + 1);
+                if (!secondNumber.isBlank()) {
+                    if (asset.getPublicCollectionId() != null && asset.getPublicCollectionId().equals(Long.parseLong(secondNumber))) {
+                        filteredDomainOrder.setOpenHyperLink(false);
+                        filteredDomainOrder.setHyperLinkType(null);
+                        filteredDomainOrder.setAddress(null);
+                        filteredDomainOrder.setCurrentOwnerId(null);
+                        domainOrderRepo.save(filteredDomainOrder);
+                    }
+                }
+            }
+        }
+
+
         asset.setPublicShow(false);
         asset.setPublicCollectionId(null);
+
+
+
+
         assetRepo.saveAndFlush(asset);
     }
 
@@ -794,15 +849,16 @@ public class AssetService {
         Objects.requireNonNull(toUser, "转让人不能为空");
         Objects.requireNonNull(reason, "转让原因不能为空");
 
-        if (asset.getType() == CollectionType.DOMAIN) {
-            Optional<DomainOrder> domainOrder = domainOrderRepo.findById(asset.getCollectionId());
-            domainOrder.ifPresent(domainOrder1 -> {
-                domainOrder1.setOpenHyperLink(false);
-                domainOrder1.setHyperLinkType(null);
-                domainOrder1.setAddress(null);
-                domainOrder1.setCurrentOwnerId(null);
-            });
-        }
+//        if (asset.getType() == CollectionType.DOMAIN) {
+//            DomainOrder domainOrder = domainOrderRepo.findByAssetCollectionId(asset.getCollectionId());
+//            if (ObjectUtils.isNotEmpty(domainOrder)) {
+//                domainOrder.setOpenHyperLink(false);
+//                domainOrder.setHyperLinkType(null);
+//                domainOrder.setAddress(null);
+//                domainOrder.setCurrentOwnerId(null);
+//
+//            }
+//        }
 
 
         User newOwner = toUser;
@@ -1319,7 +1375,7 @@ public class AssetService {
         String discountCollection = sysConfigService.getString("domain_discount");
         JSONObject json = JSONObject.parseObject(discountCollection);
         Set<String> keys = json.keySet();
-        List<Long> collectionIds = keys.stream().map(Long::parseLong).collect(Collectors.toList());
+        List<Long> collectionIds = keys.stream().map(Long::parseLong).collect(toList());
         Set<Long> holdCollections = assetRepo.findDiscounts(userId, collectionIds);
         double result = sysConfigService.getBigDecimal("domain_service_charge").doubleValue();
         if (holdCollections.size() > 0) {