xiaoyong931011
2023-05-19 24ceb7b6168f04d1727ad1bbf4ee44d33a545cf4
twoCoin项目修改
22 files modified
1 files added
248 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/chain/ChainEnum.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/contract/ContractInit.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberNodeMapper.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappNodeOrderMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java 38 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/vo/DappMemberInfoVo.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/job/BnbTransferJob.java 24 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java 48 ●●●● patch | view | raw | blame | history
src/main/resources/application-dev.yml 2 ●●● patch | view | raw | blame | history
src/main/resources/application-prod.yml 8 ●●●● patch | view | raw | blame | history
src/main/resources/application.yml 2 ●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappFundFlowDao.xml 1 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappMemberDao.xml 8 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappNodeOrderMapper.xml 7 ●●●●● patch | view | raw | blame | history
src/test/java/cc/mrbird/febs/MemberTest.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/chain/ChainEnum.java
@@ -17,8 +17,8 @@
    BSC_USDT("BSC", "0xA60AaC0da34C76F3f60207ee09e9F75043319ab4",
            "221be67f85375a5af6dd0f4b77fbe877ad2e57e05db201de1b1383fb76494d18",
            "https://bsc-dataseed1.ninicoin.io",
//            "0x55d398326f99059fF775485246999027B3197955",
            "0x532B0F9554D92b8BF1bdE85DD4E8b86E4228DE27",
            "0x55d398326f99059fF775485246999027B3197955",
//            "0x532B0F9554D92b8BF1bdE85DD4E8b86E4228DE27",
            ""),
//    BSC_USDT("BSC", "0xBa6206B3Be305278Ea65bA54C4E6188B252AEc4a",
//            "0x1bc264d17bd2b1f3c0480764272284b8e6c8b0a39a590c26940f84f7b090cc74",
src/main/java/cc/mrbird/febs/dapp/contract/ContractInit.java
@@ -35,6 +35,6 @@
            start = BigInteger.valueOf(Long.valueOf(bnb_block_number.toString()));
        }
        System.out.println("启动区块事件监听,监听起始:"+start);
        contractMain.listenBetting(start);
//        contractMain.listenBetting(start);
    }
}
src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
@@ -51,6 +51,24 @@
        return new FebsResponse().success().data(walletInfoVo);
    }
    @ApiOperation(value = "获取用户信息", notes = "获取用户信息")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = DappMemberInfoVo.class)
    })
    @PostMapping(value = "/memberInfo")
    public FebsResponse memberInfo() {
        return dappMemberService.getMemberInfo();
    }
    @ApiOperation(value = "获取用户购买节点信息", notes = "获取用户购买节点信息")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = DappMemberNodeVo.class)
    })
    @PostMapping(value = "/memberNode")
    public FebsResponse memberNode() {
        return dappMemberService.getMemberNode();
    }
    @ApiOperation(value = "获取节点信息", notes = "获取节点信息")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = DappNodeOrderVo.class)
