Pārlūkot izejas kodu

fix 推荐可领取数量

zoujiajian 3 gadi atpakaļ
vecāks
revīzija
9d9ce8f1e9

+ 9 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/coupon/CouponRecommendMapper.java

@@ -2,8 +2,12 @@ package com.cyksj.mapper.manage.coupon;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.CouponRecommend;
+import com.cyksj.model.views.CouponAvailableRecommendView;
+import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
+import java.util.List;
+
 /*
  *项目名: netflix
  *文件名: CouponRecommendMapper
@@ -13,4 +17,9 @@ import org.apache.ibatis.annotations.Update;
 public interface CouponRecommendMapper extends BaseMapper<CouponRecommend> {
 	@Update("update coupon_recommend set deleted = false where coupon_id = #{id}")
 	void deleteByCouponId(Long id);
+
+	@Select("select c.scope,c.id as couponId from coupon_recommend cr left join coupon c on c.id = cr.coupon_id" +
+			" left join coupon_user cu on cu.coupon_id = c.id and cu.user_id = #{userId}" +
+			" where cr.deleted is true and c.deleted is true and cu.coupon_id is null")
+	List<CouponAvailableRecommendView> getRecommendCouponList(Long userId);
 }

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

@@ -29,4 +29,7 @@ public class CouponAvailableRecommendView {
 
 	@DbField("cu.coupon_id")
 	private Long userCouponId;
+
+	@DbField("cu.user_id")
+	private Long userId;
 }

+ 4 - 5
netflix-service/src/main/java/com/cyksj/service/coupon/impl/CouponFontServiceImpl.java

@@ -7,10 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.common.annotation.NoSubmit;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
-import com.cyksj.mapper.manage.coupon.CouponActiveMapper;
-import com.cyksj.mapper.manage.coupon.CouponMapper;
-import com.cyksj.mapper.manage.coupon.CouponSkuMapper;
-import com.cyksj.mapper.manage.coupon.CouponUserMapper;
+import com.cyksj.mapper.manage.coupon.*;
 import com.cyksj.model.entity.Coupon;
 import com.cyksj.model.entity.CouponActive;
 import com.cyksj.model.entity.CouponUser;
@@ -57,6 +54,8 @@ public class CouponFontServiceImpl implements CouponFontService {
 
 	private static final GlobalThreadPoolTaskExecutor TASK_EXECUTOR = GlobalThreadPoolTaskExecutor.getInstance();
 
+	private final CouponRecommendMapper recommendMapper;
+
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	public void collectCoupon(CouponCollectReq couponCollectReq, Long userId) {
@@ -224,7 +223,7 @@ public class CouponFontServiceImpl implements CouponFontService {
 	@Override
 	public Integer collectRecommendCouponNum(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> couponAvailableRecommendViews = recommendMapper.getRecommendCouponList(userId);
 		List<CouponAvailableRecommendView> collect = couponAvailableRecommendViews.stream().filter(data -> {
 			if (data.getScope() == Coupon.Scope.newUser && couponNewUserView != null) {
 				return false;

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

@@ -138,6 +138,7 @@ public class CouponFrontController {
 	 * 一键领取推荐优惠券
 	 */
 	@PostMapping("/collect/recommend/whole")
+	@NoSubmit
 	public Result<String> collectWholeRecommendCoupon() {
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		couponFontService.collectWholeRecommendCoupon(userId);
@@ -162,7 +163,6 @@ public class CouponFrontController {
 	 * 领取优惠券
 	 */
 	@PostMapping("/collect")
-	@NoSubmit
 	public Result<String> collectCoupon(@RequestBody CouponCollectReq couponCollectReq) {
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		couponFontService.collectCoupon(couponCollectReq, userId);
@@ -173,7 +173,6 @@ public class CouponFrontController {
 	 * 领取推荐优惠券
 	 */
 	@PostMapping("/recommend/collect")
-	@NoSubmit
 	public Result<String> collectRecommendCoupon(@RequestBody CouponCollectReq couponCollectReq) {
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		couponFontService.collectRecommendCoupon(couponCollectReq, userId);