Ver Fonte

fix 可用

zoujiajian há 3 anos atrás
pai
commit
70ad41d8c3

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

@@ -21,7 +21,7 @@ public interface CouponRecommendMapper extends BaseMapper<CouponRecommend> {
 	@Update("update coupon_recommend set deleted = false where coupon_id = #{id}")
 	void deleteByCouponId(Long id);
 
-	List<CouponAvailableRecommendView> getRecommendCouponList(Long userId);
+	List<CouponAvailableRecommendView> getRecommendCouponList(@Param("userId") Long userId, @Param("isNewUser") Boolean isNewUser);
 
 	Page<CouponRecommendView> getRecommendCouponViewList(@Param("userId") Long userId, @Param("isNewUser") Boolean isNewUser, @Param("page") IPage<CouponRecommendView> page);
 }

+ 3 - 1
netflix-dao/src/main/resources/mapper/CouponRecommendMapper.xml

@@ -39,7 +39,9 @@
     </select>
 
     <select id="getRecommendCouponList" resultType="com.cyksj.model.views.CouponAvailableRecommendView">
-        select * from (select c.id,
+        select * from (select c.id as couponId,
+                              c.scope,
+                              cr.id as recommendId,
         if(c.is_valid_time is true and c.valid_end_time &lt; now(),false,true) as flag
         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}

+ 8 - 12
netflix-service/src/main/java/com/cyksj/service/coupon/impl/CouponFontServiceImpl.java

@@ -113,18 +113,14 @@ public class CouponFontServiceImpl implements CouponFontService {
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	public void collectWholeRecommendCoupon(Long userId) {
+		CouponNewUserView couponNewUserView = beanSearcher.searchFirst(CouponNewUserView.class, MapUtils.builder().field(CouponNewUserView::getUserId, userId).op(Operator.Equal).build());
+		Boolean isNewUser = true;
+		if (couponNewUserView != null) {
+			isNewUser = false;
+		}
 		//查询所有可领取的推荐优惠券
-		List<CouponAvailableRecommendView> couponAvailableRecommendViews = recommendMapper.getRecommendCouponList(userId);
-		couponAvailableRecommendViews.stream().filter(data->{
-			if (data.getScope() == Coupon.Scope.newUser) {
-				CouponNewUserView couponNewUserView = beanSearcher.searchFirst(CouponNewUserView.class, MapUtils.builder().field(CouponNewUserView::getUserId, userId).op(Operator.Equal).build());
-				if (couponNewUserView != null) {
-					return false;
-				}
-				return true;
-			}
-			return true;
-		}).forEach(data -> {
+		List<CouponAvailableRecommendView> couponAvailableRecommendViews = recommendMapper.getRecommendCouponList(userId, isNewUser);
+		couponAvailableRecommendViews.stream().forEach(data -> {
 			//领取优惠券
 			CouponUser couponUser = new CouponUser();
 			couponUser.setUserId(userId);
@@ -213,7 +209,7 @@ public class CouponFontServiceImpl implements CouponFontService {
 
 	@Override
 	public Integer collectRecommendCouponNum(Long userId, Boolean isNewUser) {
-		List<CouponAvailableRecommendView> recommendCouponList = Optional.ofNullable(recommendMapper.getRecommendCouponList(userId)).orElse(new ArrayList<>());
+		List<CouponAvailableRecommendView> recommendCouponList = Optional.ofNullable(recommendMapper.getRecommendCouponList(userId, isNewUser)).orElse(new ArrayList<>());
 		return recommendCouponList.size();
 	}
 

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

@@ -1086,7 +1086,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				couponUserMapper.insert(couponUser);
 			} catch (DuplicateKeyException e) {
 				log.info("用户已领取该{}优惠券", couponUser.getCouponId());
-				throw BusinessRuntimeException.getInstance("该优惠券已使用");
+				throw BusinessRuntimeException.getInstance("您已领取该优惠码对应的优惠券,请使用优惠券");
 			}
 		} else {
 			couponUser = couponUserMapper.selectOne(Wrappers.lambdaQuery(CouponUser.class).eq(CouponUser::getUserId, userId).eq(CouponUser::getCouponId, couponId).last("limit 1"));