|
@@ -12,10 +12,12 @@ import com.kym.entity.common.PageBean;
|
|
|
import com.kym.entity.miniapp.User;
|
|
import com.kym.entity.miniapp.User;
|
|
|
import com.kym.entity.miniapp.UserCoupon;
|
|
import com.kym.entity.miniapp.UserCoupon;
|
|
|
import com.kym.mapper.admin.CouponMapper;
|
|
import com.kym.mapper.admin.CouponMapper;
|
|
|
|
|
+import com.kym.service.admin.ActivityService;
|
|
|
import com.kym.service.admin.CouponService;
|
|
import com.kym.service.admin.CouponService;
|
|
|
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.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
@@ -23,6 +25,7 @@ import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
import java.time.LocalTime;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -38,10 +41,13 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
|
|
|
|
|
|
|
|
private final UserService userService;
|
|
private final UserService userService;
|
|
|
|
|
|
|
|
|
|
+ private final ActivityService activityService;
|
|
|
|
|
+
|
|
|
private final UserCouponSender userCouponSender;
|
|
private final UserCouponSender userCouponSender;
|
|
|
|
|
|
|
|
- public CouponServiceImpl(UserService userService, UserCouponSender userCouponSender) {
|
|
|
|
|
|
|
+ public CouponServiceImpl(UserService userService, @Lazy ActivityService activityService, UserCouponSender userCouponSender) {
|
|
|
this.userService = userService;
|
|
this.userService = userService;
|
|
|
|
|
+ this.activityService = activityService;
|
|
|
this.userCouponSender = userCouponSender;
|
|
this.userCouponSender = userCouponSender;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -60,7 +66,7 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
|
|
|
public PageBean<Coupon> listCoupon(CouponQueryParam params) {
|
|
public PageBean<Coupon> listCoupon(CouponQueryParam params) {
|
|
|
PageHelper.startPage(params.getPageNum(), params.getPageSize());
|
|
PageHelper.startPage(params.getPageNum(), params.getPageSize());
|
|
|
var res = lambdaQuery()
|
|
var res = lambdaQuery()
|
|
|
- .like(CommUtil.isNotEmptyAndNull(params.getName()), Coupon::getName, params.getName())
|
|
|
|
|
|
|
+ .like(CommUtil.isNotEmptyAndNull(params.getCouponName()), Coupon::getName, params.getCouponName())
|
|
|
.eq(CommUtil.isNotEmptyAndNull(params.getCouponType()), Coupon::getCouponType, params.getCouponType())
|
|
.eq(CommUtil.isNotEmptyAndNull(params.getCouponType()), Coupon::getCouponType, params.getCouponType())
|
|
|
.orderByAsc(Coupon::getEndTime)
|
|
.orderByAsc(Coupon::getEndTime)
|
|
|
.list();
|
|
.list();
|
|
@@ -76,11 +82,14 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
|
|
|
users = userService.lambdaQuery().in(User::getMobilePhone, userCouponsIssue.getPhones()).list();
|
|
users = userService.lambdaQuery().in(User::getMobilePhone, userCouponsIssue.getPhones()).list();
|
|
|
}
|
|
}
|
|
|
var coupons = lambdaQuery().in(Coupon::getId, userCouponsIssue.getCouponIds()).list();
|
|
var coupons = lambdaQuery().in(Coupon::getId, userCouponsIssue.getCouponIds()).list();
|
|
|
|
|
+ var activityList = activityService.listByIds(coupons.stream().map(Coupon::getActivityId).toList());
|
|
|
users.forEach(user -> {
|
|
users.forEach(user -> {
|
|
|
for (Coupon coupon : coupons) {
|
|
for (Coupon coupon : coupons) {
|
|
|
var userCoupon = new UserCoupon();
|
|
var userCoupon = new UserCoupon();
|
|
|
userCoupon.setActivityId(coupon.getActivityId());
|
|
userCoupon.setActivityId(coupon.getActivityId());
|
|
|
|
|
+ userCoupon.setActivityName(Objects.requireNonNull(activityList.stream().filter(activity -> activity.getId().equals(coupon.getActivityId())).findFirst().orElse(null)).getName());
|
|
|
userCoupon.setCouponId(coupon.getId());
|
|
userCoupon.setCouponId(coupon.getId());
|
|
|
|
|
+ userCoupon.setCouponName(coupon.getName());
|
|
|
userCoupon.setUserId(user.getId());
|
|
userCoupon.setUserId(user.getId());
|
|
|
userCoupon.setStartTime(LocalDateTime.now());
|
|
userCoupon.setStartTime(LocalDateTime.now());
|
|
|
userCoupon.setEndTime(LocalDateTime.now().with(LocalTime.MAX).plusDays(coupon.getValidity() - 1));
|
|
userCoupon.setEndTime(LocalDateTime.now().with(LocalTime.MAX).plusDays(coupon.getValidity() - 1));
|