From dbcf54b6ba8f31faa9b1463b016b6db9e48807bf Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 05 Jul 2024 21:28:20 +0800 Subject: [PATCH] 逻辑 --- src/main/java/cc/mrbird/febs/dapp/vo/ApiIndexInfoVo.java | 28 +++++++ src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java | 3 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 104 ++++++++++++++++++++----- src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java | 4 + src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java | 10 ++ src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java | 9 + src/main/java/cc/mrbird/febs/common/contants/AppContants.java | 2 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 31 +++++++ src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java | 2 9 files changed, 168 insertions(+), 25 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java index 835908f..8d77938 100644 --- a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java +++ b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java @@ -4,6 +4,8 @@ import java.util.LinkedList; public class AppContants { + public static final String DAO_JI_JING_HUI_PERCENT = "0.03"; + public static final String DAO_JI_SHU_PERCENT = "0.02"; public static final String DAO_TEAM_PERK_PERCENT = "0.05"; public static final String DAO_BU_CHANG_PERCENT = "0.02"; public static final String DAO_JI_LI_PERCENT = "0.06"; diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java index ee3110c..3faa15d 100644 --- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java +++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java @@ -11,6 +11,7 @@ import cc.mrbird.febs.dapp.entity.DappMemberEntity; import cc.mrbird.febs.dapp.service.DappMemberService; import cc.mrbird.febs.dapp.service.DappWalletService; +import cc.mrbird.febs.dapp.vo.ApiIndexInfoVo; import cc.mrbird.febs.dapp.vo.TeamDownVo; import cc.mrbird.febs.dapp.vo.TeamUpVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; @@ -41,6 +42,15 @@ private final DappMemberService dappMemberService; private final RedisUtils redisUtils; + @ApiOperation(value = "首页六项数据", notes = "首页六项数据") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiIndexInfoVo.class) + }) + @PostMapping(value = "/indexInfo") + public FebsResponse indexInfo() { + return new FebsResponse().success().data(dappWalletService.indexInfo()); + } + @ApiOperation(value = "获取账户信息接口", notes = "获取账号信息接口") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = WalletInfoVo.class) diff --git a/src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java index 846921c..385e13e 100644 --- a/src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java +++ b/src/main/java/cc/mrbird/febs/dapp/enumerate/DataDictionaryEnum.java @@ -9,6 +9,10 @@ RELEASE_PERCENT("RELEASE_PERCENT","RELEASE_PERCENT"), JILI_CHI("JILI_CHI","JILI_CHI"), BUCAHNG_CHI("BUCAHNG_CHI","BUCAHNG_CHI"), + JIE_DIAN_CHI("JIE_DIAN_CHI","JIE_DIAN_CHI"), + TUAN_DUI_CHI("TUAN_DUI_CHI","TUAN_DUI_CHI"), + JI_SHU_CHI("JI_SHU_CHI","JI_SHU_CHI"), + JI_JING_HUI_CHI("JI_JING_HUI_CHI","JI_JING_HUI_CHI"), //每日节点购买最大值 BUY_NODE_NUM("BUY_NODE_NUM","BUY_NODE_NUM"), //提现手续费率 diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java index 21b424e..bd977cf 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java @@ -7,6 +7,7 @@ import cc.mrbird.febs.dapp.entity.DappFundFlowEntity; import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity; import cc.mrbird.febs.dapp.entity.DappWalletMineEntity; +import cc.mrbird.febs.dapp.vo.ApiIndexInfoVo; import cc.mrbird.febs.dapp.vo.MemberNodeVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -57,4 +58,6 @@ FebsResponse agreeWithdraw(Long id); FebsResponse disagreeWithdraw(Long id); + + ApiIndexInfoVo indexInfo(); } diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java index 85ee5f5..bc4dee7 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java @@ -13,6 +13,7 @@ import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.dapp.service.DappMemberService; import cc.mrbird.febs.rabbit.producer.ChainProducer; +import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -80,7 +81,10 @@ } // 判断是否已经同步过了 DappFundFlowEntity fundFlow = dappFundFlowDao.selectById(flowId); - if (fundFlow != null && fundFlow.getStatus() != 1) { + if(ObjectUtil.isEmpty(fundFlow)){ + return; + } + if(1 != fundFlow.getStatus()){ return; } // 更改状态为已同步 @@ -132,7 +136,8 @@ * * * 六、永动补偿池2% * * 五、DAO永动激励池:6% - * * 四、DAO联盟委员会 : 5% (50名全球DAO委员) + * * 四、DAO联盟委员会 : 5% + * 50名全球DAO委员)DAO成员团队奖:5% */ chainProducer.sendNodePerkMsg(id); /** diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java index 4b8cb4e..8b530f2 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java @@ -706,36 +706,78 @@ dataDictionaryCustomMapper.updateById(buchangChiDic); /** + * 团队 5 %加权分红(people数量) + */ +// BigDecimal tuanDuiAmount = amount.multiply(new BigDecimal(AppContants.DAO_TEAM_PERK_PERCENT)); +// DataDictionaryCustom tuanDuiChiDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( +// DataDictionaryEnum.TUAN_DUI_CHI.getType(), +// DataDictionaryEnum.TUAN_DUI_CHI.getCode() +// ); +// BigDecimal tuanDuiChi = new BigDecimal(tuanDuiChiDic.getValue()).add(tuanDuiAmount).setScale(2,BigDecimal.ROUND_DOWN); +// tuanDuiChiDic.setValue(tuanDuiChi.toString()); +// dataDictionaryCustomMapper.updateById(tuanDuiChiDic); + + /** + * 技术 2 %加权分红(people数量) + */ + BigDecimal jiShuAmount = amount.multiply(new BigDecimal(AppContants.DAO_JI_SHU_PERCENT)); + DataDictionaryCustom jiShuChiDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.JI_SHU_CHI.getType(), + DataDictionaryEnum.JI_SHU_CHI.getCode() + ); + BigDecimal jiShuChi = new BigDecimal(jiShuChiDic.getValue()).add(jiShuAmount).setScale(2,BigDecimal.ROUND_DOWN); + jiShuChiDic.setValue(jiShuChi.toString()); + dataDictionaryCustomMapper.updateById(jiShuChiDic); + + /** + * 基金会 3 %加权分红(people数量) + */ + BigDecimal jiJingHuiAmount = amount.multiply(new BigDecimal(AppContants.DAO_JI_JING_HUI_PERCENT)); + DataDictionaryCustom jiJingHuiChiDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.JI_JING_HUI_CHI.getType(), + DataDictionaryEnum.JI_JING_HUI_CHI.getCode() + ); + BigDecimal jiJingHuiChi = new BigDecimal(jiJingHuiChiDic.getValue()).add(jiJingHuiAmount).setScale(2,BigDecimal.ROUND_DOWN); + jiJingHuiChiDic.setValue(jiJingHuiChi.toString()); + dataDictionaryCustomMapper.updateById(jiJingHuiChiDic); + + /** * DAO联盟委员会 : 5% */ BigDecimal daoNodeAmountTotal = new BigDecimal(AppContants.DAO_NODE_PERCENT).multiply(amount); + //沉淀剩余 + BigDecimal daoNodeAmountAva = BigDecimal.ZERO; + QueryWrapper<DappMemberEntity> objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("node_type",1); List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectList(objectQueryWrapper); - if(CollUtil.isEmpty(dappMemberEntities)){ - return; + if(CollUtil.isNotEmpty(dappMemberEntities)){ + BigDecimal daoNodeAmount = daoNodeAmountTotal.divide(new BigDecimal(dappMemberEntities.size()),2,BigDecimal.ROUND_DOWN); + for(DappMemberEntity nodeMember : dappMemberEntities){ + //生成一条流水 + DappFundFlowEntity rePutInFlow = new DappFundFlowEntity( + nodeMember.getId(), + daoNodeAmount, + MoneyFlowEnum.NODE_PERK.getValue(), + 2, + null, + StrUtil.format(MoneyFlowEnum.NODE_PERK.getDescrition(),amount,dappMemberEntities.size(),daoNodeAmount)); + dappFundFlowDao.insert(rePutInFlow); + //更新用户的金额 + dappWalletService.updateWalletCoinWithLock(daoNodeAmount, nodeMember.getId(), 1); + } + }else{ + daoNodeAmountAva = daoNodeAmountTotal; } - BigDecimal daoNodeAmount = daoNodeAmountTotal.divide(new BigDecimal(dappMemberEntities.size()),2,BigDecimal.ROUND_DOWN); - for(DappMemberEntity nodeMember : dappMemberEntities){ -// this.updateBalanceInsertFlow( -// daoNodeAmount, -// nodeMember.getId(), -// MoneyFlowEnum.NODE_PERK.getValue(), -// StrUtil.format(MoneyFlowEnum.NODE_PERK.getDescrition(),amount,dappMemberEntities.size(),daoNodeAmount)); - - - //生成一条流水 - DappFundFlowEntity rePutInFlow = new DappFundFlowEntity( - nodeMember.getId(), - daoNodeAmount, - MoneyFlowEnum.NODE_PERK.getValue(), - 2, - null, - StrUtil.format(MoneyFlowEnum.NODE_PERK.getDescrition(),amount,dappMemberEntities.size(),daoNodeAmount)); - dappFundFlowDao.insert(rePutInFlow); - //更新用户的金额 - dappWalletService.updateWalletCoinWithLock(daoNodeAmount, nodeMember.getId(), 1); + if(BigDecimal.ZERO.compareTo(daoNodeAmountAva) < 0){ + DataDictionaryCustom jieDianChiDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.JIE_DIAN_CHI.getType(), + DataDictionaryEnum.JIE_DIAN_CHI.getCode() + ); + BigDecimal jieDianChi = new BigDecimal(jieDianChiDic.getValue()).add(daoNodeAmountAva).setScale(2,BigDecimal.ROUND_DOWN); + jieDianChiDic.setValue(jieDianChi.toString()); + dataDictionaryCustomMapper.updateById(jieDianChiDic); } } @@ -858,11 +900,16 @@ //5%加权分红(people数量) BigDecimal totalAmount = amount.multiply(new BigDecimal(AppContants.DAO_TEAM_PERK_PERCENT)).setScale(2, BigDecimal.ROUND_DOWN); + + //沉淀数量 + BigDecimal tuanDuiAva = BigDecimal.ZERO; + QueryWrapper<DappMemberEntity> daoOneQuery = new QueryWrapper<>(); daoOneQuery.eq("level", MemberLevelEnum.DAO_1.getCode()); List<DappMemberEntity> daoOnes = dappMemberDao.selectList(daoOneQuery); if(CollUtil.isNotEmpty(daoOnes)){ BigDecimal bigDecimal = totalAmount.multiply(new BigDecimal("0.5")).setScale(2, BigDecimal.ROUND_DOWN); + tuanDuiAva = tuanDuiAva.add(bigDecimal); //每人平分数量 BigDecimal divide = bigDecimal.divide(new BigDecimal(daoOnes.size()), 2, BigDecimal.ROUND_DOWN); for(DappMemberEntity memberEntity : daoOnes){ @@ -879,6 +926,7 @@ List<DappMemberEntity> daoTwos = dappMemberDao.selectList(daoTwoQuery); if(CollUtil.isNotEmpty(daoTwos)){ BigDecimal bigDecimal = totalAmount.multiply(new BigDecimal("0.3")).setScale(2, BigDecimal.ROUND_DOWN); + tuanDuiAva = tuanDuiAva.add(bigDecimal); //每人平分数量 BigDecimal divide = bigDecimal.divide(new BigDecimal(daoTwos.size()), 2, BigDecimal.ROUND_DOWN); for(DappMemberEntity memberEntity : daoTwos){ @@ -895,6 +943,7 @@ List<DappMemberEntity> daoThrees = dappMemberDao.selectList(daoThreeQuery); if(CollUtil.isNotEmpty(daoThrees)){ BigDecimal bigDecimal = totalAmount.multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN); + tuanDuiAva = tuanDuiAva.add(bigDecimal); //每人平分数量 BigDecimal divide = bigDecimal.divide(new BigDecimal(daoThrees.size()), 2, BigDecimal.ROUND_DOWN); for(DappMemberEntity memberEntity : daoThrees){ @@ -906,6 +955,17 @@ } } + DataDictionaryCustom tuanDuiChiDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.TUAN_DUI_CHI.getType(), + DataDictionaryEnum.TUAN_DUI_CHI.getCode() + ); + BigDecimal tuanDuiAvaTotal = totalAmount.subtract(tuanDuiAva).setScale(2, BigDecimal.ROUND_DOWN); + if(BigDecimal.ZERO.compareTo(tuanDuiAvaTotal) < 0){ + BigDecimal tuanDuiChi = new BigDecimal(tuanDuiChiDic.getValue()).add(tuanDuiAvaTotal).setScale(2,BigDecimal.ROUND_DOWN); + tuanDuiChiDic.setValue(tuanDuiChi.toString()); + dataDictionaryCustomMapper.updateById(tuanDuiChiDic); + } + } @Override diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java index 92ffb50..47107c2 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java @@ -15,6 +15,7 @@ import cc.mrbird.febs.dapp.enumerate.NodeType; import cc.mrbird.febs.dapp.mapper.*; import cc.mrbird.febs.dapp.service.DappWalletService; +import cc.mrbird.febs.dapp.vo.ApiIndexInfoVo; import cc.mrbird.febs.dapp.vo.MemberNodeVo; import cc.mrbird.febs.dapp.vo.NodeTypeVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; @@ -611,6 +612,36 @@ return new FebsResponse().success(); } + @Override + public ApiIndexInfoVo indexInfo() { + ApiIndexInfoVo apiIndexInfoVo = new ApiIndexInfoVo(); + apiIndexInfoVo.setTuanduiChi(dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.TUAN_DUI_CHI.getType(), + DataDictionaryEnum.TUAN_DUI_CHI.getCode() + ).getValue()); + apiIndexInfoVo.setJilichi(dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.JILI_CHI.getType(), + DataDictionaryEnum.JILI_CHI.getCode() + ).getValue()); + apiIndexInfoVo.setBuchangChi(dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.BUCAHNG_CHI.getType(), + DataDictionaryEnum.BUCAHNG_CHI.getCode() + ).getValue()); + apiIndexInfoVo.setJiedianChi(dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.JIE_DIAN_CHI.getType(), + DataDictionaryEnum.JIE_DIAN_CHI.getCode() + ).getValue()); + apiIndexInfoVo.setJijinghuiChi(dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.JI_JING_HUI_CHI.getType(), + DataDictionaryEnum.JI_JING_HUI_CHI.getCode() + ).getValue()); + apiIndexInfoVo.setJishuChi(dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.JI_SHU_CHI.getType(), + DataDictionaryEnum.JI_SHU_CHI.getCode() + ).getValue()); + return apiIndexInfoVo; + } + public MemberNodeVo buildTeamMatrix(DbMemberNode dbMemberNode) { Long id = dbMemberNode.getId(); diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/ApiIndexInfoVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/ApiIndexInfoVo.java new file mode 100644 index 0000000..62f203a --- /dev/null +++ b/src/main/java/cc/mrbird/febs/dapp/vo/ApiIndexInfoVo.java @@ -0,0 +1,28 @@ +package cc.mrbird.febs.dapp.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "ApiIndexInfoVo", description = "系统设置费率") +public class ApiIndexInfoVo { + + @ApiModelProperty(value = "团队奖池") + private String tuanduiChi; + + @ApiModelProperty(value = "永动激励池") + private String jilichi; + + @ApiModelProperty(value = "永动池") + private String buchangChi; + + @ApiModelProperty(value = "节点池") + private String jiedianChi; + + @ApiModelProperty(value = "基金会") + private String jijinghuiChi; + + @ApiModelProperty(value = "技术") + private String jishuChi; +} diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java index 2ad6d63..41a93d7 100644 --- a/src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java +++ b/src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java @@ -32,7 +32,7 @@ @ApiModelProperty(value = "提现费率") private BigDecimal withdrawPercent; - @ApiModelProperty(value = "额度") + @ApiModelProperty(value = "出局额度") private BigDecimal usdtBalance; } -- Gitblit v1.9.1