xiaoyong931011
2022-10-26 f1474f682d2bf0ed2eeb78d94287d45844700c06
src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
@@ -163,7 +163,7 @@
            throw new FebsException(MessageSourceUtils.getString("login_err_003"));
        }
        //获取下一个开奖
        String redisKey = "on_hook_award_id";
        String redisKey = "on_hook_award_id_test";
        String onHookAwardRedisId = redisUtils.getString(redisKey);
        DappOnHookAward dappOnHookAward = dappOnHookAwardDao.selectById(Long.parseLong(onHookAwardRedisId));
        if(ObjectUtil.isEmpty(dappOnHookAward)){
@@ -231,25 +231,39 @@
        BigDecimal systemTotal = dappWalletService.updatePTFC(memberId,totalProfit);
        totalProfit = totalProfit.subtract(profitSharingTotal).subtract(systemTotal);
        //更新主表为结束状态
        IgtOnHookPlanOrder igtOnHookPlanOrder = igtOnHookPlanOrderDao.selectById(orderId);
        igtOnHookPlanOrder.setState(2);
        igtOnHookPlanOrder.setPlanAmount(totalProfit);
        igtOnHookPlanOrderDao.updateById(igtOnHookPlanOrder);
        //获取用户信息的是否盈利字段
        DappMemberEntity dappMember = dappMemberDao.selectById(memberId);
        Integer isProfit = dappMember.getIsProfit() == null ? 1 : dappMember.getIsProfit();
        //所有未中奖的本金
        BigDecimal totalAmount = igtOnHookPlanOrderItemDao.selectTotalAmountByByOrderIdAndMemberIdAndState(orderId,memberId,1,1);
        //更新主表为结束状态
        IgtOnHookPlanOrder igtOnHookPlanOrder = igtOnHookPlanOrderDao.selectById(orderId);
        BigDecimal avaAmount = igtOnHookPlanOrder.getAvaAmount();
        BigDecimal planAmount = igtOnHookPlanOrder.getPlanAmount();
        igtOnHookPlanOrder.setState(2);
        //一次挂机剩余的全部金额
        BigDecimal totalMoney = totalProfit.add(avaAmount);
        if(totalMoney.compareTo(planAmount)<=0){
            igtOnHookPlanOrder.setProfitState(2);
        }else{
            igtOnHookPlanOrder.setProfitState(1);
        }
        igtOnHookPlanOrder.setProfit(totalProfit);
        igtOnHookPlanOrderDao.updateById(igtOnHookPlanOrder);
        DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId);
        BigDecimal availableAmount = dappWalletCoinEntity.getAvailableAmount();
        //如果中奖,返回收益,如果没中奖,则返回本金,最后加上剩余总挂机金额
        BigDecimal total = totalProfit.add(totalAmount).add(igtOnHookPlanOrder.getAvaAmount()).setScale(4, BigDecimal.ROUND_DOWN);
            //如果中奖,返回收益,最后加上剩余总挂机金额
//            total = totalProfit.add(totalAmount).add(igtOnHookPlanOrder.getAvaAmount()).setScale(4, BigDecimal.ROUND_DOWN);
        BigDecimal total = totalProfit.add(igtOnHookPlanOrder.getAvaAmount()).setScale(4, BigDecimal.ROUND_DOWN);
        dappWalletCoinDao.addTotalAndaddAvailableById(dappWalletCoinEntity.getId(),total);
        //生成流水记录
        BigDecimal add = availableAmount.add(total);
        BigDecimal subtract = add.subtract(totalAmount);
        BigDecimal subtract = add.subtract(totalProfit);
        DappAccountMoneyChangeEntity dappAccountMoneyChangeEntity = new DappAccountMoneyChangeEntity(memberId, subtract, totalProfit, add, "投注盈利", 5);
        dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntity);
        //更新用户表是否正在挂机状态字段为否
        DappMemberEntity dappMember= dappMemberDao.selectById(memberId);
        dappMember.setIsOnHook(3);
        dappMemberDao.updateById(dappMember);
        return new FebsResponse().success().message(MessageSourceUtils.getString("Operation_001"));