Forráskód Böngészése

标记优惠券已领取

skyline 1 éve
szülő
commit
0fecdb9e91

+ 6 - 20
service/src/main/java/com/kym/service/admin/impl/CouponServiceImpl.java

@@ -8,22 +8,22 @@ import com.github.yulichang.toolkit.JoinWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.kym.common.exception.BusinessException;
 import com.kym.common.utils.CommUtil;
-import com.kym.entity.BaseEntity;
 import com.kym.entity.admin.ActivityStation;
 import com.kym.entity.admin.Coupon;
 import com.kym.entity.admin.queryParams.CouponQueryParam;
 import com.kym.entity.admin.vo.UserCouponsIssueVo;
 import com.kym.entity.common.PageBean;
+import com.kym.entity.common.RedisKeys;
 import com.kym.entity.miniapp.User;
 import com.kym.entity.miniapp.UserCoupon;
 import com.kym.mapper.admin.CouponMapper;
 import com.kym.service.admin.ActivityService;
-import com.kym.service.admin.ActivityStationService;
 import com.kym.service.admin.CouponService;
 import com.kym.service.miniapp.UserCouponService;
 import com.kym.service.miniapp.UserService;
 import com.kym.service.mq.producer.UserCouponSender;
 import org.springframework.context.annotation.Lazy;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
@@ -45,21 +45,16 @@ import java.util.Objects;
 public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> implements CouponService {
 
     private final UserService userService;
-
     private final ActivityService activityService;
-    private final ActivityStationService activityStationService;
-
     private final UserCouponSender userCouponSender;
-    private final UserCouponService userCouponService;
+    private final RedisTemplate<String, String> redisTemplate;
 
     public CouponServiceImpl(UserService userService, @Lazy ActivityService activityService,
-                             ActivityStationService activityStationService, UserCouponSender userCouponSender,
-                             @Lazy UserCouponService userCouponService) {
+                             UserCouponSender userCouponSender, RedisTemplate<String, String> redisTemplate) {
         this.userService = userService;
         this.activityService = activityService;
-        this.activityStationService = activityStationService;
         this.userCouponSender = userCouponSender;
-        this.userCouponService = userCouponService;
+        this.redisTemplate = redisTemplate;
     }
 
 
@@ -131,16 +126,7 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
 
         //已领取的标识出来
         long userId = StpUtil.getLoginIdAsLong();
-        if (CommUtil.isNotEmptyAndNull(res) && userId > 0) {
-            List<Long> couponIdList = res.stream().map(BaseEntity::getId).toList();
-            List<UserCoupon> list = userCouponService.lambdaQuery().eq(UserCoupon::getUserId, userId).in(UserCoupon::getCouponId, couponIdList).list();
-            if (CommUtil.isNotEmptyAndNull(list)) {
-                List<Long> userCouponIdList = list.stream().map(UserCoupon::getCouponId).toList();
-                res.forEach(coupon -> {
-                    coupon.setCollected(userCouponIdList.contains(coupon.getId()));
-                });
-            }
-        }
+        res.forEach(coupon -> coupon.setCollected(Boolean.TRUE.equals(redisTemplate.opsForSet().isMember(RedisKeys.COUPON_ID_TO_USERS, coupon.getId() + ":" + userId))));
         return new PageBean<>(res);
     }