作者 tangxvhui

添加字段

package domain
import (
"errors"
"sort"
"time"
)
... ... @@ -31,11 +32,13 @@ type Task struct {
Alias string `json:"alias"` // 任务别名
Leader TaskLeader `json:"leader"` // 任务负责人
Status TaskState `json:"status"` // 任务的状态
Level int `json:"level"` // 优先级,值越小优先级越高
LevelName string `json:"levelName"` // 优先级名称
Level int `json:"level"` // 优先级 (优先级字段表示的意义变更,不再需要这个字段,仅数据保留)
LevelName string `json:"levelName"` // 字段表示的意义变更; 原来 (“优先级名称“)=> 现在 (“任务类型“)
SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高
EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
RelatedUser []int `json:"relatedUser"` // 相关的员工id
RunAt int64 `json:"runAt"` // 启动的时间戳,秒
StopAt int64 `json:"stopAt"` // 停止的时间戳,秒
RunAt int64 `json:"runAt"` // 启动的时间戳,单位:秒
StopAt int64 `json:"stopAt"` // 停止的时间戳,单位:秒
Anomaly int `json:"anomaly"` // 异常反馈的次数
WarnFlag TaskWarnFlag `json:"warnFlag"` // 里程碑异常标记
CurrentStage TaskStage `json:"currentStage"` // 当前执行的里程碑
... ... @@ -95,6 +98,29 @@ func (t *Task) SetCurrentStage(stageList []*TaskStage) {
}
}
// 设置优先级的值
func (t *Task) SetSortBy(a int) error {
switch a {
case 100, 200, 300, 0:
default:
return errors.New("优先级值错误")
}
t.SortBy = a
return nil
}
// 获取优先级的名称描述
func (t *Task) GetNameSortBy() string {
nameMap := map[int]string{
100: "高",
200: "中",
300: "低",
0: "无",
}
return nameMap[t.SortBy]
}
type TaskRepository interface {
Save(param *Task) error
Remove(id int) error
... ...
... ... @@ -9,22 +9,24 @@ import (
// 任务
type Task struct {
tableName struct{} `comment:"任务" pg:"task"`
Id int `pg:"id,pk"` //
CreatedAt time.Time `pg:"created_at"` //
UpdatedAt time.Time `pg:"updated_at"` //
DeletedAt *time.Time `pg:"deleted_at"` //
Name string `pg:"name"` // 任务名称
Alias string `pg:"alias"` //
CompanyId int `pg:"company_id"` //
Leader domain.TaskLeader `pg:"leader,type:jsonb"` // 任务负责人
Status int `pg:"status,use_zero"` // 任务的状态
Level int `pg:"level,use_zero"` // 优先级,值越小优先级越高
LevelName string `pg:"level_name"` // 优先级名称
RelatedUser []int `pg:"related_user"`
Id int `pg:"id,pk"` //
CreatedAt time.Time `pg:"created_at"` //
UpdatedAt time.Time `pg:"updated_at"` //
DeletedAt *time.Time `pg:"deleted_at"` //
Name string `pg:"name"` // 任务名称
Alias string `pg:"alias"` //
CompanyId int `pg:"company_id"` //
Leader domain.TaskLeader `pg:"leader,type:jsonb"` // 任务负责人
Status int `pg:"status,use_zero"` // 任务的状态
Level int `pg:"level,use_zero"` // 优先级,值越小优先级越高
LevelName string `pg:"level_name"` // 优先级名称
RelatedUser []int `pg:"related_user"` //
LastStage domain.TaskStage `pg:"last_stage,type:jsonb"` // 上一个完成的里程碑,添加type:jsonb 防止orm生成sql时字段丢失
RunAt int64 `pg:"run_at,use_zero"` // 启动的时间
StopAt int64 `pg:"stop_at,use_zero" ` // 停止的时间
Anomaly int `pg:"anomaly,use_zero"` // 异常反馈的数量
WarnFlag int `pg:"warn_flag,use_zero"` // 里程碑异常标记
CurrentStage domain.TaskStage `pg:"current_stage,type:jsonb"` // 添加type:jsonb 防止orm(可能是特性)生成sql时字段丢失
SortBy int `pg:"sort_by"` // 优先级排序;值越小优先级越高
EndTime int64 `pg:"end_time"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
}
... ...
... ... @@ -37,6 +37,8 @@ func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task {
Status: domain.TaskState(d.Status),
Level: d.Level,
LevelName: d.LevelName,
SortBy: d.SortBy,
EndTime: d.EndTime,
RelatedUser: d.RelatedUser,
RunAt: d.RunAt,
StopAt: d.StopAt,
... ... @@ -65,12 +67,14 @@ func (repo *TaskRepository) Save(param *domain.Task) error {
Level: param.Level,
LevelName: param.LevelName,
RelatedUser: param.RelatedUser,
LastStage: param.LastStage,
RunAt: param.RunAt,
StopAt: param.StopAt,
Anomaly: param.Anomaly,
WarnFlag: int(param.WarnFlag),
CurrentStage: param.CurrentStage,
LastStage: param.LastStage,
SortBy: param.SortBy,
EndTime: param.EndTime,
}
db := repo.transactionContext.PgTx
if m.Id == 0 {
... ...