xiaoyong931011
2023-01-13 6b6a3c1f4bf8c4be492ed2bbed1fccd5551af9f6
20221227 充值归集
2 files modified
73 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java 6 ●●●●● patch | view | raw | blame | history
src/test/java/cc/mrbird/febs/ProfitTest.java 67 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java
@@ -3,9 +3,11 @@
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.mall.chain.enums.ChainEnum;
import cc.mrbird.febs.mall.chain.enums.EthService;
import com.sun.xml.internal.bind.v2.TODO;
import io.reactivex.Flowable;
import io.reactivex.disposables.Disposable;
import lombok.extern.slf4j.Slf4j;
import org.java_websocket.WebSocket;
import org.web3j.crypto.Credentials;
import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.DefaultBlockParameter;
@@ -88,7 +90,11 @@
        } catch (Exception e) {
            try {
                ws.close();
                //TODO
                WebSocket.READYSTATE readyState = webSocketClient.getReadyState();
                webSocketClient.reconnect();
                webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
                ws = new WebSocketService(webSocketClient, true);
                ws.connect();
src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -105,7 +105,7 @@
    @Test
    public void directorProfitTest() {
        Long directRewardId = 628L;
        Long directRewardId = 701L;
        MallOrderInfo orderInfo = mallOrderInfoMapper.selectById(directRewardId);
        if(ObjectUtil.isEmpty(orderInfo)){
            return;
@@ -137,8 +137,7 @@
                MallMoneyFlowTypeEnum.MARKET_SUBSIDIES.getName()
        );
//        memberWalletService.addBalance(subsidyAmount.setScale(4, BigDecimal.ROUND_DOWN),mallMember.getId());
        memberWalletService.add(subsidyAmount.setScale(4, BigDecimal.ROUND_DOWN), mallMember.getId(), "balance");
        memberWalletService.addBalance(subsidyAmount.setScale(2, BigDecimal.ROUND_DOWN),mallMember.getId());
        /**
         * 生成直推返利的流水记录
@@ -152,33 +151,32 @@
         *  2、返利对象:下单人的直推上级 10%,直推的直推 5%
         *  3、金额:补贴金额乘以分享奖励的比例
         */
        if(StrUtil.isEmpty(mallMember.getReferrerId())){
            return;
        }
        //下单人的直推上级
        MallMember mallMemberOne = memberMapper.selectInfoByInviteId(mallMember.getReferrerId());
        //生成直推返利的流水记录
        if(ObjectUtil.isNotEmpty(mallMemberOne)){
            DataDictionaryCustom rewardPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.REWARD_PERCENT.getType(),
                    DataDictionaryEnum.REWARD_PERCENT.getCode()
            );
            BigDecimal rewardPercent = new BigDecimal(rewardPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
            BigDecimal directRewardAmount = subsidyAmount.multiply(rewardPercent).setScale(4, BigDecimal.ROUND_DOWN);
            Long marketSubsidyFlowId = mallMoneyFlowService.addMoneyFlow(
                    mallMember.getId(),
                    orderInfo.getOrderNo(),
                    directRewardAmount,
                    MallMoneyFlowTypeEnum.DIRECT_REWARD.getCode(),
                    MallMoneyFlow.STATUS_SUCCESS,
                    MallMoneyFlow.IS_RETURN_Y,
                    mallMemberOne.getId(),
                    FlowTypeEnum.BALANCE.getValue(),
                    MallMoneyFlowTypeEnum.DIRECT_REWARD.getName()
            );
//            DataDictionaryCustom rewardPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
//                    DataDictionaryEnum.REWARD_PERCENT.getType(),
//                    DataDictionaryEnum.REWARD_PERCENT.getCode()
//            );
//            BigDecimal rewardPercent = new BigDecimal(rewardPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
//            BigDecimal directRewardAmount = subsidyAmount.multiply(rewardPercent).setScale(4, BigDecimal.ROUND_DOWN);
//
//            Long marketSubsidyFlowId = mallMoneyFlowService.addMoneyFlow(
//                    mallMember.getId(),
//                    orderInfo.getOrderNo(),
//                    directRewardAmount,
//                    MallMoneyFlowTypeEnum.DIRECT_REWARD.getCode(),
//                    MallMoneyFlow.STATUS_SUCCESS,
//                    MallMoneyFlow.IS_RETURN_Y,
//                    mallMemberOne.getId(),
//                    FlowTypeEnum.BALANCE.getValue(),
//                    MallMoneyFlowTypeEnum.DIRECT_REWARD.getName()
//            );
//            memberWalletService.addBalance(directRewardAmount,mallMemberOne.getId());
            memberWalletService.add(directRewardAmount, mallMemberOne.getId(), "balance");
            DataDictionaryCustom shareOneDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.LEVEL_ONE.getType(),
                    DataDictionaryEnum.LEVEL_ONE.getCode()
@@ -197,8 +195,11 @@
                    FlowTypeEnum.BALANCE.getValue(),
                    MallMoneyFlowTypeEnum.SHARE_REWARD_ONE.getName()
            );
//            memberWalletService.addBalance(shareOneAmount,mallMemberOne.getId());
            memberWalletService.add(shareOneAmount, mallMemberOne.getId(), "balance");
            memberWalletService.addBalance(shareOneAmount,mallMemberOne.getId());
        }
        if(StrUtil.isEmpty(mallMemberOne.getReferrerId())){
            return;
        }
        //下单人的直推上级的直推
        MallMember mallMemberTwo = memberMapper.selectInfoByInviteId(mallMemberOne.getReferrerId());
@@ -220,12 +221,16 @@
                    FlowTypeEnum.BALANCE.getValue(),
                    MallMoneyFlowTypeEnum.SHARE_REWARD_TWO.getName()
            );
//            memberWalletService.addBalance(shareTwoAmount,mallMemberTwo.getId());
            memberWalletService.add(shareTwoAmount, mallMemberTwo.getId(), "balance");
            memberWalletService.addBalance(shareTwoAmount,mallMemberTwo.getId());
        }
        /**
         * 团队管理补贴
         */
        if(StrUtil.isEmpty(mallMember.getReferrerIds())){
            return;
        }
        //下单人所有的上级
        String referrerIds = mallMember.getReferrerIds();
        List<String> refererIdList = StrUtil.split(referrerIds, ",", -1, true, true);
@@ -270,9 +275,7 @@
                            MallMoneyFlowTypeEnum.TEAM_REWARD.getName()
                    );
//                    memberWalletService.addBalance(teamManageAmount,mallMemberUp.getId());
                    memberWalletService.add(teamManageAmount, mallMemberUp.getId(), "balance");
                    memberWalletService.addBalance(teamManageAmount,mallMemberUp.getId());
                }
                levelStart = levelUp;
            }