From 79dc767b0fd9bf06a4fea900a40571219ecddf64 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 13 Jun 2024 10:35:06 +0800
Subject: [PATCH] 星级矩阵

---
 src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java          |    2 +
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java |    8 ++-
 src/main/java/cc/mrbird/febs/dapp/vo/MemberNodeVo.java                    |   22 +++++++++++
 src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java |   10 +++++
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   32 ++++++++++++++++
 src/main/java/cc/mrbird/febs/dapp/dto/MemberNodeDto.java                  |   13 ++++++
 6 files changed, 84 insertions(+), 3 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 0a6f69a..e1b6924 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.MemberNodeVo;
 import cc.mrbird.febs.dapp.vo.NodeTypeVo;
 import cc.mrbird.febs.dapp.vo.TeamListVo;
 import cc.mrbird.febs.dapp.vo.WalletInfoVo;
@@ -72,6 +73,15 @@
         return new FebsResponse().success().data(dappWalletService.buyStar(buyStarDto));
     }
 
+    @ApiOperation(value = "星团矩阵", notes = "星团矩阵")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = MemberNodeVo.class)
+    })
+    @PostMapping(value = "/memberNode")
+    public FebsResponse memberNode(@RequestBody MemberNodeDto memberNodeDto) {
+        return new FebsResponse().success().data(dappWalletService.memberNode(memberNodeDto));
+    }
+
     @ApiOperation(value = "转账", notes = "转账")
     @PostMapping(value = "/transfer")
     public FebsResponse transfer(@RequestBody TransferDto transferDto) {
diff --git a/src/main/java/cc/mrbird/febs/dapp/dto/MemberNodeDto.java b/src/main/java/cc/mrbird/febs/dapp/dto/MemberNodeDto.java
new file mode 100644
index 0000000..ead9346
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/dto/MemberNodeDto.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.dapp.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "MemberNodeDto", description = "计算价格接收参数类")
+public class MemberNodeDto {
+
+    @ApiModelProperty(value = "星团类型")
+    private Integer type;
+}
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 322853f..c5f03ea 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
@@ -48,4 +48,6 @@
     Long buyStar(BuyStarDto buyStarDto);
 
     FebsResponse nodeList();
+
+    FebsResponse memberNode(MemberNodeDto memberNodeDto);
 }
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 bd152c4..f97d719 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
@@ -250,10 +250,12 @@
      */
     public void memberNodeNext(DbMemberNode dbMemberNodeRoot) {
         log.info("进入复投");
+
         DataDictionaryCustom inviteNumDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                 DataDictionaryEnum.INVITE_NUM.getType(),
                 DataDictionaryEnum.INVITE_NUM.getCode()
         );
+
         int inviteNum = Integer.parseInt(inviteNumDic.getValue());
 
         Long memberId = dbMemberNodeRoot.getMemberId();
@@ -268,6 +270,9 @@
         if(inviteNum > dappMemberEntities.size()){
             return;
         }
+        //任何星级的原来节点都要出局
+        dbMemberNodeRoot.setWorkState(DbMemberNode.STATE_TWO);
+        dbMemberNodeMapper.updateById(dbMemberNodeRoot);
         //任何星级,10轮,收益本金都返回
         Integer countFund = dbMemberNodeRoot.getCountFund();
         //收益
@@ -275,9 +280,6 @@
         if(10 == countFund){//任何星级,10轮,收益本金都返回
             BigDecimal add = dbMemberNodeRoot.getAmount().add(perkAmount);
             perkSevenTeen(memberId,add,countFund);
-
-            dbMemberNodeRoot.setWorkState(DbMemberNode.STATE_TWO);
-            dbMemberNodeMapper.updateById(dbMemberNodeRoot);
 
             return;
         }else{
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 71bf14b..696d9db 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
@@ -13,6 +13,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.MemberNodeVo;
 import cc.mrbird.febs.dapp.vo.NodeTypeVo;
 import cc.mrbird.febs.dapp.vo.WalletInfoVo;
 import cc.mrbird.febs.rabbit.producer.ChainProducer;
@@ -464,4 +465,35 @@
         }
         return new FebsResponse().success().data(objects);
     }
+
+    @Override
+    public FebsResponse memberNode(MemberNodeDto memberNodeDto) {
+        DappMemberEntity member = LoginUserUtil.getAppUser();
+        Integer type = memberNodeDto.getType();
+
+        QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("member_id",member.getId());
+        objectQueryWrapper.eq("type", type);
+        objectQueryWrapper.eq("work_state", DbMemberNode.STATE_ONE);
+        DbMemberNode dbMemberNode = dbMemberNodeMapper.selectOne(objectQueryWrapper);
+        if(ObjectUtil.isEmpty(dbMemberNode)){
+            return null;
+        }
+        if(ObjectUtil.isNotEmpty(dbMemberNode.getLeftNode())){
+
+        }
+        MemberNodeVo memberNodeVo = new MemberNodeVo();
+        memberNodeVo.setLeftNode(getInviteId(dbMemberNode.getLeftNode()));
+        memberNodeVo.setRightNode(getInviteId(dbMemberNode.getRightNode()));
+
+        return null;
+    }
+
+    public String getInviteId(Long memberNodeId){
+        MemberNodeVo memberNodeVo = new MemberNodeVo();
+        DbMemberNode dbMemberNode = dbMemberNodeMapper.selectById(memberNodeId);
+        Long memberId = dbMemberNode.getMemberId();
+        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+        return dappMemberEntity.getInviteId();
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/MemberNodeVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/MemberNodeVo.java
new file mode 100644
index 0000000..c581b90
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/vo/MemberNodeVo.java
@@ -0,0 +1,22 @@
+package cc.mrbird.febs.dapp.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@ApiModel(value = "MemberNodeVo", description = "星团")
+public class MemberNodeVo {
+
+    private String inviteId;
+
+    private String leftNode;
+
+    private String rightNode;
+
+    @ApiModelProperty(value = "子节点")
+    private List<MemberNodeVo> children = new ArrayList<>();
+}

--
Gitblit v1.9.1