Переглянути джерело

fix 查询是否可以领取推荐优惠卷

zoujiajian 3 роки тому
батько
коміт
93aa5f5d42

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/CouponAvailableRecommendView.java

@@ -26,4 +26,7 @@ public class CouponAvailableRecommendView {
 
 	@DbField("c.scope")
 	private Coupon.Scope scope;
+
+	@DbField("cu.coupon_id")
+	private Long userCouponId;
 }

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/coupon/CouponFontService.java

@@ -42,4 +42,6 @@ public interface CouponFontService {
 	 * 优惠卷状态
 	 */
 	void setCouponUserStatus(CouponUserView data, DateTime now);
+
+	Integer collectRecommendCouponNum(CouponCollectReq couponCollectReq, Long userId);
 }

+ 14 - 2
netflix-service/src/main/java/com/cyksj/service/coupon/impl/CouponFontServiceImpl.java

@@ -33,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /*
  *项目名: netflix
@@ -92,8 +93,6 @@ public class CouponFontServiceImpl implements CouponFontService {
 
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
-	@NoSubmit
-	@Deprecated
 	public void collectRecommendCoupon(CouponCollectReq couponCollectReq, Long userId) {
 		collectCommonCheck(couponCollectReq, userId);
 		CouponUser couponUser = new CouponUser();
@@ -220,6 +219,19 @@ public class CouponFontServiceImpl implements CouponFontService {
 		}
 	}
 
+	@Override
+	public Integer collectRecommendCouponNum(CouponCollectReq couponCollectReq, Long userId) {
+		CouponNewUserView couponNewUserView = beanSearcher.searchFirst(CouponNewUserView.class, MapUtils.builder().field(CouponNewUserView::getUserId, userId).op(Operator.Equal).build());
+		List<CouponAvailableRecommendView> couponAvailableRecommendViews = beanSearcher.searchAll(CouponAvailableRecommendView.class, MapUtils.builder().field(CouponAvailableRecommendView::getUserCouponId).op(Operator.IsNull).build());
+		List<CouponAvailableRecommendView> collect = couponAvailableRecommendViews.stream().filter(data -> {
+			if (data.getScope() == Coupon.Scope.newUser && couponNewUserView != null) {
+				return false;
+			}
+			return true;
+		}).collect(Collectors.toList());
+		return collect.size();
+	}
+
 	public void collectCommonCheck(CouponCollectReq couponCollectReq, Long userId) {
 		Coupon coupon = couponMapper.selectById(couponCollectReq.getCouponId());
 		if (coupon == null || !coupon.getDeleted()) {

+ 12 - 1
netflix-web/src/main/java/com/cyksj/web/controller/coupon/CouponFrontController.java

@@ -173,13 +173,24 @@ public class CouponFrontController {
 	 * 领取推荐优惠卷
 	 */
 	@PostMapping("/recommend/collect")
-	@Deprecated
+	@NoSubmit
 	public Result<String> collectRecommendCoupon(@RequestBody CouponCollectReq couponCollectReq) {
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		couponFontService.collectRecommendCoupon(couponCollectReq, userId);
 		return GatewayResponse.SUCCESS.newBuilder().toResult("领取优惠卷成功");
 	}
 
+	/**
+	 * 查询有可以领取的推荐优惠卷
+	 */
+	@GetMapping("/recommend/collect/num")
+	public Result<Integer> collectRecommendCouponNum(@RequestBody CouponCollectReq couponCollectReq) {
+		Long userId = StpUserUtil.getLoginIdAsLong();
+		Integer num = couponFontService.collectRecommendCouponNum(couponCollectReq, userId);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(num);
+	}
+
+
 	/**
 	 * 优惠码详情
 	 */