xiongzhu 4 years ago
parent
commit
39b82d18e6
1 changed files with 8 additions and 2 deletions
  1. 8 2
      src/main/java/com/izouma/nineth/service/OrderService.java

+ 8 - 2
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -35,6 +35,7 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.EncoderException;
 import org.apache.commons.codec.EncoderException;
 import org.apache.commons.codec.net.URLCodec;
 import org.apache.commons.codec.net.URLCodec;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.rocketmq.client.producer.SendResult;
 import org.apache.rocketmq.client.producer.SendResult;
@@ -471,8 +472,13 @@ public class OrderService {
                         orderRepo.save(order);
                         orderRepo.save(order);
                         Asset asset = assetRepo.findById(collection.getAssetId()).orElse(null);
                         Asset asset = assetRepo.findById(collection.getAssetId()).orElse(null);
                         assetService.transfer(asset, order.getPrice(), user, "转让", order.getId());
                         assetService.transfer(asset, order.getPrice(), user, "转让", order.getId());
-                        collectionRepo.delete(collection);
-
+                        List<Long> collectionIds = collectionRepo.findAllByAssetId(collection.getAssetId());
+                        log.info("删除collection {}", collectionIds);
+                        if (CollectionUtils.isNotEmpty(collectionIds)) {
+                            collectionRepo.deleteAllByIdIn(collectionIds);
+                        } else {
+                            collectionRepo.delete(collection);
+                        }
 
 
                     } else {
                     } else {
                         orderRepo.save(order);
                         orderRepo.save(order);