| | |
| | | //最大挂机次数,五分钟开奖一次,一个小时固定次数12次 |
| | | int maxTimes = new Double(hours * 12).intValue(); |
| | | //预期最大收益 |
| | | BigDecimal profitTotal = AppContants.ONHOOK_BASIC_AMOUNT.multiply(hangingRevenue).setScale(2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal profitTotal = AppContants.ONHOOK_BASIC_AMOUNT.multiply(hangingRevenue).setScale(4, BigDecimal.ROUND_DOWN); |
| | | BigDecimal profitTotalNow = BigDecimal.ZERO; |
| | | for(int i=1;i<=maxTimes;){ |
| | | |
| | |
| | | JSONObject jsonObject = JSONUtil.parseObj(planMapValue); |
| | | jsonObject.set("isGoal","2"); |
| | | BigDecimal amount = new BigDecimal(jsonObject.get("amount").toString()); |
| | | BigDecimal profit = amount.multiply(hangingRevenue).setScale(2, BigDecimal.ROUND_DOWN); |
| | | profitTotalNow = profitTotalNow.add(profit).setScale(2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal profit = amount.multiply(hangingRevenue).setScale(4, BigDecimal.ROUND_DOWN); |
| | | profitTotalNow = profitTotalNow.add(profit).setScale(4, BigDecimal.ROUND_DOWN); |
| | | jsonObject.set("profit",profit); |
| | | linkedList.add(JSONUtil.toJsonStr(jsonObject)); |
| | | maxTimes --; |
| | |
| | | jsonObject.set("isGoal","1"); |
| | | } |
| | | BigDecimal amount = new BigDecimal(jsonObject.get("amount").toString()); |
| | | BigDecimal profit = amount.multiply(hangingRevenue).setScale(2, BigDecimal.ROUND_DOWN); |
| | | profitTotalNow = profitTotalNow.add(profit).setScale(2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal profit = amount.multiply(hangingRevenue).setScale(4, BigDecimal.ROUND_DOWN); |
| | | profitTotalNow = profitTotalNow.add(profit).setScale(4, BigDecimal.ROUND_DOWN); |
| | | jsonObject.set("profit",profit); |
| | | linkedList.add(JSONUtil.toJsonStr(jsonObject)); |
| | | maxTimes --; |
| | |
| | | JSONObject jsonObject = JSONUtil.parseObj(planMapValue); |
| | | jsonObject.set("isGoal","1"); |
| | | BigDecimal amount = new BigDecimal(jsonObject.get("amount").toString()); |
| | | BigDecimal profit = amount.multiply(hangingRevenue).setScale(2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal profit = amount.multiply(hangingRevenue).setScale(4, BigDecimal.ROUND_DOWN); |
| | | jsonObject.set("profit",profit); |
| | | linkedList.add(JSONUtil.toJsonStr(jsonObject)); |
| | | } |
| | |
| | | memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_YES); |
| | | memberCoinWithdrawDao.updateById(memberCoinWithdrawEntity); |
| | | //转出账户,总额减少,冻结减少 |
| | | BigDecimal amount = memberCoinWithdrawEntity.getAmount().setScale(2,BigDecimal.ROUND_DOWN); |
| | | BigDecimal amount = memberCoinWithdrawEntity.getAmount().setScale(4,BigDecimal.ROUND_DOWN); |
| | | Long memberIdOut = memberCoinWithdrawEntity.getMemberId(); |
| | | DappWalletCoinEntity dappWalletCoinEntityOut = dappWalletCoinDao.selectByMemberId(memberIdOut); |
| | | dappWalletCoinDao.delTotalAndDelFrozenById(dappWalletCoinEntityOut.getId(),amount); |
| | |
| | | } |
| | | //转出账户生成一条账户资金变化记录 |
| | | DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityOut = new DappAccountMoneyChangeEntity(memberIdOut, |
| | | dappWalletCoinEntityOut.getTotalAmount().setScale(2,BigDecimal.ROUND_DOWN), |
| | | dappWalletCoinEntityOut.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN), |
| | | amount, |
| | | dappWalletCoinEntityOut.getTotalAmount().setScale(2,BigDecimal.ROUND_DOWN).subtract(amount), |
| | | dappWalletCoinEntityOut.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN).subtract(amount), |
| | | content, |
| | | type); |
| | | dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntityOut); |
| | |
| | | } |
| | | //生成流水记录 |
| | | DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityIn = new DappAccountMoneyChangeEntity(dappMemberEntityIn.getId(), |
| | | dappWalletCoinEntityIn.getTotalAmount().setScale(2,BigDecimal.ROUND_DOWN), |
| | | dappWalletCoinEntityIn.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN), |
| | | amount, |
| | | dappWalletCoinEntityIn.getTotalAmount().setScale(2,BigDecimal.ROUND_DOWN).add(amount), |
| | | dappWalletCoinEntityIn.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN).add(amount), |
| | | "转账", |
| | | 4); |
| | | dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntityIn); |
| | |
| | | String levelMemberValue = levelMember.getValue(); |
| | | JSONObject levelMemberValueParse = JSONUtil.parseObj(levelMemberValue); |
| | | hangingRevenue = new BigDecimal(levelMemberValueParse.get("hangingRevenue").toString()) |
| | | .multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN); |
| | | .multiply(new BigDecimal(0.01)).setScale(4,BigDecimal.ROUND_DOWN); |
| | | } |
| | | //获取挂机字表的顺序 |
| | | LinkedList<String> isProfitPlan = new LinkedList<>(); |
| | |
| | | DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId); |
| | | BigDecimal availableAmount = dappWalletCoinEntity.getAvailableAmount(); |
| | | //如果中奖,返回本金加收益加剩余总挂机金额 |
| | | BigDecimal total = totalProfit.add(totalAmount).add(igtOnHookPlanOrder.getAvaAmount()).setScale(2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal total = totalProfit.add(totalAmount).add(igtOnHookPlanOrder.getAvaAmount()).setScale(4, BigDecimal.ROUND_DOWN); |
| | | dappWalletCoinDao.addTotalAndaddAvailableById(memberId,total); |
| | | //生成流水记录 |
| | | BigDecimal add = availableAmount.add(total); |
| | |
| | | apiPlanInfoVo.setId(igtOnHookPlanOrder.getId()); |
| | | apiPlanInfoVo.setAvaAmount(igtOnHookPlanOrder.getAvaAmount()); |
| | | BigDecimal totalProfit = igtOnHookPlanOrderItemDao.selectTotalProfitByByOrderIdAndMemberIdAndState(igtOnHookPlanOrder.getId(),memberId,1,2); |
| | | apiPlanInfoVo.setProfit(totalProfit.setScale(2,BigDecimal.ROUND_DOWN)); |
| | | apiPlanInfoVo.setProfit(totalProfit.setScale(4,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | } |
| | | return new FebsResponse().success().data(apiPlanInfoVo); |
| | |
| | | //挂机收益 |
| | | BigDecimal hangingRevenue = new BigDecimal(profitValue.get("hangingRevenue").toString()).divide(new BigDecimal(100)); |
| | | //预计收益 |
| | | BigDecimal expectProfit = balance.multiply(balance).setScale(2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal expectProfit = balance.multiply(balance).setScale(4, BigDecimal.ROUND_DOWN); |
| | | } |
| | | } |
| | | |
| | |
| | | if(BigDecimal.ZERO.compareTo(totalAmount) > 0){ |
| | | memberInfoVo.setTotalAmount(AppContants.INIT_MONEY); |
| | | }else{ |
| | | memberInfoVo.setTotalAmount(totalAmount.setScale(2,BigDecimal.ROUND_DOWN)); |
| | | memberInfoVo.setTotalAmount(totalAmount.setScale(4,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | if(BigDecimal.ZERO.compareTo(frozenAmount) > 0){ |
| | | memberInfoVo.setFrozenAmount(AppContants.INIT_MONEY); |
| | | }else{ |
| | | memberInfoVo.setFrozenAmount(frozenAmount.setScale(2,BigDecimal.ROUND_DOWN)); |
| | | memberInfoVo.setFrozenAmount(frozenAmount.setScale(4,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | if(BigDecimal.ZERO.compareTo(availableAmount) > 0){ |
| | | memberInfoVo.setAvailableAmount(AppContants.INIT_MONEY); |
| | | }else{ |
| | | memberInfoVo.setAvailableAmount(availableAmount.setScale(2,BigDecimal.ROUND_DOWN)); |
| | | memberInfoVo.setAvailableAmount(availableAmount.setScale(4,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | } |
| | | return memberInfoVo; |
| | |
| | | DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId); |
| | | ApiMemberWalletCoinVo apiMemberWalletCoinVo = new ApiMemberWalletCoinVo(); |
| | | if(ObjectUtil.isNotEmpty(dappWalletCoinEntity)){ |
| | | apiMemberWalletCoinVo.setTotalAmount(dappWalletCoinEntity.getTotalAmount().setScale(2,BigDecimal.ROUND_DOWN)); |
| | | apiMemberWalletCoinVo.setFrozenAmount(dappWalletCoinEntity.getFrozenAmount().setScale(2,BigDecimal.ROUND_DOWN)); |
| | | apiMemberWalletCoinVo.setAvailableAmount(dappWalletCoinEntity.getAvailableAmount().setScale(2,BigDecimal.ROUND_DOWN)); |
| | | apiMemberWalletCoinVo.setTotalAmount(dappWalletCoinEntity.getTotalAmount().setScale(4,BigDecimal.ROUND_DOWN)); |
| | | apiMemberWalletCoinVo.setFrozenAmount(dappWalletCoinEntity.getFrozenAmount().setScale(4,BigDecimal.ROUND_DOWN)); |
| | | apiMemberWalletCoinVo.setAvailableAmount(dappWalletCoinEntity.getAvailableAmount().setScale(4,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | return new FebsResponse().success().data(apiMemberWalletCoinVo); |
| | | } |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse transferInside(ApiTransferInsideDto apiTransferInsideDto) { |
| | | //判断入参 |
| | | BigDecimal balance = apiTransferInsideDto.getBalance() == null ? BigDecimal.ZERO : apiTransferInsideDto.getBalance().setScale(2,BigDecimal.ROUND_DOWN); |
| | | BigDecimal balance = apiTransferInsideDto.getBalance() == null ? BigDecimal.ZERO : apiTransferInsideDto.getBalance().setScale(4,BigDecimal.ROUND_DOWN); |
| | | if(BigDecimal.ZERO.compareTo(balance) >= 0){ |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("balance_err_001")); |
| | | } |
| | |
| | | //查询转出会员 |
| | | //转出会员当前余额要大于等于划转金额 |
| | | DappWalletCoinEntity dappWalletCoinEntityOut = dappWalletCoinDao.selectByMemberId(memberIdOut); |
| | | BigDecimal availableAmountOut = dappWalletCoinEntityOut.getAvailableAmount().setScale(2,BigDecimal.ROUND_DOWN); |
| | | BigDecimal availableAmountOut = dappWalletCoinEntityOut.getAvailableAmount().setScale(4,BigDecimal.ROUND_DOWN); |
| | | if(availableAmountOut.compareTo(balance) < 0){ |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("balance_err_002")); |
| | | } |
| | |
| | | private BigDecimal selfCoinCount; |
| | | |
| | | public BigDecimal getCoinCount() { |
| | | return coinCount.setScale(2, RoundingMode.HALF_DOWN); |
| | | return coinCount.setScale(4, RoundingMode.HALF_DOWN); |
| | | } |
| | | } |
| | |
| | | DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId); |
| | | BigDecimal availableAmount = dappWalletCoinEntity.getAvailableAmount(); |
| | | //如果中奖,返回本金加收益加剩余投注金额 |
| | | BigDecimal total = totalProfit.add(totalAmount).add(igtOnHookPlanOrder.getAvaAmount()).setScale(2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal total = totalProfit.add(totalAmount).add(igtOnHookPlanOrder.getAvaAmount()).setScale(4, BigDecimal.ROUND_DOWN); |
| | | dappWalletCoinDao.addTotalAndaddAvailableById(memberId,total); |
| | | |
| | | BigDecimal add = availableAmount.add(total); |