|
@@ -6,12 +6,10 @@ import (
|
|
|
"app.yhyue.com/moapp/message/config"
|
|
|
"app.yhyue.com/moapp/message/db"
|
|
|
"context"
|
|
|
- "fmt"
|
|
|
"github.com/gogf/gf/v2/os/gcfg"
|
|
|
"github.com/gogf/gf/v2/os/gcron"
|
|
|
"github.com/gogf/gf/v2/os/gctx"
|
|
|
"github.com/gogf/gf/v2/os/gtime"
|
|
|
- "log"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -33,7 +31,7 @@ func init() {
|
|
|
monitorConfig = config.OrderMonitorConfig{
|
|
|
StartTime: gtime.NewFromStrLayout(gcfg.Instance().MustGet(gctx.New(), "orderMonitor.startTime").String(), "2006-01-02T15:04:05Z").Time,
|
|
|
EndTime: gtime.NewFromStrLayout(gcfg.Instance().MustGet(gctx.New(), "orderMonitor.endTime").String(), "2006-01-02T15:04:05Z").Time,
|
|
|
- Date111: gcfg.Instance().MustGet(gctx.New(), "orderMonitor.date111").String(),
|
|
|
+ Date111: date.FormatDate(>ime.NewFromStrLayout(gcfg.Instance().MustGet(gctx.New(), "orderMonitor.date111").String(), "2006-01-02T15:04:05Z").Time, date.Date_Short_Layout),
|
|
|
OpenCron: gcfg.Instance().MustGet(gctx.New(), "orderMonitor.openCron").String(),
|
|
|
SelectCron: gcfg.Instance().MustGet(gctx.New(), "orderMonitor.selectCron").String(),
|
|
|
}
|
|
@@ -52,18 +50,18 @@ func SelectOrderTask() {
|
|
|
// 订单查询任务
|
|
|
_, err = gcron.Add(ctx, monitorConfig.SelectCron, monitor, "selectJob")
|
|
|
if err != nil {
|
|
|
- log.Println("定时任务selectJob添加失败", err)
|
|
|
+ logger.Error("定时任务selectJob添加失败", err)
|
|
|
}
|
|
|
|
|
|
if time.Now().Before(monitorConfig.StartTime) { // 活动未开始
|
|
|
gcron.Stop("selectJob") // 停掉订单查询任务 等后边的定时任务开启
|
|
|
- log.Println("任务1stop")
|
|
|
+ logger.Info("selectJob stop")
|
|
|
}
|
|
|
// 开启定时任务
|
|
|
_, err = gcron.Add(ctx, monitorConfig.OpenCron, func(ctx context.Context) {
|
|
|
now := time.Now()
|
|
|
if now.After(monitorConfig.EndTime) { // 活动已结束 移除掉任务
|
|
|
- log.Println("活动结束,移除任务")
|
|
|
+ logger.Info("活动结束,移除任务")
|
|
|
gcron.Remove("openCronJob")
|
|
|
gcron.Remove("selectJob")
|
|
|
}
|
|
@@ -71,19 +69,19 @@ func SelectOrderTask() {
|
|
|
if now.After(monitorConfig.StartTime) && now.Before(monitorConfig.EndTime) {
|
|
|
flag11 = false // 重置
|
|
|
flag111 = false
|
|
|
- log.Println("开启任务")
|
|
|
gcron.Start("selectJob")
|
|
|
+ logger.Info("selectJob start")
|
|
|
}
|
|
|
}, "openCronJob")
|
|
|
if err != nil {
|
|
|
- log.Println("定时任务openCronJob失败", err)
|
|
|
+ logger.Info("定时任务openCronJob失败", err)
|
|
|
}
|
|
|
- log.Println("任务2启动成功")
|
|
|
+ logger.Info("openCronJob 启动成功")
|
|
|
}
|
|
|
|
|
|
// 订单监控
|
|
|
func monitor(ctx context.Context) {
|
|
|
- log.Println("查询")
|
|
|
+ logger.Info("开始本轮订单查询")
|
|
|
now := time.Now()
|
|
|
if now.After(monitorConfig.StartTime) && now.Before(monitorConfig.EndTime) {
|
|
|
// 查订单表
|
|
@@ -101,15 +99,15 @@ func monitor(ctx context.Context) {
|
|
|
}
|
|
|
if saveWinnerInfo(data) {
|
|
|
flag11 = true
|
|
|
- logger.Error("中奖信息保存成功:", data)
|
|
|
+ logger.Info("中奖信息保存成功:", data)
|
|
|
} else {
|
|
|
logger.Error("中奖信息保存失败:", data)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
// 需要查第111个 日期范围内
|
|
|
- log.Println(1222, date.NowFormat(date.Date_Short_Layout), monitorConfig.Date111, 333)
|
|
|
if date.NowFormat(date.Date_Short_Layout) == monitorConfig.Date111 {
|
|
|
+ logger.Info("开始查询第111个人员")
|
|
|
rs111 := selectOrder(111)
|
|
|
if rs111 != nil {
|
|
|
logger.Info("查询到第111个人员")
|
|
@@ -131,19 +129,19 @@ func monitor(ctx context.Context) {
|
|
|
flag111 = true
|
|
|
}
|
|
|
if flag111 && flag11 {
|
|
|
- logger.Info("已查询到 暂停任务")
|
|
|
+ logger.Info("今日已查询到 暂停任务")
|
|
|
gcron.Stop("selectJob")
|
|
|
+ logger.Info("selectJob stop")
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 查订单表
|
|
|
func selectOrder(num int) map[string]interface{} {
|
|
|
- sql := "SELECT user_phone,user_id,pay_time FROM `dataexport_order` a WHERE a.order_status = 1 and is_backstage_order=0 AND TO_DAYS(create_time) = to_days(now()) ORDER BY a.pay_time limit ?;"
|
|
|
- fmt.Println(sql)
|
|
|
- rs := db.Mysql.SelectBySql(sql, num)
|
|
|
- if rs != nil && len(*rs) == num {
|
|
|
- return (*rs)[num-1]
|
|
|
+ sql := "SELECT user_phone,user_id,pay_time FROM `dataexport_order` WHERE product_type in ('VIP订阅','大会员','数据流量包') and pay_time !=null and order_status = 1 and is_backstage_order=0 AND TO_DAYS(create_time) = to_days(now()) ORDER BY pay_time limit ?,1;"
|
|
|
+ rs := db.Mysql.SelectBySql(sql, num-1)
|
|
|
+ if rs != nil && len(*rs) == 1 {
|
|
|
+ return (*rs)[0]
|
|
|
}
|
|
|
logger.Info("未查到", rs)
|
|
|
return nil
|