|
|
@@ -1,5 +1,6 @@
|
|
|
package com.kym.service.admin.impl;
|
|
|
|
|
|
+import cn.dev33.satoken.stp.StpUtil;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
@@ -7,6 +8,7 @@ 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;
|
|
|
@@ -18,6 +20,7 @@ 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;
|
|
|
@@ -47,13 +50,16 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
|
|
|
private final ActivityStationService activityStationService;
|
|
|
|
|
|
private final UserCouponSender userCouponSender;
|
|
|
+ private final UserCouponService userCouponService;
|
|
|
|
|
|
public CouponServiceImpl(UserService userService, @Lazy ActivityService activityService,
|
|
|
- ActivityStationService activityStationService, UserCouponSender userCouponSender) {
|
|
|
+ ActivityStationService activityStationService, UserCouponSender userCouponSender,
|
|
|
+ UserCouponService userCouponService) {
|
|
|
this.userService = userService;
|
|
|
this.activityService = activityService;
|
|
|
this.activityStationService = activityStationService;
|
|
|
this.userCouponSender = userCouponSender;
|
|
|
+ this.userCouponService = userCouponService;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -121,7 +127,23 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
|
|
|
.eq(Coupon::getReceiveType, Coupon.RECEIVE_TYPE_主动领取)
|
|
|
.in(Coupon::getStatus, Coupon.STATUS_未开始, Coupon.STATUS_进行中)
|
|
|
.eq(ActivityStation::getStationId, params.getStationId());
|
|
|
- var res = this.selectJoinList(Coupon.class, wrapper);
|
|
|
+ List<Coupon> res = this.selectJoinList(Coupon.class, wrapper);
|
|
|
+
|
|
|
+ //已领取的标识出来
|
|
|
+ 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()));
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
return new PageBean<>(res);
|
|
|
}
|
|
|
|