KKSU
2024-06-13 9b0f5ea9a1133472191eeb4e45a1164acc66291e
星级买入
5 files modified
1 files added
118 ■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/enumerate/NodeType.java 37 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/vo/NodeTypeVo.java 19 ●●●●● patch | view | raw | blame | history
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) {
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;
    }
}
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();
}
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -268,14 +268,25 @@
        if(inviteNum > dappMemberEntities.size()){
            return;
        }
        //任何星级,10轮,收益本金都返回
        Integer countFund = dbMemberNodeRoot.getCountFund();
        //收益
        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);
            return;
        }else{
        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;
        }
@@ -285,7 +296,6 @@
            //如果是第一轮,当下一个星团没有投入时,收益复投下一个新团
            //如果是第一轮,下一个新团有投入,则产生收益
            //复投或者收益的金额
            BigDecimal nodeAmount = dbMemberNodeRoot.getAmount().multiply(new BigDecimal("1.4"));
            if(1 == countFund){//第一轮
                //复投本轮,轮数 +1
                futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1);
@@ -297,20 +307,15 @@
                nodeQueryWrapper.eq("work_state", DbMemberNode.STATE_ONE);
                DbMemberNode dbMemberNode = dbMemberNodeMapper.selectOne(nodeQueryWrapper);
                if(ObjectUtil.isEmpty(dbMemberNode)){
                    futouSixTeen(memberId,nodeAmount,nextType,1);
                        futouSixTeen(memberId,perkAmount,nextType,1);
                }else{
                    perkSevenTeen(memberId,nodeAmount,countFund);
                        perkSevenTeen(memberId,perkAmount,countFund);
                }
            }else if(countFund <= 9 && countFund >= 2){//2-9轮
                }else{//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);
                dbMemberNodeRoot.setWorkState(DbMemberNode.STATE_TWO);
                dbMemberNodeMapper.updateById(dbMemberNodeRoot);
                    perkSevenTeen(memberId,perkAmount,countFund);
                }
            }
        }
    }
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);
    }
}
src/main/java/cc/mrbird/febs/dapp/vo/NodeTypeVo.java
New file
@@ -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;
}