From e1d1b5e5a2248381bc4faa2ac0e629676d17ff3c Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 01 Jul 2026 10:59:05 +0800
Subject: [PATCH] feat(mall): 支持优惠券多选绑定功能
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 103 +++++++++++++++++++++++++--------------------------
1 files changed, 51 insertions(+), 52 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 0a695fc..1831857 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -24,6 +24,7 @@
import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
+import java.util.List;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
@@ -923,45 +924,40 @@
@Override
public FebsResponse getCoupon(GetCouponDto getCouponDto) {
Long memberId = LoginUserUtil.getLoginUser().getId();
+ Long goodsId = getCouponDto.getGoodsId();
- String couponUUID = IdUtil.simpleUUID();
-// String couponUUID = getCouponDto.getCouponUUID();
-// QueryWrapper<MallMemberCoupon> objectQueryWrapper = new QueryWrapper<>();
-// objectQueryWrapper.eq("coupon_uuid",couponUUID);
-// List<MallMemberCoupon> mallMemberCouponDone = mallMemberCouponMapper.selectList(objectQueryWrapper);
-// if(CollUtil.isNotEmpty(mallMemberCouponDone)){
-// return new FebsResponse().success();
-// }
+ //验证商品存不存在,且上没上架
+ MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
+ if(ObjectUtil.isEmpty(mallGoods) || MallGoods.ISSALE_STATUS_ENABLE != mallGoods.getIsSale()){
+ return new FebsResponse().success();
+ }
+
//通过邀请人信息,获取能领取的优惠卷信息
MallMember mallMember = this.baseMapper.selectInfoByInviteId(getCouponDto.getInviteId());
if(ObjectUtil.isNotEmpty(mallMember)){
- SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(mallMember.getId());
- if(ObjectUtil.isNotEmpty(salemanCoupon)){
- Long couponId = salemanCoupon.getCouponId();
- Long goodsId = getCouponDto.getGoodsId();
- MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
- //验证商品存不存在,且上没上架
- if(ObjectUtil.isNotEmpty(mallGoods)
- && MallGoods.ISSALE_STATUS_ENABLE == mallGoods.getIsSale()){
-// List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponId(memberId, goodsId, couponId,mallMember.getInviteId());
-// List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponIdWithOutInviteId(memberId, goodsId, couponId);
- List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponIdWithOutInviteId(memberId, goodsId);
- if(CollUtil.isEmpty(mallMemberCoupons)){
- //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
- List<CouponGoods> couponGoodsList = couponGoodsMapper.selectByGoodIdAndCouponId(goodsId,couponId);
- MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
- if(CollUtil.isNotEmpty(couponGoodsList)){
- MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
- mallMemberCoupon.setCouponId(couponId);
- mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
- mallMemberCoupon.setMemberId(memberId);
- mallMemberCoupon.setGoodsId(goodsId);
- mallMemberCoupon.setCouponUuid(couponUUID);
- mallMemberCoupon.setInviteId(mallMember.getInviteId());
- mallMemberCoupon.setState(1);
- mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
- mallMemberCouponMapper.insert(mallMemberCoupon);
- }
+ List<SalemanCoupon> salemanCouponList = salemanCouponMapper.selectByMemberId(mallMember.getId());
+ if(CollUtil.isNotEmpty(salemanCouponList)){
+ for(SalemanCoupon salemanCoupon : salemanCouponList){
+ Long couponId = salemanCoupon.getCouponId();
+ //验证是否已经领取过该优惠券
+ List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(memberId, couponId);
+ if(CollUtil.isNotEmpty(mallMemberCoupons)){
+ continue;
+ }
+ //商品优惠卷如果绑定了该商品,那么当前登陆者获取一张卷
+ List<CouponGoods> couponGoodsList = couponGoodsMapper.selectByGoodIdAndCouponId(goodsId, couponId);
+ MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
+ if(CollUtil.isNotEmpty(couponGoodsList) && ObjectUtil.isNotEmpty(mallGoodsCoupon)){
+ MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
+ mallMemberCoupon.setCouponId(couponId);
+ mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
+ mallMemberCoupon.setMemberId(memberId);
+ mallMemberCoupon.setGoodsId(goodsId);
+ mallMemberCoupon.setCouponUuid(IdUtil.simpleUUID());
+ mallMemberCoupon.setInviteId(mallMember.getInviteId());
+ mallMemberCoupon.setState(1);
+ mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), mallGoodsCoupon.getExpireDay()));
+ mallMemberCouponMapper.insert(mallMemberCoupon);
}
}
}
@@ -972,26 +968,29 @@
@Override
public FebsResponse scanCoupon(GetCouponDto getCouponDto) {
Long memberId = LoginUserUtil.getLoginUser().getId();
- String couponUUID = IdUtil.simpleUUID();
//通过邀请人信息,获取能领取的优惠卷信息
MallMember mallMember = this.baseMapper.selectInfoByInviteId(getCouponDto.getInviteId());
if(ObjectUtil.isNotEmpty(mallMember)){
- SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(mallMember.getId());
- if(ObjectUtil.isNotEmpty(salemanCoupon)){
- Long couponId = salemanCoupon.getCouponId();
- List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(memberId, couponId);
- if(CollUtil.isEmpty(mallMemberCoupons)){
- //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
- MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
- MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
- mallMemberCoupon.setCouponId(couponId);
- mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
- mallMemberCoupon.setMemberId(memberId);
- mallMemberCoupon.setCouponUuid(couponUUID);
- mallMemberCoupon.setInviteId(mallMember.getInviteId());
- mallMemberCoupon.setState(1);
- mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
- mallMemberCouponMapper.insert(mallMemberCoupon);
+ List<SalemanCoupon> salemanCouponList = salemanCouponMapper.selectByMemberId(mallMember.getId());
+ if(CollUtil.isNotEmpty(salemanCouponList)){
+ for(SalemanCoupon salemanCoupon : salemanCouponList){
+ Long couponId = salemanCoupon.getCouponId();
+ List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(memberId, couponId);
+ if(CollUtil.isEmpty(mallMemberCoupons)){
+ //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
+ MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
+ if(ObjectUtil.isNotEmpty(mallGoodsCoupon)){
+ MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
+ mallMemberCoupon.setCouponId(couponId);
+ mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
+ mallMemberCoupon.setMemberId(memberId);
+ mallMemberCoupon.setCouponUuid(IdUtil.simpleUUID());
+ mallMemberCoupon.setInviteId(mallMember.getInviteId());
+ mallMemberCoupon.setState(1);
+ mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
+ mallMemberCouponMapper.insert(mallMemberCoupon);
+ }
+ }
}
}
}
--
Gitblit v1.9.1