Helius
2021-05-13 1b44a9a25a51324dba8e8640cb405440f2cf7d48
src/main/java/com/xcong/excoin/modules/yunding/service/Impl/XchProfitServiceImpl.java
@@ -51,31 +51,41 @@
        if (CollUtil.isNotEmpty(orders)) {
            for (YdOrderEntity order : orders) {
                MemberEntity memberEntity = memberDao.selectById(order.getMemberId());
                List<String> inviteIds = StrUtil.split(memberEntity.getRefererIds(), ',');
                List<MemberEntity> agents = memberDao.selectYdParentAgent(inviteIds);
                if (CollUtil.isNotEmpty(agents)) {
                    Map<Long, BigDecimal> returnRatio = buildReturnRatioObj(agents, 1);
                    for (Map.Entry<Long, BigDecimal> entry : returnRatio.entrySet()) {
                        String conent = "USDT返利";
                        BigDecimal amount = order.getAmount().multiply(entry.getValue());
                        LogRecordUtils.insertMemberAccountMoneyChangeWithId(entry.getKey(), conent, amount, "USDT", 1, 6, order.getId());
                        MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(entry.getKey(), "USDT");
                        memberWalletCoinDao.updateBlockBalance(walletCoin.getId(), amount, BigDecimal.ZERO, 0);
                    }
                    YdOrderEntity updateOrder = new YdOrderEntity();
                    updateOrder.setReturnState(2);
                    updateOrder.setId(order.getId());
                    ydOrderDao.updateById(updateOrder);
                }
                usdtProfitDistributor(order);
            }
        }
    }
    @Override
    public void usdtProfitDistributorByOrderId(Long id) {
        YdOrderEntity ydOrderEntity = ydOrderDao.selectById(id);
        usdtProfitDistributor(ydOrderEntity);
    }
    private void usdtProfitDistributor(YdOrderEntity order) {
        MemberEntity memberEntity = memberDao.selectById(order.getMemberId());
        List<String> inviteIds = StrUtil.split(memberEntity.getRefererIds(), ',');
        List<MemberEntity> agents = memberDao.selectYdParentAgent(inviteIds);
        if (CollUtil.isNotEmpty(agents)) {
            Map<Long, BigDecimal> returnRatio = buildReturnRatioObj(agents, 1);
            for (Map.Entry<Long, BigDecimal> entry : returnRatio.entrySet()) {
                String conent = "USDT返利";
                BigDecimal amount = order.getAmount().multiply(entry.getValue());
                LogRecordUtils.insertMemberAccountMoneyChangeWithId(entry.getKey(), conent, amount, "USDT", 1, 6, order.getId());
                MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(entry.getKey(), "USDT");
                memberWalletCoinDao.updateBlockBalance(walletCoin.getId(), amount, BigDecimal.ZERO, 0);
            }
            YdOrderEntity updateOrder = new YdOrderEntity();
            updateOrder.setReturnState(2);
            updateOrder.setId(order.getId());
            ydOrderDao.updateById(updateOrder);
        }
    }
    private Map<Long, BigDecimal> buildReturnRatioObj(List<MemberEntity> agents, int type) {
        Map<Long, BigDecimal> returnRatio = new HashMap<Long, BigDecimal>();
        Long lastId = null;