|
|
@@ -7,13 +7,21 @@ import com.kym.common.utils.IDGenerator;
|
|
|
import com.kym.entity.admin.Coupon;
|
|
|
import com.kym.entity.admin.queryParams.CouponQueryParam;
|
|
|
import com.kym.entity.admin.vo.CouponVo;
|
|
|
+import com.kym.entity.admin.vo.UserCouponsIssueVo;
|
|
|
import com.kym.entity.common.PageBean;
|
|
|
+import com.kym.entity.miniapp.User;
|
|
|
+import com.kym.entity.miniapp.UserCoupon;
|
|
|
import com.kym.mapper.admin.CouponMapper;
|
|
|
import com.kym.service.admin.CouponService;
|
|
|
+import com.kym.service.miniapp.UserService;
|
|
|
+import com.kym.service.queue.producer.UserCouponSender;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.LocalTime;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 优惠券表 服务实现类
|
|
|
@@ -25,6 +33,14 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
@Service
|
|
|
public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> implements CouponService {
|
|
|
|
|
|
+ private final UserService userService;
|
|
|
+
|
|
|
+ private final UserCouponSender userCouponSender;
|
|
|
+
|
|
|
+ public CouponServiceImpl(UserService userService, UserCouponSender userCouponSender) {
|
|
|
+ this.userService = userService;
|
|
|
+ this.userCouponSender = userCouponSender;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
@@ -47,4 +63,27 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
|
|
|
return new PageBean<>(res);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void issueCoupons(UserCouponsIssueVo userCouponsIssue) {
|
|
|
+ var users = userService.lambdaQuery().in(User::getId, userCouponsIssue.getUserIds()).list();
|
|
|
+ var coupons = lambdaQuery().in(Coupon::getId, userCouponsIssue.getCouponIds()).list();
|
|
|
+ users.forEach(user -> {
|
|
|
+ for (Coupon coupon : coupons) {
|
|
|
+ var userCoupon = new UserCoupon();
|
|
|
+ userCoupon.setActivityId(coupon.getActivityId());
|
|
|
+ userCoupon.setCouponId(coupon.getId());
|
|
|
+ userCoupon.setUserId(user.getId());
|
|
|
+ userCoupon.setStartTime(LocalDateTime.now());
|
|
|
+ userCoupon.setEndTime(LocalDateTime.now().with(LocalTime.MAX).plusDays(coupon.getValidity() - 1));
|
|
|
+ userCoupon.setValidity(coupon.getValidity());
|
|
|
+ userCoupon.setCouponType(coupon.getCouponType());
|
|
|
+ userCoupon.setDiscount(coupon.getDiscount());
|
|
|
+ userCoupon.setMinServiceMoney(coupon.getMinServiceMoney());
|
|
|
+ userCoupon.setAllowStacke(coupon.getAllowStacke());
|
|
|
+ userCoupon.setRemark(coupon.getRemark());
|
|
|
+ userCouponSender.sendMessage(userCoupon);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|