From 855b8a7835bfffd7e81ef5fb2d9e6bad133136c9 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Sat, 06 Jul 2024 23:02:04 +0800
Subject: [PATCH] 逻辑
---
src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java | 10 +++
src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java | 5 +
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 19 ++++--
src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java | 2
src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java | 23 ++++++-
src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java | 10 +-
src/main/java/cc/mrbird/febs/dapp/vo/ApiStorageInfoVo.java | 18 ++++++
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 79 ++++++++++++++++++++++++--
src/main/resources/mapper/dapp/DappStorageMapper.xml | 13 ++++
9 files changed, 156 insertions(+), 23 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 3faa15d..92aa288 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
@@ -11,10 +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;
+import cc.mrbird.febs.dapp.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
@@ -42,6 +39,24 @@
private final DappMemberService dappMemberService;
private final RedisUtils redisUtils;
+ @ApiOperation(value = "大单排名前十", notes = "大单排名前十")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = ApiStorageInfoVo.class)
+ })
+ @PostMapping(value = "/storageIndex")
+ public FebsResponse storageIndex() {
+ return new FebsResponse().success().data(dappWalletService.storageIndex());
+ }
+
+ @ApiOperation(value = "直推总业绩排名前十", notes = "直推总业绩排名前十")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = ApiStorageInfoVo.class)
+ })
+ @PostMapping(value = "/directIndex")
+ public FebsResponse directIndex() {
+ return new FebsResponse().success().data(dappWalletService.directIndex());
+ }
+
@ApiOperation(value = "首页六项数据", notes = "首页六项数据")
@ApiResponses({
@ApiResponse(code = 200, message = "success", response = ApiIndexInfoVo.class)
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java
index 5a3d373..6f2cbf3 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappStorageMapper.java
@@ -21,6 +21,8 @@
DappStorage selectOneByCreateTimeDesc(@Param("offset")int offset,@Param("count")int count);
+ List<DappStorage> selectByAmountDesc(@Param("date") Date date,@Param("offset")int offset,@Param("count")int count);
+
DappStorage selectAmountByAmountDesc(@Param("offset")int offset,@Param("count")int count);
IPage<DappStorage> selectListInPage(@Param("record")DappStorage dappStorage, Page<DappStorage> page);
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 bd977cf..90ec421 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappWalletService.java
@@ -8,6 +8,7 @@
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.ApiStorageInfoVo;
import cc.mrbird.febs.dapp.vo.MemberNodeVo;
import cc.mrbird.febs.dapp.vo.WalletInfoVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -60,4 +61,8 @@
FebsResponse disagreeWithdraw(Long id);
ApiIndexInfoVo indexInfo();
+
+ List<ApiStorageInfoVo> storageIndex();
+
+ List<ApiStorageInfoVo> directIndex();
}
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 bc4dee7..d1390ab 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
@@ -127,11 +127,11 @@
* 发送直推8%
*/
chainProducer.sendDirectPerkMsg(id);
- /**
- * DAO成员动态:
- * * 1.直推1个拿2代,直推10个拿20代,直推15个拿30代,最高30代
- */
- chainProducer.sendMemberDynamicPerkMsg(id);
+// /**
+// * DAO成员动态:
+// * * 1.直推1个拿2代,直推10个拿20代,直推15个拿30代,最高30代
+// */
+// chainProducer.sendMemberDynamicPerkMsg(id);
/**
*
* * 六、永动补偿池2%
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 e30e0e6..ab6a666 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
@@ -606,18 +606,23 @@
* * 21-25代奖励4%
* * 26-30代奖励7%
*/
- DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectById(id);
- if(ObjectUtil.isEmpty(dappFundFlowEntity)){
+// DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectById(id);
+// if(ObjectUtil.isEmpty(dappFundFlowEntity)){
+// return;
+// }
+// if(DappFundFlowEntity.WITHDRAW_STATUS_AGREE != dappFundFlowEntity.getStatus()){
+// return;
+// }
+ DappStorage dappStorage = dappStorageMapper.selectById(id);
+
+ if(ObjectUtil.isEmpty(dappStorage)){
return;
}
- if(DappFundFlowEntity.WITHDRAW_STATUS_AGREE != dappFundFlowEntity.getStatus()){
- return;
- }
- BigDecimal amount = dappFundFlowEntity.getAmount().abs();
+ BigDecimal amount = dappStorage.getReleaseAmount().abs();
/**
* 往上循环30层,判断每一层是否有见点奖
*/
- Long memberId = dappFundFlowEntity.getMemberId();
+ Long memberId = dappStorage.getMemberId();
for(int i = 1;i <= 30;i++){
DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
String refererId = dappMemberEntity.getRefererId();
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 9f94227..cc47317 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,10 +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;
+import cc.mrbird.febs.dapp.vo.*;
import cc.mrbird.febs.rabbit.producer.ChainProducer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
@@ -33,9 +30,8 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* @author
@@ -679,6 +675,75 @@
return apiIndexInfoVo;
}
+ @Override
+ public List<ApiStorageInfoVo> storageIndex() {
+ List<ApiStorageInfoVo> apiStorageInfoVos = new ArrayList<>();
+ List<DappStorage> dappStorages = dappStorageMapper.selectByAmountDesc(DateUtil.offsetHour(new Date(), -1), 0, 10);
+ if(CollUtil.isNotEmpty(dappStorages)){
+ for(DappStorage dappStorage : dappStorages){
+ ApiStorageInfoVo apiStorageInfoVo = new ApiStorageInfoVo();
+ apiStorageInfoVo.setAddress(dappMemberDao.selectById(dappStorage.getMemberId()).getAddress());
+ apiStorageInfoVo.setAmount(dappStorage.getAmount());
+
+ apiStorageInfoVos.add(apiStorageInfoVo);
+ }
+ }
+
+ return apiStorageInfoVos;
+ }
+
+ @Override
+ public List<ApiStorageInfoVo> directIndex() {
+ List<ApiStorageInfoVo> apiStorageInfoVos = new ArrayList<>();
+ /**
+ * 存放直推业绩<上级的memberId,直推总业绩>
+ */
+ HashMap<Long, BigDecimal> map = new HashMap<>();
+
+ List<DappStorage> dappStorages = dappStorageMapper.selectListByDate(new Date());
+ if(CollUtil.isNotEmpty(dappStorages)){
+ for(DappStorage dappStorage : dappStorages){
+ DappMemberEntity member = dappMemberDao.selectById(dappStorage.getMemberId());
+ if(StrUtil.isEmpty(member.getRefererId())){
+ continue;
+ }
+ DappMemberEntity memberRef = dappMemberDao.selectMemberInfoByInviteId(member.getRefererId());
+ if(ObjectUtil.isEmpty(memberRef)){
+ continue;
+ }
+ Long id = memberRef.getId();
+ if(map.containsKey(id)){
+ BigDecimal bigDecimal = map.get(id);
+ BigDecimal add = bigDecimal.add(dappStorage.getAmount());
+ map.put(id,add);
+ }else{
+ map.put(id,dappStorage.getAmount());
+ }
+ }
+ }
+ /**
+ * 获取这个map的直推总业绩前十,分发奖励
+ */
+ if(!map.isEmpty()){
+ // 使用Stream API按照BigDecimal从大到小排序
+ List<Map.Entry<Long, BigDecimal>> topTenEntries = map.entrySet().stream()
+ .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
+ .limit(10)
+ .collect(Collectors.toList());
+ for (Map.Entry<Long, BigDecimal> entry : topTenEntries) {
+
+ Long memberId = entry.getKey();
+ BigDecimal directAchieve = entry.getValue();
+ ApiStorageInfoVo apiStorageInfoVo = new ApiStorageInfoVo();
+ apiStorageInfoVo.setAddress(dappMemberDao.selectById(memberId).getAddress());
+ apiStorageInfoVo.setAmount(directAchieve);
+
+ apiStorageInfoVos.add(apiStorageInfoVo);
+ }
+ }
+ return apiStorageInfoVos;
+ }
+
public MemberNodeVo buildTeamMatrix(DbMemberNode dbMemberNode) {
Long id = dbMemberNode.getId();
diff --git a/src/main/java/cc/mrbird/febs/dapp/vo/ApiStorageInfoVo.java b/src/main/java/cc/mrbird/febs/dapp/vo/ApiStorageInfoVo.java
new file mode 100644
index 0000000..9e48905
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/vo/ApiStorageInfoVo.java
@@ -0,0 +1,18 @@
+package cc.mrbird.febs.dapp.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "ApiStorageInfoVo", description = "排名")
+public class ApiStorageInfoVo {
+
+ @ApiModelProperty(value = "地址")
+ private String address;
+
+ @ApiModelProperty(value = "金额")
+ private BigDecimal amount;
+}
diff --git a/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java b/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java
index 17dfb85..dd35143 100644
--- a/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java
+++ b/src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java
@@ -10,6 +10,7 @@
import cc.mrbird.febs.dapp.mapper.DappStorageMapper;
import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.dapp.service.DappSystemService;
+import cc.mrbird.febs.rabbit.producer.ChainProducer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
@@ -39,6 +40,8 @@
private DappStorageMapper dappStorageMapper;
@Resource
private DappMemberDao dappMemberDao;
+ @Resource
+ private ChainProducer chainProducer;
/**
* 每天释放1%的静态释放
@@ -55,6 +58,13 @@
for(DappStorage storage : dappStorages){
Long memberId = storage.getMemberId();
BigDecimal releaseAmount = storage.getReleaseAmount();
+
+ /**
+ * DAO成员动态:
+ * * 1.直推1个拿2代,直推10个拿20代,直推15个拿30代,最高30代
+ */
+ chainProducer.sendMemberDynamicPerkMsg(storage.getId());
+
dappSystemService.updateBalanceInsertFlow(
releaseAmount,
memberId,
diff --git a/src/main/resources/mapper/dapp/DappStorageMapper.xml b/src/main/resources/mapper/dapp/DappStorageMapper.xml
index 4eb89c9..034ba0b 100644
--- a/src/main/resources/mapper/dapp/DappStorageMapper.xml
+++ b/src/main/resources/mapper/dapp/DappStorageMapper.xml
@@ -61,6 +61,19 @@
</select>
+ <select id="selectByAmountDesc" resultType="cc.mrbird.febs.dapp.entity.DappStorage">
+ SELECT
+ *
+ FROM
+ dapp_storage
+ where
+ date_format(create_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
+ ORDER BY
+ amount DESC
+ limit #{offset},#{count}
+ </select>
+
+
<select id="selectAmountByAmountDesc" resultType="cc.mrbird.febs.dapp.entity.DappStorage">
select
*
--
Gitblit v1.9.1