zoujiajian 1 anno fa
parent
commit
2d4c003d98

+ 16 - 8
netflix-web/src/main/java/com/cyksj/web/controller/claude/ClaudeCodeController.java

@@ -14,6 +14,7 @@ import com.cyksj.mapper.GroupsMapper;
 import com.cyksj.mapper.GroupsRelationMapper;
 import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
+import com.cyksj.mapper.manage.coupon.CouponSkuMapper;
 import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.OrderDonView;
@@ -43,6 +44,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * server/claude code
@@ -85,6 +87,8 @@ public class ClaudeCodeController {
 
 	private final CouponMapper couponMapper;
 
+	private final CouponSkuMapper couponSkuMapper;
+
 	/**
 	 * 用户创建API KEY
 	 */
@@ -244,20 +248,24 @@ public class ClaudeCodeController {
 				UserDistribute userDistribute = userDistributeMapper.selectOne(Wrappers.lambdaQuery(UserDistribute.class).eq(UserDistribute::getUserId, popularizeDto.getSharedId()).eq(UserDistribute::getDeleted, Boolean.TRUE).last("limit 1"));
 				//渠道推广
 				if (userDistribute != null) {
-					Integer selectCount = couponDistributePopularizeMapper.selectCount(Wrappers.lambdaQuery(CouponDistributePopularize.class).eq(CouponDistributePopularize::getDistributeId, userDistribute.getId()).eq(CouponDistributePopularize::getCouponId, Constant.DISTRIBUTE_CLAUDE_CODE_COUPON_ID));
-					//已配置
-					if (selectCount > 0) {
-						Coupon coupon = couponMapper.selectById(Constant.DISTRIBUTE_CLAUDE_CODE_COUPON_ID);
-						if (coupon != null) {
-							goodsDonSkuViews.forEach(sku -> {
+					Integer selectCount = couponDistributePopularizeMapper.selectCount(Wrappers.lambdaQuery(CouponDistributePopularize.class)
+							.eq(CouponDistributePopularize::getDistributeId, userDistribute.getId())
+							.eq(CouponDistributePopularize::getCouponId, Constant.DISTRIBUTE_CLAUDE_CODE_COUPON_ID)
+							.eq(CouponDistributePopularize::getDeleted, Boolean.TRUE));
+					//已配置使用渠道优惠码 未配置使用推荐优惠券
+					Coupon coupon = couponMapper.selectById(selectCount > 0 ? Constant.DISTRIBUTE_CLAUDE_CODE_COUPON_ID : Constant.DISTRIBUTE_CLAUDE_CODE_NO_CODE_COUPON_ID);
+					if (coupon != null) {
+						List<Long> couponSkuIds = couponSkuMapper.selectList(Wrappers.lambdaQuery(CouponSku.class).eq(CouponSku::getCouponId, coupon.getId()).eq(CouponSku::getDeleted, Boolean.TRUE)).stream().map(CouponSku::getSkuId).collect(Collectors.toList());
+						goodsDonSkuViews.forEach(sku -> {
+							if (couponSkuIds.contains(sku.getSkuId())) {
 								if (coupon.getType() == Coupon.Type.discount) {
 									sku.setDiscount(coupon.getDiscount());
 									sku.setDiscountPrice(sku.getMoney().multiply(coupon.getDiscount()));
 								} else {
 									sku.setReduceMoney(coupon.getReduceMoney());
 								}
-							});
-						}
+							}
+						});
 					}
 				}
 			}