feat: 迁移plant

This commit is contained in:
Blizzard
2026-05-23 13:55:05 +08:00
parent a93477ea8e
commit ae6d03d351
228 changed files with 25296 additions and 917 deletions
@@ -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)
}