From 4667dc8680a1bff172ce8151f9715b92d4159b88 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Wed, 17 Apr 2024 16:39:32 +0800 Subject: [PATCH] 代币充值 --- src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 91 ++++++++++++++++++++++++++++++--------------- 1 files changed, 61 insertions(+), 30 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 1d5f0e0..bfeb31a 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 @@ -1128,21 +1128,37 @@ mallMemberAmountMapper.updateTotalPerkById(mallMemberAmountPerk); } // insertSell(mallProductBuy.getMemberId(),profit,profit,BigDecimal.ZERO,BigDecimal.ZERO); - String orderNoSY = MallUtils.getOrderNum("SYNFT"); - mallMoneyFlowService.addMoneyFlow( - mallProductBuy.getMemberId(), - profit, - MoneyFlowTypeNewEnum.PERK_CYCLE.getValue(), - orderNoSY, - null, - FlowTypeNewEnum.NFT.getValue(), - MoneyFlowTypeNewEnum.PERK_CYCLE.getDescrition(), - AppContants.MEMBER_FLOW_DONE); - MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId()); - mallMemberAmountMine.setTrendsNft(mallMemberAmountMine.getTrendsNft().add(profit)); - mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountMine); + MallMember mallMemberMe = memberMapper.selectById(mallProductBuy.getMemberId()); + if(ProductEnum.MEMBER_FROZEN.getValue() == mallMemberMe.getIsFrozen()){ + //插入一条流水记录 + String orderNo = MallUtils.getOrderNum("FNFTW"); + mallMoneyFlowService.addMoneyFlow( + mallProductBuy.getMemberId(), + profit.negate(), + MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_WRONG.getValue(), + orderNo, + null, + FlowTypeNewEnum.NFT.getValue(), + MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_WRONG.getDescrition(), + AppContants.MEMBER_FLOW_ING); + }else{ + String orderNoSY = MallUtils.getOrderNum("SYNFT"); + mallMoneyFlowService.addMoneyFlow( + mallProductBuy.getMemberId(), + profit, + MoneyFlowTypeNewEnum.PERK_CYCLE.getValue(), + orderNoSY, + null, + FlowTypeNewEnum.NFT.getValue(), + MoneyFlowTypeNewEnum.PERK_CYCLE.getDescrition(), + AppContants.MEMBER_FLOW_DONE); + + MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId()); + mallMemberAmountMine.setTrendsNft(mallMemberAmountMine.getTrendsNft().add(profit)); + mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountMine); + } BigDecimal remainderDirect = bigDecimal.divide(new BigDecimal(String.valueOf(cycle)),0,BigDecimal.ROUND_DOWN);//取余 if(remainderDirect.compareTo(BigDecimal.ONE) == 0){ @@ -1163,25 +1179,40 @@ ).getValue()).multiply(new BigDecimal("0.01")); // BigDecimal basicPerkDirect = profit.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal basicPerkDirect = nftTotal.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN); - /** - * 先插入流水记录,然后定时器每小时,循环一次找寻对应的数据执行 - */ - String orderNo = MallUtils.getOrderNum("DNFT"); - mallMoneyFlowService.addMoneyFlow( - directMember.getId(), - basicPerkDirect, - MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getValue(), - orderNo, - null, - FlowTypeNewEnum.NFT.getValue(), - MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getDescrition(), - AppContants.MEMBER_FLOW_ING); - MallMemberAmount mallMemberAmountDirect = mallMemberAmountMapper.selectByMemberId(directMember.getId()); - mallMemberAmountDirect.setFrozenNft(mallMemberAmountDirect.getFrozenNft().add(basicPerkDirect)); - mallMemberAmountMapper.updateFrozenNftById(mallMemberAmountDirect); + if(ProductEnum.MEMBER_FROZEN.getValue() == directMember.getIsFrozen()){ + //插入一条流水记录 + String orderNo = MallUtils.getOrderNum("FNFTW"); + mallMoneyFlowService.addMoneyFlow( + directMember.getId(), + profit.negate(), + MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_WRONG.getValue(), + orderNo, + null, + FlowTypeNewEnum.NFT.getValue(), + MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_WRONG.getDescrition(), + AppContants.MEMBER_FLOW_ING); + + }else{ + /** + * 先插入流水记录,然后定时器每小时,循环一次找寻对应的数据执行 + */ + String orderNo = MallUtils.getOrderNum("DNFT"); + mallMoneyFlowService.addMoneyFlow( + directMember.getId(), + basicPerkDirect, + MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getValue(), + orderNo, + null, + FlowTypeNewEnum.NFT.getValue(), + MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT.getDescrition(), + AppContants.MEMBER_FLOW_ING); + + MallMemberAmount mallMemberAmountDirect = mallMemberAmountMapper.selectByMemberId(directMember.getId()); + mallMemberAmountDirect.setFrozenNft(mallMemberAmountDirect.getFrozenNft().add(basicPerkDirect)); + mallMemberAmountMapper.updateFrozenNftById(mallMemberAmountDirect); + } } - } /** -- Gitblit v1.9.1