From 065219830723896b2d256af6a2279e4358f55642 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 27 May 2025 11:42:25 +0800
Subject: [PATCH] feat(mall): 添加会员标识功能

---
 src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java                           |    4 ++
 src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelVo.java           |   24 ++++++++++++
 src/main/java/cc/mrbird/febs/mall/controller/member/ApiMallMemberController.java |   10 +++++
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java             |    2 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java     |   53 ++++++++++++++++++++++++++
 5 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/member/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/member/ApiMallMemberController.java
index a385178..ec0bb79 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/member/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/member/ApiMallMemberController.java
@@ -9,6 +9,7 @@
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IMallMemberWithdrawService;
 import cc.mrbird.febs.mall.vo.*;
+import cc.mrbird.febs.mall.vo.memberLevel.ApiMemberLabelVo;
 import cc.mrbird.febs.vip.service.IMallVipBenefitsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -56,6 +57,15 @@
         return memberService.findMemberInfo();
     }
 
+    @ApiOperation(value = "查看会员标识详情", notes = "查看会员标识详情")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = ApiMemberLabelVo.class)
+    })
+    @GetMapping(value = "/getLabelList")
+    public FebsResponse getLabelList() {
+        return memberService.getLabelList();
+    }
+
     @ApiOperation(value = "推出登录", notes = "推出登录")
     @PostMapping(value = "/logout")
     public FebsResponse logout() {
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
index d7e4a21..7c98ace 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -121,4 +121,6 @@
     FebsResponse flowHeader();
 
     FebsResponse newGiftEvent();
+
+    FebsResponse getLabelList();
 }
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 ff49561..4971f43 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
@@ -14,6 +14,7 @@
 import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.*;
 import cc.mrbird.febs.mall.vo.*;
+import cc.mrbird.febs.mall.vo.memberLevel.ApiMemberLabelVo;
 import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.service.IXcxPayService;
 import cc.mrbird.febs.pay.util.MD5;
@@ -90,6 +91,8 @@
     private final MallDoctorMapper mallDoctorMapper;
     private final HappyMemberLevelMapper happyMemberLevelMapper;
     private final IApiMallMemberWalletService mallMemberWalletService;
+    private final HappyMemberLabelRecordMapper happyMemberLabelRecordMapper;
+    private final HappyMemberLabelMapper happyMemberLabelMapper;
 
 
     @Value("${spring.profiles.active}")
@@ -323,6 +326,22 @@
         mallMemberVo.setScore(wallet.getScore());
         mallMemberVo.setPrizeScore(wallet.getPrizeScore());
 //        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
+
+        List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList(
+                new LambdaQueryWrapper<HappyMemberLabelRecord>()
+                        .eq(HappyMemberLabelRecord::getMemberId, id)
+        );
+        if(CollUtil.isNotEmpty(happyMemberLabelRecords)){
+            Set<Long> collect = happyMemberLabelRecords.stream().map(HappyMemberLabelRecord::getLabelId).collect(Collectors.toSet());
+            List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList(
+                    new LambdaQueryWrapper<HappyMemberLabel>()
+                            .select(HappyMemberLabel::getIconPng)
+                            .in(HappyMemberLabel::getId, collect)
+            );
+            if(CollUtil.isNotEmpty(happyMemberLabels)){
+                mallMemberVo.setLabelList(happyMemberLabels.stream().map(HappyMemberLabel::getIconPng).collect(Collectors.toList()));
+            }
+        }
         return new FebsResponse().success().data(mallMemberVo);
     }
 
@@ -1690,6 +1709,40 @@
         return new FebsResponse().success().data(apiMemberNewGiftSettingVo);
     }
 
+    @Override
+    public FebsResponse getLabelList() {
+
+        // 获取当前登录用户的ID
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+
+        ArrayList<ApiMemberLabelVo> apiMemberLabelVos = new ArrayList<>();
+
+        List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList(
+                new LambdaQueryWrapper<HappyMemberLabelRecord>()
+                        .eq(HappyMemberLabelRecord::getMemberId,memberId)
+        );
+        if(CollUtil.isNotEmpty(happyMemberLabelRecords)){
+            Set<Long> collect = happyMemberLabelRecords.stream().map(HappyMemberLabelRecord::getLabelId).collect(Collectors.toSet());
+            List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList(
+                    new LambdaQueryWrapper<HappyMemberLabel>()
+                            .select(HappyMemberLabel::getIconPng)
+                            .in(HappyMemberLabel::getId, collect)
+            );
+            if(CollUtil.isNotEmpty(happyMemberLabels)){
+                for (HappyMemberLabel happyMemberLabel : happyMemberLabels) {
+                    ApiMemberLabelVo apiMemberLabelVo = new ApiMemberLabelVo();
+                    apiMemberLabelVo.setName(happyMemberLabel.getName());
+                    apiMemberLabelVo.setContent(happyMemberLabel.getContent());
+                    apiMemberLabelVo.setHeaderPng(happyMemberLabel.getHeaderPng());
+                    apiMemberLabelVo.setIconPng(happyMemberLabel.getIconPng());
+                    apiMemberLabelVos.add(apiMemberLabelVo);
+                }
+            }
+        }
+
+        return new FebsResponse().success().data(apiMemberLabelVos);
+    }
+
 //    public static void main(String[] args) {
 //        Long userld = 16425L;
 //        String shopAccount = "爱和美医疗";
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
index 9e7aeed..fcc4fb9 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
@@ -9,6 +9,7 @@
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 @Data
 @ApiModel(value = "MallMemberVo", description = "商城用户信息返回类")
@@ -124,4 +125,7 @@
 
     @ApiModelProperty(value = "是否领取新人礼 0-否 1-是")
     private Integer newGift;
+
+    @ApiModelProperty(value = "会员标识集合")
+    private List<String> labelList;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelVo.java b/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelVo.java
new file mode 100644
index 0000000..1633723
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelVo.java
@@ -0,0 +1,24 @@
+package cc.mrbird.febs.mall.vo.memberLevel;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiMemberLabelVo", description = "商城用户信息返回类")
+public class ApiMemberLabelVo {
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "说明")
+    private String content;
+
+    @ApiModelProperty(value = "会员标识小图标")
+    private String iconPng;
+
+    @ApiModelProperty(value = "宣传海报")
+    private String headerPng;
+
+
+}

--
Gitblit v1.9.1