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/service/impl/ApiMallMemberServiceImpl.java | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 173 insertions(+), 2 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 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 = "爱和美医疗"; -- Gitblit v1.9.1