From be629a8b5fd0b4ea2950cf1e204c56119bab37bc Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 27 May 2025 14:13:21 +0800
Subject: [PATCH] feat(mall): 会员标签增加名称查询

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 85 insertions(+), 4 deletions(-)

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 e732db2..361b586 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,8 @@
 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.ApiLabelInfoVo;
+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 +92,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}")
@@ -271,7 +275,7 @@
 
         HappyMemberLevel happyMemberLevel = happyMemberLevelMapper.selectOne(
                 new LambdaQueryWrapper<HappyMemberLevel>()
-                        .select(HappyMemberLevel::getName)
+                        .select(HappyMemberLevel::getName,  HappyMemberLevel::getIconPng)
                         .eq(HappyMemberLevel::getCode, mallMember.getDirector())
         );
         if(happyMemberLevel != null){
@@ -323,6 +327,29 @@
         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,  HappyMemberLabel::getName)
+                            .in(HappyMemberLabel::getId, collect)
+            );
+            if(CollUtil.isNotEmpty(happyMemberLabels)){
+                ArrayList<ApiLabelInfoVo> apiMemberLabelVos = new ArrayList<>();
+                for (HappyMemberLabel happyMemberLabel : happyMemberLabels) {
+                    ApiLabelInfoVo apiLabelInfoVo = new ApiLabelInfoVo();
+                    apiLabelInfoVo.setIconPng(happyMemberLabel.getIconPng());
+                    apiLabelInfoVo.setName(happyMemberLabel.getName());
+                    apiMemberLabelVos.add(apiLabelInfoVo);
+                }
+                mallMemberVo.setLabelList(apiMemberLabelVos);
+            }
+        }
         return new FebsResponse().success().data(mallMemberVo);
     }
 
@@ -704,9 +731,29 @@
 
                     //分销员的邀请码赠送优惠卷
                     if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
-                        GetCouponDto getCouponDto = new GetCouponDto();
-                        getCouponDto.setInviteId(apiXcxLoginDto.getInviteId());
-                        scanCoupon(getCouponDto);
+                        String couponUUID = IdUtil.simpleUUID();
+                        //通过邀请人信息,获取能领取的优惠卷信息
+                        MallMember refMember = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId());
+                        if(ObjectUtil.isNotEmpty(refMember)){
+                            SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(refMember.getId());
+                            if(ObjectUtil.isNotEmpty(salemanCoupon)){
+                                Long couponId = salemanCoupon.getCouponId();
+                                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(mallMember.getId(), couponId);
+                                if(CollUtil.isEmpty(mallMemberCoupons)){
+                                    //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
+                                    MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
+                                    MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
+                                    mallMemberCoupon.setCouponId(couponId);
+                                    mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
+                                    mallMemberCoupon.setMemberId(mallMember.getId());
+                                    mallMemberCoupon.setCouponUuid(couponUUID);
+                                    mallMemberCoupon.setInviteId(refMember.getInviteId());
+                                    mallMemberCoupon.setState(1);
+                                    mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
+                                    mallMemberCouponMapper.insert(mallMemberCoupon);
+                                }
+                            }
+                        }
                     }
                 } else {
                     if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) {
@@ -1670,6 +1717,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 = "爱和美医疗";

--
Gitblit v1.9.1