Kaynağa Gözat

订单分销

licailing 5 yıl önce
ebeveyn
işleme
d3e0cc510c

+ 59 - 43
src/main/java/com/izouma/jiashanxia/service/OrderInfoService.java

@@ -244,6 +244,8 @@ public class OrderInfoService {
         // 钱和流水
         if (BigDecimal.ZERO.compareTo(ratio) < 0) {
             BigDecimal directPushAmount = amount.multiply(ratio);
+            parentUser.setCacheAmount(directPushAmount.add(parentUser.getCacheAmount()));
+            userRepo.save(parentUser);
             CommissionRecord commissionRecord1 = CommissionRecord.builder()
                     .userId(parent)
                     .amount(directPushAmount)
@@ -374,50 +376,64 @@ public class OrderInfoService {
         boolean isGeneral = true;
         boolean isMaker = true;
 
+        CommissionRecord record = CommissionRecord.builder()
+                .userId(parent.getId())
+                .fromUserId(userId)
+                .payMethod(PayMethod.YUE)
+                .transactionId(orderId.toString())
+                .build();
+
         while (parent != null) {
-            CommissionRecord record = CommissionRecord.builder()
-                    .userId(parent.getId())
-                    .fromUserId(userId)
-                    .payMethod(PayMethod.YUE)
-                    .transactionId(orderId.toString())
-                    .amount(maker)
-                    .build();
-            // 创客
-            if (isMaker && Member.MAKER.equals(parent.getMember())) {
-                parent.setCacheAmount(parent.getCacheAmount().add(maker));
-                userRepo.save(parent);
-
-                record.setTransactionType(TransactionType.MAKER);
-                commissionRecordRepo.save(record);
-                isMaker = false;
-            }
-            // 108将
-            if (isGeneral && Member.GENERAL.equals(parent.getMember())) {
-                parent.setCacheAmount(parent.getCacheAmount().add(general));
-                userRepo.save(parent);
-
-                record.setTransactionType(TransactionType.GENERAL);
-                commissionRecordRepo.save(record);
-                isGeneral = false;
-            }
-            // 108将+创客
-            if (Member.GENERAL_MAKER.equals(parent.getMember())) {
-                if (isMaker) {
-                    parent.setCacheAmount(parent.getCacheAmount().add(maker));
-                    userRepo.save(parent);
-
-                    record.setTransactionType(TransactionType.MAKER);
-                    commissionRecordRepo.save(record);
-                    isMaker = false;
-                }
-                if (isGeneral) {
-                    parent.setCacheAmount(parent.getCacheAmount().add(general));
-                    userRepo.save(parent);
-
-                    record.setTransactionType(TransactionType.GENERAL);
-                    commissionRecordRepo.save(record);
-                    isGeneral = false;
-                }
+            switch (parent.getMember()) {
+                case MAKER:
+                    if (isMaker) {
+                        parent.setCacheAmount(parent.getCacheAmount().add(maker));
+                        userRepo.save(parent);
+                        // 流水
+                        record.setAmount(maker);
+                        record.setTransactionType(TransactionType.MAKER);
+                        commissionRecordRepo.save(record);
+                        isMaker = false;
+                    }
+                    break;
+                case GENERAL:
+                    if (isGeneral) {
+                        parent.setCacheAmount(parent.getCacheAmount().add(general));
+                        userRepo.save(parent);
+                        // 流水
+                        record.setAmount(general);
+                        record.setTransactionType(TransactionType.GENERAL);
+                        commissionRecordRepo.save(record);
+                        isGeneral = false;
+                    }
+                    break;
+                case GENERAL_MAKER:
+                    if (isMaker) {
+                        parent.setCacheAmount(parent.getCacheAmount().add(maker));
+                        userRepo.save(parent);
+                        // 流水
+                        record.setAmount(maker);
+                        record.setTransactionType(TransactionType.MAKER);
+                        commissionRecordRepo.save(record);
+                        isMaker = false;
+                    }
+                    if (isGeneral) {
+                        parent.setCacheAmount(parent.getCacheAmount().add(general));
+                        userRepo.save(parent);
+                        // 流水
+                        commissionRecordRepo.save(CommissionRecord.builder()
+                                .userId(parent.getId())
+                                .fromUserId(userId)
+                                .payMethod(PayMethod.YUE)
+                                .transactionId(orderId.toString())
+                                .amount(general)
+                                .transactionType(TransactionType.GENERAL)
+                                .build());
+                        isGeneral = false;
+                    }
+                    break;
+                default:
+                    break;
             }
             if (!isGeneral && !isMaker) {
                 return;

+ 8 - 0
src/main/java/com/izouma/jiashanxia/service/UserService.java

@@ -145,6 +145,10 @@ public class UserService {
                     .teamFounder(false)
                     .sessionKey(sessionKey)
                     .member(Member.NORMAL)
+                    .promote(BigDecimal.ZERO)
+                    .maker(BigDecimal.ZERO)
+                    .general(BigDecimal.ZERO)
+                    .cacheAmount(BigDecimal.ZERO)
                     .build();
             // 插入上级
 //            if (ObjectUtil.isNotNull(parent)) {
@@ -225,6 +229,10 @@ public class UserService {
                     .teamFounder(false)
                     .wxAuthorized(true)
                     .member(Member.NORMAL)
+                    .promote(BigDecimal.ZERO)
+                    .maker(BigDecimal.ZERO)
+                    .general(BigDecimal.ZERO)
+                    .cacheAmount(BigDecimal.ZERO)
                     .build();
             user = userRepo.save(user);
 

+ 2 - 2
src/test/java/com/izouma/jiashanxia/service/OrderInfoServiceTest.java

@@ -23,12 +23,12 @@ public class OrderInfoServiceTest {
 
     @Test
     public void order() {
-        System.out.println(orderInfoService.createOrder(46L, 17L, PayMethod.WEIXIN));
+        System.out.println(orderInfoService.createOrder(916L, 17L, PayMethod.WEIXIN));
     }
 
     @Test
     public void completed() {
-        orderInfoService.completed1(906L, "11000001");
+        orderInfoService.completed1(934L, "11000001");
     }
 
     @Test

+ 3 - 2
src/test/java/com/izouma/jiashanxia/service/UserPackageFlowServiceTest.java

@@ -29,10 +29,11 @@ public class UserPackageFlowServiceTest {
     @Test
     public void test() {
 //        "userPackageId":577,
-        userPackageFlowService.writeOff(WriteOffSaveVO.builder()
+        userPackageFlowService.writeOff1(WriteOffSaveVO.builder()
                 .userId(125L)
                 .writeOffUserId(1L)
-                .content("[{\"goodsInfoId\":27,\"num\":1}]")
+                .orderInfoId(929L)
+//                .content("[{\"goodsInfoId\":27,\"num\":1}]")
 //                .type(PackageType.TEAM)
                 .build());
     }