From 92e66aaa7c3643e2497dfef0d031a9eb8e76e184 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 21 Aug 2023 15:41:48 +0800
Subject: [PATCH] 后台修改
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 398 ++++++++++++++++++++++++++++----------------------------
1 files changed, 197 insertions(+), 201 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 51fee88..15990b7 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -18,6 +18,7 @@
import cc.mrbird.febs.rabbit.producer.ChainProducer;
import cc.mrbird.febs.system.entity.User;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -211,17 +212,21 @@
member.setCurrentUser(currentUser.getUserId());
}
IPage<DappMemberEntity> dappMemberEntityIPage = dappMemberDao.selectInPage(member, page);
-// List<DappMemberEntity> records = dappMemberEntityIPage.getRecords();
-// if(CollUtil.isNotEmpty(records)){
-// for(DappMemberEntity memberEntity : records){
-// Long memberId = memberEntity.getId();
-// DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId);
-// memberEntity.setCoinAmount(ObjectUtil.isEmpty(dappWalletCoinEntity) ? BigDecimal.ZERO : dappWalletCoinEntity.getAvailableAmount());
-//
-// DappWalletMineEntity dappWalletMineEntity = dappWalletMineDao.selectByMemberId(memberId);
-// memberEntity.setScoreAmount(ObjectUtil.isEmpty(dappWalletMineEntity) ? BigDecimal.ZERO : dappWalletMineEntity.getAvailableAmount());
-// }
-// }
+ List<DappMemberEntity> records = dappMemberEntityIPage.getRecords();
+ if(CollUtil.isNotEmpty(records)){
+ for(DappMemberEntity memberEntity : records){
+ Long memberId = memberEntity.getId();
+
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(memberId);
+ BigDecimal myShareAchieve = BigDecimal.ZERO;
+ if(CollUtil.isNotEmpty(mallAchieveRecords)){
+ Date payTime = mallAchieveRecords.get(0).getPayTime();
+ //下第一单之后的共享区全部业绩
+ myShareAchieve = mallAchieveRecordMapper.selectAchieveTotalByCreateTime(payTime);
+ }
+ memberEntity.setMyShareAchieve(myShareAchieve);
+ }
+ }
return dappMemberEntityIPage;
}
@@ -531,6 +536,15 @@
dappMemberInfoVo.setWaitPayCnt(waitPayCnt);
dappMemberInfoVo.setPayCnt(payCnt);
dappMemberInfoVo.setCancelCnt(cancelCnt);
+
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(member.getId());
+ BigDecimal myShareAchieve = BigDecimal.ZERO;
+ if(CollUtil.isNotEmpty(mallAchieveRecords)){
+ Date payTime = mallAchieveRecords.get(0).getPayTime();
+ //下第一单之后的共享区全部业绩
+ myShareAchieve = mallAchieveRecordMapper.selectAchieveTotalByCreateTime(payTime);
+ }
+ dappMemberInfoVo.setMyShareAchieve(myShareAchieve);
return new FebsResponse().success().data(dappMemberInfoVo);
}
@@ -997,28 +1011,42 @@
List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectAllMemberForInCome();
if(CollUtil.isNotEmpty(dappMemberEntities)){
+ //总划入
+ BigDecimal totalAdd = BigDecimal.ZERO;
+ //资产包卖出划入底池比例
+ DataDictionaryCustom packageToPoorPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(),
+ DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode()
+ );
+ BigDecimal packageToPoorPercent = new BigDecimal(ObjectUtil.isEmpty(packageToPoorPercentDic) ? "0.1" : packageToPoorPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+ //资产包积分价格
+ DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
+ DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
+ );
+ BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+ //卖出积分直接销毁。
+ DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
+ DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
+ );
+ BigDecimal avaPackageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "21000" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+ DataDictionaryCustom packagePoorDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.PACKAGE_POOR.getType(),
+ DataDictionaryEnum.PACKAGE_POOR.getCode()
+ );
+ BigDecimal packagePoor = new BigDecimal(ObjectUtil.isEmpty(packagePoorDic) ? "0" : packagePoorDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+
if(dappMemberEntities.size() <= 100){
for(DappMemberEntity dappMemberEntity : dappMemberEntities){
Long memberId = dappMemberEntity.getId();
BigDecimal balance = dappMemberEntity.getBalance();
-
+ //前一百卖出一半
BigDecimal cnt = balance.divide(new BigDecimal(2) , 2 ,BigDecimal.ROUND_DOWN);
dappMemberEntity.setBalance(balance.subtract(cnt));
dappMemberDao.updateById(dappMemberEntity);
-
- DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
- DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
- );
- BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
//卖出资产乘以价格获取到预期获取的总额
BigDecimal totalAmount = cnt.multiply(packageScorePrice).setScale(2, BigDecimal.ROUND_DOWN);
- //资产包卖出划入底池比例
- DataDictionaryCustom packageToPoorPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(),
- DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode()
- );
- BigDecimal packageToPoorPercent = new BigDecimal(ObjectUtil.isEmpty(packageToPoorPercentDic) ? "0.1" : packageToPoorPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
//划入底池的金额
BigDecimal poorAmount = totalAmount.multiply(packageToPoorPercent).setScale(2, BigDecimal.ROUND_DOWN);
//实际获取的金额
@@ -1039,47 +1067,27 @@
DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
BigDecimal.ZERO);
dappFundFlowDao.insert(feeFlow);
-
- //卖出积分直接销毁。
- DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
- DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
- );
- BigDecimal avaPackageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "21000" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- //更新USDT底池
- DataDictionaryCustom packagePoorDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_POOR.getType(),
- DataDictionaryEnum.PACKAGE_POOR.getCode()
- );
- BigDecimal packagePoor = new BigDecimal(ObjectUtil.isEmpty(packagePoorDic) ? "0" : packagePoorDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- BigDecimal avaPackagePoor = packagePoor.add(poorAmount);
- packagePoorDic.setValue(avaPackagePoor.toString());
- dataDictionaryCustomMapper.updateById(packagePoorDic);
- //计算当前价格
- BigDecimal divide = avaPackagePoor.divide(avaPackageTotalScore, 8, BigDecimal.ROUND_DOWN);
- packageScorePriceDic.setValue(divide.toString());
- dataDictionaryCustomMapper.updateById(packageScorePriceDic);
+ totalAdd = totalAdd.add(poorAmount);
}
- return new FebsResponse().success();
- }
- List<MallAchieveRecord> mallAchieveRecordList = new ArrayList<>();
- for(DappMemberEntity dappMemberEntity : dappMemberEntities){
- //获取每个人的业绩
- //业绩集合
- List<BigDecimal> list = new ArrayList<>();
- //所有直推团队,就是这个会员的所有区域的业绩。
+ }else{
+ List<MallAchieveRecord> mallAchieveRecordList = new ArrayList<>();
+ for(DappMemberEntity dappMemberEntity : dappMemberEntities){
+ //获取每个人的业绩
+ //业绩集合
+ List<BigDecimal> list = new ArrayList<>();
+ //所有直推团队,就是这个会员的所有区域的业绩。
- BigDecimal teamIncomeMax = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(dappMemberEntity.getId(),
- FundFlowEnum.ADD_AMOUNT_REAL.getCode(),
- DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
- if(BigDecimal.ZERO.compareTo(teamIncomeMax) >= 0){
- continue;
- }
+ BigDecimal teamIncomeMax = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(dappMemberEntity.getId(),
+ FundFlowEnum.ADD_AMOUNT_REAL.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
+ if(BigDecimal.ZERO.compareTo(teamIncomeMax) >= 0){
+ continue;
+ }
- MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
- mallAchieveRecord.setMemberId(dappMemberEntity.getId());
- mallAchieveRecord.setAmount(teamIncomeMax);
- mallAchieveRecordList.add(mallAchieveRecord);
+ MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
+ mallAchieveRecord.setMemberId(dappMemberEntity.getId());
+ mallAchieveRecord.setAmount(teamIncomeMax);
+ mallAchieveRecordList.add(mallAchieveRecord);
// // 直推用户
// List<DappMemberEntity> childs = dappMemberDao.selectMemberInfoByRefererId(dappMemberEntity.getInviteId());
// List<String> childsInviteIds = childs.stream().map(DappMemberEntity::getInviteId).collect(Collectors.toList());
@@ -1093,153 +1101,115 @@
// BigDecimal bigMax = list.stream().max(BigDecimal::compareTo).get();
// teamIncomeMax = teamIncomeMax.subtract(bigMax);
// }
- }
- if(CollUtil.isNotEmpty(mallAchieveRecordList)){
- //按照小区业绩的多少排名
- List<MallAchieveRecord> collect = mallAchieveRecordList
- .stream()
- .sorted(Comparator.comparing(MallAchieveRecord::getAmount))
- .collect(Collectors.toList());
-
- List<MallAchieveRecord> top100Performances = collect.stream()
- .limit(100)
- .collect(Collectors.toList());
- if(CollUtil.isNotEmpty(top100Performances)){
- for(MallAchieveRecord mallAchieveRecord : top100Performances){
- Long memberId = mallAchieveRecord.getMemberId();
- DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
- BigDecimal balance = dappMemberEntity.getBalance();
-
- BigDecimal cnt = balance.divide(new BigDecimal(2) , 2 ,BigDecimal.ROUND_DOWN);
- dappMemberEntity.setBalance(balance.subtract(cnt));
- dappMemberDao.updateById(dappMemberEntity);
- DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
- DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
- );
- BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- //卖出资产乘以价格获取到预期获取的总额
- BigDecimal totalAmount = cnt.multiply(packageScorePrice).setScale(2, BigDecimal.ROUND_DOWN);
- //资产包卖出划入底池比例
- DataDictionaryCustom packageToPoorPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(),
- DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode()
- );
- BigDecimal packageToPoorPercent = new BigDecimal(ObjectUtil.isEmpty(packageToPoorPercentDic) ? "0.1" : packageToPoorPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- //划入底池的金额
- BigDecimal poorAmount = totalAmount.multiply(packageToPoorPercent).setScale(2, BigDecimal.ROUND_DOWN);
- //实际获取的金额
- BigDecimal realAmount = totalAmount.subtract(poorAmount);
- //生成一条资金流水
- DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
- memberId,
- realAmount,
- FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
- DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
- BigDecimal.ZERO);
- dappFundFlowDao.insert(scoreFlow);
- dappWalletCoinDao.addTotalAndaddAvailableByMemberId(memberId,realAmount);
- DappFundFlowEntity feeFlow = new DappFundFlowEntity(
- memberId,
- poorAmount.negate(),
- FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
- DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
- BigDecimal.ZERO);
- dappFundFlowDao.insert(feeFlow);
-
- //卖出积分直接销毁。
- DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
- DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
- );
- BigDecimal avaPackageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "21000" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- //更新USDT底池
- DataDictionaryCustom packagePoorDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_POOR.getType(),
- DataDictionaryEnum.PACKAGE_POOR.getCode()
- );
- BigDecimal packagePoor = new BigDecimal(ObjectUtil.isEmpty(packagePoorDic) ? "0" : packagePoorDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- BigDecimal avaPackagePoor = packagePoor.add(poorAmount);
- packagePoorDic.setValue(avaPackagePoor.toString());
- dataDictionaryCustomMapper.updateById(packagePoorDic);
- //计算当前价格
- BigDecimal divide = avaPackagePoor.divide(avaPackageTotalScore, 8, BigDecimal.ROUND_DOWN);
- packageScorePriceDic.setValue(divide.toString());
- dataDictionaryCustomMapper.updateById(packageScorePriceDic);
- }
}
+ if(CollUtil.isNotEmpty(mallAchieveRecordList)){
+ //按照小区业绩的多少排名
+ List<MallAchieveRecord> collect = mallAchieveRecordList
+ .stream()
+ .sorted(Comparator.comparing(MallAchieveRecord::getAmount))
+ .collect(Collectors.toList());
- List<MallAchieveRecord> remainingUsers = mallAchieveRecordList
- .stream()
- .sorted(Comparator.comparing(MallAchieveRecord::getAmount).reversed())
- .skip(100)
- .collect(Collectors.toList());
- if(CollUtil.isNotEmpty(remainingUsers)){
- for(MallAchieveRecord mallAchieveRecord : remainingUsers){
- Long memberId = mallAchieveRecord.getMemberId();
- DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
- BigDecimal balance = dappMemberEntity.getBalance();
+ List<MallAchieveRecord> top100Performances = collect.stream()
+ .limit(100)
+ .collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(top100Performances)){
+ for(MallAchieveRecord mallAchieveRecord : top100Performances){
+ Long memberId = mallAchieveRecord.getMemberId();
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+ BigDecimal balance = dappMemberEntity.getBalance();
- BigDecimal cnt = balance;
- dappMemberEntity.setBalance(balance.subtract(cnt));
- dappMemberDao.updateById(dappMemberEntity);
- DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
- DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
- );
- BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- //卖出资产乘以价格获取到预期获取的总额
- BigDecimal totalAmount = cnt.multiply(packageScorePrice).setScale(2, BigDecimal.ROUND_DOWN);
- //资产包卖出划入底池比例
- DataDictionaryCustom packageToPoorPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(),
- DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode()
- );
- BigDecimal packageToPoorPercent = new BigDecimal(ObjectUtil.isEmpty(packageToPoorPercentDic) ? "0.1" : packageToPoorPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- //划入底池的金额
- BigDecimal poorAmount = totalAmount.multiply(packageToPoorPercent).setScale(2, BigDecimal.ROUND_DOWN);
- //实际获取的金额
- BigDecimal realAmount = totalAmount.subtract(poorAmount);
- //生成一条资金流水
- DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
- memberId,
- realAmount,
- FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
- DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
- BigDecimal.ZERO);
- dappFundFlowDao.insert(scoreFlow);
- dappWalletCoinDao.addTotalAndaddAvailableByMemberId(memberId,realAmount);
- DappFundFlowEntity feeFlow = new DappFundFlowEntity(
- memberId,
- poorAmount.negate(),
- FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
- DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
- BigDecimal.ZERO);
- dappFundFlowDao.insert(feeFlow);
+ BigDecimal cnt = balance.divide(new BigDecimal(2) , 2 ,BigDecimal.ROUND_DOWN);
+ dappMemberEntity.setBalance(balance.subtract(cnt));
+ dappMemberDao.updateById(dappMemberEntity);
+ //卖出资产乘以价格获取到预期获取的总额
+ BigDecimal totalAmount = cnt.multiply(packageScorePrice).setScale(2, BigDecimal.ROUND_DOWN);
+ //划入底池的金额
+ BigDecimal poorAmount = totalAmount.multiply(packageToPoorPercent).setScale(2, BigDecimal.ROUND_DOWN);
+ //实际获取的金额
+ BigDecimal realAmount = totalAmount.subtract(poorAmount);
+ //生成一条资金流水
+ DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
+ memberId,
+ realAmount,
+ FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+ BigDecimal.ZERO);
+ dappFundFlowDao.insert(scoreFlow);
+ dappWalletCoinDao.addTotalAndaddAvailableByMemberId(memberId,realAmount);
+ DappFundFlowEntity feeFlow = new DappFundFlowEntity(
+ memberId,
+ poorAmount.negate(),
+ FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+ BigDecimal.ZERO);
+ dappFundFlowDao.insert(feeFlow);
+ totalAdd = totalAdd.add(poorAmount);
+ }
+ }
- //卖出积分回收。
- DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
- DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
- );
- BigDecimal avaPackageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "21000" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- //更新USDT底池
- DataDictionaryCustom packagePoorDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.PACKAGE_POOR.getType(),
- DataDictionaryEnum.PACKAGE_POOR.getCode()
- );
- BigDecimal packagePoor = new BigDecimal(ObjectUtil.isEmpty(packagePoorDic) ? "0" : packagePoorDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
- BigDecimal avaPackagePoor = packagePoor.add(poorAmount);
- packagePoorDic.setValue(avaPackagePoor.toString());
- dataDictionaryCustomMapper.updateById(packagePoorDic);
- //计算当前价格
- BigDecimal divide = avaPackagePoor.divide(avaPackageTotalScore, 8, BigDecimal.ROUND_DOWN);
- packageScorePriceDic.setValue(divide.toString());
- dataDictionaryCustomMapper.updateById(packageScorePriceDic);
+ List<MallAchieveRecord> remainingUsers = mallAchieveRecordList
+ .stream()
+ .sorted(Comparator.comparing(MallAchieveRecord::getAmount).reversed())
+ .skip(100)
+ .collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(remainingUsers)){
+ for(MallAchieveRecord mallAchieveRecord : remainingUsers){
+ Long memberId = mallAchieveRecord.getMemberId();
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+ BigDecimal balance = dappMemberEntity.getBalance();
+
+ BigDecimal cnt = balance;
+ dappMemberEntity.setBalance(balance.subtract(cnt));
+ dappMemberDao.updateById(dappMemberEntity);
+ //卖出资产乘以价格获取到预期获取的总额
+ BigDecimal totalAmount = cnt.multiply(packageScorePrice).setScale(2, BigDecimal.ROUND_DOWN);
+ //资产包卖出划入底池比例
+ //划入底池的金额
+ BigDecimal poorAmount = totalAmount.multiply(packageToPoorPercent).setScale(2, BigDecimal.ROUND_DOWN);
+ //实际获取的金额
+ BigDecimal realAmount = totalAmount.subtract(poorAmount);
+ //生成一条资金流水
+ DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
+ memberId,
+ realAmount,
+ FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+ BigDecimal.ZERO);
+ dappFundFlowDao.insert(scoreFlow);
+ dappWalletCoinDao.addTotalAndaddAvailableByMemberId(memberId,realAmount);
+ DappFundFlowEntity feeFlow = new DappFundFlowEntity(
+ memberId,
+ poorAmount.negate(),
+ FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+ BigDecimal.ZERO);
+ dappFundFlowDao.insert(feeFlow);
+ totalAdd = totalAdd.add(poorAmount);
+ }
}
}
}
+ BigDecimal avaPackagePoor = packagePoor.add(totalAdd);
+ packagePoorDic.setValue(avaPackagePoor.toString());
+ dataDictionaryCustomMapper.updateById(packagePoorDic);
+ //计算当前价格
+ BigDecimal divide = avaPackagePoor.divide(avaPackageTotalScore, 8, BigDecimal.ROUND_DOWN);
+ packageScorePriceDic.setValue(divide.toString());
+ dataDictionaryCustomMapper.updateById(packageScorePriceDic);
+
+ DappFundFlowEntity backFlow = new DappFundFlowEntity(
+ 1L,
+ totalAdd,
+ FundFlowEnum.SYSTEM_SALE_PACKAGE_BACK.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+ BigDecimal.ZERO);
+ dappFundFlowDao.insert(backFlow);
+
+ DappAKlineEntity dappAKlineEntity = new DappAKlineEntity();
+ dappAKlineEntity.setOpenPrice(divide);
+ dappAKlineEntity.setType(1);
+ dappAKlineMapper.insert(dappAKlineEntity);
}
return new FebsResponse().success();
}
@@ -1298,6 +1268,32 @@
return mallAddressInfo;
}
+ @Override
+ public List<PackageRecordVo> packageRecord(PackageRecordDto packageRecordDto) {
+ List<PackageRecordVo> packageRecordVos = new ArrayList<>();
+ Integer type = packageRecordDto.getType();
+ if(2 == type){
+ packageRecordVos = dappMemberDao.selectPackageRecordWeekInPage(DateUtil.beginOfWeek(DateUtil.date()));
+ }else if(3 == type){
+ packageRecordVos = dappMemberDao.selectPackageRecordMonthInPage(DateUtil.date());
+ }else{
+ packageRecordVos = dappMemberDao.selectPackageRecordDayInPage(DateUtil.date());
+ }
+ if(CollUtil.isNotEmpty(packageRecordVos)){
+ Integer packageNum = 0;
+ for(PackageRecordVo packageRecordVo : packageRecordVos){
+ packageNum = packageNum + 1;
+ packageRecordVo.setPackageNum(packageNum);
+ }
+ }
+ return packageRecordVos;
+ }
+
+ @Override
+ public List<AKLineLimitVo> packageKline() {
+ return dappAKlineMapper.selectListByTypeAndLimit(2, 30);
+ }
+
public static List<List<String>> partitionList(List<String> originalList, int partitionSize) {
List<List<String>> partitionedList = new ArrayList<>();
int size = originalList.size();
--
Gitblit v1.9.1