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/AdminMallMemberServiceImpl.java |   32 ++++++++++++++++++--------------
 1 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 5ad9ccb..b1c3142 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -391,21 +391,25 @@
         if(ObjectUtil.isEmpty(member)){
             throw new FebsException("请刷新页面");
         }
-        Long couponId = mallmember.getCouponId();
-
-        QueryWrapper<SalemanCoupon> objectQueryWrapper = new QueryWrapper<>();
-        objectQueryWrapper.eq("member_id",member.getId());
-        List<SalemanCoupon> salemanCouponList = salemanCouponMapper.selectList(objectQueryWrapper);
-        if(CollUtil.isNotEmpty(salemanCouponList)){
-            SalemanCoupon salemanCoupon = salemanCouponList.get(0);
-            salemanCoupon.setCouponId(couponId);
-            salemanCouponMapper.updateById(salemanCoupon);
-            return new FebsResponse().success().message("操作成功");
+        List<Long> couponIds = mallmember.getCouponIds();
+        if(CollUtil.isEmpty(couponIds)){
+            return new FebsResponse().fail().message("请选择优惠券");
         }
-        SalemanCoupon salemanCoupon = new SalemanCoupon();
-        salemanCoupon.setMemberId(member.getId());
-        salemanCoupon.setCouponId(couponId);
-        salemanCouponMapper.insert(salemanCoupon);
+
+        for(Long couponId : couponIds){
+            // 检查是否已绑定,已绑定则跳过
+            QueryWrapper<SalemanCoupon> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("member_id", member.getId());
+            queryWrapper.eq("coupon_id", couponId);
+            SalemanCoupon exist = salemanCouponMapper.selectOne(queryWrapper);
+            if(ObjectUtil.isNotEmpty(exist)){
+                continue;
+            }
+            SalemanCoupon salemanCoupon = new SalemanCoupon();
+            salemanCoupon.setMemberId(member.getId());
+            salemanCoupon.setCouponId(couponId);
+            salemanCouponMapper.insert(salemanCoupon);
+        }
         return new FebsResponse().success().message("操作成功");
     }
 

--
Gitblit v1.9.1