5 files modified
1 files added
| | |
| | | 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; |
| | |
| | | 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) { |
| | |
| | | import lombok.Getter; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Getter |
| | | public enum NodeType { |
| | | /** |
| | |
| | | * 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; |
| | | |
| | |
| | | return null; |
| | | } |
| | | |
| | | public List<NodeType> getNodeList() { |
| | | List<NodeType> objects = new ArrayList<>(); |
| | | for (NodeType value : NodeType.values()) { |
| | | objects.add(value); |
| | | } |
| | | return objects; |
| | | } |
| | | |
| | | } |
| | |
| | | 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; |
| | |
| | | Long buyNode(BuyNodeDto buyNodeDto); |
| | | |
| | | Long buyStar(BuyStarDto buyStarDto); |
| | | |
| | | FebsResponse nodeList(); |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | } |
| | | 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); |
| | | } |
| | | } |
New file |
| | |
| | | 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; |
| | | } |