zoujiajian 1 yıl önce
ebeveyn
işleme
a87bb91d4b

+ 17 - 4
netflix-web/src/main/java/com/cyksj/web/controller/claude/ClaudeCodeController.java

@@ -1,6 +1,7 @@
 package com.cyksj.web.controller.claude;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
@@ -12,10 +13,7 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.ClaudeCodeUserMapper;
 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.CouponRecommendMapper;
-import com.cyksj.mapper.manage.coupon.CouponSkuMapper;
+import com.cyksj.mapper.manage.coupon.*;
 import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.OrderDonView;
@@ -92,6 +90,8 @@ public class ClaudeCodeController {
 
 	private final CouponRecommendMapper couponRecommendMapper;
 
+	private final CouponUserMapper couponUserMapper;
+
 	/**
 	 * 用户创建API KEY
 	 */
@@ -267,6 +267,19 @@ public class ClaudeCodeController {
 						}
 						if (isContinue) {
 							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());
+							//该优惠券是否已经使用
+							if (userId != null) {
+								Integer isUsed = couponUserMapper.selectCount(Wrappers.lambdaQuery(CouponUser.class)
+										.eq(CouponUser::getCouponId, coupon.getId())
+										.eq(CouponUser::getStatus, CouponUser.Status.unused)
+										.eq(CouponUser::getUserId, userId)
+										.lt(CouponUser::getValidStartTime, DateTime.now())
+										.gt(CouponUser::getValidEndTime, DateTime.now()));
+								if (isUsed != 0) {
+									isContinue = false;
+								}
+
+							}
 							goodsDonSkuViews.forEach(sku -> {
 								if (couponSkuIds.contains(sku.getSkuId())) {
 									if (coupon.getType() == Coupon.Type.discount) {