Administrator
3 days ago b1e2462c74d8412b66951f447d9f09e5467f2c3e
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 = "爱和美医疗";