Przeglądaj źródła

铸造自动空投bug

licailing 3 lat temu
rodzic
commit
44548b04f0

+ 4 - 0
src/main/java/com/izouma/nineth/domain/DropTarget.java

@@ -1,8 +1,12 @@
 package com.izouma.nineth.domain;
 
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 @Data
+@AllArgsConstructor
+@NoArgsConstructor
 public class DropTarget {
     private Long userId;
 

+ 4 - 1
src/main/java/com/izouma/nineth/service/MintOrderService.java

@@ -31,6 +31,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.EncoderException;
 import org.apache.commons.codec.net.URLCodec;
 import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.rocketmq.spring.core.RocketMQTemplate;
 import org.springframework.core.env.Environment;
@@ -498,13 +499,15 @@ public class MintOrderService {
             if (mintOrder.isAirDrop()) {
                 mintOrder.setStatus(MintOrderStatus.AIR_DROP);
                 MintActivity mintActivity = mintActivityRepo.findById(mintOrder.getMintActivityId()).orElse(null);
-                if (mintActivity != null && mintActivity.isAutoDrop()) {
+                if (ObjectUtils.isNotEmpty(mintActivity) && mintActivity.isAutoDrop()) {
+                    User user = userRepo.findById(mintOrder.getUserId()).orElseThrow(new BusinessException("无用户"));
                     airDropService.create(AirDrop.builder()
                             .name("铸造活动[" + mintActivity.getName() + "]空投")
                             .remark(mintOrder.getId().toString())
                             .type(AirDropType.asset)
                             .userIds(Collections.singletonList(mintOrder.getUserId()))
                             .collectionId(mintActivity.getAirDropCollectionId())
+                            .targets(Collections.singletonList(new DropTarget(user.getId(), user.getPhone(), user.getNickname(), 1)))
                             .build());
                     mintOrder.setStatus(MintOrderStatus.FINISH);
                     mintOrderRepo.save(mintOrder);

+ 7 - 0
src/test/java/com/izouma/nineth/service/MintOrderServiceTest.java

@@ -62,4 +62,11 @@ class MintOrderServiceTest extends ApplicationTests {
 
         });
     }
+
+    @Test
+    public void test4() {
+        MintOrder order = mintOrderRepo.findById(2647782L).orElse(null);
+
+        mintOrderService.notify(order, PayMethod.ALIPAY, "xxx", false);
+    }
 }