| | |
| | | package cc.mrbird.febs.mall.service.impl; |
| | | |
| | | import cc.mrbird.febs.common.enumerates.*; |
| | | import cc.mrbird.febs.common.tree.MatrixTree; |
| | | import cc.mrbird.febs.common.tree.MemberNode; |
| | | import cc.mrbird.febs.common.utils.AppContants; |
| | | import cc.mrbird.febs.common.utils.MallUtils; |
| | | import cc.mrbird.febs.mall.entity.*; |
| | | import cc.mrbird.febs.mall.mapper.*; |
| | |
| | | private final MallMemberMapper memberMapper; |
| | | private final MallOrderInfoMapper mallOrderInfoMapper; |
| | | |
| | | private final IApiMallMemberWalletService iApiMallMemberWalletService; |
| | | private final IMallMoneyFlowService mallMoneyFlowService; |
| | | private final MallMemberWalletMapper mallMemberWalletMapper; |
| | | private final SqlSessionTemplate sqlSessionTemplate; |
| | | private final IApiMallMemberWalletService memberWalletService; |
| | | private final MallMoneyFlowMapper mallMoneyFlowMapper; |
| | | private final MallMqRecordMapper mallMqRecordMapper; |
| | | |
| | | private final MatrixTreeNodeMapper matrixTreeNodeMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void autoUpAgentLevel(Long memberId) { |
| | | log.info("###代理自动升级###"); |
| | | MallMember member = memberMapper.selectById(memberId); |
| | | if(StrUtil.isBlank(member.getReferrerIds())) { |
| | | |
| | | MatrixTree tree = MatrixTree.getInstance(); |
| | | MemberNode node = tree.getNode(member.getInviteId()); |
| | | if (node != null) { |
| | | return; |
| | | } |
| | | |
| | | List<String> ids = StrUtil.split(member.getReferrerIds(), ','); |
| | | List<MallMember> parentMembers = memberMapper.selectByInviteIds(ids); |
| | | for (MallMember parent : parentMembers) { |
| | | // 没有购买套餐无法升级合伙人等级 |
| | | if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) { |
| | | continue; |
| | | } |
| | | //合伙人的下一个层级 |
| | | String parentLevel = parent.getLevel(); |
| | | String nextLevel = MemberLevelEnum.SECOND_LEVEL.getNextLevel(parentLevel); |
| | | if (parentLevel.equals(nextLevel)) { |
| | | log.info("当前层级无下一级:{}", parent.getLevel()); |
| | | continue; |
| | | } |
| | | |
| | | DataDictionaryCustom nextLevelDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("AGENT_LEVEL_REQUIRE", nextLevel); |
| | | AgentInfo agentInfo = JSONObject.parseObject(nextLevelDic.getValue(), AgentInfo.class); |
| | | if (!directMemberCnt(parent, agentInfo)) { |
| | | continue; |
| | | } |
| | | |
| | | if (!agentCntFinish(parent, agentInfo)) { |
| | | continue; |
| | | } |
| | | |
| | | if (!teamIncome(parent, agentInfo)) { |
| | | continue; |
| | | } |
| | | |
| | | parent.setLevel(nextLevel); |
| | | memberMapper.updateById(parent); |
| | | MatrixTreeNode matrixTreeNode = matrixTreeNodeMapper.selectByTreeNode(memberId); |
| | | if (matrixTreeNode != null) { |
| | | return; |
| | | } |
| | | |
| | | node = new MemberNode(); |
| | | node.setInviteId(member.getInviteId()); |
| | | node.setPhone(member.getPhone()); |
| | | node.setRefererId(member.getReferrerId()); |
| | | node.setMemberId(member.getId()); |
| | | MemberNode parentNode = tree.addNode(node); |
| | | |
| | | matrixTreeNode = new MatrixTreeNode(); |
| | | matrixTreeNode.setTreeNode(memberId); |
| | | matrixTreeNode.setParentNode(parentNode.getMemberId()); |
| | | matrixTreeNodeMapper.insert(matrixTreeNode); |
| | | |
| | | List<DataDictionaryCustom> dicList = dataDictionaryCustomMapper.selectDicByType(AppContants.AGENT_LEVEL); |
| | | DataDictionaryCustom dic = null; |
| | | for (DataDictionaryCustom dataDictionaryCustom : dicList) { |
| | | if (Integer.parseInt(dataDictionaryCustom.getValue()) == parentNode.CHILD.size()) { |
| | | dic = dataDictionaryCustom; |
| | | } |
| | | } |
| | | |
| | | if (dic == null) { |
| | | return; |
| | | } |
| | | |
| | | MallMember parentMember = memberMapper.selectById(parentNode.getMemberId()); |
| | | parentMember.setChildNodeCnt(parentNode.CHILD.size()); |
| | | parentMember.setLevel(dic.getCode()); |
| | | memberMapper.updateById(parentMember); |
| | | } |
| | | |
| | | /** |
| | |
| | | if(ObjectUtil.isEmpty(mallOrderInfo)){ |
| | | return; |
| | | } |
| | | if(2 != mallOrderInfo.getStatus()){ |
| | | return; |
| | | } |
| | | // if(2 != mallOrderInfo.getStatus()){ |
| | | // return; |
| | | // } |
| | | /** |
| | | * 分享补贴 直推消费额10% |
| | | */ |