ソースを参照

普通推广,镜像规格提成

zoujiajian 2 年 前
コミット
50a0b3428b

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/DistributeWaitingSendPoints.java

@@ -39,6 +39,11 @@ public class DistributeWaitingSendPoints extends BaseEntity{
 	 */
 	private BigDecimal extraMultiple;
 
+	/**
+	 * 原本积分奖励
+	 */
+	private BigDecimal oriPoints;
+
 	private BigDecimal refundPoints;
 
 	/**

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributePopularizeOrdersView.java

@@ -50,6 +50,12 @@ public class DistributePopularizeOrdersView {
 	@DbField("dw.extra_rebate")
 	private BigDecimal extraRebate;
 
+	/**
+	 * 原本积分奖励
+	 */
+	@DbField("dw.ori_points")
+	private Boolean oriPoints;
+
 	@DbIgnore
 	private BigDecimal waitGetMoney;
 

+ 20 - 10
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1610,16 +1610,26 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 					distributeWaitingSendPoints.setRate(rate);
 					//普通分销 额外返利
 					if (userDistribute == null && points.compareTo(BigDecimal.ZERO) > 0) {
-						DistributeExtraRebateConfig distributeExtraRebateConfig = distributeExtraRebateService.getRandomExtraRebate();
-						if (distributeExtraRebateConfig != null) {
-							BigDecimal multiple = distributeExtraRebateConfig.getMultiple();
-							if (multiple.compareTo(BigDecimal.ONE) > 0) {
-								//最终奖励
-								BigDecimal finalPoints = points.multiply(multiple);
-								distributeWaitingSendPoints.setPoints(finalPoints);
-
-								distributeWaitingSendPoints.setExtraMultiple(multiple);
-								distributeWaitingSendPoints.setExtraRebate(finalPoints.subtract(points));
+						distributeWaitingSendPoints.setOriPoints(points);
+						if (goodsDonSku.getIsMirror()) {
+							//镜像规格 默认百分之20 提成
+							distributeWaitingSendPoints.setRate(20);
+							//最新返利积分
+							BigDecimal newReturnMoney = orderMoney.multiply(BigDecimal.valueOf(distributeWaitingSendPoints.getRate())).divide(BigDecimal.valueOf(100));
+							points = newReturnMoney.multiply(BigDecimal.valueOf(distributePointsExchangeMoney.getPoints())).divide(distributePointsExchangeMoney.getMoney(), 2, RoundingMode.HALF_DOWN);
+							distributeWaitingSendPoints.setPoints(points);
+						} else {
+							DistributeExtraRebateConfig distributeExtraRebateConfig = distributeExtraRebateService.getRandomExtraRebate();
+							if (distributeExtraRebateConfig != null) {
+								BigDecimal multiple = distributeExtraRebateConfig.getMultiple();
+								if (multiple.compareTo(BigDecimal.ONE) > 0) {
+									//最终奖励
+									BigDecimal finalPoints = points.multiply(multiple);
+									distributeWaitingSendPoints.setPoints(finalPoints);
+
+									distributeWaitingSendPoints.setExtraMultiple(multiple);
+									distributeWaitingSendPoints.setExtraRebate(finalPoints.subtract(points));
+								}
 							}
 						}
 					}