src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -141,6 +141,12 @@ if(ObjectUtil.isNotEmpty(serviceFeeDic)){ String value = serviceFeeDic.getValue() == null ? "0":serviceFeeDic.getValue(); adminSystemFeeVo.setServiceFee(value); } DataDictionaryCustom symbolPrice = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SYMBOL_PRICE.getType(), DataDictionaryEnum.SYMBOL_PRICE.getCode()); if (ObjectUtil.isNotEmpty(symbolPrice)) { String value = symbolPrice.getValue() == null ? "0" : symbolPrice.getValue(); adminSystemFeeVo.setSymbolPrice(value); } model.addAttribute("systemFee", adminSystemFeeVo); return FebsUtil.view("dapp/system-fee-set"); src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java
@@ -47,7 +47,7 @@ private BigDecimal amount; /** * 类型 1-买入 2-矩阵收益 3-直推收益 4-保险池 5-提现 6-手续费充值 7-手续费扣除 8-结算 9-冻结 10-冻结释放 * 类型 1-买入 2-矩阵收益 3-直推收益 4-保险池 5-提现 6-手续费充值 7-手续费扣除 8-结算 9-冻结 10-冻结释放 11-产矿 12-手续费返利 */ private Integer type; src/main/java/cc/mrbird/febs/dapp/entity/MemberCoinWithdrawEntity.java
@@ -55,6 +55,8 @@ private String tag; private Long flowId; /** * 后台操作用户的标识 */ src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java
@@ -9,7 +9,9 @@ //分给推荐三人的终身VIP会员手续费 MEMBER_FEE("SYSTEM_SETTING","MEMBER_FEE"), //提现手续费 WITHDRAW_SERVICE_FEE("SYSTEM_SETTING", "WITHDRAW_SERVICE_FEE"); WITHDRAW_SERVICE_FEE("SYSTEM_SETTING", "WITHDRAW_SERVICE_FEE"), // 币的价格 SYMBOL_PRICE("SYSTEM_SETTING", "SYMBOL_PRICE"); private String type; src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -42,4 +42,6 @@ int updateMemberActive(); DappMemberEntity selectNewestDirectMember(@Param("inviteId") String inviteId); List<DappMemberEntity> selectMemberListNeedProfit(); } src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -22,4 +22,6 @@ void tfcNewPrice(String data); void resetMatrix(); void feeDistribute(String data); } src/main/java/cc/mrbird/febs/dapp/service/impl/AdminOperationServiceImpl.java
@@ -3,16 +3,12 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.dapp.entity.DappAccountMoneyChangeEntity; import cc.mrbird.febs.dapp.entity.DappMemberEntity; import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity; import cc.mrbird.febs.dapp.entity.MemberCoinWithdrawEntity; import cc.mrbird.febs.dapp.mapper.DappAccountMoneyChangeDao; import cc.mrbird.febs.dapp.mapper.DappMemberDao; import cc.mrbird.febs.dapp.mapper.DappWalletCoinDao; import cc.mrbird.febs.dapp.mapper.MemberCoinWithdrawDao; import cc.mrbird.febs.dapp.entity.*; import cc.mrbird.febs.dapp.mapper.*; import cc.mrbird.febs.dapp.service.AdminOperationService; import cc.mrbird.febs.dapp.service.DappWalletService; import cc.mrbird.febs.dapp.vo.AdminMemberCoinWithdrawVo; import cc.mrbird.febs.rabbit.producer.ChainProducer; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -31,6 +27,9 @@ private final DappWalletCoinDao dappWalletCoinDao; private final DappMemberDao dappMemberDao; private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao; private final DappWalletService dappWalletService; private final DappFundFlowDao dappFundFlowDao; private final ChainProducer chainProducer; @Override public IPage<AdminMemberCoinWithdrawVo> findMemberWithdrawCoinAllOneInPage(MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request) { @@ -48,53 +47,12 @@ } memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_YES); memberCoinWithdrawDao.updateById(memberCoinWithdrawEntity); //转出账户,总额减少,冻结减少 BigDecimal amount = memberCoinWithdrawEntity.getAmount().setScale(4,BigDecimal.ROUND_DOWN); Long memberIdOut = memberCoinWithdrawEntity.getMemberId(); DappWalletCoinEntity dappWalletCoinEntityOut = dappWalletCoinDao.selectByMemberId(memberIdOut); dappWalletCoinDao.delTotalAndDelFrozenById(dappWalletCoinEntityOut.getId(),amount); String isInside = memberCoinWithdrawEntity.getIsInside(); String content = ""; Integer type = 0; if(MemberCoinWithdrawEntity.ISINSIDE_NO.equals(isInside)){ content = "提现"; type = 2; }else{ content = "转账"; type = 4; } //转出账户生成一条账户资金变化记录 DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityOut = new DappAccountMoneyChangeEntity(memberIdOut, dappWalletCoinEntityOut.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN), amount.negate(), dappWalletCoinEntityOut.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN).subtract(amount), content, type); dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntityOut); DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectById(memberCoinWithdrawEntity.getFlowId()); dappFundFlowEntity.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_AGREE); dappFundFlowDao.updateById(dappFundFlowEntity); //转入账户,总额增加,余额增加 //转账 // if(MemberCoinWithdrawEntity.ISINSIDE_YES.equals(isInside)){ // String addressIn = memberCoinWithdrawEntity.getAddress(); // DappMemberEntity dappMemberEntityIn = dappMemberDao.selectMemberInfoByInviteId(addressIn); // if(ObjectUtil.isEmpty(dappMemberEntityIn)){ // throw new FebsException("系统异常,联系开发人员"); // } // DappWalletCoinEntity dappWalletCoinEntityIn = dappWalletCoinDao.selectByMemberId(dappMemberEntityIn.getId()); // Integer countIn = dappWalletCoinDao.addTotalAndaddAvailableById(dappWalletCoinEntityIn.getId(), memberCoinWithdrawEntity.getAmount()); // if(1 != countIn){ // throw new FebsException("系统异常,联系开发人员"); // } // //生成流水记录 // DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityIn = new DappAccountMoneyChangeEntity(dappMemberEntityIn.getId(), // dappWalletCoinEntityIn.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN), // amount, // dappWalletCoinEntityIn.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN).add(amount), // "转账", // 4); // dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntityIn); // } chainProducer.sendFeeDistributeMsg(dappFundFlowEntity.getId()); return new FebsResponse().success(); } @@ -105,14 +63,25 @@ if(ObjectUtil.isEmpty(memberCoinWithdrawEntity)){ throw new FebsException("刷新页面重试"); } DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectById(memberCoinWithdrawEntity.getFlowId()); if (dappFundFlowEntity == null) { throw new FebsException("审核失败,联系管理员"); } memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_NO); memberCoinWithdrawDao.updateById(memberCoinWithdrawEntity); DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberCoinWithdrawEntity.getMemberId()); Integer count = dappWalletCoinDao.addFrozenAndDelAvailableById(dappWalletCoinEntity.getId(),memberCoinWithdrawEntity.getAmount()); if(1 != count){ throw new FebsException("系统异常,联系开发人员"); } dappFundFlowEntity.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_DISAGREE); dappFundFlowDao.updateById(dappFundFlowEntity); dappWalletService.updateWalletCoinWithLock(memberCoinWithdrawEntity.getAmount(), memberCoinWithdrawEntity.getMemberId(), 1); dappWalletService.updateWalletMineWithLock(memberCoinWithdrawEntity.getFeeAmount(), memberCoinWithdrawEntity.getMemberId(), 1); DappFundFlowEntity feeFlow = new DappFundFlowEntity(memberCoinWithdrawEntity.getMemberId(), memberCoinWithdrawEntity.getFeeAmount(), 7, 2, null, null); dappFundFlowDao.insert(feeFlow); DappFundFlowEntity fundFlow = new DappFundFlowEntity(memberCoinWithdrawEntity.getMemberId(), memberCoinWithdrawEntity.getAmount(), 5, 1, memberCoinWithdrawEntity.getFeeAmount(), null); dappFundFlowDao.insert(fundFlow); return new FebsResponse().success(); } } src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -364,6 +364,11 @@ DataDictionaryCustom memberFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.MEMBER_FEE.getType(), DataDictionaryEnum.MEMBER_FEE.getCode()); memberFeeDic.setValue(memberFee); dataDictionaryCustomMapper.updateById(memberFeeDic); String symbolPrice = adminSystemFeeVo.getSymbolPrice(); DataDictionaryCustom symbolPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SYMBOL_PRICE.getType(), DataDictionaryEnum.SYMBOL_PRICE.getCode()); symbolPriceDic.setValue(symbolPrice); dataDictionaryCustomMapper.updateById(symbolPriceDic); } public TeamListVo buildTeamMatrix(DappAchieveMemberTreeEntity node) { src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -8,6 +8,7 @@ import cc.mrbird.febs.dapp.chain.ChainService; import cc.mrbird.febs.dapp.dto.SystemDto; import cc.mrbird.febs.dapp.entity.*; import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; import cc.mrbird.febs.dapp.mapper.*; import cc.mrbird.febs.dapp.service.DappSystemService; import cc.mrbird.febs.dapp.service.DappWalletService; @@ -18,6 +19,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -44,6 +46,7 @@ private final DappAchieveTreeDao dappAchieveTreeDao; private final DappAchieveMemberTreeDao dappAchieveMemberTreeDao; private final DappWalletService dappWalletService; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; @Override @@ -194,8 +197,6 @@ amount = TreeConstants.FULL_PROFIT_AMOUNT; } dappWalletService.releaseFrozenAmountWithLock(memberId); member.setOutCnt(member.getOutCnt() + 1); dappMemberDao.updateById(member); @@ -246,4 +247,39 @@ dappAchieveMemberTreeDao.emptyTable(); dappMemberDao.updateMemberActive(); } @Override public void feeDistribute(String data) { if (StrUtil.isBlank(data)) { return; } Long flowId = Long.parseLong(data); DappFundFlowEntity fundFlow = dappFundFlowDao.selectById(flowId); if (fundFlow == null) { return; } DataDictionaryCustom memberFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.MEMBER_FEE.getType(), DataDictionaryEnum.MEMBER_FEE.getCode()); if (memberFeeDic == null) { log.info("未设置手续费返利比例"); return; } List<DappMemberEntity> memberList = dappMemberDao.selectMemberListNeedProfit(); if (CollUtil.isEmpty(memberList)) { return; } BigDecimal feeReturnRatio = new BigDecimal(memberFeeDic.getValue()); int size = memberList.size(); BigDecimal totalProfit = fundFlow.getFee().multiply(feeReturnRatio.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN)); BigDecimal perProfit = totalProfit.divide(BigDecimal.valueOf(size), 2, RoundingMode.HALF_DOWN); memberList.forEach(item -> { dappWalletService.updateWalletMineWithLock(perProfit, item.getId(), 1); DappFundFlowEntity profitFlow = new DappFundFlowEntity(item.getId(), perProfit, 12, 2, null, null); dappFundFlowDao.insert(profitFlow); }); } } src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -12,6 +12,7 @@ import cc.mrbird.febs.dapp.chain.ContractChainService; import cc.mrbird.febs.dapp.dto.*; import cc.mrbird.febs.dapp.entity.*; import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; import cc.mrbird.febs.dapp.mapper.*; import cc.mrbird.febs.dapp.service.DappWalletService; import cc.mrbird.febs.dapp.utils.BoxUtil; @@ -54,6 +55,7 @@ private final RedisUtils redisUtils; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final DappNftActivationDao dappNftActivationDao; private final MemberCoinWithdrawDao memberCoinWithdrawDao; private final ChainProducer chainProducer; private final DappSystemDao dappSystemDao; @@ -176,13 +178,15 @@ @Override public BigDecimal calPrice(PriceDto priceDto) { String priceStr = redisUtils.getString(AppContants.REDIS_KEY_TFC_NEW_PRICE); // String priceStr = redisUtils.getString(AppContants.REDIS_KEY_TFC_NEW_PRICE); DataDictionaryCustom symbolPrice = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SYMBOL_PRICE.getType(), DataDictionaryEnum.SYMBOL_PRICE.getCode()); DataDictionaryCustom serviceFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WITHDRAW_SERVICE_FEE.getType(), DataDictionaryEnum.WITHDRAW_SERVICE_FEE.getCode()); BigDecimal amount = priceDto.getAmount(); if (priceDto.getAmount() == null) { amount = BigDecimal.ZERO; } return amount.multiply(new BigDecimal("0.1")).divide(new BigDecimal(priceStr), 2, RoundingMode.HALF_UP); return amount.multiply(new BigDecimal(serviceFeeDic.getValue()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN)).divide(new BigDecimal(symbolPrice.getValue()), 2, RoundingMode.HALF_UP); } @Override @@ -197,17 +201,28 @@ DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(member.getId()); if (walletMine.getAvailableAmount().compareTo(withdrawDto.getFee()) < 0) { throw new FebsException("TFC Not Enough"); throw new FebsException("DMD Not Enough"); } updateWalletCoinWithLock(withdrawDto.getAmount(), member.getId(), 2); updateWalletMineWithLock(withdrawDto.getFee(), member.getId(), 2); DappFundFlowEntity feeFlow = new DappFundFlowEntity(member.getId(), withdrawDto.getFee().negate(), 7, 2, null, null); dappFundFlowDao.insert(feeFlow); DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), withdrawDto.getAmount().negate(), 5, 1, withdrawDto.getFee(), null); dappFundFlowDao.insert(fundFlow); MemberCoinWithdrawEntity memberCoinWithdraw = new MemberCoinWithdrawEntity(); memberCoinWithdraw.setMemberId(member.getId()); memberCoinWithdraw.setAddress(member.getAddress()); memberCoinWithdraw.setAmount(withdrawDto.getAmount()); memberCoinWithdraw.setFeeAmount(withdrawDto.getFee()); memberCoinWithdraw.setStatus(MemberCoinWithdrawEntity.STATUS_DOING); memberCoinWithdraw.setSymbol("USDT"); memberCoinWithdraw.setFlowId(fundFlow.getId()); memberCoinWithdrawDao.insert(memberCoinWithdraw); // String hash = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer(member.getAddress(), withdrawDto.getAmount()); // fundFlow.setToHash(hash); @@ -257,7 +272,7 @@ walletMine.setAvailableAmount(walletMine.getAvailableAmount().add(amount)); } else { if (amount.compareTo(walletMine.getAvailableAmount()) > 0) { throw new FebsException("TFC Not Enough"); throw new FebsException("DMD Not Enough"); } walletMine.setTotalAmount(walletMine.getTotalAmount().subtract(amount)); walletMine.setAvailableAmount(walletMine.getAvailableAmount().subtract(amount)); src/main/java/cc/mrbird/febs/dapp/vo/AdminSystemFeeVo.java
@@ -12,4 +12,6 @@ private String memberFee; private String serviceFee; private String symbolPrice; } src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java
New file @@ -0,0 +1,95 @@ package cc.mrbird.febs.job; import cc.mrbird.febs.dapp.entity.DappFundFlowEntity; import cc.mrbird.febs.dapp.entity.DappMemberEntity; import cc.mrbird.febs.dapp.entity.DataDictionaryCustom; import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; 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.DappWalletService; import cc.mrbird.febs.tree.TreeConstants; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.List; @Slf4j @Component @ConditionalOnProperty(prefix = "system", name = "quartz-job", havingValue = "true") public class ProfitDailyJob { @Autowired private DappMemberDao dappMemberDao; @Autowired private DappFundFlowDao dappFundFlowDao; @Autowired private DataDictionaryCustomMapper dataDictionaryCustomMapper; @Autowired private DappWalletService dappWalletService; @Scheduled(cron = "0 0 0 * * ?") public void profitDailyJob() { log.info("每日产矿任务执行"); DataDictionaryCustom symbolPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SYMBOL_PRICE.getType(), DataDictionaryEnum.SYMBOL_PRICE.getCode()); if (symbolPriceDic == null) { log.info("未设置币种价格"); return; } DataDictionaryCustom rebateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.REBATE_PERCENT.getType(), DataDictionaryEnum.REBATE_PERCENT.getCode()); if (rebateDic == null) { log.info("未设置每日产矿比例"); return; } BigDecimal symbolPrice = new BigDecimal(symbolPriceDic.getValue()); BigDecimal rebateRatio = new BigDecimal(rebateDic.getValue()); QueryWrapper<DappMemberEntity> query = new QueryWrapper<>(); query.eq("active_status", 1); List<DappMemberEntity> members = dappMemberDao.selectList(query); if (CollUtil.isEmpty(members)) { return; } members.forEach(item -> { QueryWrapper<DappFundFlowEntity> fundFlowQuery = new QueryWrapper<>(); fundFlowQuery.eq("member_id", item.getId()); fundFlowQuery.eq("type", 11); List<DappFundFlowEntity> flows = dappFundFlowDao.selectList(fundFlowQuery); BigDecimal sum = BigDecimal.ZERO; if (CollUtil.isNotEmpty(flows)) { double symbolSum = flows.stream().mapToDouble(flow -> flow.getAmount().doubleValue()).sum(); sum = symbolPrice.multiply(new BigDecimal(symbolSum)); } if (CollUtil.isEmpty(flows) || TreeConstants.PUT_IN_AMOUNT.compareTo(sum) > 0) { BigDecimal profitU = TreeConstants.PUT_IN_AMOUNT.multiply(rebateRatio.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN)); BigDecimal remain = TreeConstants.PUT_IN_AMOUNT.subtract(sum); if (remain.compareTo(profitU) < 0) { profitU = remain; } BigDecimal profitSymbol = profitU.divide(symbolPrice, 2, RoundingMode.HALF_DOWN); dappWalletService.updateWalletMineWithLock(profitSymbol, item.getId(), 1); DappFundFlowEntity fundFlow = new DappFundFlowEntity(item.getId(), profitSymbol, 11, 2, null, null); dappFundFlowDao.insert(fundFlow); } }); } } src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
@@ -82,4 +82,23 @@ return BindingBuilder.bind(tfcNewPriceQueue()).to(tfcNewPriceExchange()).with(QueueEnum.TFC_NEW_PRICE.getRoute()); } // === tfc最新价 end === // === 手续费分发 start === @Bean public DirectExchange feeDistributeExchange() { return new DirectExchange(QueueEnum.DISTRIB_PROFIT.getExchange()); } @Bean public Queue feeDistributeQueue() { return new Queue(QueueEnum.DISTRIB_PROFIT.getQueue()); } @Bean public Binding feeDistributeBind() { return BindingBuilder.bind(feeDistributeQueue()).to(feeDistributeExchange()).with(QueueEnum.DISTRIB_PROFIT.getRoute()); } // === 手续费分发 end === } src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
@@ -34,6 +34,14 @@ */ @RabbitListener(queues = QueueConstants.TFC_NEW_PRICE) public void tfcNewPrice(String data) { dappSystemService.tfcNewPrice(data); // dappSystemService.tfcNewPrice(data); } /** * @param data */ @RabbitListener(queues = QueueConstants.DISTRIB_PROFIT) public void feeDistribute(String data) { dappSystemService.feeDistribute(data); } } src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
@@ -49,4 +49,15 @@ CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(QueueEnum.WITHDRAW_FEE.getExchange(), QueueEnum.WITHDRAW_FEE.getRoute(), data, correlationData); } /** * 发送手续费分发消息 * * @param id */ public void sendFeeDistributeMsg(Long id) { log.info("发送手续费分发消息:{}", id); CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(QueueEnum.DISTRIB_PROFIT.getExchange(), QueueEnum.DISTRIB_PROFIT.getRoute(), id, correlationData); } } src/main/resources/application-dev.yml
@@ -59,6 +59,7 @@ system: online-transfer: false chain-listener: true chain-listener: false reset-job: false quartz-job: true debug: true src/main/resources/application-prod.yml
@@ -56,4 +56,5 @@ online-transfer: true chain-listener: true reset-job: true quartz-job: true debug: false src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -135,4 +135,15 @@ order by id desc limit 1 </select> <select id="selectMemberListNeedProfit" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity"> select * from dapp_member a inner join ( select referer_id, count(1) from dapp_member a where active_status = 1 group by referer_id having count(1) > 3 ) b on a.invite_id=b.referer_id </select> </mapper> src/main/resources/templates/febs/views/dapp/system-fee-set.html
@@ -33,6 +33,13 @@ <!-- 【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25--> <!-- </div>--> </div> <div class="layui-form-item"> <label class="layui-form-label ">DMD价格:</label> <div class="layui-input-block"> <input type="text" name="symbolPrice" data-th-id="${systemFee.symbolPrice}" autocomplete="off" class="layui-input" > </div> </div> </div> <div class="layui-card-footer"> @@ -74,7 +81,8 @@ form.val("system-fee-set-form", { "rebatePercent": systemFee.rebatePercent, "memberFee": systemFee.memberFee, "serviceFee": systemFee.serviceFee "serviceFee": systemFee.serviceFee, "symbolPrice": systemFee.symbolPrice }); } src/test/java/cc/mrbird/febs/ChainTest.java
@@ -12,6 +12,7 @@ //import cc.mrbird.febs.job.SystemTradeJob; import cc.mrbird.febs.dapp.service.impl.BscCoinContractEvent; import cc.mrbird.febs.dapp.service.impl.BscUsdtContractEvent; import cc.mrbird.febs.job.ProfitDailyJob; import cc.mrbird.febs.rabbit.producer.ChainProducer; import com.alibaba.fastjson.JSONObject; import org.junit.jupiter.api.Test; @@ -51,4 +52,12 @@ public void wssChainListener(){ ChainService.wssContractEventListener(new BigInteger("22819014"), bscUsdtContractEvent, ChainEnum.BSC_USDT.name()); } @Autowired private ProfitDailyJob profitDailyJob; @Test public void profitTest() { profitDailyJob.profitDailyJob(); } }