From 4196b93e01b92cded16ffa7a634b0ac30a9b2c6b Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 07 Dec 2023 14:55:12 +0800 Subject: [PATCH] 用户留言 --- src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 130 +++++++++++++++++++++++++++++++++++-------- 1 files changed, 105 insertions(+), 25 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 8c177c2..11c321e 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 @@ -8,6 +8,7 @@ import cc.mrbird.febs.mall.service.*; import cc.mrbird.febs.mall.vo.AdminMallMoneyFlowVo; import cc.mrbird.febs.mall.vo.AdminTeamEqualsPerkVo; +import cc.mrbird.febs.rabbit.producter.AgentProducer; import cc.mrbird.febs.system.mapper.UserMapper; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; @@ -62,6 +63,8 @@ private final MallProductSellMapper mallProductSellMapper; private final MallProductSellRecordMapper mallProductSellRecordMapper; private final MallProductNftMapper mallProductNftMapper; + private final AgentProducer agentProducer; + private final MallMemberAmountMapper mallMemberAmountMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -848,7 +851,7 @@ //偏移时间 DateTime dateTime = DateUtil.offsetDay(payTime, cycle); int compare = DateUtil.compare(now, dateTime); - if(compare <= 0){ + if(compare >= 0){ /** * 更新买单状态 * 收益生成一条卖单 @@ -888,29 +891,31 @@ * 3、更新买单子表的数据 * 3、更新卖单子表的数据 */ - Long buyId = mallProductBuyRecord.getBuyId(); - Long sellRecordId = mallProductBuyRecord.getSellRecordId(); - MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(buyId); - Long memberIdBuy = mallProductBuy.getMemberId(); - //冻结账户 - MallMember mallMemberBuy = memberMapper.selectById(memberIdBuy); - mallMemberBuy.setIsFrozen(ProductEnum.MEMBER_FROZEN.getValue()); - memberMapper.updateById(mallMemberBuy); - //更新买单子表的数据 - mallProductBuyRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FAIL.getValue()); - mallProductBuyRecordMapper.updateById(mallProductBuyRecord); - //更新买单主表 - mallProductBuy.setNftAva(mallProductBuy.getNftAva().add(mallProductBuyRecord.getPickNftCnt())); - mallProductBuyMapper.updateById(mallProductBuy); - //更新卖单子表的数据 - MallProductSellRecord mallProductSellRecord = mallProductSellRecordMapper.selectById(sellRecordId); - mallProductSellRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FAIL.getValue()); - mallProductSellRecordMapper.updateById(mallProductSellRecord); - //更新卖单主表 - Long sellId = mallProductSellRecord.getSellId(); - MallProductSell mallProductSell = mallProductSellMapper.selectById(sellId); - mallProductSell.setNftCntAva(mallProductSell.getNftCntAva().add(mallProductSellRecord.getNftCnt())); - mallProductSellMapper.updateById(mallProductSell); + agentProducer.sendFcmOrderBuyCancelMsg(mallProductBuyRecord.getId()); + +// Long buyId = mallProductBuyRecord.getBuyId(); +// Long sellRecordId = mallProductBuyRecord.getSellRecordId(); +// MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(buyId); +// Long memberIdBuy = mallProductBuy.getMemberId(); +// //冻结账户 +// MallMember mallMemberBuy = memberMapper.selectById(memberIdBuy); +// mallMemberBuy.setIsFrozen(ProductEnum.MEMBER_FROZEN.getValue()); +// memberMapper.updateById(mallMemberBuy); +// //更新买单子表的数据 +// mallProductBuyRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FAIL.getValue()); +// mallProductBuyRecordMapper.updateById(mallProductBuyRecord); +// //更新买单主表 +// mallProductBuy.setNftAva(mallProductBuy.getNftAva().add(mallProductBuyRecord.getPickNftCnt())); +// mallProductBuyMapper.updateById(mallProductBuy); +// //更新卖单子表的数据 +// MallProductSellRecord mallProductSellRecord = mallProductSellRecordMapper.selectById(sellRecordId); +// mallProductSellRecord.setState(ProductEnum.PRODUCT_MATE_STATE_FAIL.getValue()); +// mallProductSellRecordMapper.updateById(mallProductSellRecord); +// //更新卖单主表 +// Long sellId = mallProductSellRecord.getSellId(); +// MallProductSell mallProductSell = mallProductSellMapper.selectById(sellId); +// mallProductSell.setNftCntAva(mallProductSell.getNftCntAva().add(mallProductSellRecord.getNftCnt())); +// mallProductSellMapper.updateById(mallProductSell); } } } @@ -929,7 +934,8 @@ * 当前时间比结束时间大 */ if(nowTime.compareTo(endTime) >= 0){ - List<MallProductSellRecord> mallProductSellRecords = mallProductSellRecordMapper.selectListByState(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue()); + List<MallProductSellRecord> mallProductSellRecords = mallProductSellRecordMapper.selectListByState( + ProductEnum.PRODUCT_MATE_STATE_PAY.getValue()); if(CollUtil.isNotEmpty(mallProductSellRecords)){ for(MallProductSellRecord mallProductSellRecord : mallProductSellRecords){ /** @@ -946,6 +952,80 @@ } } + @Override + public void timeGetOrderBuyCancel() { + /** + * nft产品周期到期的已完成买单变成卖单 + * 计算收益,本金 + */ + List<MallProductNft> mallProductNfts = mallProductNftMapper.selectList(null); + if(CollUtil.isEmpty(mallProductNfts)){ + return; + } + DateTime nowTime = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date())); + DataDictionaryCustom endTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.YU_YUE_END_TIME.getType(), + DataDictionaryEnum.YU_YUE_END_TIME.getCode() + ); + DateTime endTime = DateUtil.parseTime(endTimeDic.getValue()); + 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){ + /** + * 当前时间比结束时间大 + */ + if(nowTime.compareTo(endTime) >= 0){ + /** + * 返回令牌 + * 预约记录超时 + */ + String orderNo = mallProductBuy.getOrderNo(); + /** + * 只要存在匹配记录,则不退回。 + */ + List<MallProductBuyRecord> mallProductBuyRecords = mallProductBuyRecordMapper.selectRecordListByBuyId(mallProductBuy.getId()); + if(CollUtil.isNotEmpty(mallProductBuyRecords)){ + continue; + } + 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