| | |
| | | @Test |
| | | public void dynamicProfit(){ |
| | | |
| | | QueryWrapper<MallProductBuy> query = new QueryWrapper<>(); |
| | | query.eq("state", ProductEnum.PRODUCT_BUY_SUCCESS.getValue()); |
| | | query.eq("mate_state",ProductEnum.PRODUCT_BUY_MATE_STATE_FAIL.getValue()); |
| | | List<MallProductBuy> mallProductBuys = mallProductBuyMapper.selectList(query); |
| | | if(CollUtil.isEmpty(mallProductBuys)){ |
| | | return; |
| | | } |
| | | |
| | | Set<Long> collect = mallProductBuys.stream().map(MallProductBuy::getMemberId).collect(Collectors.toSet()); |
| | | if(CollUtil.isEmpty(collect)){ |
| | | return; |
| | | } |
| | | for(Long memberId : collect){ |
| | | MallMember mallMember = memberMapper.selectById(memberId); |
| | | if(ObjectUtil.isEmpty(mallMember)){ |
| | | continue; |
| | | } |
| | | //上级 |
| | | String referrerId = mallMember.getReferrerId(); |
| | | MallMember mallMemberRef = memberMapper.selectInfoByInviteId(referrerId); |
| | | if(ObjectUtil.isEmpty(mallMemberRef)){ |
| | | continue; |
| | | } |
| | | List<MallMember> mallMembersAll = memberMapper.selectAllChildAgentListByInviteId(referrerId); |
| | | |
| | | List<MallMember> mallMembers = memberMapper.selectByRefererId(referrerId); |
| | | Set<Long> mallMembersSet = mallMembers.stream().map(MallMember::getId).collect(Collectors.toSet()); |
| | | mallMembersSet.retainAll(collect); |
| | | List<Long> intersection = new ArrayList<>(mallMembersSet);//上级直推有效人数 |
| | | if(CollUtil.isEmpty(intersection)){ |
| | | mallMemberRef.setLevel(MemberLevelNewEnum.ZERO_LEVEL.getType()); |
| | | memberMapper.updateById(mallMemberRef); |
| | | continue; |
| | | } |
| | | /** |
| | | * 从会员等级最低到最高,比较intersection与会员设置的直推人数directCntLevel比较 |
| | | * directCntLevel >= intersection.size(),则满足升级会员等级条件,跳出循环 |
| | | * teamCnt >= mallMembersAll.size(),则满足升级会员等级条件,跳出循环 |
| | | * 达到最高级别后,升级会员等级,跳出循环 |
| | | */ |
| | | String level = MemberLevelNewEnum.ZERO_LEVEL.getType(); |
| | | boolean flag = false; |
| | | while (!flag){ |
| | | DataDictionaryCustom levelDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | level, level |
| | | ); |
| | | TeamPerkDto teamPerkDto = JSONObject.parseObject(levelDic.getValue(), TeamPerkDto.class); |
| | | Integer directCntLevel = teamPerkDto.getDirectCnt(); |
| | | Integer teamCnt = teamPerkDto.getTeamCnt(); |
| | | if(directCntLevel >= intersection.size() && |
| | | teamCnt >= mallMembersAll.size()){ |
| | | mallMemberRef.setLevel(level); |
| | | memberMapper.updateById(mallMemberRef); |
| | | flag = true; |
| | | } |
| | | String nextLevel = MemberLevelNewEnum.ZERO_LEVEL.getNextLevel(level); |
| | | level = nextLevel; |
| | | if(level.equals(MemberLevelNewEnum.WU_LEVEL.getType()) && |
| | | nextLevel.equals(MemberLevelNewEnum.WU_LEVEL.getType()) ){ |
| | | mallMemberRef.setLevel(level); |
| | | memberMapper.updateById(mallMemberRef); |
| | | flag = true; |
| | | } |
| | | } |
| | | } |
| | | // QueryWrapper<MallProductBuy> query = new QueryWrapper<>(); |
| | | // query.eq("state", ProductEnum.PRODUCT_BUY_SUCCESS.getValue()); |
| | | // query.eq("mate_state",ProductEnum.PRODUCT_BUY_MATE_STATE_FAIL.getValue()); |
| | | // List<MallProductBuy> mallProductBuys = mallProductBuyMapper.selectList(query); |
| | | // if(CollUtil.isEmpty(mallProductBuys)){ |
| | | // return; |
| | | // } |
| | | // |
| | | // Set<Long> collect = mallProductBuys.stream().map(MallProductBuy::getMemberId).collect(Collectors.toSet()); |
| | | // if(CollUtil.isEmpty(collect)){ |
| | | // return; |
| | | // } |
| | | // for(Long memberId : collect){ |
| | | // MallMember mallMember = memberMapper.selectById(memberId); |
| | | // if(ObjectUtil.isEmpty(mallMember)){ |
| | | // continue; |
| | | // } |
| | | // //上级 |
| | | // String referrerId = mallMember.getReferrerId(); |
| | | // MallMember mallMemberRef = memberMapper.selectInfoByInviteId(referrerId); |
| | | // if(ObjectUtil.isEmpty(mallMemberRef)){ |
| | | // continue; |
| | | // } |
| | | // List<MallMember> mallMembersAll = memberMapper.selectAllChildAgentListByInviteId(referrerId); |
| | | // |
| | | // List<MallMember> mallMembers = memberMapper.selectByRefererId(referrerId); |
| | | // Set<Long> mallMembersSet = mallMembers.stream().map(MallMember::getId).collect(Collectors.toSet()); |
| | | // mallMembersSet.retainAll(collect); |
| | | // List<Long> intersection = new ArrayList<>(mallMembersSet);//上级直推有效人数 |
| | | // if(CollUtil.isEmpty(intersection)){ |
| | | // mallMemberRef.setLevel(MemberLevelNewEnum.ZERO_LEVEL.getType()); |
| | | // memberMapper.updateById(mallMemberRef); |
| | | // continue; |
| | | // } |
| | | // /** |
| | | // * 从会员等级最低到最高,比较intersection与会员设置的直推人数directCntLevel比较 |
| | | // * directCntLevel >= intersection.size(),则满足升级会员等级条件,跳出循环 |
| | | // * teamCnt >= mallMembersAll.size(),则满足升级会员等级条件,跳出循环 |
| | | // * 达到最高级别后,升级会员等级,跳出循环 |
| | | // */ |
| | | // String level = MemberLevelNewEnum.ZERO_LEVEL.getType(); |
| | | // boolean flag = false; |
| | | // while (!flag){ |
| | | // DataDictionaryCustom levelDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | // level, level |
| | | // ); |
| | | // TeamPerkDto teamPerkDto = JSONObject.parseObject(levelDic.getValue(), TeamPerkDto.class); |
| | | // Integer directCntLevel = teamPerkDto.getDirectCnt(); |
| | | // Integer teamCnt = teamPerkDto.getTeamCnt(); |
| | | // if(directCntLevel >= intersection.size() && |
| | | // teamCnt >= mallMembersAll.size()){ |
| | | // mallMemberRef.setLevel(level); |
| | | // memberMapper.updateById(mallMemberRef); |
| | | // flag = true; |
| | | // } |
| | | // String nextLevel = MemberLevelNewEnum.ZERO_LEVEL.getNextLevel(level); |
| | | // level = nextLevel; |
| | | // if(level.equals(MemberLevelNewEnum.WU_LEVEL.getType()) && |
| | | // nextLevel.equals(MemberLevelNewEnum.WU_LEVEL.getType()) ){ |
| | | // mallMemberRef.setLevel(level); |
| | | // memberMapper.updateById(mallMemberRef); |
| | | // flag = true; |
| | | // } |
| | | // } |
| | | // } |
| | | } |
| | | // @Autowired |
| | | // private AgentConsumer agentConsumer; |