From 3f847215a4875a7855b830013b337b6c082f4649 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Thu, 24 Aug 2023 22:10:58 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 109 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 76 insertions(+), 33 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 73e0c7a..0fb793c 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 @@ -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); @@ -618,8 +652,8 @@ } } String token = IdUtil.simpleUUID(); - redisUtils.set(token, JSONObject.toJSONString(mallMember), 360000); - redisUtils.set(redisKey, token, 360000); + redisUtils.set(token, JSONObject.toJSONString(mallMember), -1); + redisUtils.set(redisKey, token, -1); Map<String, Object> authInfo = new HashMap<>(); authInfo.put("token", token); authInfo.put("appid", xcxProperties.getXcxAppid()); @@ -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); -- Gitblit v1.9.1