From 92c26cea4de00349b346f71da3cf530b26c31eb0 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 10 Jun 2025 09:40:59 +0800
Subject: [PATCH] fix(mall): 修复用户重复加入标签的问题

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 86 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java
index f0f1362..39d383b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMemberLevelServiceImpl.java
@@ -4,17 +4,20 @@
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.enumerates.StateUpDownEnum;
 import cc.mrbird.febs.mall.dto.memberLevel.*;
-import cc.mrbird.febs.mall.entity.HappyActivityCategory;
-import cc.mrbird.febs.mall.entity.HappyMemberLevel;
-import cc.mrbird.febs.mall.entity.HappySaleLevel;
+import cc.mrbird.febs.mall.entity.*;
+import cc.mrbird.febs.mall.mapper.HappyMemberLabelMapper;
+import cc.mrbird.febs.mall.mapper.HappyMemberLabelRecordMapper;
 import cc.mrbird.febs.mall.mapper.HappyMemberLevelMapper;
 import cc.mrbird.febs.mall.mapper.HappySaleLevelMapper;
 import cc.mrbird.febs.mall.service.AdminMemberLevelService;
+import cc.mrbird.febs.mall.vo.memberLevel.AdminMemberLabelSetDto;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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 lombok.RequiredArgsConstructor;
@@ -32,6 +35,8 @@
 
     private final HappyMemberLevelMapper happyMemberLevelMapper;
     private final HappySaleLevelMapper happySaleLevelMapper;
+    private final HappyMemberLabelMapper happyMemberLabelMapper;
+    private final HappyMemberLabelRecordMapper happyMemberLabelRecordMapper;
     @Override
     public IPage<HappyMemberLevel> getLevelListInPage(AdminMemberLevelDto dto, QueryRequest request) {
 
@@ -43,11 +48,46 @@
     }
 
     @Override
+    public IPage<HappyMemberLabel> getLabelListInPage(AdminMemberLabelDto dto, QueryRequest request) {
+
+        Page<HappyMemberLabel> page = new Page<>(request.getPageNum(), request.getPageSize());
+        LambdaQueryWrapper<HappyMemberLabel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.orderByAsc(HappyMemberLabel::getId);
+        Page<HappyMemberLabel>  happyMemberLevelPage = happyMemberLabelMapper.selectPage(page, lambdaQueryWrapper);
+        return happyMemberLevelPage;
+    }
+
+    @Override
     public FebsResponse levelAdd(AdminMemberLevelAddDto dto) {
         HappyMemberLevel happyMemberLevel = new HappyMemberLevel();
         BeanUtil.copyProperties(dto, happyMemberLevel);
         happyMemberLevelMapper.insert(happyMemberLevel);
         return new FebsResponse().success().message("操作成功");
+    }
+
+    @Override
+    public FebsResponse labelAdd(AdminMemberLabelAddDto dto) {
+        HappyMemberLabel happyMemberLabel = new HappyMemberLabel();
+        BeanUtil.copyProperties(dto, happyMemberLabel);
+        Integer code = 0;
+        if(ObjectUtil.isEmpty(dto.getParentId())){
+            code = dto.getCode();
+        }
+        happyMemberLabel.setCode(code);
+        happyMemberLabelMapper.insert(happyMemberLabel);
+        return new FebsResponse().success().message("操作成功");
+    }
+
+    @Override
+    public FebsResponse parentAll() {
+
+        List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList(
+                Wrappers.lambdaQuery(HappyMemberLabel.class)
+                        .select(HappyMemberLabel::getId, HappyMemberLabel::getName)
+                        .eq(HappyMemberLabel::getParentId, 0)
+                .eq(HappyMemberLabel::getCode,1)
+        );
+        return new FebsResponse().success().data(happyMemberLabels);
     }
 
     @Override
@@ -61,10 +101,51 @@
     }
 
     @Override
+    public FebsResponse labelUpdate(AdminMemberLabelUpdateDto dto) {
+        HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(dto.getId());
+        if (ObjectUtil.isNotNull(happyMemberLabel)) {
+            BeanUtil.copyProperties(dto, happyMemberLabel);
+
+            Integer code = 0;
+            Long parentId = 0L;
+            if(ObjectUtil.isEmpty(dto.getParentId())){
+                code = dto.getCode();
+            }else{
+                parentId = dto.getParentId();
+            }
+            happyMemberLabel.setCode(code);
+            happyMemberLabel.setParentId(parentId);
+            happyMemberLabelMapper.updateById(happyMemberLabel);
+        }
+        return new FebsResponse().success().message("操作成功");
+    }
+
+    @Override
+    public FebsResponse labelMemberSet(AdminMemberLabelSetDto dto) {
+        Long labelId = dto.getLabelId();
+        List<Long> memberIdList = dto.getMemberIdList();
+        HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(labelId);
+        if (ObjectUtil.isNotEmpty(happyMemberLabel)) {
+            LambdaQueryWrapper<HappyMemberLabelRecord> happyMemberLabelRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            happyMemberLabelRecordLambdaQueryWrapper.eq(HappyMemberLabelRecord::getLabelId,labelId);
+            happyMemberLabelRecordMapper.delete(happyMemberLabelRecordLambdaQueryWrapper);
+            if(CollUtil.isNotEmpty(memberIdList)){
+                for (Long memberId:memberIdList){
+                    HappyMemberLabelRecord happyMemberLabelRecord = new HappyMemberLabelRecord();
+                    happyMemberLabelRecord.setMemberId(memberId);
+                    happyMemberLabelRecord.setLabelId(labelId);
+                    happyMemberLabelRecordMapper.insert(happyMemberLabelRecord);
+                }
+            }
+        }
+        return new FebsResponse().success().message("操作成功");
+    }
+
+    @Override
     public FebsResponse levelAll() {
         List<HappyMemberLevel> happyMemberLevels = happyMemberLevelMapper.selectList(
                 new LambdaQueryWrapper<HappyMemberLevel>()
-                        .select(HappyMemberLevel::getId, HappyMemberLevel::getName)
+                        .select(HappyMemberLevel::getCode, HappyMemberLevel::getName)
                         .orderByAsc(HappyMemberLevel::getId)
         );
         return new FebsResponse().success().data(happyMemberLevels);
@@ -102,7 +183,7 @@
     public FebsResponse saleLevelAll() {
         List<HappySaleLevel> happySaleLevels = happySaleLevelMapper.selectList(
                 new LambdaQueryWrapper<HappySaleLevel>()
-                        .select(HappySaleLevel::getId, HappySaleLevel::getName)
+                        .select(HappySaleLevel::getCode, HappySaleLevel::getName)
                         .orderByAsc(HappySaleLevel::getId)
         );
         return new FebsResponse().success().data(happySaleLevels);

--
Gitblit v1.9.1