From d64adc42c078a82f58aa58743ae3871b203e3bbe Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 15 Nov 2022 15:13:58 +0800
Subject: [PATCH] 20221115,密码RSA加密

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java |   93 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 84 insertions(+), 9 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
index fc9d5c2..525328b 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
@@ -52,6 +52,7 @@
     private final DappOnHookAwardDao dappOnHookAwardDao;
     private final DappWalletService dappWalletService;
     private final DappOnHookDoneDao dappOnHookDoneDao;
+    private final MemberCoinWithdrawDao memberCoinWithdrawDao;
 
     @Value("${spring.profiles.active}")
     private String active;
@@ -176,15 +177,38 @@
 
         String refererIds = dappMemberEntity.getRefererIds();
         List<String> refererIdList = StrUtil.split(refererIds, ",", -1, true, true);
+        //只有上级用户金额大于51U才能得到对应的佣金
+//        ArrayList<String> refererIdLisstUp = new ArrayList<>();
+//        for(String inviteId : refererIdList){
+//            DappMemberEntity dappMemberUp = dappMemberDao.selectMemberInfoByInviteId(inviteId);
+//            if(ObjectUtil.isNotEmpty(dappMemberUp)){
+//                DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(dappMemberUp.getId());
+//                if(AppContants.ONHOOK_BASIC_AMOUNT.compareTo(dappWalletCoinEntity.getAvailableAmount())<=0){
+//                    refererIdLisstUp.add(inviteId);
+//                }
+//            }
+//        }
         //生成流水佣金和盈利分成和流水记录,返回剩余盈利
-        BigDecimal profitSharingTotal = dappWalletService.updateLSYJYLFC(refererIdList, igtOnHookPlanOrder.getProfit(),igtOnHookPlanOrder.getId());
-        //平台分成,返回剩余盈利
-        BigDecimal systemTotal = dappWalletService.updatePTFC(memberId,igtOnHookPlanOrder.getProfit(),igtOnHookPlanOrder.getId());
-        totalProfit = totalProfit.subtract(profitSharingTotal).subtract(systemTotal);
-//        BigDecimal totalMoney = avaAmount.add(totalProfit);
+        BigDecimal profitSharingTotal = dappWalletService.updateLSYJYLFC(refererIdList, totalProfit,igtOnHookPlanOrder.getId());
+        //生成流水佣金和盈利分成和流水记录,返回盈利分成和流水佣金总共分成
+//        BigDecimal profitSharingTotal = dappWalletService.updateLSYJYLFC(refererIdList, totalProfit,igtOnHookPlanOrder.getId());
+        //平台分成
+        //平台拿走35%盈利分成和流水佣金剩下的全部
+        BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal);
+        BigDecimal systemTotal = dappWalletService.updatePTFC(memberId,systemAdd,igtOnHookPlanOrder.getId());
+        //个人固定拿走60%
+        totalProfit = totalProfit.multiply(new BigDecimal(0.6));
+        igtOnHookPlanOrder.setProfit(totalProfit);
+        igtOnHookPlanOrderDao.updateById(igtOnHookPlanOrder);
+
         BigDecimal totalMoney = planAmount.add(totalProfit);
         DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId);
         dappWalletCoinDao.addTotalAndaddAvailableById(dappWalletCoinEntity.getId(),totalMoney);
+
+        BigDecimal add = dappWalletCoinEntity.getAvailableAmount().add(totalMoney);
+        BigDecimal subtract = add.subtract(totalProfit);
+        DappAccountMoneyChangeEntity dappAccountMoneyChangeEntity = new DappAccountMoneyChangeEntity(memberId, subtract, totalProfit, add, "投注盈利", 5,igtOnHookPlanOrder.getId());
+        dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntity);
 
         DappOnHookDone dappOnHookDone = new DappOnHookDone(memberId, igtOnHookPlanOrder.getId());
         dappOnHookDoneDao.insert(dappOnHookDone);
@@ -527,12 +551,25 @@
 
         String refererIds = dappMemberEntity.getRefererIds();
         List<String> refererIdList = StrUtil.split(refererIds, ",", -1, true, true);
