From a2c7a947f71d87c44fbb2de149b5a5e46bf7180d Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 21 Oct 2022 18:38:43 +0800
Subject: [PATCH] 20221021
---
src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java | 106 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 96 insertions(+), 10 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java b/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
index 05f9b0b..93d4470 100644
--- a/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
+++ b/src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
@@ -1,10 +1,15 @@
package cc.mrbird.febs.job;
+import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.dapp.entity.*;
import cc.mrbird.febs.dapp.mapper.*;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.jline.utils.Log;
import org.springframework.beans.factory.annotation.Autowired;
@@ -12,6 +17,9 @@
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.text.Format;
+import java.text.SimpleDateFormat;
import java.util.List;
@Slf4j
@@ -33,6 +41,12 @@
@Autowired
private DappMemberDao dappMemberDao;
+ @Autowired
+ private DappOnHookAwardDao dappOnHookAwardDao;
+
+ @Autowired
+ private RedisUtils redisUtils;
+
/**
* 五分钟更新一次数据
* 让挂机字表的状态为1:已生效
@@ -43,29 +57,26 @@
// @Scheduled(cron = "0/5 * * * * ? ")
@Scheduled(cron = "0 0/5 * * * ? ")
public void updatePlanOrderItem(){
- Log.info("开始更新挂机字表状态");
+ Log.info("开始更新挂机子表状态");
List<IgtOnHookPlanOrder> igtOnHookPlanOrders = igtOnHookPlanOrderDao.selectByState(1);
if(CollUtil.isEmpty(igtOnHookPlanOrders)){
return;
}
for(IgtOnHookPlanOrder igtOnHookPlanOrder : igtOnHookPlanOrders){
//让挂机子表的状态为1:已生效
- //todo 获取所属期数去更新数据
Long orderId = igtOnHookPlanOrder.getId();
Long memberId = igtOnHookPlanOrder.getMemberId();
IgtOnHookPlanOrderItem igtOnHookPlanOrderItem = igtOnHookPlanOrderItemDao.selectByOrderIdAndMemberIdAndState(orderId,memberId,2);
if(ObjectUtil.isNotEmpty(igtOnHookPlanOrderItem)){
igtOnHookPlanOrderItem.setState(1);
igtOnHookPlanOrderItemDao.updateById(igtOnHookPlanOrderItem);
- if(BigDecimal.ZERO.compareTo(igtOnHookPlanOrderItem.getProfit()) < 0){
- //增加挂机主表的挂机总收益和增加挂机剩余金额
- Integer updateCount = igtOnHookPlanOrderDao.addAvaAmountAddProfitById(igtOnHookPlanOrder.getId()
- ,igtOnHookPlanOrderItem.getProfit()
- ,igtOnHookPlanOrderItem.getAmount());
+ if(2 == igtOnHookPlanOrderItem.getIsGoal()){
+ //增加挂机主表的挂机总收益
+ Integer updateCount = igtOnHookPlanOrderDao.AddProfitById(igtOnHookPlanOrder.getId()
+ ,igtOnHookPlanOrderItem.getProfit());
}else{
- //增加挂机主表的挂机总收益和减少挂机剩余金额
+ //减少挂机剩余金额
Integer updateCount = igtOnHookPlanOrderDao.updateAvaAmountById(igtOnHookPlanOrder.getId()
- ,igtOnHookPlanOrderItem.getProfit()
,igtOnHookPlanOrderItem.getAmount());
}
}
@@ -122,7 +133,7 @@
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);
@@ -141,4 +152,79 @@
}
+ @Scheduled(cron = "0 0/1 * * * ? ")
+ public void createAwardInfo(){
+ Log.info("挂架开奖记录");
+ /**
+ * 每天跑一次,直接生成全部的记录
+ * 产生中奖记录
+ */
+ //每天开奖次数 288次
+ DateTime date = DateUtil.date();
+
+ String aWardTime = DateUtil.format(date, "yyyy-MM-dd");
+ DateTime aWardTimeStart = DateUtil.parseDateTime(aWardTime + " 00:00:00");
+// DateTime dateTime = DateUtil.offsetMinute(aWardTimeStart, 5);
+
+
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+ String yyyyMMdd = sdf.format(date);
+ QueryWrapper<DappOnHookAward> dappOnHookAwardQueryWrapper = new QueryWrapper();
+ dappOnHookAwardQueryWrapper.like("record_num",yyyyMMdd);
+ Integer selectCount = dappOnHookAwardDao.selectCount(dappOnHookAwardQueryWrapper);
+ if(0 < selectCount){
+ return;
+ }
+ Format formatCount = new DecimalFormat("000");
+ //一般都是将累加的数字当做一些单号的一部分,format要求string
+ int dayMillise = (24 * 60) / 5;
+ for(int i= 1;i <= dayMillise;i++){
+ DappOnHookAward dappOnHookAward = new DappOnHookAward();
+ int randomInt = RandomUtil.randomInt(10000, 99999);
+ dappOnHookAward.setAwardNum(Integer.toString(randomInt));
+ dappOnHookAward.setState(2);
+ String str = formatCount.format(i);
+ dappOnHookAward.setRecordNum(yyyyMMdd+str);
+ dappOnHookAward.setAwardTime(aWardTimeStart);
+ dappOnHookAwardDao.insert(dappOnHookAward);
+ aWardTimeStart = DateUtil.offsetMinute(aWardTimeStart, 5);
+ }
+ }
+
+ @Scheduled(cron = "0 0/5 * * * ? ")
+ public void updateAwardInfo(){
+ Log.info("更新挂架开奖记录");
+ DateTime date = DateUtil.date();
+
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ String yyyyMMddHHMM = sdf.format(date);
+ DappOnHookAward dappOnHookAward = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM);
+ dappOnHookAward.setState(1);
+ dappOnHookAwardDao.updateById(dappOnHookAward);
+ String redisKey = "on_hook_award_id";
+ String onHookAwardRedisId = redisUtils.getString(redisKey);
+ if(StrUtil.isBlank(onHookAwardRedisId)){
+ redisUtils.set(redisKey,dappOnHookAward.getId().toString(),0L);
+ }
+ redisUtils.set(redisKey,dappOnHookAward.getId().toString(),0L);
+
+ }
+
+ public static void main(String[] args) {
+
+ DateTime date = DateUtil.date();
+
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ String yyyyMMddHHMM = sdf.format(date);
+
+ System.out.println(yyyyMMddHHMM);
+
+ DateTime date1 = DateUtil.date();
+
+ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ String yyyyMMddHHMM1 = sdf1.format(date1);
+
+ System.out.println(yyyyMMddHHMM1);
+ }
+
}
--
Gitblit v1.9.1