From 7e542750f61fface912e04993a10f9ec22f03384 Mon Sep 17 00:00:00 2001 From: paulGao Date: Fri, 8 Apr 2022 16:59:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=AF=8F=E6=AC=A1=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E4=BC=98=E6=83=A0=E5=88=B8=E4=BF=A1=E6=81=AF=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=A3=80=E6=9F=A5=E4=BC=98=E6=83=A0=E5=88=B8=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MemberCouponService.java | 7 ++++ .../serviceimpl/MemberCouponServiceImpl.java | 33 +++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/MemberCouponService.java b/framework/src/main/java/cn/lili/modules/promotion/service/MemberCouponService.java index a19fcd48..0d438b6a 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/MemberCouponService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/MemberCouponService.java @@ -125,6 +125,13 @@ public interface MemberCouponService extends IService { */ void cancellation(String memberId, String id); + /** + * 作废无效的会员优惠券 + * + * @return 是否操作成功 + */ + boolean expireInvalidMemberCoupon(String memberId); + /** * 关闭会员优惠券 * diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java index d46f606f..9cd0961e 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java @@ -1,5 +1,6 @@ package cn.lili.modules.promotion.serviceimpl; +import cn.hutool.core.text.CharSequenceUtil; import cn.lili.cache.Cache; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; @@ -23,6 +24,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheConfig; @@ -108,7 +110,12 @@ public class MemberCouponServiceImpl extends ServiceImpl getMemberCoupons(MemberCouponSearchParams param, PageVO pageVo) { QueryWrapper queryWrapper = param.queryWrapper(); - return this.page(PageUtil.initPage(pageVo), queryWrapper); + Page page = this.page(PageUtil.initPage(pageVo), queryWrapper); + if (page.getRecords().stream().anyMatch(i -> i.getEndTime().before(new Date()))) { + this.expireInvalidMemberCoupon(param.getMemberId()); + return this.page(PageUtil.initPage(pageVo), queryWrapper); + } + return page; } /** @@ -119,7 +126,12 @@ public class MemberCouponServiceImpl extends ServiceImpl getMemberCoupons(MemberCouponSearchParams param) { - return this.list(param.queryWrapper()); + List list = this.list(param.queryWrapper()); + if (list.stream().anyMatch(i -> i.getEndTime().before(new Date()))) { + this.expireInvalidMemberCoupon(param.getMemberId()); + return this.list(param.queryWrapper()); + } + return list; } /** @@ -273,6 +285,23 @@ public class MemberCouponServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper() + .eq(CharSequenceUtil.isNotEmpty(memberId), MemberCoupon::getMemberId, memberId) + .eq(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name()) + .le(MemberCoupon::getEndTime, new Date()) + .set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.EXPIRE.name()); + return this.update(updateWrapper); + } + private void receiverCoupon(String couponId, String memberId, String memberName, Coupon coupon) { this.checkCouponLimit(couponId, memberId); MemberCoupon memberCoupon = new MemberCoupon(coupon);