fix
Hentua
2023-08-24 3f847215a4875a7855b830013b337b6c082f4649
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -13,10 +13,7 @@
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.ICommonService;
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.mall.service.*;
import cc.mrbird.febs.mall.vo.*;
import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
import cc.mrbird.febs.pay.service.IXcxPayService;
@@ -30,6 +27,7 @@
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -69,6 +67,8 @@
    private final SpringContextHolder springContextHolder;
    private final MallAgentRecordMapper mallAgentRecordMapper;
    private final IMallMoneyFlowService mallMoneyFlowService;
    private final IMallMemberCollectionService mallMemberCollectionService;
    private final IMallMemberFootprintService mallMemberFootprintService;
    @Value("${spring.profiles.active}")
@@ -253,24 +253,24 @@
            mallMemberVo.setHasPayment(1);
        }
        LambdaQueryWrapper<MallMemberCollection> collectionQuery = new LambdaQueryWrapper<>();
        collectionQuery.eq(MallMemberCollection::getMemberId, id);
        List<MallMemberCollection> collectionList = mallMemberCollectionService.list(collectionQuery);
        mallMemberVo.setCollectionCnt(CollUtil.isNotEmpty(collectionList) ? collectionList.size() : 0);
        LambdaQueryWrapper<MallMemberFootprint> footprintQuery = new LambdaQueryWrapper<>();
        footprintQuery.eq(MallMemberFootprint::getMemberId, id);
        List<MallMemberFootprint> footprintList = mallMemberFootprintService.list(footprintQuery);
        mallMemberVo.setFootprintCnt(CollUtil.isNotEmpty(footprintList) ? footprintList.size() : 0);
        List<MallMember> mallMembers = this.baseMapper.selectByRefererId(mallMember.getInviteId());
        mallMemberVo.setChildCnt(CollUtil.isNotEmpty(mallMembers) ? mallMembers.size() : 0);
        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
        mallMemberVo.setBalance(wallet.getBalance());
        mallMemberVo.setScore(wallet.getScore());
        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
        //代理状态
        MallAgentRecord mallAgentRecordIng = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_ING);
        MallAgentRecord mallAgentRecordAgree = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_AGREE);
        MallAgentRecord mallAgentRecordDisagree = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_DISAGREE);
        if(ObjectUtil.isNotEmpty(mallAgentRecordIng)){
            mallMemberVo.setIsAgent(1);
        }else if(ObjectUtil.isNotEmpty(mallAgentRecordAgree)){
            mallMemberVo.setIsAgent(2);
        }else if(ObjectUtil.isNotEmpty(mallAgentRecordDisagree)){
            mallMemberVo.setIsAgent(3);
        }
//        mallMemberVo.setScore(wallet.getScore());
//        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
//        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
        return new FebsResponse().success().data(mallMemberVo);
    }
@@ -342,8 +342,8 @@
        MyTeamVo myTeamVo = new MyTeamVo();
        myTeamVo.setTeam(list);
        myTeamVo.setMyAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 1));
        myTeamVo.setMyTeamAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 2));
        myTeamVo.setMyAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 1));
        myTeamVo.setMyTeamAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 2));
        myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
        return new FebsResponse().success().data(myTeamVo);
    }
@@ -593,6 +593,40 @@
                    mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
                    mallMember.setOpenId(openId);
                    mallMember.setSessionKey(sessionKey);
                    if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
                        MallMember member = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId());
                        if (member != null) {
                            mallMember.setReferrerId(member.getInviteId());
                            //推荐人和推荐人链
                            boolean flag = false;
                            String parentId = mallMember.getReferrerId();
                            if (StrUtil.isBlank(parentId)) {
                                flag = true;
                            }
                            String ids = "";
                            while (!flag) {
                                if (StrUtil.isBlank(ids)) {
                                    ids += parentId;
                                } else {
                                    ids += ("," + parentId);
                                }
                                MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId);
                                if (parentMember == null) {
                                    break;
                                }
                                parentId = parentMember.getReferrerId();
                                if (StrUtil.isBlank(parentMember.getReferrerId())) {
                                    flag = true;
                                }
                            }
                            if (StrUtil.isNotBlank(ids)) {
                                mallMember.setReferrerIds(ids);
                            }
                        }
                    }
                    this.baseMapper.insert(mallMember);
                    mallMember = this.baseMapper.selectMemberByOpenId(openId);
@@ -748,11 +782,13 @@
        Integer type = apiRechargeWalletDto.getType();
        if(2 == type){
            //成为合伙人的充值金额
            DataDictionaryCustom agentPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.PRICE_AMOUNT.getType(),
                    DataDictionaryEnum.PRICE_AMOUNT.getCode());
            String agentPrice = agentPriceDic.getValue();
            BigDecimal price = new BigDecimal(agentPrice);
            if(price.compareTo(amount) != 0){
            MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(apiRechargeWalletDto.getAgentApplyId());
            BigDecimal agentPrice = mallAgentRecord.getAmount();
//            DataDictionaryCustom agentPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.PRICE_AMOUNT.getType(),
//                    DataDictionaryEnum.PRICE_AMOUNT.getCode());
//            String agentPrice = agentPriceDic.getValue();
//            BigDecimal price = new BigDecimal(agentPrice);
            if(agentPrice.compareTo(amount) != 0){
                return new FebsResponse().fail().message("成为合伙人的金额为"+agentPrice);
            }
        }
@@ -782,12 +818,12 @@
    }
    @Override
    public void updateMemberAgent(Long memberId) {
    public void updateMemberAgent(Long memberId,String levelCode) {
        mallAgentRecordMapper.updateStateByMemberId(memberId);
        MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(memberId);
        //更新用户表中的LEVEL
        MallMember mallMember = this.baseMapper.selectById(memberId);
        mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
        MallMember mallMember = this.baseMapper.selectById(mallAgentRecord.getMemberId());
        mallMember.setLevel(levelCode);
        this.baseMapper.updateById(mallMember);
    }
@@ -823,6 +859,13 @@
        return new FebsResponse().success().data(map);
    }
    @Override
    public FebsResponse agentApplyInfo() {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        ApiMallAgentRecordVo apiMallAgentRecordVo = mallAgentRecordMapper.selectApiMallAgentRecordVoByMemberIdAndState(memberId,MallAgentRecord.APPLY_ING);
        return new FebsResponse().success().data(apiMallAgentRecordVo);
    }
    private  String getXcxLoginUrl(String code) {
        String wechatLoginUrl =xcxProperties.getWecharLoginUrl();
        return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code);