package Task import ( "ColdVerify_server/logs" "time" "github.com/beego/beego/v2/adapter/orm" ) // TaskUid 用于保存已经导出的任务唯一标识,避免重复生成 type TaskUid struct { Id int `orm:"column(ID);size(11);auto;pk"` Uid string `orm:"column(T_uid);size(64);unique"` ExportBatch string `orm:"size(64);null"` // 批次标识,便于追踪 CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"` } func (t *TaskUid) TableName() string { return "task_uid" } func init() { orm.RegisterModel(new(TaskUid)) } // TaskUidExists 判断唯一标识是否已经生成/导出过 func TaskUidExists(uid string) bool { o := orm.NewOrm() return o.QueryTable(new(TaskUid)).Filter("T_uid", uid).Exist() } // SaveTaskUids 批量写入导出的唯一标识 func SaveTaskUids(uids []string, batch string) error { if len(uids) == 0 { return nil } o := orm.NewOrm() records := make([]TaskUid, 0, len(uids)) for _, uid := range uids { records = append(records, TaskUid{ Uid: uid, ExportBatch: batch, }) } if _, err := o.InsertMulti(len(records), records); err != nil { logs.Error("SaveTaskUids InsertMulti error:", err) return err } return nil }