src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
@@ -35,7 +35,7 @@
    DappFundFlowEntity selectByStateAndVersionAndFromHashLimitOne(@Param("status")int withdrawStatusAgree, @Param("version")int withdrawStatusAgree1);
    DappFundFlowEntity selectBymemberIdAndType(@Param("memberId")Long id, @Param("type")int type);
    DappFundFlowEntity selectBymemberIdAndType(@Param("memberId")Long id, @Param("type")int type, @Param("status")int status);
    List<DappFundFlowEntity> selectListByState(@Param("status")int status);
}
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.vo.AdminTeamInfoVo;
import cc.mrbird.febs.dapp.vo.DappMemberInfoVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -53,4 +54,6 @@
    Integer selectCountByAccountTypeAndRefererId(@Param("accountType")String code, @Param("refererId")String inviteId);
    IPage<AdminTeamInfoVo> findTeamInfoListInPage(Page<AdminTeamInfoVo> page, @Param("record")DappMemberEntity dappMemberEntity);
    DappMemberInfoVo selectByMemberId(@Param("id")Long id);
}
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberNodeMapper.java
@@ -18,4 +18,5 @@
    DappMemberNodeEntity selectNodeByMemberId(@Param("memberId")Long id);
    DappMemberNodeEntity selectNodeByMemberIdAndNodeCode(@Param("memberId")Long id, @Param("nodeCode")String code);
}
src/main/java/cc/mrbird/febs/dapp/mapper/DappNodeOrderMapper.java
@@ -12,4 +12,6 @@
    List<DappNodeOrderVo> selectNodeOrderList();
    DappNodeOrderEntity selectNodeOrderByNodeCode(@Param("nodeCode")String nodeCode);
    DappNodeOrderEntity selectNodeOrderByNodeCodeForupdate(@Param("nodeCode")String nodeCode);
}
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -61,4 +61,8 @@
     * @return
     */
    FebsResponse getNodeInfo();
    FebsResponse getMemberNode();
    FebsResponse getMemberInfo();
}
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -62,6 +62,7 @@
    private final DappFundFlowDao dappFundFlowDao;
    private final DappNodeOrderMapper dappNodeOrderMapper;
    private final DappMemberNodeMapper dappMemberNodeMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -483,6 +484,20 @@
        return new FebsResponse().success().data(dappNodeOrderVos);
    }
    @Override
    public FebsResponse getMemberNode() {
        DappMemberEntity member = LoginUserUtil.getAppUser();
        List<DappMemberNodeVo> dappMemberNodeVos = dappMemberNodeMapper.selectListByMemberId(member.getId());
        return new FebsResponse().success().data(dappMemberNodeVos);
    }
    @Override
    public FebsResponse getMemberInfo() {
        DappMemberEntity member = LoginUserUtil.getAppUser();
        DappMemberInfoVo dappMemberInfoVo = dappMemberDao.selectByMemberId(member.getId());
        return new FebsResponse().success().data(dappMemberInfoVo);
    }
    public TeamListVo buildTeamMatrix(Long memberId) {
        DappMemberEntity member = dappMemberDao.selectById(memberId);
        TeamListVo teamListVo = new TeamListVo();
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -483,44 +483,13 @@
            /**
             * 发起USDT转账
             */
            BigInteger bigInteger = new BigInteger(Convert.toWei(amount.toString(), Convert.Unit.ETHER).setScale(0).toString());
            log.info("{}",bigInteger);
            String hash = contractMain.trans(bigInteger,address);
//            String hash = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer(address, amount);
////            String hash = ChainService.getInstance(ChainEnum.BNB.name()).transferBaseToken(address, amount);
            String hash = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer(address, new BigDecimal(0.1));
            if(StrUtil.isEmpty(hash)){
                return;
            }
            log.info("{},{}",id,hash);
            dappFundFlow.setFromHash(hash);
            dappFundFlowDao.updateById(dappFundFlow);
            /**
             * 把剩余的归集到一个地址中
             */
            Long systemProfitId = dappFundFlow.getSystemProfitId();
            DappMemberNodeEntity dappMemberNodeEntity = dappMemberNodeMapper.selectById(systemProfitId);
            BigDecimal nodePrice = dappMemberNodeEntity.getNodePrice();
            nodePrice = nodePrice.subtract(amount);
            DataDictionaryCustom totalAddressDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.TOTAL_ADDRESS.getType(),
                    DataDictionaryEnum.TOTAL_ADDRESS.getCode()
            );
            BigInteger nodePriceBigInteger = new BigInteger(Convert.toWei(nodePrice.toString(), Convert.Unit.ETHER).setScale(0).toString());
            log.info("{}",nodePriceBigInteger);
            String hashBigInteger = contractMain.trans(nodePriceBigInteger,totalAddressDic.getValue());
