licailing 4 лет назад
Родитель
Сommit
59e2da5c72

+ 7 - 8
src/main/java/com/izouma/jiashanxia/service/OrderInfoService.java

@@ -413,17 +413,16 @@ public class OrderInfoService {
         // 分销
         Package aPackage = packageRepo.findById(orderInfo.getPackageId()).orElseThrow(new BusinessException("无记录"));
         // 售价-结算价
-        int balance;
+        BigDecimal balance;
         if (ObjectUtil.isNotNull(orderInfo.getStockId())) {
             Stock stock = stockRepo.findById(orderInfo.getStockId()).orElseThrow(new BusinessException("无规格"));
-            balance = stock.getPrice().compareTo(stock.getSettlementPrice());
+            balance = stock.getPrice().subtract(stock.getSettlementPrice());
         } else {
-            balance = aPackage.getAmount().compareTo(aPackage.getSettlementPrice());
+            balance = aPackage.getAmount().subtract(aPackage.getSettlementPrice());
         }
-        if (balance <= 0) {
+        if (BigDecimal.ZERO.compareTo(balance) >= 0) {
             return;
         }
-        BigDecimal balanceAmount = BigDecimal.valueOf(balance);
 
         Long userId = orderInfo.getUserId();
         User user = userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
@@ -435,14 +434,14 @@ public class OrderInfoService {
             if (ObjectUtil.isNull(one)) {
                 return;
             }
-            this.getDistribution(orderInfo, one, 1, balanceAmount, aPackage, TransactionType.PROMOTE);
+            this.getDistribution(orderInfo, one, 1, balance, aPackage, TransactionType.PROMOTE);
         } else {
-            this.getDistribution(orderInfo, one, 1, balanceAmount, aPackage, TransactionType.SELF_PURCHASE);
+            this.getDistribution(orderInfo, one, 1, balance, aPackage, TransactionType.SELF_PURCHASE);
         }
 
         two = this.getParent(one);
         if (ObjectUtil.isNotNull(two)) {
-            this.getDistribution(orderInfo, two, 2, balanceAmount, aPackage, TransactionType.CHILD_PROMOTE);
+            this.getDistribution(orderInfo, two, 2, balance, aPackage, TransactionType.CHILD_PROMOTE);
         }
 
     }

+ 3 - 2
src/main/java/com/izouma/jiashanxia/web/PackageController.java

@@ -76,10 +76,11 @@ public class PackageController extends BaseController {
         BigDecimal personalRatio = sysConfigService.getBigDecimal("PERSONAL_RATIO_0");
         pageQuery.setSort("sort,desc");
         return packageService.all(pageQuery).map(aPackage -> {
+            BigDecimal balance = aPackage.getAmount().subtract(aPackage.getSettlementPrice());
             if (aPackage.isSeparateDistribution() && ObjectUtil.isNotNull(aPackage.getPersonalRatio0())) {
-                aPackage.setShareAmount(aPackage.getPersonalRatio0().multiply(aPackage.getAmount()));
+                aPackage.setShareAmount(aPackage.getPersonalRatio0().multiply(balance));
             } else {
-                aPackage.setShareAmount(personalRatio.multiply(aPackage.getAmount()));
+                aPackage.setShareAmount(personalRatio.multiply(balance));
             }
             return aPackage;
         });

+ 7 - 0
src/test/java/com/izouma/jiashanxia/web/PackageControllerTest.java

@@ -7,6 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.math.BigDecimal;
+
 @SpringBootTest
 @RunWith(SpringRunner.class)
 public class PackageControllerTest {
@@ -18,4 +20,9 @@ public class PackageControllerTest {
     public void all() {
         packageController.all(new PageQuery());
     }
+
+    @Test
+    public void test() {
+        System.out.println(BigDecimal.valueOf(78).subtract(BigDecimal.valueOf(70)));
+    }
 }