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() { src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelAddDto.java
New file @@ -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; } src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInfoDto.java
New file @@ -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; } src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelInsureDto.java
New file @@ -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; } src/main/java/cc/mrbird/febs/mall/dto/memberLevel/ApiMemberLabelItemDto.java
New file @@ -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; } 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); } 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 = "爱和美医疗"; src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelAddVo.java
New file @@ -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; } src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelInfoVo.java
New file @@ -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; } src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLabelItemVo.java
New file @@ -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; }