+        //只有上级用户金额大于51U才能得到对应的佣金
+//        ArrayList<String> refererIdLisstUp = new ArrayList<>();
+//        for(String inviteId : refererIdList){
+//            DappMemberEntity dappMemberUp = dappMemberDao.selectMemberInfoByInviteId(inviteId);
+//            if(ObjectUtil.isNotEmpty(dappMemberUp)){
+//                DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(dappMemberUp.getId());
+//                if(AppContants.ONHOOK_BASIC_AMOUNT.compareTo(dappWalletCoinEntity.getAvailableAmount())<=0){
+//                    refererIdLisstUp.add(inviteId);
+//                }
+//            }
+//        }
         //生成流水佣金和盈利分成和流水记录,返回剩余盈利
         BigDecimal profitSharingTotal = dappWalletService.updateLSYJYLFC(refererIdList, totalProfit,igtOnHookPlanOrder.getId());
-        //平台分成,返回剩余盈利
-        BigDecimal systemTotal = dappWalletService.updatePTFC(memberId,totalProfit,igtOnHookPlanOrder.getId());
-        totalProfit = totalProfit.subtract(profitSharingTotal).subtract(systemTotal);
-
+        //平台分成
+        //平台拿走35%盈利分成和流水佣金剩下的全部
+        BigDecimal systemAdd = totalProfit.multiply(new BigDecimal(0.4)).subtract(profitSharingTotal);
+        BigDecimal systemTotal = dappWalletService.updatePTFC(memberId,systemAdd,igtOnHookPlanOrder.getId());
+        //个人固定拿走60%
+        totalProfit = totalProfit.multiply(new BigDecimal(0.6));
         igtOnHookPlanOrder.setState(2);
         //一次挂机剩余的全部金额
         BigDecimal totalMoney = totalProfit.add(planAmount);
@@ -553,6 +590,44 @@
 
     }
 
+    @Override
+    public void memberCoinInsideMessage(Long orderId) {
+        MemberCoinWithdrawEntity memberCoinWithdrawEntity = memberCoinWithdrawDao.selectById(orderId);
+        memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_YES);
+        memberCoinWithdrawDao.updateById(memberCoinWithdrawEntity);
+        //转出账户,总额减少,冻结减少
+        BigDecimal amount = memberCoinWithdrawEntity.getAmount().setScale(4,BigDecimal.ROUND_DOWN);
+        Long memberIdOut = memberCoinWithdrawEntity.getMemberId();
+        DappWalletCoinEntity dappWalletCoinEntityOut = dappWalletCoinDao.selectByMemberId(memberIdOut);
+        dappWalletCoinDao.delTotalAndDelFrozenById(dappWalletCoinEntityOut.getId(),amount);
+
+        String content = "内部转账";
+        Integer type =  4;
+        //转出账户生成一条账户资金变化记录
+        DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityOut = new DappAccountMoneyChangeEntity(memberIdOut,
+                dappWalletCoinEntityOut.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN),
+                amount.negate(),
+                dappWalletCoinEntityOut.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN).subtract(amount),
+                content,
+                type);
+        dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntityOut);
+
+        //转入账户,总额增加,余额增加
+        //转账
+        String addressIn = memberCoinWithdrawEntity.getAddress();
+        DappMemberEntity dappMemberEntityIn = dappMemberDao.selectMemberInfoByInviteId(addressIn);
+        DappWalletCoinEntity dappWalletCoinEntityIn = dappWalletCoinDao.selectByMemberId(dappMemberEntityIn.getId());
+        Integer countIn = dappWalletCoinDao.addTotalAndaddAvailableById(dappWalletCoinEntityIn.getId(), memberCoinWithdrawEntity.getAmount());
+        //生成流水记录
+        DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityIn = new DappAccountMoneyChangeEntity(dappMemberEntityIn.getId(),
+                dappWalletCoinEntityIn.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN),
+                amount,
+                dappWalletCoinEntityIn.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN).add(amount),
+                "转账",
+                4);
+        dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntityIn);
+    }
+
     private String getProfitCase(String identity,BigDecimal balance){
         //匹配会员等级获取对应的收益率
         List<DataDictionaryCustom> dataDictionaryCustoms = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.LEVEL_MB.getType());

--
Gitblit v1.9.1