|  |  |  | 
|---|
|  |  |  | @Transactional(rollbackFor = Exception.class) | 
|---|
|  |  |  | public void profitJob() { | 
|---|
|  |  |  | log.info("推荐人返利执行"); | 
|---|
|  |  |  | DateTime yesterday = DateUtil.yesterday(); | 
|---|
|  |  |  | List<MallMoneyFlow> flows = moneyFlowMapper.selectMoneyFlowProfitByDate(yesterday); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (CollUtil.isEmpty(flows)) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (MallMoneyFlow flow : flows) { | 
|---|
|  |  |  | MallMember member = memberMapper.selectById(flow.getMemberId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<MallMember> child = memberMapper.selectByIdAndNoLevel(member.getInviteId(), AgentLevelEnum.ZERO_LEVEL.name()); | 
|---|
|  |  |  | if (CollUtil.isEmpty(child)) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int size = child.size(); | 
|---|
|  |  |  | BigDecimal needReturn = flow.getAmount().multiply(BigDecimal.valueOf(0.1)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String orderNo = MallUtils.getOrderNum("R"); | 
|---|
|  |  |  | String remarkFormat = "{}, 用户:{}, 利润分红: {}"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BigDecimal returnMoney = needReturn.divide(BigDecimal.valueOf(size), 2, RoundingMode.DOWN); | 
|---|
|  |  |  | for (MallMember mallMember : child) { | 
|---|
|  |  |  | memberWalletService.addBalance(returnMoney, mallMember.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), returnMoney); | 
|---|
|  |  |  | memberService.addMoneyFlow(mallMember.getId(), returnMoney, MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, member.getId(), null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), needReturn); | 
|---|
|  |  |  | memberService.addMoneyFlow(member.getId(), needReturn.negate(), MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, null, null); | 
|---|
|  |  |  | memberWalletService.reduceBalance(needReturn, member.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | moneyFlowMapper.updateIsReturnByMemberId(MallMoneyFlow.IS_RETURN_Y, flow.getMemberId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        DateTime yesterday = DateUtil.yesterday(); | 
|---|
|  |  |  | //        List<MallMoneyFlow> flows = moneyFlowMapper.selectMoneyFlowProfitByDate(yesterday); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        if (CollUtil.isEmpty(flows)) { | 
|---|
|  |  |  | //            return; | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        for (MallMoneyFlow flow : flows) { | 
|---|
|  |  |  | //            MallMember member = memberMapper.selectById(flow.getMemberId()); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            List<MallMember> child = memberMapper.selectByIdAndNoLevel(member.getInviteId(), AgentLevelEnum.ZERO_LEVEL.name()); | 
|---|
|  |  |  | //            if (CollUtil.isEmpty(child)) { | 
|---|
|  |  |  | //                continue; | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            int size = child.size(); | 
|---|
|  |  |  | //            BigDecimal needReturn = flow.getAmount().multiply(BigDecimal.valueOf(0.1)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            String orderNo = MallUtils.getOrderNum("R"); | 
|---|
|  |  |  | //            String remarkFormat = "{}, 用户:{}, 利润分红: {}"; | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            BigDecimal returnMoney = needReturn.divide(BigDecimal.valueOf(size), 2, RoundingMode.DOWN); | 
|---|
|  |  |  | //            for (MallMember mallMember : child) { | 
|---|
|  |  |  | //                memberWalletService.addBalance(returnMoney, mallMember.getId()); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), returnMoney); | 
|---|
|  |  |  | //                memberService.addMoneyFlow(mallMember.getId(), returnMoney, MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, member.getId(), null); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), needReturn); | 
|---|
|  |  |  | //            memberService.addMoneyFlow(member.getId(), needReturn.negate(), MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, null, null); | 
|---|
|  |  |  | //            memberWalletService.reduceBalance(needReturn, member.getId()); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            moneyFlowMapper.updateIsReturnByMemberId(MallMoneyFlow.IS_RETURN_Y, flow.getMemberId()); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|