Prechádzať zdrojové kódy

增加 动态单价,结算金额

wangyunpeng 1 mesiac pred
rodič
commit
1be98d4003

+ 17 - 5
api-module/src/main/java/com/tzld/piaoquan/api/job/ContentPlatformDatastatJob.java

@@ -14,6 +14,7 @@ import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.util.StringUtils;
 
@@ -53,6 +54,12 @@ public class ContentPlatformDatastatJob {
     @Autowired
     private ContentPlatformPlanService planService;
 
+    @Value("${unit.price.min:0.1}")
+    private Double unitPriceMin;
+
+    @Value("${unit.price.max:0.2}")
+    private Double unitPriceMax;
+
 
     @XxlJob("syncContentPlatformGzhDatastatJob")
     public ReturnT<String> syncContentPlatformGzhDatastatJob(String param) {
@@ -181,7 +188,8 @@ public class ContentPlatformDatastatJob {
                     BigDecimal rounded = num.multiply(new BigDecimal(10)).setScale(2, RoundingMode.HALF_UP);
                     item.setScore(rounded.doubleValue());
                     BigDecimal unitPrice = num.multiply(new BigDecimal(arpu)).multiply(BigDecimal.valueOf(account.getPrice()))
-                            .setScale(2, RoundingMode.HALF_UP);
+                            .setScale(2, RoundingMode.HALF_UP)
+                            .min(BigDecimal.valueOf(unitPriceMax)).max(BigDecimal.valueOf(unitPriceMin));
                     item.setUnitPrice(unitPrice.doubleValue());
                     BigDecimal settlementAmount = unitPrice.multiply(new BigDecimal(firstLevelCount));
                     item.setSettlementAmount(settlementAmount.doubleValue());
@@ -324,7 +332,8 @@ public class ContentPlatformDatastatJob {
                     BigDecimal rounded = num.multiply(new BigDecimal(10)).setScale(2, RoundingMode.HALF_UP);
                     item.setScore(rounded.doubleValue());
                     BigDecimal unitPrice = num.multiply(new BigDecimal(arpu)).multiply(BigDecimal.valueOf(account.getPrice()))
-                            .setScale(2, RoundingMode.HALF_UP);
+                            .setScale(2, RoundingMode.HALF_UP)
+                            .min(BigDecimal.valueOf(unitPriceMax)).max(BigDecimal.valueOf(unitPriceMin));
                     item.setUnitPrice(unitPrice.doubleValue());
                     BigDecimal settlementAmount = unitPrice.multiply(new BigDecimal(firstLevelCount));
                     item.setSettlementAmount(settlementAmount.doubleValue());
@@ -517,7 +526,8 @@ public class ContentPlatformDatastatJob {
                     BigDecimal rounded = num.multiply(new BigDecimal(10)).setScale(2, RoundingMode.HALF_UP);
                     item.setScore(rounded.doubleValue());
                     BigDecimal unitPrice = num.multiply(new BigDecimal(arpu)).multiply(BigDecimal.valueOf(account.getPrice()))
-                            .setScale(2, RoundingMode.HALF_UP);
+                            .setScale(2, RoundingMode.HALF_UP)
+                            .min(BigDecimal.valueOf(unitPriceMax)).max(BigDecimal.valueOf(unitPriceMin));
                     item.setUnitPrice(unitPrice.doubleValue());
                     BigDecimal settlementAmount = unitPrice.multiply(new BigDecimal(firstLevelCount));
                     item.setSettlementAmount(settlementAmount.doubleValue());
@@ -663,7 +673,8 @@ public class ContentPlatformDatastatJob {
                     BigDecimal rounded = num.multiply(new BigDecimal(10)).setScale(2, RoundingMode.HALF_UP);
                     item.setScore(rounded.doubleValue());
                     BigDecimal unitPrice = num.multiply(new BigDecimal(arpu)).multiply(BigDecimal.valueOf(account.getPrice()))
-                            .setScale(2, RoundingMode.HALF_UP);
+                            .setScale(2, RoundingMode.HALF_UP)
+                            .min(BigDecimal.valueOf(unitPriceMax)).max(BigDecimal.valueOf(unitPriceMin));
                     item.setUnitPrice(unitPrice.doubleValue());
                     BigDecimal settlementAmount = unitPrice.multiply(new BigDecimal(firstLevelCount));
                     item.setSettlementAmount(settlementAmount.doubleValue());
@@ -691,7 +702,8 @@ public class ContentPlatformDatastatJob {
                     BigDecimal rounded = num.multiply(new BigDecimal(10)).setScale(2, RoundingMode.HALF_UP);
                     item.setScore(rounded.doubleValue());
                     BigDecimal unitPrice = num.multiply(new BigDecimal(arpu)).multiply(BigDecimal.valueOf(account.getPrice()))
-                            .setScale(2, RoundingMode.HALF_UP);
+                            .setScale(2, RoundingMode.HALF_UP)
+                            .min(BigDecimal.valueOf(unitPriceMax)).max(BigDecimal.valueOf(unitPriceMin));
                     item.setUnitPrice(unitPrice.doubleValue());
                     BigDecimal settlementAmount = unitPrice.multiply(new BigDecimal(firstLevelCount));
                     item.setSettlementAmount(settlementAmount.doubleValue());