代码拉取完成,页面将自动刷新
package task
import (
"database/sql/driver"
"errors"
"strings"
"time"
"gorm.io/gorm"
)
type StringSlice []string
func (s *StringSlice) Scan(src interface{}) error {
str, ok := src.([]byte)
if !ok {
return errors.New("failed to scan StringSlice field - source is not a string")
}
*s = strings.Split(string(str), ",")
return nil
}
func (s StringSlice) Value() (driver.Value, error) {
if s == nil || len(s) == 0 {
return nil, nil
}
return strings.Join(s, ","), nil
}
// GroupMeta 组详情
type GroupMeta struct {
ID uint `json:"-" bson:"-" gorm:"column:_id;primarykey;comment:_id"`
// GroupID 组的唯一标识
GroupID string `json:"group_id" bson:"_id" gorm:"column:id;index;comment:id"`
// 组名称
Name string `json:"name" bson:"name" gorm:"column:name;comment:组名称"`
// TaskIDs 接管的任务id
TaskIDs StringSlice `json:"task_ids" bson:"task_ids" gorm:"column:task_ids;comment:接管的任务id;type:text"`
// TriggerCompleted 是否触发完成
TriggerCompleted bool `json:"trigger_chord" bson:"trigger_chord" gorm:"column:trigger_chord;comment:是否触发完成"`
// Lock 是否锁定
Lock bool `json:"lock" gorm:"column:lock;comment:锁"`
// TTL 有效时间
TTL int64 `json:"ttl,omitempty" bson:"ttl,omitempty" gorm:"column:ttl;comment:过期时间"`
// CreateAt 创建时间
CreateAt time.Time `json:"create_at" bson:"create_at" gorm:"column:create_at;comment:创建时间"`
DeletedAt gorm.DeletedAt `json:"-" bson:"-" gorm:"index"`
}
func InitGroupMeta(groupID string, name string, ttl int64, taskIDs ...string) *GroupMeta {
return &GroupMeta{
GroupID: groupID,
Name: name,
TaskIDs: taskIDs,
CreateAt: time.Now().Local(),
TTL: ttl,
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。