Administrator
2025-05-27 065219830723896b2d256af6a2279e4358f55642
feat(mall): 添加会员标识功能

- 在 ApiMallMemberController 中添加 getLabelList 方法,用于获取会员标识列表
- 在 ApiMallMemberServiceImpl 中实现 getLabelList 方法的逻辑
- 新增 ApiMemberLabelVo 类,用于会员标识的信息返回
- 在 MallMemberVo 中添加 labelList 字段,用于存储会员标识列表
- 在 IApiMallMemberService 中添加 getLabelList 方法的接口定义
4 files modified
1 files added
93 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/member/ApiMallMemberController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 53 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelVo.java 24 ●●●●● patch | view | raw | blame | history
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() {
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -121,4 +121,6 @@
    FebsResponse flowHeader();
    FebsResponse newGiftEvent();
    FebsResponse getLabelList();
}
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 = "爱和美医疗";
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;
}
src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelVo.java
New file
@@ -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;
}