From 28eb26d68f7a2a4e6b316c3ea9f511aa143db66e Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 30 Sep 2024 16:57:18 +0800
Subject: [PATCH] 55测试环境
---
src/main/java/com/xcong/excoin/modules/coin/service/impl/ZhiyaServiceImpl.java | 220 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 191 insertions(+), 29 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/ZhiyaServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/ZhiyaServiceImpl.java
index dba4d77..b69f85c 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/ZhiyaServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/ZhiyaServiceImpl.java
@@ -9,24 +9,22 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xcong.excoin.common.LoginUserUtils;
+import com.xcong.excoin.common.enumerates.CoinTypeEnum;
import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum;
import com.xcong.excoin.common.response.Result;
-import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
-import com.xcong.excoin.modules.coin.dao.ZhiYaDao;
-import com.xcong.excoin.modules.coin.dao.ZhiYaRecordDao;
-import com.xcong.excoin.modules.coin.dao.ZhiyaRewardDao;
-import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
-import com.xcong.excoin.modules.coin.entity.ZhiYaEntity;
-import com.xcong.excoin.modules.coin.entity.ZhiYaRecordEntity;
-import com.xcong.excoin.modules.coin.entity.ZhiyaRewardEntity;
+import com.xcong.excoin.modules.coin.dao.*;
+import com.xcong.excoin.modules.coin.entity.*;
import com.xcong.excoin.modules.coin.parameter.dto.RecordsPageDto;
import com.xcong.excoin.modules.coin.parameter.dto.ZhiyaRewardRecordsPageDto;
+import com.xcong.excoin.modules.coin.parameter.dto.ZhiyaRewardRecordsTypePageDto;
import com.xcong.excoin.modules.coin.parameter.vo.MemberGusdInfoVo;
import com.xcong.excoin.modules.coin.parameter.vo.UsdtToGusdVo;
import com.xcong.excoin.modules.coin.parameter.vo.ZhiyaInfoVo;
import com.xcong.excoin.modules.coin.parameter.vo.ZhiyaRewardVo;
import com.xcong.excoin.modules.coin.service.ZhiyaService;
+import com.xcong.excoin.modules.member.dao.MemberDao;
import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao;
+import com.xcong.excoin.modules.member.entity.MemberEntity;
import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
import com.xcong.excoin.utils.MessageSourceUtils;
import com.xcong.excoin.utils.RedisUtils;
@@ -36,10 +34,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
+import java.util.*;
@Service
public class ZhiyaServiceImpl extends ServiceImpl<ZhiYaDao, ZhiYaEntity> implements ZhiyaService {
@@ -54,6 +49,10 @@
ZhiyaRewardDao zhiyaRewardDao;
@Resource
ZhiYaDao zhiYaDao;
+ @Resource
+ ZhiyaTeamDao zhiyaTeamDao;
+ @Resource
+ MemberDao memberdao;
@Resource
RedisUtils redisUtils;
@Override
@@ -219,8 +218,47 @@
// zhiYaRecordDao.updateById(zhiYaRecord);
// }
//更新团队算力表
- //只计算直属团队的算力信息
-
+ MemberEntity memberEntity = memberdao.selectById(memberId);
+ String refererIds = memberEntity.getRefererIds();
+ if(StrUtil.isNotEmpty(refererIds)){
+ BigDecimal gricetoagent = new BigDecimal(redisUtils.getString("GRICETOAGENT"));
+ String[] split = refererIds.split(",");
+ List<String> strings = Arrays.asList(split);
+ if(CollUtil.isNotEmpty(Arrays.asList(split))){
+ for(String str : strings){
+ if(StrUtil.isNotEmpty(str)){
+// BigDecimal isAgent = BigDecimal.ZERO;
+ MemberEntity memberShangJi = memberdao.selectMemberInfoByInviteId(str);
+ ZhiYaTeam zhiyaTeamByMemberId = zhiYaRecordDao.selectZhiyaTeamRecordByMemberId(memberShangJi.getId());
+ if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
+ //更新数据
+ zhiyaTeamByMemberId.setZhiyaCnt(zhiyaTeamByMemberId.getZhiyaCnt().add(balance));
+// if(isAgent.compareTo(gricetoagent) >= 0){
+// zhiyaTeamByMemberId.setIsAgent(1);
+// }
+ zhiyaTeamDao.updateById(zhiyaTeamByMemberId);
+ }else{
+ //新增数据
+ ZhiYaTeam zhiYaTeam = new ZhiYaTeam();
+ zhiYaTeam.setRefererId(memberShangJi.getRefererId());
+ zhiYaTeam.setRefererIds(memberShangJi.getRefererIds());
+ zhiYaTeam.setMemberId(memberShangJi.getId());
+ if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
+ zhiYaTeam.setZhiyaCnt(zhiyaTeamByMemberId.getZhiyaCnt().add(balance));
+// isAgent = zhiyaTeamByMemberId.getZhiyaCnt().add(balance);
+ }else{
+ zhiYaTeam.setZhiyaCnt(balance);
+// isAgent = balance;
+ }
+// if(isAgent.compareTo(gricetoagent) >= 0){
+// zhiYaTeam.setIsAgent(1);
+// }
+ zhiyaTeamDao.insert(zhiYaTeam);
+ }
+ }
+ }
+ }
+ }
return Result.ok(MessageSourceUtils.getString("member_service_0024"));
}
@@ -268,6 +306,55 @@
zhiya.setFrozenBalance(gusdfrozenBalance.subtract(balance));
zhiya.setAvailableBalance(gusdAvailableBalance.add(balance));
zhiYaDao.updateById(zhiya);
+ //赎回后奖励直接去币币账户
+ Long sumReward = zhiYaDao.selectSumRewardByMemberIdAndRecordIdAndType(memberId,id,1);
+ MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, CoinTypeEnum.GRICE.toString());
+ memberWalletCoinEntity.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance().add(new BigDecimal(sumReward)));
+ memberWalletCoinEntity.setTotalBalance(memberWalletCoinEntity.getTotalBalance().add(new BigDecimal(sumReward)));
+ memberWalletCoinDao.updateById(memberWalletCoinEntity);
+ //更新团队算力表
+ MemberEntity memberEntity = memberdao.selectById(memberId);
+ String refererIds = memberEntity.getRefererIds();
+ if(StrUtil.isNotEmpty(refererIds)){
+// BigDecimal gricetoagent = new BigDecimal(redisUtils.getString("GRICETOAGENT"));
+ String[] split = refererIds.split(",");
+ List<String> strings = Arrays.asList(split);
+ if(CollUtil.isNotEmpty(Arrays.asList(split))){
+ for(String str : strings){
+ if(StrUtil.isNotEmpty(str)){
+// BigDecimal isAgent = BigDecimal.ZERO;
+ MemberEntity memberShangJi = memberdao.selectMemberInfoByInviteId(str);
+ ZhiYaTeam zhiyaTeamByMemberId = zhiYaRecordDao.selectZhiyaTeamRecordByMemberId(memberShangJi.getId());
+ if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
+ //更新数据
+ zhiyaTeamByMemberId.setZhiyaCnt(zhiyaTeamByMemberId.getZhiyaCnt().subtract(balance));
+// isAgent = zhiyaTeamByMemberId.getZhiyaCnt().subtract(balance);
+// if(isAgent.compareTo(gricetoagent) >= 0){
+// zhiyaTeamByMemberId.setIsAgent(1);
+// }
+ zhiyaTeamDao.updateById(zhiyaTeamByMemberId);
+ }else{
+ //新增数据
+ ZhiYaTeam zhiYaTeam = new ZhiYaTeam();
+ zhiYaTeam.setRefererId(memberShangJi.getRefererId());
+ zhiYaTeam.setRefererIds(memberShangJi.getRefererIds());
+ zhiYaTeam.setMemberId(memberShangJi.getId());
+ if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
+ zhiYaTeam.setZhiyaCnt(zhiyaTeamByMemberId.getZhiyaCnt().subtract(balance));
+// isAgent = zhiyaTeamByMemberId.getZhiyaCnt().subtract(balance);
+ }else{
+ zhiYaTeam.setZhiyaCnt(balance);
+// isAgent = balance;
+ }
+// if(isAgent.compareTo(gricetoagent) >= 0){
+// zhiYaTeam.setIsAgent(1);
+// }
+ zhiyaTeamDao.insert(zhiYaTeam);
+ }
+ }
+ }
+ }
+ }
return Result.ok(MessageSourceUtils.getString("member_service_0024"));
}
@@ -311,14 +398,10 @@
@Override
@Transactional
public void grantZhiyaAmount() {
- //获取每日总产出
+ //获取GUSD质押比例
BigDecimal gusdReward = new BigDecimal(redisUtils.getString("GUSDREWARD"));
- //获取每日质押总数
- Long totalGusd = zhiYaRecordDao.selectTotalGusdByStatueAndTime(1,new Date());
- BigDecimal totalGusdBigDecimal = new BigDecimal(totalGusd);
- if(totalGusdBigDecimal.compareTo(BigDecimal.ZERO) > 0){
- //平均一个获取奖励数量
- BigDecimal divide = gusdReward.divide(totalGusdBigDecimal,2, BigDecimal.ROUND_HALF_UP);
+ BigDecimal fixedGusdReward = gusdReward.multiply(new BigDecimal(0.8));
+ if(fixedGusdReward.compareTo(BigDecimal.ZERO) > 0){
//获取今天之前满足发放奖励的全部质押单
//生效时间小于当前时间
//状态为生效中
@@ -326,15 +409,81 @@
if(CollUtil.isNotEmpty(lists)){
for(ZhiYaRecordEntity zhiYaRecordEntity : lists){
ZhiyaRewardEntity zhiyaRewardEntity = new ZhiyaRewardEntity();
- zhiyaRewardEntity.setRecordId(zhiYaRecordEntity.getId());
- zhiyaRewardEntity.setRecordNo(zhiYaRecordEntity.getOrderNo());
- zhiyaRewardEntity.setMemberId(zhiYaRecordEntity.getMemberId());
- zhiyaRewardEntity.setRewardAmout(divide.multiply(zhiYaRecordEntity.getZhiyaCnt()));
- zhiyaRewardDao.insert(zhiyaRewardEntity);
+ //查询今天有没有发送过了
+ String orderNo = zhiYaRecordEntity.getOrderNo();
+ Long memberId = zhiYaRecordEntity.getMemberId();
+ Date date = new Date();
+ List<ZhiyaRewardEntity> zhiyaRewardEntityDone = zhiYaRecordDao.selectZhiyaTeamRecordByMemberIdAndOrderNo(orderNo,memberId,date);
+ if(ObjectUtil.isEmpty(zhiyaRewardEntityDone)){
+ zhiyaRewardEntity.setRecordId(zhiYaRecordEntity.getId());
+ zhiyaRewardEntity.setRecordNo(zhiYaRecordEntity.getOrderNo());
+ zhiyaRewardEntity.setMemberId(zhiYaRecordEntity.getMemberId());
+ zhiyaRewardEntity.setType(1);
+ MemberEntity member = memberdao.selectById(zhiYaRecordEntity.getMemberId());
+ //获取当前人的上两级
+ BigDecimal multiplyReward = zhiYaRecordEntity.getZhiyaCnt().multiply(gusdReward);
+ MemberEntity memberEntity = memberdao.selectMemberInfoByInviteId(member.getRefererId());
+ if(ObjectUtil.isNotEmpty(memberEntity)){
+ //以及1代理的比例
+ BigDecimal agetShangji = new BigDecimal(redisUtils.getString("GUSDREWARDAGENTONE"));
+ BigDecimal multiply = zhiYaRecordEntity.getZhiyaCnt().multiply(gusdReward).multiply(agetShangji);
+ multiplyReward = multiplyReward.subtract(multiply);
+ ZhiyaRewardEntity zhiyaRewardEntitySJ = new ZhiyaRewardEntity();
+ zhiyaRewardEntitySJ.setRecordId(zhiYaRecordEntity.getId());
+ zhiyaRewardEntitySJ.setRecordNo(zhiYaRecordEntity.getOrderNo());
+ zhiyaRewardEntitySJ.setMemberId(memberEntity.getId());
+ zhiyaRewardEntitySJ.setType(2);
+ zhiyaRewardEntitySJ.setRewardAmout(multiply);
+ zhiyaRewardDao.insert(zhiyaRewardEntitySJ);
- //给团队上级发送奖励goldrice
- //给账户的冻结
+ MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberEntity.getId(), CoinTypeEnum.GRICE.toString());
+ memberWalletCoinEntity.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance().add(multiply));
+ memberWalletCoinEntity.setTotalBalance(memberWalletCoinEntity.getTotalBalance().add(multiply));
+ memberWalletCoinDao.updateById(memberWalletCoinEntity);
+ MemberEntity memberEntitySSJ = memberdao.selectMemberInfoByInviteId(memberEntity.getRefererId());
+ if(ObjectUtil.isNotEmpty(memberEntitySSJ)){
+ BigDecimal agetSSJ = new BigDecimal(redisUtils.getString("GUSDREWARDAGENTTWO"));
+ BigDecimal multiplySSJ = zhiYaRecordEntity.getZhiyaCnt().multiply(gusdReward).multiply(agetSSJ);
+ multiplyReward = multiplyReward.subtract(multiplySSJ);
+
+ MemberWalletCoinEntity memberWalletCoinEntitySSJ = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberEntitySSJ.getId(), CoinTypeEnum.GRICE.toString());
+ memberWalletCoinEntitySSJ.setAvailableBalance(memberWalletCoinEntitySSJ.getAvailableBalance().add(multiplySSJ));
+ memberWalletCoinEntitySSJ.setTotalBalance(memberWalletCoinEntitySSJ.getTotalBalance().add(multiplySSJ));
+ memberWalletCoinDao.updateById(memberWalletCoinEntitySSJ);
+
+ ZhiyaRewardEntity zhiyaRewardEntitySSJ = new ZhiyaRewardEntity();
+ zhiyaRewardEntitySSJ.setRecordId(zhiYaRecordEntity.getId());
+ zhiyaRewardEntitySSJ.setRecordNo(zhiYaRecordEntity.getOrderNo());
+ zhiyaRewardEntitySSJ.setMemberId(memberEntitySSJ.getId());
+ zhiyaRewardEntitySSJ.setType(2);
+ zhiyaRewardEntitySSJ.setRewardAmout(multiplySSJ);
+ zhiyaRewardDao.insert(zhiyaRewardEntitySSJ);
+ }
+ }
+ zhiyaRewardEntity.setRewardAmout(multiplyReward);
+ zhiyaRewardDao.insert(zhiyaRewardEntity);
+
+ String refererIds = member.getRefererIds();
+ if(StrUtil.isNotEmpty(refererIds)){
+ String[] split = refererIds.split(",");
+ List<String> strings = Arrays.asList(split);
+ if(CollUtil.isNotEmpty(strings)){
+ for(String str : strings){
+ if(StrUtil.isNotEmpty(str)){
+ MemberEntity memberShangJi = memberdao.selectMemberInfoByInviteId(str);
+ ZhiYaTeam zhiyaTeamByMemberId = zhiYaRecordDao.selectZhiyaTeamRecordByMemberId(memberShangJi.getId());
+ if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
+ //更新数据
+ zhiyaTeamByMemberId.setRewardCnt(
+ (zhiyaTeamByMemberId.getRewardCnt() == null ? BigDecimal.ZERO:zhiyaTeamByMemberId.getRewardCnt()).add(multiplyReward));
+ zhiyaTeamDao.updateById(zhiyaTeamByMemberId);
+ }
+ }
+ }
+ }
+ }
+ }
}
}
}
@@ -354,7 +503,20 @@
return Result.ok(lists);
}
- public String generateSimpleSerialno(String userId) {
+ @Override
+ public Result getZhiyaRewardTypeTo(ZhiyaRewardRecordsTypePageDto recordsPageDto) {
+
+ //获取用户ID
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+ Page<ZhiyaRewardVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
+ ZhiyaRewardEntity zhiyaRewardEntity = new ZhiyaRewardEntity();
+ zhiyaRewardEntity.setMemberId(memberId);
+ IPage<ZhiyaRewardVo> lists = zhiYaRecordDao.selectZhiyaRewardTypeToByMemberIdInPage(page, zhiyaRewardEntity);
+ return Result.ok(lists);
+ }
+
+ public String generateSimpleSerialno(String userId) {
StringBuilder sb = new StringBuilder();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
--
Gitblit v1.9.1