From 6a55e75b8530197d1f561f710f9e53b7e40be171 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 01 Jul 2026 11:06:49 +0800
Subject: [PATCH] refactor(mall): 重构会员优惠券绑定逻辑

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |   27 +++++++++++----------------
 1 files changed, 11 insertions(+), 16 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 b1c3142..7e553d1 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,24 +391,19 @@
         if(ObjectUtil.isEmpty(member)){
             throw new FebsException("请刷新页面");
         }
-        List<Long> couponIds = mallmember.getCouponIds();
-        if(CollUtil.isEmpty(couponIds)){
-            return new FebsResponse().fail().message("请选择优惠券");
-        }
+        // 先删除旧绑定,再插入新绑定(全量替换)
+        QueryWrapper<SalemanCoupon> deleteWrapper = new QueryWrapper<>();
+        deleteWrapper.eq("member_id", member.getId());
+        salemanCouponMapper.delete(deleteWrapper);
 
-        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;
+        List<Long> couponIds = mallmember.getCouponIds();
+        if(CollUtil.isNotEmpty(couponIds)){
+            for(Long couponId : couponIds){
+                SalemanCoupon salemanCoupon = new SalemanCoupon();
+                salemanCoupon.setMemberId(member.getId());
+                salemanCoupon.setCouponId(couponId);
+                salemanCouponMapper.insert(salemanCoupon);
             }
-            SalemanCoupon salemanCoupon = new SalemanCoupon();
-            salemanCoupon.setMemberId(member.getId());
-            salemanCoupon.setCouponId(couponId);
-            salemanCouponMapper.insert(salemanCoupon);
         }
         return new FebsResponse().success().message("操作成功");
     }

--
Gitblit v1.9.1