| | |
| | | public void grantZhiyaAmount() { |
| | | //获取每日总产出 |
| | | BigDecimal gusdReward = new BigDecimal(redisUtils.getString("GUSDREWARD")); |
| | | //获取每日质押总数 |
| | | //静态算力 = 每日总产出的80% |
| | | BigDecimal fixedGusdReward = gusdReward.multiply(new BigDecimal(0.8)); |
| | | //获取每日全网总算力 |
| | | 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); |
| | | //获取今天之前满足发放奖励的全部质押单 |
| | | //生效时间小于当前时间 |
| | | //状态为生效中 |
| | |
| | | zhiyaRewardEntity.setRecordId(zhiYaRecordEntity.getId()); |
| | | zhiyaRewardEntity.setRecordNo(zhiYaRecordEntity.getOrderNo()); |
| | | zhiyaRewardEntity.setMemberId(zhiYaRecordEntity.getMemberId()); |
| | | zhiyaRewardEntity.setRewardAmout(divide.multiply(zhiYaRecordEntity.getZhiyaCnt())); |
| | | //(个人算力/每日全网总算力)*静态算力 |
| | | BigDecimal divide1 = zhiYaRecordEntity.getZhiyaCnt().divide(totalGusdBigDecimal, 2, BigDecimal.ROUND_HALF_UP); |
| | | BigDecimal multiply = divide1.multiply(fixedGusdReward); |
| | | zhiyaRewardEntity.setRewardAmout(multiply); |
| | | zhiyaRewardDao.insert(zhiyaRewardEntity); |
| | | |
| | | //给团队上级发送奖励goldrice |
| | | //给账户的冻结 |
| | | |
| | | } |
| | | } |
| | | } |