//            ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer(totalAddressDic.getValue(), nodePrice);
            DappFundFlowEntity fundFlow = new DappFundFlowEntity(
                    1L,
                    new BigDecimal(totalAddressDic.getValue()),
                    3,
                    2,
                    BigDecimal.ZERO,
                    hashBigInteger,
                    dappMemberNodeEntity.getNodeCode());
            dappFundFlowDao.insert(fundFlow);
        }
    }
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -201,32 +201,37 @@
                 * 验证节点的价格是否和入参价格一致
                 */
                String nodeCode = transferDto.getNodeCode();
                DappNodeOrderEntity dappNodeOrderEntity = dappNodeOrderMapper.selectNodeOrderByNodeCode(nodeCode);
                DappNodeOrderEntity dappNodeOrderEntity = dappNodeOrderMapper.selectNodeOrderByNodeCodeForupdate(nodeCode);
                BigDecimal price = dappNodeOrderEntity.getPrice();
                BigDecimal amount = transferDto.getAmount();
                if(price.compareTo(amount) != 0){
                    throw new FebsException("刷新后重试");
//                    throw new FebsException("Refresh and try again");
                }
                Integer surplusCnt = dappNodeOrderEntity.getSurplusCnt();
                if(0 >= surplusCnt){
                    throw new FebsException("该节点剩余数量为0。");
                }
                /**
                 * 超级节点只允许购买一次
                 */
                DappMemberNodeEntity superNode = dappMemberNodeMapper.selectNodeByMemberIdAndNodeCode(
                        member.getId(), NodeCodeEnum.SUPER_NODE.getCode());
                if(ObjectUtil.isNotEmpty(superNode)){
                    throw new FebsException("超级节点只允许购买一次");
//                    throw new FebsException("Super nodes are only allowed to be purchased once");
                if(NodeCodeEnum.SUPER_NODE.getCode().equals(nodeCode)){
                    DappMemberNodeEntity superNode = dappMemberNodeMapper.selectNodeByMemberIdAndNodeCode(
                            member.getId(), NodeCodeEnum.SUPER_NODE.getCode());
                    if(ObjectUtil.isNotEmpty(superNode)){
                        throw new FebsException("超级节点只能购买一次");
                    }
                }
                DappFundFlowEntity fundFlowOld = dappFundFlowDao.selectBymemberIdAndType(member.getId(),type);
                DappFundFlowEntity fundFlowOld = dappFundFlowDao.selectBymemberIdAndType(member.getId(),type,DappFundFlowEntity.WITHDRAW_STATUS_ING);
                if(ObjectUtil.isNotEmpty(fundFlowOld)){
                    //网络问题导致第二次提交前,未成功就关闭了页面
                    if (fundFlowOld.getStatus() == 1 && StrUtil.isEmpty(fundFlowOld.getFromHash())) {
                        dappFundFlowDao.deleteById(fundFlowOld.getId());
                        throw new FebsException("Refresh and try again");
                    }
                    throw new FebsException("Refresh and try again");
                }
                DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), type, 1, transferDto.getFee(), transferDto.getTxHash(),transferDto.getNodeCode());
                dappFundFlowDao.insert(fundFlow);
@@ -243,7 +248,7 @@
                 * 生成会员节点表记录
                 */
                String nodeCode = transferDto.getNodeCode();
                DappNodeOrderEntity dappNodeOrderEntity = dappNodeOrderMapper.selectNodeOrderByNodeCode(nodeCode);
                DappNodeOrderEntity dappNodeOrderEntity = dappNodeOrderMapper.selectNodeOrderByNodeCodeForupdate(nodeCode);
                DappMemberNodeEntity dappMemberNodeEntityNew = new DappMemberNodeEntity(
                        member.getId(),
                        dappNodeOrderEntity.getId(),
@@ -251,13 +256,12 @@
                        transferDto.getAmount()
                );
                dappMemberNodeMapper.insert(dappMemberNodeEntityNew);
                /**
                 * 是否已经购买了节点
                 */
//                DappMemberNodeEntity dappMemberNodeEntity = dappMemberNodeMapper.selectNodeByMemberId(member.getId());
//                if(ObjectUtil.isNotEmpty(dappMemberNodeEntity)){
//                    throw new FebsException("Do not repeat purchase");
//                }
                Integer surplusCnt = dappNodeOrderEntity.getSurplusCnt();
                surplusCnt = surplusCnt - 1;
                dappNodeOrderEntity.setSurplusCnt(surplusCnt);
                dappNodeOrderMapper.updateById(dappNodeOrderEntity);
                /**
                 * 流水关联用户购买节点记录
                 */
