From 9b0f5ea9a1133472191eeb4e45a1164acc66291e Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 13 Jun 2024 09:56:16 +0800 Subject: [PATCH] 星级买入 --- src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java | 3 + src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 87 +++++++++++++++------------- src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java | 10 +++ src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 20 ++++++ src/main/java/cc/mrbird/febs/dapp/vo/NodeTypeVo.java | 19 ++++++ src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java | 37 ++++++++---- 6 files changed, 122 insertions(+), 54 deletions(-) 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 3d5e86e..0a6f69a 100644 --- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java +++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java @@ -10,6 +10,7 @@ import cc.mrbird.febs.dapp.service.DappMemberService; import cc.mrbird.febs.dapp.service.DappSystemService; import cc.mrbird.febs.dapp.service.DappWalletService; +import cc.mrbird.febs.dapp.vo.NodeTypeVo; import cc.mrbird.febs.dapp.vo.TeamListVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; import io.swagger.annotations.Api; @@ -56,6 +57,15 @@ return new FebsResponse().success().data(dappWalletService.buyNode(buyNodeDto)); } + @ApiOperation(value = "获取星团集合", notes = "获取星团集合") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = NodeTypeVo.class) + }) + @PostMapping(value = "/nodeList") + public FebsResponse nodeList() { + return dappWalletService.nodeList(); + } + @ApiOperation(value = "购买星团", notes = "购买星团") @PostMapping(value = "/buyStar") public FebsResponse buyStar(@RequestBody BuyStarDto buyStarDto) { diff --git a/src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java b/src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java index 410fcd4..e669bbe 100644 --- a/src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java +++ b/src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java @@ -3,6 +3,9 @@ import lombok.Getter; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + @Getter public enum NodeType { /** @@ -12,19 +15,19 @@ * 30*1.4*1.4 */ - NODE_13(13,"566.9","793.66"), - NODE_12(12,"405","566.9"), - NODE_11(11,"289.3","405"), - NODE_10(10,"206.6","289.3"), - NODE_9(9,"147.6","206.6"), - NODE_8(8,"105.4","147.6"), - NODE_7(7,"75.3","105.4"), - NODE_6(6,"53.8","75.3"), - NODE_5(5,"38.4","53.8"), - NODE_4(4,"27.4","38.4"), - NODE_3(3,"19.6","27.4"), - NODE_2(2,"14","19.6"), - NODE_1(1,"10","14"); + NODE_13(13,"1700.817","2381.144"), + NODE_12(12,"1214.869","1700.817"), + NODE_11(11,"867.763","1214.869"), + NODE_10(10,"619.831","867.763"), + NODE_9(9,"442.736","619.831"), + NODE_8(8,"316.24","442.736"), + NODE_7(7,"225.886","316.24"), + NODE_6(6,"161.347","225.886"), + NODE_5(5,"115.248","161.347"), + NODE_4(4,"82.32","115.248"), + NODE_3(3,"58.8","82.32"), + NODE_2(2,"42","58.8"), + NODE_1(1,"30","42"); private int nodeType; @@ -56,4 +59,12 @@ return null; } + public List<NodeType> getNodeList() { + List<NodeType> objects = new ArrayList<>(); + for (NodeType value : NodeType.values()) { + objects.add(value); + } + return objects; + } + } 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 f2e0a25..322853f 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java @@ -1,5 +1,6 @@ package cc.mrbird.febs.dapp.service; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.dapp.dto.*; import cc.mrbird.febs.dapp.entity.DappAccountMoneyChangeEntity; @@ -45,4 +46,6 @@ Long buyNode(BuyNodeDto buyNodeDto); Long buyStar(BuyStarDto buyStarDto); + + FebsResponse nodeList(); } 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 a63588c..bd152c4 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 @@ -268,49 +268,54 @@ if(inviteNum > dappMemberEntities.size()){ return; } + //任何星级,10轮,收益本金都返回 Integer countFund = dbMemberNodeRoot.getCountFund(); - Integer type = dbMemberNodeRoot.getType(); - //如果是13星局,则直接复投产生收益 - if(NodeType.NODE_13.getNodeType() == type){ - //复投 - futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1); - //产生收益 - BigDecimal perkAmount = dbMemberNodeRoot.getAmount().multiply(new BigDecimal("1.4")); - perkSevenTeen(memberId,perkAmount,countFund); - return; - } - //如果是1到12星团 - if(type >=NodeType.NODE_1.getNodeType() && type <= NodeType.NODE_12.getNodeType()){ - //需要复投本轮, - //如果是第一轮,当下一个星团没有投入时,收益复投下一个新团 - //如果是第一轮,下一个新团有投入,则产生收益 - //复投或者收益的金额 - BigDecimal nodeAmount = dbMemberNodeRoot.getAmount().multiply(new BigDecimal("1.4")); - if(1 == countFund){//第一轮 - //复投本轮,轮数 +1 - futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1); - //收益复投(当前的下一个星团没有已投入),还是收益提出 - Integer nextType = type + 1; - QueryWrapper<DbMemberNode> nodeQueryWrapper = new QueryWrapper<>(); - nodeQueryWrapper.eq("member_id",memberId); - nodeQueryWrapper.eq("type", nextType); - nodeQueryWrapper.eq("work_state", DbMemberNode.STATE_ONE); - DbMemberNode dbMemberNode = dbMemberNodeMapper.selectOne(nodeQueryWrapper); - if(ObjectUtil.isEmpty(dbMemberNode)){ - futouSixTeen(memberId,nodeAmount,nextType,1); - }else{ - perkSevenTeen(memberId,nodeAmount,countFund); - } - }else if(countFund <= 9 && countFund >= 2){//2-9轮 - //复投本轮,轮数 +1 - futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1); - perkSevenTeen(memberId,nodeAmount,countFund); - }else{//10轮,收益本金都返回 - BigDecimal add = dbMemberNodeRoot.getAmount().add(nodeAmount); - perkSevenTeen(memberId,add,countFund); + //收益 + BigDecimal perkAmount = dbMemberNodeRoot.getAmount().multiply(new BigDecimal("1.4")); + if(10 == countFund){//任何星级,10轮,收益本金都返回 + BigDecimal add = dbMemberNodeRoot.getAmount().add(perkAmount); + perkSevenTeen(memberId,add,countFund); - dbMemberNodeRoot.setWorkState(DbMemberNode.STATE_TWO); - dbMemberNodeMapper.updateById(dbMemberNodeRoot); + dbMemberNodeRoot.setWorkState(DbMemberNode.STATE_TWO); + dbMemberNodeMapper.updateById(dbMemberNodeRoot); + + return; + }else{ + Integer type = dbMemberNodeRoot.getType(); + //如果是13星局,则直接复投产生收益 + if(NodeType.NODE_13.getNodeType() == type){ + //复投 + futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1); + //产生收益 + perkSevenTeen(memberId,perkAmount,countFund); + return; + } + //如果是1到12星团 + if(type >=NodeType.NODE_1.getNodeType() && type <= NodeType.NODE_12.getNodeType()){ + //需要复投本轮, + //如果是第一轮,当下一个星团没有投入时,收益复投下一个新团 + //如果是第一轮,下一个新团有投入,则产生收益 + //复投或者收益的金额 + if(1 == countFund){//第一轮 + //复投本轮,轮数 +1 + futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1); + //收益复投(当前的下一个星团没有已投入),还是收益提出 + Integer nextType = type + 1; + QueryWrapper<DbMemberNode> nodeQueryWrapper = new QueryWrapper<>(); + nodeQueryWrapper.eq("member_id",memberId); + nodeQueryWrapper.eq("type", nextType); + nodeQueryWrapper.eq("work_state", DbMemberNode.STATE_ONE); + DbMemberNode dbMemberNode = dbMemberNodeMapper.selectOne(nodeQueryWrapper); + if(ObjectUtil.isEmpty(dbMemberNode)){ + futouSixTeen(memberId,perkAmount,nextType,1); + }else{ + perkSevenTeen(memberId,perkAmount,countFund); + } + }else{//2-9轮 + //复投本轮,轮数 +1 + futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1); + perkSevenTeen(memberId,perkAmount,countFund); + } } } } 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 8a19784..71bf14b 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 @@ -1,5 +1,6 @@ package cc.mrbird.febs.dapp.service.impl; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.LoginUserUtil; @@ -9,8 +10,10 @@ import cc.mrbird.febs.dapp.dto.*; import cc.mrbird.febs.dapp.entity.*; import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; +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.NodeTypeVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; import cc.mrbird.febs.rabbit.producer.ChainProducer; import cn.hutool.core.collection.CollUtil; @@ -26,6 +29,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.ArrayList; import java.util.List; /** @@ -444,4 +448,20 @@ } return null; } + + @Override + public FebsResponse nodeList() { + List<NodeType> nodeList = NodeType.NODE_1.getNodeList(); + List<NodeTypeVo> objects = new ArrayList<>(); + if(CollUtil.isNotEmpty(nodeList)){ + for(NodeType nodeType : nodeList){ + NodeTypeVo nodeTypeVo = new NodeTypeVo(); + nodeTypeVo.setNodeType(nodeType.getNodeType()); + nodeTypeVo.setNodeAmount(nodeType.getNodeAmount()); + nodeTypeVo.setNodePerk(nodeType.getNodePerk()); + objects.add(nodeTypeVo); + } + } + return new FebsResponse().success().data(objects); + } } diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/NodeTypeVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/NodeTypeVo.java new file mode 100644 index 0000000..5e504c0 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/dapp/vo/NodeTypeVo.java @@ -0,0 +1,19 @@ +package cc.mrbird.febs.dapp.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "NodeTypeVo", description = "星团") +public class NodeTypeVo { + + @ApiModelProperty(value = "星团类型") + private int nodeType; + + @ApiModelProperty(value = "投入金额") + private String nodeAmount; + + @ApiModelProperty(value = "奖励") + private String nodePerk; +} -- Gitblit v1.9.1