From 62fcbc4dda69e739f05d547cd0b9a042004186b4 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Mon, 27 Nov 2023 15:05:03 +0800 Subject: [PATCH] 匹配 --- src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java index 69dc437..0ecbbaa 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java @@ -64,6 +64,7 @@ private final MallProductSellRecordMapper mallProductSellRecordMapper; private final MallProductNftMapper mallProductNftMapper; private final AgentProducer agentProducer; + private final MallMemberAmountMapper mallMemberAmountMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -950,6 +951,61 @@ } } + @Override + public void timeGetOrderBuyCancel() { + /** + * nft产品周期到期的已完成买单变成卖单 + * 计算收益,本金 + */ + List<MallProductNft> mallProductNfts = mallProductNftMapper.selectList(null); + if(CollUtil.isEmpty(mallProductNfts)){ + return; + } + DateTime now = DateUtil.date(); + for(MallProductNft mallProductNft : mallProductNfts){ + Long nftId = mallProductNft.getId(); + List<MallProductBuy> mallProductBuys = mallProductBuyMapper.selectListByStateAndProductNFTId( + ProductEnum.PRODUCT_BUY_ON_GOING.getValue(), + nftId, + ProductEnum.PRODUCT_BUY_MATE_STATE_FAIL.getValue()); + if(CollUtil.isEmpty(mallProductBuys)){ + continue; + } + for(MallProductBuy mallProductBuy : mallProductBuys){ + /** + * 返回令牌 + * 预约记录超时 + */ + String orderNo = mallProductBuy.getOrderNo(); + mallProductBuy.setState(ProductEnum.PRODUCT_BUY_TIMEOUT.getValue()); + mallProductBuyMapper.updateById(mallProductBuy); + + Long memberId = mallProductBuy.getMemberId(); + MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectByOrderAndType(orderNo, + MoneyFlowTypeNewEnum.TOKEN_BUY_FROZEN.getValue(), + FlowTypeNewEnum.TOKEN.getValue(), + memberId); + if(ObjectUtil.isEmpty(mallMoneyFlow)){ + continue; + } + BigDecimal absAmount = mallMoneyFlow.getAmount().abs(); + MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId); + mallMemberAmount.setTokenAva(mallMemberAmount.getTokenAva().add(absAmount)); + mallMemberAmount.setTokenFrozen(mallMemberAmount.getTokenFrozen().subtract(absAmount)); + mallMemberAmountMapper.updateTokenAvaAndTokenFrozenById(mallMemberAmount); + + mallMoneyFlowService.addMoneyFlow( + memberId, + absAmount, + MoneyFlowTypeNewEnum.TOKEN_BUY_FROZEN_RETURN.getValue(), + orderNo, + null, + FlowTypeNewEnum.TOKEN.getValue(), + MoneyFlowTypeNewEnum.TOKEN_BUY_FROZEN_RETURN.getDescrition()); + } + } + } + public void insertSell(Long memberId,BigDecimal nftCnt,BigDecimal nftCntAva, BigDecimal nftFee,BigDecimal fcmFeeCnt){ String orderNo = MallUtils.getOrderNum("NFT"); -- Gitblit v1.9.1