src/main/java/cc/mrbird/febs/dapp/vo/DappMemberInfoVo.java
New file
@@ -0,0 +1,16 @@
package cc.mrbird.febs.dapp.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "DappMemberInfoVo", description = "会员信息")
public class DappMemberInfoVo {
    @ApiModelProperty(value = "邀请码")
    private String inviteId;
    @ApiModelProperty(value = "代理身份")
    private String accountType;
}
src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
@@ -21,17 +21,17 @@
    @Autowired
    private ChainProducer chainProducer;
    @Scheduled(cron = "0/10 * * * * ? ")
    public void BnbTransferAgain() {
        DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectByStateAndVersionAndFromHashLimitOne(2,2);
        if(ObjectUtil.isNotEmpty(dappFundFlowEntity)){
            Integer isReturn = dappFundFlowEntity.getIsReturn();
            if(DappFundFlowEntity.WITHDRAW_STATUS_AGREE == isReturn){
                dappFundFlowEntity.setIsReturn(1);
                dappFundFlowDao.updateById(dappFundFlowEntity);
                chainProducer.sendBnbTransferTestMsg(dappFundFlowEntity.getId());
            }
        }
    }
//    @Scheduled(cron = "0/10 * * * * ? ")
//    public void BnbTransferAgain() {
//        DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectByStateAndVersionAndFromHashLimitOne(2,2);
//        if(ObjectUtil.isNotEmpty(dappFundFlowEntity)){
//            Integer isReturn = dappFundFlowEntity.getIsReturn();
//            if(DappFundFlowEntity.WITHDRAW_STATUS_AGREE == isReturn){
//                dappFundFlowEntity.setIsReturn(1);
//                dappFundFlowDao.updateById(dappFundFlowEntity);
//                chainProducer.sendBnbTransferTestMsg(dappFundFlowEntity.getId());
//            }
//        }
//    }
}
src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
@@ -8,7 +8,7 @@
    public static final String QUEUE_BNB_TRANSFER_TEST = "queue_bnb_agent_up_test";
    public static final String QUEUE_BNB_AGENT_UP = "queue_bnb_agent_up";
    public static final String QUEUE_BNB_TRANSFER = "queue_bnb_transfer";
    public static final String QUEUE_BNB_TRANSFER = "queue_ant_transfer";
    public static final String QUEUE_MEMBER_OUT = "queue_bnb_member_out";
    public static final String QUEUE_LEVEL_PROFIT = "queue_bnb_level_profit_transfer";
src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
@@ -10,7 +10,7 @@
    //代理升级
    BNB_AGENT_UP("exchange_bnb_agent_up", "route_key_bnb_agent_up", "queue_bnb_agent_up"),
    //转账拨币
    BNB_TRANSFER("exchange_bnb_transfer", "route_key_bnb_transfer", "queue_bnb_transfer"),
    BNB_TRANSFER("exchange_ant_transfer", "route_key_ant_transfer", "queue_ant_transfer"),
    //计算是否有人出局
    MEMBER_OUT("exchange_bnb_member_out", "route_key_bnb_member_out", "queue_bnb_member_out"),
    //层级奖励
src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
@@ -49,20 +49,20 @@
    /**层级奖励分发消息
     * @param id
     */
    @RabbitListener(queues = QueueConstants.QUEUE_LEVEL_PROFIT)
    public void levelProfit(Long id) {
        log.info("消费层级奖励分发消息:{}", id);
        dappSystemService.levelProfit(id);
    }
//    @RabbitListener(queues = QueueConstants.QUEUE_LEVEL_PROFIT)
//    public void levelProfit(Long id) {
//        log.info("消费层级奖励分发消息:{}", id);
//        dappSystemService.levelProfit(id);
//    }
    /**计算是否有人出局分发消息
     * @param id
     */
    @RabbitListener(queues = QueueConstants.QUEUE_MEMBER_OUT)
    public void memberOut(Long id) {
        log.info("消费计算是否有人出局:{}", id);
        dappSystemService.memberOut(id);
    }
