From bc26bbd27b75ab2f8ffc79a5a5fe25206f15abc7 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 28 Nov 2023 17:39:07 +0800 Subject: [PATCH] 匹配 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java | 29 ++++++++++++++++++++++++----- 1 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java index 6324278..842f7b9 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallProductServiceImpl.java @@ -89,6 +89,11 @@ * 预约,验证交易密码、预约产品是否开启状态、该产品是否已经预约、token是否足够 * 冻结对应的令牌数量、生成预约记录、生成流水记录 */ + Integer isFrozen = mallMember.getIsFrozen(); + if(ProductEnum.MEMBER_UNFROZEN.getValue() != isFrozen){ + throw new FebsException("账户无法预约"); + } + DateTime nowTime = DateUtil.parseTime(DateUtil.formatTime(DateUtil.date())); DataDictionaryCustom startTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( DataDictionaryEnum.YU_YUE_START_TIME.getType(), @@ -114,7 +119,7 @@ throw new FebsException("预约超时"); } MallProductBuy mallProductBuy = mallProductBuyMapper.selectMemberIdAndNFTIdAndStateAndMateState( - memberId,productNFTId,ProductEnum.PRODUCT_BUY_ON_GOING.getValue(),null); + memberId,productNFTId,ProductEnum.PRODUCT_BUY_ON_GOING.getValue(),ProductEnum.PRODUCT_BUY_MATE_STATE_FAIL.getValue()); if(ObjectUtil.isNotEmpty(mallProductBuy)){ throw new FebsException("不可重复预约"); } @@ -216,8 +221,9 @@ FlowTypeNewEnum.FCM_COIN.getValue(), MoneyFlowTypeNewEnum.FCM_OUT_FEE.getDescrition()); - mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(nftCnt)); - mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount); + MallMemberAmount mallMemberAmountNft = mallMemberAmountMapper.selectByMemberId(memberId); + mallMemberAmountNft.setTrendsNft(mallMemberAmountNft.getTrendsNft().add(nftCnt)); + mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountNft); String orderNoNFT = MallUtils.getOrderNum("NFT"); iMallMoneyFlowService.addMoneyFlow( memberId, @@ -288,8 +294,13 @@ mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().subtract(nftCnt)); mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount); - mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().add(nftCntAva)); - mallMemberAmountMapper.updateFrozenNftById(mallMemberAmount); + MallMemberAmount mallMemberAmountFcm = mallMemberAmountMapper.selectByMemberId(memberId); + mallMemberAmountFcm.setFcmCntAva(mallMemberAmountFcm.getFcmCntAva().subtract(fcmFeeCnt)); + mallMemberAmountMapper.updateFcmCntAvaById(mallMemberAmountFcm); + + MallMemberAmount mallMemberAmountFrozenNFT = mallMemberAmountMapper.selectByMemberId(memberId); + mallMemberAmountFrozenNFT.setFrozenNft(mallMemberAmountFrozenNFT.getFrozenNft().add(nftCntAva)); + mallMemberAmountMapper.updateFrozenNftById(mallMemberAmountFrozenNFT); iMallMoneyFlowService.addMoneyFlow( memberId, nftCnt.negate(), @@ -300,6 +311,14 @@ MoneyFlowTypeNewEnum.NFT_OUT.getDescrition()); iMallMoneyFlowService.addMoneyFlow( memberId, + fcmFeeCnt.negate(), + MoneyFlowTypeNewEnum.NFT_OUT_FEE_FCM.getValue(), + orderNo, + mallMember.getId(), + FlowTypeNewEnum.FCM_COIN.getValue(), + MoneyFlowTypeNewEnum.NFT_OUT_FEE_FCM.getDescrition()); + iMallMoneyFlowService.addMoneyFlow( + memberId, nftFee.negate(), MoneyFlowTypeNewEnum.NFT_OUT_FEE.getValue(), orderNo, -- Gitblit v1.9.1