Quellcode durchsuchen

add 普通分销弹窗;普通分销只首单获益

zoujiajian vor 3 Jahren
Ursprung
Commit
1b37e579a9

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributePopularizeView.java

@@ -1,9 +1,11 @@
 package com.cyksj.model.views;
 
+import com.cyksj.model.entity.GoodsDon;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /*
  *项目名: netflix
@@ -47,4 +49,9 @@ public class DistributePopularizeView {
 	 * 最高返现比例
 	 */
 	private Integer highestRate;
+
+	/**
+	 * 普通低分销比例
+	 */
+	private List<GoodsDon> generalDistributes;
 }

+ 11 - 1
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -374,7 +374,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		if (shopConfig != null) {
 			shopId = shopConfig.getAppId();
 		}
-		orderDon.setType(OrderDon.Type.ALI_PAY);
+		orderDon.setType(OrderDon.Type.WeChat);
 		orderDon.setShopId(shopId);
 		this.updateById(orderDon);
 		H5JsPayParams params = weChatService.getJsPayParams(
@@ -412,6 +412,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			shopId = shopConfig.getAppId();
 		}
 		orderDon.setShopId(shopId);
+		orderDon.setType(OrderDon.Type.WeChat);
 		this.updateById(orderDon);
 
 		H5JsPayParams params = weChatService.getJsPayParams(
@@ -1416,6 +1417,15 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				Integer rate = 0;
 				if (userDistribute == null) {
 					if (goodsDon != null) {
+						//普通分销者 是否享受过该用户的首单分销
+						DistributeWaitingSendPoints isReceived = distributeWaitingSendPointsMapper.selectOne(Wrappers.lambdaQuery(DistributeWaitingSendPoints.class)
+								.eq(DistributeWaitingSendPoints::getSharedId, userDistributeShared.getSharedId())
+								.eq(DistributeWaitingSendPoints::getUserId, order.getUserId())
+								.in(DistributeWaitingSendPoints::getSendStatus, List.of(DistributeWaitingSendPoints.Status.waiting.name(), DistributeWaitingSendPoints.Status.success.name()))
+								.last("limit 1"));
+						if (isReceived != null) {
+							return;
+						}
 						rate = goodsDon.getRate();
 						//实物分销比例
 						if (goodsDon.getType() == 2) {

+ 32 - 0
netflix-web/src/main/java/com/cyksj/web/controller/user/DistributePopularizeController.java

@@ -288,4 +288,36 @@ public class DistributePopularizeController {
 		DistributeMoneyApply apply = distributeMoneyApplyMapper.selectOne(Wrappers.lambdaQuery(DistributeMoneyApply.class).eq(DistributeMoneyApply::getUserId, userId).orderByDesc(DistributeMoneyApply::getId).last("limit 1"));
 		return GatewayResponse.SUCCESS.newBuilder().toResult(apply);
 	}
+
+	/**
+	 * 是否是普通分销者
+	 */
+	@GetMapping("/get/isGeneral/distribute")
+	public Result<Boolean> isGeneralDistribute() {
+		Long userId = StpUserUtil.getLoginIdAsLong();
+		UserDistribute userDistribute = userDistributeMapper.selectOne(Wrappers.lambdaQuery(UserDistribute.class)
+				.eq(UserDistribute::getUserId, userId));
+		if (userDistribute != null) {
+			return GatewayResponse.SUCCESS.newBuilder().toResult(false);
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult(true);
+	}
+
+	/**
+	 * 普通分销者弹窗
+	 */
+	@GetMapping("/get/general/distribute/detail")
+	public Result<DistributePopularizeView> getGeneralDistributeDetail() {
+		Long userId = StpUserUtil.getLoginIdAsLong();
+		List<GoodsDon> goodsDons = goodsDonMapper.selectList(Wrappers.lambdaQuery(GoodsDon.class).eq(GoodsDon::getDeleted, true).gt(GoodsDon::getRate, 0).orderByAsc(GoodsDon::getRate).select(GoodsDon::getRate, GoodsDon::getTitle));
+		if (goodsDons.isEmpty()) {
+			return GatewayResponse.SUCCESS.newBuilder().toResult();
+		}
+		DistributePopularizeView distributePopularizeView = new DistributePopularizeView();
+		GoodsDon highestRateGoods = goodsDons.get(goodsDons.size() - 1);
+		distributePopularizeView.setHighestRate(highestRateGoods.getRate());
+		List<GoodsDon> generalDistributes = goodsDons.stream().filter(gd -> !gd.getRate().equals(highestRateGoods.getRate())).collect(Collectors.toList());
+		distributePopularizeView.setGeneralDistributes(generalDistributes);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(distributePopularizeView);
+	}
 }