//    @RabbitListener(queues = QueueConstants.QUEUE_MEMBER_OUT)
//    public void memberOut(Long id) {
//        log.info("消费计算是否有人出局:{}", id);
//        dappSystemService.memberOut(id);
//    }
    /**转账拨币
     * @param id
@@ -76,18 +76,18 @@
    /**转账拨币
     * @param id
     */
    @RabbitListener(queues = QueueConstants.QUEUE_BNB_TRANSFER_TEST)
    public void bnbTransferTest(Long id) {
        log.info("消费转账拨币第二步:{}", id);
        dappSystemService.bnbTransferTest(id);
    }
    /**代理升级
     * @param id
     */
    @RabbitListener(queues = QueueConstants.QUEUE_BNB_AGENT_UP)
    public void agentUp(Long id) {
        log.info("代理升级:{}", id);
        dappSystemService.agentUp(id);
    }
//    @RabbitListener(queues = QueueConstants.QUEUE_BNB_TRANSFER_TEST)
//    public void bnbTransferTest(Long id) {
//        log.info("消费转账拨币第二步:{}", id);
//        dappSystemService.bnbTransferTest(id);
//    }
//
//    /**代理升级
//     * @param id
//     */
//    @RabbitListener(queues = QueueConstants.QUEUE_BNB_AGENT_UP)
//    public void agentUp(Long id) {
//        log.info("代理升级:{}", id);
//        dappSystemService.agentUp(id);
//    }
}
src/main/resources/application-dev.yml
@@ -54,7 +54,7 @@
    publisher-confirm-type: correlated
system:
  online-transfer: false
  online-transfer: true
  chain-listener: false
  reset-job: false
  quartz-job: false
src/main/resources/application-prod.yml
@@ -15,15 +15,15 @@
      datasource:
        # 数据源-1,名称为 base
        base:
          username: db_bnbweb
          password: bnbweb123!@#
          username: db_twocoin
          password: db_twocoin123!@#123
          # 154.91.195.148
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://127.0.0.1:3306/db_bnbweb?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
          url: jdbc:mysql://127.0.0.1:3306/db_twocoin?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
  redis:
    # Redis数据库索引(默认为 0)
    database: 11
    database: 13
    # Redis服务器地址
    host: 127.0.0.1
    # Redis服务器连接端口
src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
  port: 8096
  port: 8099
  tomcat:
    uri-encoding: utf-8
src/main/resources/mapper/dapp/DappFundFlowDao.xml
@@ -119,6 +119,7 @@
        select * from dapp_fund_flow
        where member_id = #{memberId}
          and type = #{type}
          and status = #{status}
    </select>
    <select id="selectListByState" resultType="cc.mrbird.febs.dapp.entity.DappFundFlowEntity">
src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -185,4 +185,12 @@
            (a.id in (select id from dapp_member where FIND_IN_SET(#{record.inviteId}, referer_ids)))
        order  by a.create_time desc
    </select>
    <select id="selectByMemberId" resultType="cc.mrbird.febs.dapp.vo.DappMemberInfoVo">
        select
            a.invite_id inviteId,
            a.account_type accountType
        from dapp_member a
        where id = #{id}
    </select>
</mapper>
src/main/resources/mapper/dapp/DappNodeOrderMapper.xml
@@ -19,4 +19,11 @@
        where a.node_code = #{nodeCode}
    </select>
    <select id="selectNodeOrderByNodeCodeForupdate" resultType="cc.mrbird.febs.dapp.entity.DappNodeOrderEntity">
        select
               a.*
        from dapp_node_order a
        where a.node_code = #{nodeCode} for update
    </select>
</mapper>
src/test/java/cc/mrbird/febs/MemberTest.java
@@ -10,6 +10,7 @@
import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
import cc.mrbird.febs.dapp.mapper.DappMemberDao;
import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.dapp.service.DappSystemService;
import cc.mrbird.febs.rabbit.producer.ChainProducer;
import cn.hutool.core.util.StrUtil;
import org.apache.commons.lang3.StringUtils;
@@ -74,13 +75,14 @@
    @Autowired
    private SystemConstants systemConstants;
    @Autowired
    private DappSystemService dappSystemService;
    @Test
    public void balance() {
        /**
         * 从contractAddress合约地址中转移对应发行的代币到address中
         */
        String hash = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer("0x785D5Aa2951Ac4C6f28Dc593AF0b0536Dd3E82Fe",new BigDecimal(100));
        System.out.println(hash);
        dappSystemService.bnbTransfer(6L);
    }
    @Test