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 |   48 +++++++++++++++++++++++++++++-------------------
 1 files changed, 29 insertions(+), 19 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 0bce76e..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
@@ -3,16 +3,12 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
-import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.AppContants;
-import cc.mrbird.febs.common.utils.LoginUserUtil;
-import cc.mrbird.febs.common.utils.MallUtils;
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
-import cc.mrbird.febs.mall.entity.MallNewsInfo;
 import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.IAdminMallMemberService;
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
@@ -33,7 +29,6 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.xmlbeans.impl.store.Query;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -320,6 +315,17 @@
     }
 
     @Override
+    public FebsResponse doctorStateChange(Long id) {
+        MallMember mallMember = this.baseMapper.selectById(id);
+        if(ObjectUtil.isEmpty(mallMember)){
+            throw new FebsException("请刷新页面");
+        }
+        mallMember.setDoctorState(mallMember.getDoctorState() == 1 ? 0 : 1);
+        this.baseMapper.updateById(mallMember);
+        return new FebsResponse().success().message("操作成功");
+    }
+
+    @Override
     public FebsResponse upCoupon(Long id) {
         MallMember mallMember = this.baseMapper.selectById(id);
         if(ObjectUtil.isEmpty(mallMember)){
@@ -385,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