From b1e2462c74d8412b66951f447d9f09e5467f2c3e Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 04 Jun 2025 15:51:04 +0800
Subject: [PATCH] feat(mall): 添加我的团相关功能

---
 src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelAddVo.java        |   29 ++++
 src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInsureDto.java   |   21 +++
 src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelAddDto.java      |   22 +++
 src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelInfoVo.java       |   17 ++
 src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelItemDto.java     |   17 ++
 src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelItemVo.java       |   20 ++
 src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInfoDto.java     |   17 ++
 src/main/java/cc/mrbird/febs/mall/controller/member/ApiMallMemberController.java |   45 ++++++
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java             |   12 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java     |  175 ++++++++++++++++++++++++
 10 files changed, 373 insertions(+), 2 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 ec0bb79..0099f5c 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
@@ -2,6 +2,10 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelAddDto;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelInfoDto;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelInsureDto;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelItemDto;
 import cc.mrbird.febs.mall.entity.MallMember;
 import cc.mrbird.febs.mall.entity.MallMemberPayment;
 import cc.mrbird.febs.mall.service.IApiMallAgentService;
@@ -9,6 +13,9 @@
 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.ApiMemberLabelAddVo;
+import cc.mrbird.febs.mall.vo.memberLevel.ApiMemberLabelInfoVo;
+import cc.mrbird.febs.mall.vo.memberLevel.ApiMemberLabelItemVo;
 import cc.mrbird.febs.mall.vo.memberLevel.ApiMemberLabelVo;
 import cc.mrbird.febs.vip.service.IMallVipBenefitsService;
 import io.swagger.annotations.Api;
@@ -30,6 +37,7 @@
 @RestController
 @RequestMapping(value = "/api/member")
 @RequiredArgsConstructor
+@Validated
 @Api(value = "ApiMallMemberController", tags = "365用户操作")
 public class ApiMallMemberController {
 
@@ -66,6 +74,43 @@
         return memberService.getLabelList();
     }
 
