feat: 迁移plant
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
plantModel "sundynix-micro-go/app/plant/model"
|
||||
"sundynix-micro-go/app/plant/rpc/internal/svc"
|
||||
)
|
||||
|
||||
// ExpireCareTaskJob 每日检查过期养护任务(status=1 且 due_date < 今天 → 标记为 status=3)
|
||||
type ExpireCareTaskJob struct {
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewExpireCareTaskJob(svcCtx *svc.ServiceContext) *ExpireCareTaskJob {
|
||||
return &ExpireCareTaskJob{svcCtx: svcCtx}
|
||||
}
|
||||
|
||||
func (j *ExpireCareTaskJob) Run() {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
|
||||
defer cancel()
|
||||
|
||||
today := time.Now().Truncate(24 * time.Hour)
|
||||
logx.WithContext(ctx).Infof("[CRON] 开始执行养护任务过期检查, 基准时间: %v", today)
|
||||
|
||||
res := j.svcCtx.DB.WithContext(ctx).
|
||||
Model(&plantModel.CareTask{}).
|
||||
Where("status = 1 AND due_date < ?", today).
|
||||
Update("status", 3)
|
||||
|
||||
if res.Error != nil {
|
||||
logx.WithContext(ctx).Errorf("[CRON] 养护任务过期检查失败: %v", res.Error)
|
||||
return
|
||||
}
|
||||
logx.WithContext(ctx).Infof("[CRON] 养护任务过期检查完成,共标记 %d 条任务为过期", res.RowsAffected)
|
||||
}
|
||||
Reference in New Issue
Block a user