From 5723081b2da05257b254196d440e3f1f6d7a654b Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 03 Apr 2023 13:41:15 +0800 Subject: [PATCH] 设定时区,这样创建的时间就不会出现问题 --- src/test/java/cc/mrbird/febs/ProfitTest.java | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 106 insertions(+), 2 deletions(-) diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java index 882ede7..ef4e90d 100644 --- a/src/test/java/cc/mrbird/febs/ProfitTest.java +++ b/src/test/java/cc/mrbird/febs/ProfitTest.java @@ -18,6 +18,7 @@ import cc.mrbird.febs.mall.quartz.OrderSettlementJob; import cc.mrbird.febs.mall.service.*; import cc.mrbird.febs.mall.vo.ApiMallSubsidyAmountInfoVo; +import cc.mrbird.febs.mall.vo.MallOrderInfoTestVo; import cc.mrbird.febs.pay.model.*; import cc.mrbird.febs.pay.service.UnipayService; import cc.mrbird.febs.rabbit.consumer.AgentConsumer; @@ -43,6 +44,7 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.ExecutionException; +import java.util.stream.Collectors; /** * @author wzy @@ -105,6 +107,78 @@ @Autowired private DataDictionaryCustomMapper dataDictionaryCustomMapper; + + @Autowired + private IApiMallMemberWalletService walletService; + + @Autowired + private MallMemberWalletMapper mallMemberWalletMapper; + + @Test + public void retrunOrder(){ + /** + * 查询出当天下过单的人数 + * 比对单数是否超过最大值,超过最大值的订单回退资金,删除数据 + */ + String dateStr = "2023-04-01"; + //获取某一天下单人的全部单数 + List<MallOrderInfoTestVo> mallOrderInfoTestVos = mallOrderInfoMapper.selectOrderCntByDate(dateStr); + if(CollUtil.isNotEmpty(mallOrderInfoTestVos)){ + List<MallOrderInfoTestVo> collect = mallOrderInfoTestVos + .stream() + .filter(mallOrderInfoTestVo -> mallOrderInfoTestVo.getOrderCnt() > 2) + .collect(Collectors.toList()); + List<Long> collectMemberId = collect.stream().map(MallOrderInfoTestVo::getMemberId).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(collectMemberId)){ + for(Long memberId : collectMemberId){ + List<MallOrderInfo> mallOrderInfos = mallOrderInfoMapper.selectByMemberIdAndDate(memberId,dateStr); + if(CollUtil.isNotEmpty(mallOrderInfos)){ + int size = mallOrderInfos.size(); + for(int i = 2; i < size; i++){ + MallOrderInfo mallOrderInfo = mallOrderInfos.get(i); + String orderNo = mallOrderInfo.getOrderNo(); + List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectMoneyFlowByOrderNo(orderNo); + for(MallMoneyFlow mallMoneyFlow : mallMoneyFlows){ + Long rtMemberId = mallMoneyFlow.getRtMemberId(); + BigDecimal amount = mallMoneyFlow.getAmount(); + MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(rtMemberId); + if(mallMemberWallet.getBalance().compareTo(amount) >= 0){ + walletService.reduceBalance(amount, rtMemberId); + } + } + mallMoneyFlowMapper.deleteByOrderNo(orderNo); + mallOrderInfoMapper.deleteById(mallOrderInfo.getId()); + } + } + } + } + } + } + + @Test + public void retrunOrderMemberId(){ + String dateStr = "2023-04-02"; + Long memberId = 702L; + List<MallOrderInfo> mallOrderInfos = mallOrderInfoMapper.selectByMemberIdAndDate(memberId,dateStr); + if(CollUtil.isNotEmpty(mallOrderInfos)){ + int size = mallOrderInfos.size(); + for(int i = 2; i < size; i++){ + MallOrderInfo mallOrderInfo = mallOrderInfos.get(i); + String orderNo = mallOrderInfo.getOrderNo(); + List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectMoneyFlowByOrderNo(orderNo); + for(MallMoneyFlow mallMoneyFlow : mallMoneyFlows){ + Long rtMemberId = mallMoneyFlow.getRtMemberId(); + BigDecimal amount = mallMoneyFlow.getAmount(); + MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(rtMemberId); + if(mallMemberWallet.getBalance().compareTo(amount) >= 0){ + walletService.reduceBalance(amount, rtMemberId); + } + } + mallMoneyFlowMapper.deleteByOrderNo(orderNo); + mallOrderInfoMapper.deleteById(mallOrderInfo.getId()); + } + } + } @Test public void tetstgetPrikey(){ @@ -500,6 +574,19 @@ // memberCoinAddressEntity.getAddress(), // AppContants.ERC20_POOL_ADDRESS, // balanceOf.toString()); +// long start = System.currentTimeMillis(); +// Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM); +// BigInteger newest = ChainService.getInstance(ChainEnum.BSC_USDT.name()).blockNumber(); +// BigInteger block; +// if (incrementObj == null) { +// block = newest; +// } else { +// block = newest; +// } +//// ChainService.wssBaseCoinEventListener(BigInteger.valueOf(26737044), baseCoinService); +// ChainService.wssContractEventListener2(BigInteger.valueOf(26739725), bscUsdtContractEvent, ChainEnum.BSC_USDT.name()); + + long start = System.currentTimeMillis(); Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM); BigInteger newest = ChainService.getInstance(ChainEnum.BSC_USDT.name()).blockNumber(); @@ -507,10 +594,27 @@ if (incrementObj == null) { block = newest; } else { - block = newest; + block = (BigInteger) incrementObj; } - ChainService.wssBaseCoinEventListener(block, baseCoinService); + + +// ChainService.wssBaseCoinEventListener(block, baseCoinService); +// ChainService.wssBaseCoinEventListener(block, bscUsdtContractEvent); +// ChainService.wssContractEventListener(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name()); // ChainService.wssContractEventListener2(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name()); + + BigInteger section = BigInteger.valueOf(5000); + while (newest.subtract(block).compareTo(section) > -1) { + BigInteger end = block.add(section); + ChainService.contractEventListener(block, end, bscUsdtContractEvent, ChainEnum.BSC_USDT.name()); + + block = block.add(section); + if (block.compareTo(newest) > 0) { + block = newest; + } + } + ChainService.contractEventListener(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name()); + long end = System.currentTimeMillis(); } // // @Test -- Gitblit v1.9.1