xiaoyong931011
2022-02-25 b5c1f79566071fb8577546a3abeecba7af953e88
20222223
2 files modified
17 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/coin/dao/ZhiyaRewardDao.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/coin/service/impl/ZhiyaServiceImpl.java 15 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/coin/dao/ZhiyaRewardDao.java
@@ -3,5 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xcong.excoin.modules.coin.entity.ZhiyaRewardEntity;
import java.util.Date;
public interface ZhiyaRewardDao extends BaseMapper<ZhiyaRewardEntity> {
}
src/main/java/com/xcong/excoin/modules/coin/service/impl/ZhiyaServiceImpl.java
@@ -313,12 +313,12 @@
        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);
                //获取今天之前满足发放奖励的全部质押单
                //生效时间小于当前时间
                //状态为生效中
@@ -329,12 +329,11 @@
                        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
                        //给账户的冻结
                    }
                }
            }