| | |
| | | private final RedisUtils redisUtils; |
| | | private final DappOnHookAwardDao dappOnHookAwardDao; |
| | | private final DappWalletService dappWalletService; |
| | | private final DappOnHookDoneDao dappOnHookDoneDao; |
| | | |
| | | @Value("${spring.profiles.active}") |
| | | private String active; |
| | |
| | | dappMember.setIsOnHook(1); |
| | | dappMemberDao.updateById(dappMember); |
| | | |
| | | DappAccountMoneyChangeEntity dappAccountMoneyChangeEntity = new DappAccountMoneyChangeEntity(memberId, availableAmount, balance |
| | | , availableAmount.subtract(balance).setScale(2,BigDecimal.ROUND_DOWN), "挂机", 6); |
| | | DappAccountMoneyChangeEntity dappAccountMoneyChangeEntity = new DappAccountMoneyChangeEntity(memberId, availableAmount, balance.negate() |
| | | , availableAmount.subtract(balance).setScale(2,BigDecimal.ROUND_DOWN), "挂机", 6,igtOnHookPlanOrder.getId()); |
| | | dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntity); |
| | | return new FebsResponse().success().message(MessageSourceUtils.getString("Operation_001")); |
| | | } |
| | |
| | | public FebsResponse endPlan(Long orderId) { |
| | | DappMemberEntity dappMemberEntity = LoginUserUtil.getAppUser(); |
| | | Long memberId = dappMemberEntity.getId(); |
| | | QueryWrapper<DappOnHookDone> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("order_id",orderId); |
| | | List<DappOnHookDone> dappOnHookDones = dappOnHookDoneDao.selectList(objectQueryWrapper); |
| | | if(CollUtil.isNotEmpty(dappOnHookDones)){ |
| | | new FebsResponse().fail().message(MessageSourceUtils.getString("Operation_003")); |
| | | } |
| | | //更新主表为结束状态 |
| | | IgtOnHookPlanOrder igtOnHookPlanOrder = igtOnHookPlanOrderDao.selectById(orderId); |
| | | igtOnHookPlanOrder.setState(3); |
| | | igtOnHookPlanOrder.setState(2); |
| | | igtOnHookPlanOrderDao.updateById(igtOnHookPlanOrder); |
| | | |
| | | BigDecimal totalProfit = igtOnHookPlanOrder.getProfit(); |
| | | BigDecimal planAmount = igtOnHookPlanOrder.getPlanAmount(); |
| | | BigDecimal avaAmount = igtOnHookPlanOrder.getAvaAmount(); |
| | | //更新用户表是否正在挂机状态字段为否 |
| | | DappMemberEntity dappMember = dappMemberDao.selectById(memberId); |
| | | |
| | | dappMember.setIsOnHook(3); |
| | | dappMemberDao.updateById(dappMember); |
| | | |
| | | String refererIds = dappMemberEntity.getRefererIds(); |
| | | List<String> refererIdList = StrUtil.split(refererIds, ",", -1, true, true); |
| | | //生成流水佣金和盈利分成和流水记录,返回剩余盈利 |
| | | 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); |
| | | DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId); |
| | | dappWalletCoinDao.addTotalAndaddAvailableById(dappWalletCoinEntity.getId(),totalMoney); |
| | | |
| | | DappOnHookDone dappOnHookDone = new DappOnHookDone(memberId, igtOnHookPlanOrder.getId()); |
| | | dappOnHookDoneDao.insert(dappOnHookDone); |
| | | |
| | | return new FebsResponse().success().message(MessageSourceUtils.getString("Operation_001")); |
| | | } |
| | |
| | | |
| | | if(2 == igtOnHookPlanOrderItem.getIsGoal()){ |
| | | //返还两次中奖之间的本金 |
| | | Date endTime = igtOnHookPlanOrderItem.getCreateTime(); |
| | | Date startTime = null; |
| | | BigDecimal totalAmount = BigDecimal.ZERO; |
| | | //返回上次中奖的记录 |
| | | IgtOnHookPlanOrderItem igtOld = igtOnHookPlanOrderItemDao.selectByCreateTimeAndIsgoaAndOrderId(endTime,2,igtOnHookPlanOrder.getId()); |
| | | IgtOnHookPlanOrderItem igtOld = igtOnHookPlanOrderItemDao.selectByCreateTimeAndIsgoaAndOrderId( |
| | | igtOnHookPlanOrderItem.getId(),2,igtOnHookPlanOrderItem.getOrderId()); |
| | | if(ObjectUtil.isNotEmpty(igtOld)){ |
| | | startTime = igtOld.getCreateTime(); |
| | | totalAmount = igtOnHookPlanOrderItemDao.selectTotalAmountByIDAndOrderId(igtOld.getId(), |
| | | igtOnHookPlanOrderItem.getId(),igtOnHookPlanOrderItem.getOrderId()); |
| | | }else{ |
| | | totalAmount = igtOnHookPlanOrderItemDao.selectTotalAmountByIDAndOrderId(null, |
| | | igtOnHookPlanOrderItem.getId(),igtOnHookPlanOrderItem.getOrderId()); |
| | | } |
| | | BigDecimal totalAmount = igtOnHookPlanOrderItemDao.selectTotalAmountByCreateTimeAndOrderId(startTime,endTime,igtOnHookPlanOrderItem.getOrderId()); |
| | | int i = (totalAmount.add(igtOnHookPlanOrder.getAvaAmount())).compareTo(igtOnHookPlanOrder.getPlanAmount()); |
| | | //如果中奖,增加挂机主表的挂机总收益,返还两次中奖之间的本金 |
| | | igtOnHookPlanOrderDao.AddProfitById(igtOnHookPlanOrder.getId() |
| | | ,igtOnHookPlanOrderItem.getProfit()); |
| | | if(i >= 0){ |
| | | igtOnHookPlanOrder.setAvaAmount(igtOnHookPlanOrder.getPlanAmount()); |
| | | }else{ |
| | | igtOnHookPlanOrder.setAvaAmount(totalAmount); |
| | | } |
| | | igtOnHookPlanOrderDao.updateById(igtOnHookPlanOrder); |
| | | igtOnHookPlanOrderDao.addAvaAmountById(igtOnHookPlanOrder.getId() |
| | | ,totalAmount); |
| | | }else{ |
| | | //如果不中奖,减少挂机剩余金额即减少本金 |
| | | Integer updateCount = igtOnHookPlanOrderDao.updateAvaAmountById(igtOnHookPlanOrder.getId() |