|
|
@@ -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);
|
|
|
}
|
|
|
|