Browse Source

站点领券增加是否已领取标识

zuy 1 year ago
parent
commit
97fbfe28a6

+ 5 - 0
entity/src/main/java/com/kym/entity/admin/Coupon.java

@@ -118,4 +118,9 @@ public class Coupon extends BaseEntity {
      * 备注
      * 备注
      */
      */
     private String remark;
     private String remark;
+
+    /**
+     * 是否已领取
+     */
+    private boolean collected ;
 }
 }

+ 24 - 2
service/src/main/java/com/kym/service/admin/impl/CouponServiceImpl.java

@@ -1,5 +1,6 @@
 package com.kym.service.admin.impl;
 package com.kym.service.admin.impl;
 
 
+import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageHelper;
@@ -7,6 +8,7 @@ import com.github.yulichang.toolkit.JoinWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.kym.common.exception.BusinessException;
 import com.kym.common.exception.BusinessException;
 import com.kym.common.utils.CommUtil;
 import com.kym.common.utils.CommUtil;
+import com.kym.entity.BaseEntity;
 import com.kym.entity.admin.ActivityStation;
 import com.kym.entity.admin.ActivityStation;
 import com.kym.entity.admin.Coupon;
 import com.kym.entity.admin.Coupon;
 import com.kym.entity.admin.queryParams.CouponQueryParam;
 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.ActivityService;
 import com.kym.service.admin.ActivityStationService;
 import com.kym.service.admin.ActivityStationService;
 import com.kym.service.admin.CouponService;
 import com.kym.service.admin.CouponService;
+import com.kym.service.miniapp.UserCouponService;
 import com.kym.service.miniapp.UserService;
 import com.kym.service.miniapp.UserService;
 import com.kym.service.mq.producer.UserCouponSender;
 import com.kym.service.mq.producer.UserCouponSender;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Lazy;
@@ -47,13 +50,16 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
     private final ActivityStationService activityStationService;
     private final ActivityStationService activityStationService;
 
 
     private final UserCouponSender userCouponSender;
     private final UserCouponSender userCouponSender;
+    private final UserCouponService userCouponService;
 
 
     public CouponServiceImpl(UserService userService, @Lazy ActivityService activityService,
     public CouponServiceImpl(UserService userService, @Lazy ActivityService activityService,
-                             ActivityStationService activityStationService, UserCouponSender userCouponSender) {
+                             ActivityStationService activityStationService, UserCouponSender userCouponSender,
+                             UserCouponService userCouponService) {
         this.userService = userService;
         this.userService = userService;
         this.activityService = activityService;
         this.activityService = activityService;
         this.activityStationService = activityStationService;
         this.activityStationService = activityStationService;
         this.userCouponSender = userCouponSender;
         this.userCouponSender = userCouponSender;
+        this.userCouponService = userCouponService;
     }
     }
 
 
 
 
@@ -121,7 +127,23 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
                 .eq(Coupon::getReceiveType, Coupon.RECEIVE_TYPE_主动领取)
                 .eq(Coupon::getReceiveType, Coupon.RECEIVE_TYPE_主动领取)
                 .in(Coupon::getStatus, Coupon.STATUS_未开始, Coupon.STATUS_进行中)
                 .in(Coupon::getStatus, Coupon.STATUS_未开始, Coupon.STATUS_进行中)
                 .eq(ActivityStation::getStationId, params.getStationId());
                 .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);
         return new PageBean<>(res);
     }
     }