+    @ApiOperation(value = "会员标识(我的团)", notes = "会员标识(我的团)")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = ApiMemberLabelInfoVo.class)
+    })
+    @PostMapping(value = "/getLabelListById")
+    public FebsResponse getLabelListById(@RequestBody @Validated ApiMemberLabelInfoDto dto) {
+
+        return memberService.getLabelListById(dto);
+    }
+
+    @ApiOperation(value = "我的团列表(我的团)", notes = "我的团列表(我的团)")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = ApiMemberLabelItemVo.class)
+    })
+    @PostMapping(value = "/getMemberLabelListById")
+    public FebsResponse getMemberLabelListById(@RequestBody @Validated ApiMemberLabelItemDto dto) {
+
+        return memberService.getMemberLabelListById(dto);
+    }
+
+    @ApiOperation(value = "添加团员(我的团)", notes = "添加团员(我的团)")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = ApiMemberLabelAddVo.class)
+    })
+    @PostMapping(value = "/addLabelMember")
+    public FebsResponse addLabelMember(@RequestBody @Validated ApiMemberLabelAddDto dto) {
+
+        return memberService.addLabelMember(dto);
+    }
+
+    @ApiOperation(value = "确认(我的团)", notes = "确认(我的团)")
+    @PostMapping(value = "/insureLabelMember")
+    public FebsResponse insureLabelMember(@RequestBody @Validated ApiMemberLabelInsureDto dto) {
+
+        return memberService.insureLabelMember(dto);
+    }
+
     @ApiOperation(value = "推出登录", notes = "推出登录")
     @PostMapping(value = "/logout")
     public FebsResponse logout() {
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelAddDto.java b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelAddDto.java
new file mode 100644
index 0000000..eddb708
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelAddDto.java
@@ -0,0 +1,22 @@
+package cc.mrbird.febs.mall.dto.memberLevel;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiMemberLabelAddDto", description = "参数")
+public class ApiMemberLabelAddDto {
+
+    @NotNull(message = "会员标识不能为空")
+    @ApiModelProperty(value = "会员标识ID", example = "10")
+    private Integer labelId;
+
+    @NotBlank(message = "电话不能为空")
+    @ApiModelProperty(value = "电话", example = "10")
+    private String phone;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInfoDto.java
new file mode 100644
index 0000000..d8d9d7d
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInfoDto.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.mall.dto.memberLevel;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiMemberLabelInfoDto", description = "参数")
+public class ApiMemberLabelInfoDto {
+
+
+    @NotNull(message = "会员标识不能为空")
+    @ApiModelProperty(value = "会员标识ID", example = "10")
+    private Integer id;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInsureDto.java b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInsureDto.java
new file mode 100644
index 0000000..85a1239
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInsureDto.java
@@ -0,0 +1,21 @@
+package cc.mrbird.febs.mall.dto.memberLevel;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiMemberLabelInsureDto", description = "参数")
+public class ApiMemberLabelInsureDto {
+
+    @NotNull(message = "会员标识不能为空")
+    @ApiModelProperty(value = "labelId")
+    private Long labelId;
+
+    @NotNull(message = "会员不能为空")
+    @ApiModelProperty(value = "memberId")
+    private Long memberId;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelItemDto.java b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelItemDto.java
new file mode 100644
index 0000000..9fc3c36
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelItemDto.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.mall.dto.memberLevel;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiMemberLabelItemDto", description = "参数")
+public class ApiMemberLabelItemDto {
+
+    @NotNull(message = "会员标识不能为空")
+    @ApiModelProperty(value = "会员标识ID", example = "10")
+    private Integer labelId;
+
+}
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 7c98ace..ba8189a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -2,6 +2,10 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelAddDto;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelInfoDto;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelInsureDto;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelItemDto;
 import cc.mrbird.febs.mall.entity.MallMember;
 import cc.mrbird.febs.mall.entity.MallMemberPayment;
 import cc.mrbird.febs.mall.entity.MallShopApply;
@@ -123,4 +127,12 @@
     FebsResponse newGiftEvent();
 
     FebsResponse getLabelList();
+
+    FebsResponse getLabelListById(ApiMemberLabelInfoDto dto);
+
+    FebsResponse getMemberLabelListById(ApiMemberLabelItemDto dto);
+
+    FebsResponse addLabelMember(ApiMemberLabelAddDto dto);
+
+    FebsResponse insureLabelMember(ApiMemberLabelInsureDto dto);
 }
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 b3c59e8..0268278 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
@@ -9,13 +9,16 @@
 import cc.mrbird.febs.mall.conversion.MallShopApplyConversion;
 import cc.mrbird.febs.mall.conversion.MallStoreConversion;
 import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelAddDto;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelInfoDto;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelInsureDto;
+import cc.mrbird.febs.mall.dto.memberLevel.ApiMemberLabelItemDto;
 import cc.mrbird.febs.mall.dto.signActivity.ApiNewGiftSettingDto;
 import cc.mrbird.febs.mall.entity.*;
 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.mall.vo.memberLevel.*;
 import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.service.IXcxPayService;
 import cc.mrbird.febs.pay.util.MD5;
@@ -38,6 +41,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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;
@@ -1755,6 +1759,173 @@
         return new FebsResponse().success().data(apiMemberLabelVos);
     }
 
+    @Override
+    public FebsResponse getLabelListById(ApiMemberLabelInfoDto dto) {
+        // 获取当前登录用户的ID
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+
+        List<ApiMemberLabelInfoVo> apiMemberLabelInfoVos = new ArrayList<>();
+
+        HappyMemberLabelRecord happyMemberLabelRecord = happyMemberLabelRecordMapper.selectOne(
+                Wrappers.lambdaQuery(HappyMemberLabelRecord.class)
+                        .eq(HappyMemberLabelRecord::getMemberId, memberId)
+                        .eq(HappyMemberLabelRecord::getLabelId, dto.getId())
+        );
+        if(ObjectUtil.isEmpty(happyMemberLabelRecord)){
+            throw new FebsException("您没有该会员标签");
+        }
+        HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(dto.getId());
+        if(ObjectUtil.isEmpty(happyMemberLabel)){
+            throw new FebsException("您没有该会员标签");
+        }
+        if(!ObjectUtil.equal(happyMemberLabel.getCode(),1)){
+            throw new FebsException("没有查看权限");
+        }
+
+        List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList(
+                Wrappers.lambdaQuery(HappyMemberLabel.class)
+                        .eq(HappyMemberLabel::getParentId, dto.getId())
+        );
+        if(CollUtil.isNotEmpty(happyMemberLabels)){
+            for (HappyMemberLabel happyMemberLabelItem : happyMemberLabels) {
+                ApiMemberLabelInfoVo apiMemberLabelInfoVo = new ApiMemberLabelInfoVo();
+
+                apiMemberLabelInfoVo.setId(happyMemberLabelItem.getId());
+                apiMemberLabelInfoVo.setName(happyMemberLabelItem.getName());
+                apiMemberLabelInfoVos.add(apiMemberLabelInfoVo);
+            }
+        }
+
+        return new FebsResponse().success().data(apiMemberLabelInfoVos);
+    }
+
+    @Override
+    public FebsResponse getMemberLabelListById(ApiMemberLabelItemDto dto) {
+
+        // 获取当前登录用户的ID
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+
+        List<ApiMemberLabelItemVo> apiMemberLabelItemVos = new ArrayList<>();
+
+        Integer labelId = dto.getLabelId();
+        List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList(
+                Wrappers.lambdaQuery(HappyMemberLabelRecord.class)
+                        .eq(HappyMemberLabelRecord::getLabelId, labelId)
+        );
+        if(CollUtil.isNotEmpty(happyMemberLabelRecords)){
+
+            //stream流操作happyMemberLabelRecords,返回memberId的set集合
+            Set<Long> memberIdSet = happyMemberLabelRecords.stream().map(HappyMemberLabelRecord::getMemberId).collect(Collectors.toSet());
+            List<MallMember> mallMembers = this.baseMapper.selectList(
+                    Wrappers.lambdaQuery(MallMember.class)
+                            .select(MallMember::getId, MallMember::getName, MallMember::getPhone, MallMember::getAvatar)
+                            .in(MallMember::getId, memberIdSet)
+                    .eq(MallMember::getAccountStatus, MallMember.ACCOUNT_STATUS_ENABLE)
+            );
+            for (MallMember mallMember : mallMembers){
+                ApiMemberLabelItemVo apiMemberLabelItemVo = new ApiMemberLabelItemVo();
+                apiMemberLabelItemVo.setName(mallMember.getName());
+                apiMemberLabelItemVo.setAvatar(mallMember.getAvatar());
+                apiMemberLabelItemVo.setPhone(mallMember.getPhone());
+                apiMemberLabelItemVos.add(apiMemberLabelItemVo);
+            }
+        }
+
+        return new FebsResponse().success().data(apiMemberLabelItemVos);
+    }
+
+    @Override
+    public FebsResponse addLabelMember(ApiMemberLabelAddDto dto) {
+
+        // 获取当前登录用户的ID
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+
+        ApiMemberLabelAddVo apiMemberLabelAddVo = new ApiMemberLabelAddVo();
+
+        Integer labelId = dto.getLabelId();
+        String phone = dto.getPhone();
+
+        List<MallMember> mallMembers = this.baseMapper.selectList(
+                Wrappers.lambdaQuery(MallMember.class)
+                        .eq(MallMember::getPhone, phone)
+        );
+        if(CollUtil.isEmpty(mallMembers)){
+            throw new FebsException("未查询到用户");
+        }
+
+        MallMember mallMember = mallMembers.get(0);
+        apiMemberLabelAddVo.setMemberId(mallMember.getId());
+        apiMemberLabelAddVo.setName(mallMember.getName());
+        apiMemberLabelAddVo.setPhone(mallMember.getPhone());
+
+        HappyMemberLevel happyMemberLevel = happyMemberLevelMapper.selectById(labelId);
+        apiMemberLabelAddVo.setLabelId(happyMemberLevel.getId());
+        apiMemberLabelAddVo.setLabelName(happyMemberLevel.getName());
+
+        //获取会员标签
+        Integer integer = happyMemberLabelRecordMapper.selectCount(
+                Wrappers.lambdaQuery(HappyMemberLabelRecord.class)
+                        .eq(HappyMemberLabelRecord::getMemberId, mallMember.getId())
+                        .eq(HappyMemberLabelRecord::getLabelId, labelId)
+        );
+        if(integer > 0){
+            apiMemberLabelAddVo.setState(0);
+        }else{
+            apiMemberLabelAddVo.setState(1);
+        }
+        return new FebsResponse().success().data(apiMemberLabelAddVo);
+    }
+
+    @Override
+    public FebsResponse insureLabelMember(ApiMemberLabelInsureDto dto) {
+
+        // 获取当前登录用户的ID
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        Long labelId = dto.getLabelId();
+        Long insureMemberId = dto.getMemberId();
+
+        HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(labelId);
+        if(ObjectUtil.isEmpty(happyMemberLabel)){
+            throw new FebsException("会员标签不存在");
+        }
+        if(happyMemberLabel.getParentId() == 0){
+            throw new FebsException("会员标签不存在");
+        }
+
+        Long parentId = happyMemberLabel.getParentId();
+        HappyMemberLabel happyMemberLabelParent = happyMemberLabelMapper.selectById(parentId);
+        if(ObjectUtil.isEmpty(happyMemberLabelParent)){
+            throw new FebsException("会员标签不存在");
+        }
+        if(happyMemberLabelParent.getCode() != 1){
+            throw new FebsException("权限不足");
+        }
+
+        List<HappyMemberLabelRecord> happyMemberLabelRecordsParent = happyMemberLabelRecordMapper.selectList(
+                Wrappers.lambdaQuery(HappyMemberLabelRecord.class)
+                        .eq(HappyMemberLabelRecord::getMemberId, memberId)
+                        .eq(HappyMemberLabelRecord::getLabelId, parentId)
+        );
+        if(ObjectUtil.isEmpty(happyMemberLabelRecordsParent)){
+            throw new FebsException("权限不足");
+        }
+
+
+        List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList(
+                Wrappers.lambdaQuery(HappyMemberLabelRecord.class)
+                        .eq(HappyMemberLabelRecord::getMemberId, insureMemberId)
+                        .eq(HappyMemberLabelRecord::getLabelId, labelId)
+        );
+        if(CollUtil.isEmpty(happyMemberLabelRecords)){
+            HappyMemberLabelRecord happyMemberLabelRecord = new HappyMemberLabelRecord();
+            happyMemberLabelRecord.setMemberId(insureMemberId);
+            happyMemberLabelRecord.setLabelId(labelId);
+            happyMemberLabelRecordMapper.insert(happyMemberLabelRecord);
+        }
+
+        return new FebsResponse().success().message("操作成功");
+    }
+
 //    public static void main(String[] args) {
 //        Long userld = 16425L;
 //        String shopAccount = "爱和美医疗";
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelAddVo.java b/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelAddVo.java
new file mode 100644
index 0000000..46c26cd
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelAddVo.java
@@ -0,0 +1,29 @@
+package cc.mrbird.febs.mall.vo.memberLevel;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiMemberLabelAddVo", description = "商城用户信息返回类")
+public class ApiMemberLabelAddVo {
+
+    @ApiModelProperty(value = "memberId")
+    private Long memberId;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+    @ApiModelProperty(value = "labelId")
+    private Long labelId;
+
+    @ApiModelProperty(value = "会员标识名称")
+    private String labelName;
+
+    @ApiModelProperty(value = "是否允许确认 0-不允许 1-允许")
+    private Integer state;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelInfoVo.java
new file mode 100644
index 0000000..2cee4b2
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelInfoVo.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.mall.vo.memberLevel;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiMemberLabelInfoVo", description = "商城用户信息返回类")
+public class ApiMemberLabelInfoVo {
+
+    @ApiModelProperty(value = "labelId")
+    private Long id;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelItemVo.java b/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelItemVo.java
new file mode 100644
index 0000000..f5f0fd8
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelItemVo.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.mall.vo.memberLevel;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiMemberLabelItemVo", description = "商城用户信息返回类")
+public class ApiMemberLabelItemVo {
+
+    @ApiModelProperty(value = "头像")
+    private String avatar;
+
+    @ApiModelProperty(value = "昵称")
+    private String name;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+}

--
Gitblit v1.9.1