🎨 新增清理机器人和定时设置免费定时任务
This commit is contained in:
@@ -58,5 +58,38 @@ func Timer() {
|
||||
if err != nil {
|
||||
fmt.Println("add timer error:", err)
|
||||
}
|
||||
|
||||
// 定时检查讲师VIP是否过期
|
||||
_, err = global.GVA_Timer.AddTaskByFunc("CheckTeacherVip", "0 0/5 * * * ?", func() {
|
||||
err5 := task.CheckTeacherVip(global.GVA_DB)
|
||||
if err5 != nil {
|
||||
fmt.Println("清理过期讲师VIP定时任务失败:", err5)
|
||||
}
|
||||
}, "定时清理过期讲师VIP日志内容:", option...)
|
||||
if err != nil {
|
||||
fmt.Println("add timer error:", err)
|
||||
}
|
||||
|
||||
// 清理机器人
|
||||
_, err = global.GVA_Timer.AddTaskByFunc("ClearBot", "0 0 22 * * ?", func() {
|
||||
err6 := task.ClearBot(global.GVA_DB)
|
||||
if err6 != nil {
|
||||
fmt.Println("清理机器人定时任务失败:", err6)
|
||||
}
|
||||
}, "定时清理机器人日志内容:", option...)
|
||||
if err != nil {
|
||||
fmt.Println("add timer error:", err)
|
||||
}
|
||||
|
||||
// 每天21:20 将所有文章设为免费
|
||||
_, err = global.GVA_Timer.AddTaskByFunc("SetArticleFree", "0 20 21 * * ?", func() {
|
||||
err7 := task.SetArticleFree(global.GVA_DB)
|
||||
if err7 != nil {
|
||||
fmt.Println("将文章设为免费定时任务失败:", err7)
|
||||
}
|
||||
}, "将所有文章设为免费", option...)
|
||||
if err != nil {
|
||||
fmt.Println("add timer error:", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
24
task/checkTeacherVip.go
Normal file
24
task/checkTeacherVip.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"git.echol.cn/loser/lckt/global"
|
||||
"git.echol.cn/loser/lckt/model/app"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// CheckTeacherVip 检查讲师VIP是否过期
|
||||
func CheckTeacherVip(db *gorm.DB) error {
|
||||
global.GVA_LOG.Info("开始检查用户讲师包月是否过期...")
|
||||
var userTeacherVips []app.UserTeacherVip
|
||||
// 根据当前时间和expire_at对比 查看是否到过期时间
|
||||
db.Where("expire_at < ? AND is_expire = 1", gorm.Expr("NOW()")).Find(&userTeacherVips)
|
||||
for _, u := range userTeacherVips {
|
||||
u.IsExpire = 2
|
||||
err := db.Save(&u).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
global.GVA_LOG.Info("检查用户讲师包月是否过期完成...")
|
||||
return nil
|
||||
}
|
14
task/clearBot.go
Normal file
14
task/clearBot.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// ClearBot 清理机器人消息
|
||||
func ClearBot(db *gorm.DB) error {
|
||||
// 删除所有机器人
|
||||
if err := db.Exec("TRUNCATE TABLE bots").Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
8
task/setArticleFree.go
Normal file
8
task/setArticleFree.go
Normal file
@@ -0,0 +1,8 @@
|
||||
package task
|
||||
|
||||
import "gorm.io/gorm"
|
||||
|
||||
// SetArticleFree 定时将到期的付费文章设置为免费
|
||||
func SetArticleFree(db *gorm.DB) error {
|
||||
return db.Exec("UPDATE `article` SET is_free = 1, price = 0 WHERE is_free = 0 AND `status` = 1").Error
|
||||
}
|
Reference in New Issue
Block a user