作者 tangxvhui

添加字段

1 package domain 1 package domain
2 2
3 import ( 3 import (
  4 + "errors"
4 "sort" 5 "sort"
5 "time" 6 "time"
6 ) 7 )
@@ -31,11 +32,13 @@ type Task struct { @@ -31,11 +32,13 @@ type Task struct {
31 Alias string `json:"alias"` // 任务别名 32 Alias string `json:"alias"` // 任务别名
32 Leader TaskLeader `json:"leader"` // 任务负责人 33 Leader TaskLeader `json:"leader"` // 任务负责人
33 Status TaskState `json:"status"` // 任务的状态 34 Status TaskState `json:"status"` // 任务的状态
34 - Level int `json:"level"` // 优先级,值越小优先级越高  
35 - LevelName string `json:"levelName"` // 优先级名称 35 + Level int `json:"level"` // 优先级 (优先级字段表示的意义变更,不再需要这个字段,仅数据保留)
  36 + LevelName string `json:"levelName"` // 字段表示的意义变更; 原来 (“优先级名称“)=> 现在 (“任务类型“)
  37 + SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高
  38 + EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
36 RelatedUser []int `json:"relatedUser"` // 相关的员工id 39 RelatedUser []int `json:"relatedUser"` // 相关的员工id
37 - RunAt int64 `json:"runAt"` // 启动的时间戳,秒  
38 - StopAt int64 `json:"stopAt"` // 停止的时间戳,秒 40 + RunAt int64 `json:"runAt"` // 启动的时间戳,单位:秒
  41 + StopAt int64 `json:"stopAt"` // 停止的时间戳,单位:秒
39 Anomaly int `json:"anomaly"` // 异常反馈的次数 42 Anomaly int `json:"anomaly"` // 异常反馈的次数
40 WarnFlag TaskWarnFlag `json:"warnFlag"` // 里程碑异常标记 43 WarnFlag TaskWarnFlag `json:"warnFlag"` // 里程碑异常标记
41 CurrentStage TaskStage `json:"currentStage"` // 当前执行的里程碑 44 CurrentStage TaskStage `json:"currentStage"` // 当前执行的里程碑
@@ -95,6 +98,29 @@ func (t *Task) SetCurrentStage(stageList []*TaskStage) { @@ -95,6 +98,29 @@ func (t *Task) SetCurrentStage(stageList []*TaskStage) {
95 } 98 }
96 } 99 }
97 100
  101 +// 设置优先级的值
  102 +func (t *Task) SetSortBy(a int) error {
  103 + switch a {
  104 + case 100, 200, 300, 0:
  105 + default:
  106 + return errors.New("优先级值错误")
  107 + }
  108 +
  109 + t.SortBy = a
  110 + return nil
  111 +}
  112 +
  113 +// 获取优先级的名称描述
  114 +func (t *Task) GetNameSortBy() string {
  115 + nameMap := map[int]string{
  116 + 100: "高",
  117 + 200: "中",
  118 + 300: "低",
  119 + 0: "无",
  120 + }
  121 + return nameMap[t.SortBy]
  122 +}
  123 +
98 type TaskRepository interface { 124 type TaskRepository interface {
99 Save(param *Task) error 125 Save(param *Task) error
100 Remove(id int) error 126 Remove(id int) error
@@ -9,22 +9,24 @@ import ( @@ -9,22 +9,24 @@ import (
9 // 任务 9 // 任务
10 type Task struct { 10 type Task struct {
11 tableName struct{} `comment:"任务" pg:"task"` 11 tableName struct{} `comment:"任务" pg:"task"`
12 - Id int `pg:"id,pk"` //  
13 - CreatedAt time.Time `pg:"created_at"` //  
14 - UpdatedAt time.Time `pg:"updated_at"` //  
15 - DeletedAt *time.Time `pg:"deleted_at"` //  
16 - Name string `pg:"name"` // 任务名称  
17 - Alias string `pg:"alias"` //  
18 - CompanyId int `pg:"company_id"` //  
19 - Leader domain.TaskLeader `pg:"leader,type:jsonb"` // 任务负责人  
20 - Status int `pg:"status,use_zero"` // 任务的状态  
21 - Level int `pg:"level,use_zero"` // 优先级,值越小优先级越高  
22 - LevelName string `pg:"level_name"` // 优先级名称  
23 - RelatedUser []int `pg:"related_user"` 12 + Id int `pg:"id,pk"` //
  13 + CreatedAt time.Time `pg:"created_at"` //
  14 + UpdatedAt time.Time `pg:"updated_at"` //
  15 + DeletedAt *time.Time `pg:"deleted_at"` //
  16 + Name string `pg:"name"` // 任务名称
  17 + Alias string `pg:"alias"` //
  18 + CompanyId int `pg:"company_id"` //
  19 + Leader domain.TaskLeader `pg:"leader,type:jsonb"` // 任务负责人
  20 + Status int `pg:"status,use_zero"` // 任务的状态
  21 + Level int `pg:"level,use_zero"` // 优先级,值越小优先级越高
  22 + LevelName string `pg:"level_name"` // 优先级名称
  23 + RelatedUser []int `pg:"related_user"` //
24 LastStage domain.TaskStage `pg:"last_stage,type:jsonb"` // 上一个完成的里程碑,添加type:jsonb 防止orm生成sql时字段丢失 24 LastStage domain.TaskStage `pg:"last_stage,type:jsonb"` // 上一个完成的里程碑,添加type:jsonb 防止orm生成sql时字段丢失
25 RunAt int64 `pg:"run_at,use_zero"` // 启动的时间 25 RunAt int64 `pg:"run_at,use_zero"` // 启动的时间
26 StopAt int64 `pg:"stop_at,use_zero" ` // 停止的时间 26 StopAt int64 `pg:"stop_at,use_zero" ` // 停止的时间
27 Anomaly int `pg:"anomaly,use_zero"` // 异常反馈的数量 27 Anomaly int `pg:"anomaly,use_zero"` // 异常反馈的数量
28 WarnFlag int `pg:"warn_flag,use_zero"` // 里程碑异常标记 28 WarnFlag int `pg:"warn_flag,use_zero"` // 里程碑异常标记
29 CurrentStage domain.TaskStage `pg:"current_stage,type:jsonb"` // 添加type:jsonb 防止orm(可能是特性)生成sql时字段丢失 29 CurrentStage domain.TaskStage `pg:"current_stage,type:jsonb"` // 添加type:jsonb 防止orm(可能是特性)生成sql时字段丢失
  30 + SortBy int `pg:"sort_by"` // 优先级排序;值越小优先级越高
  31 + EndTime int64 `pg:"end_time"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
30 } 32 }
@@ -37,6 +37,8 @@ func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task { @@ -37,6 +37,8 @@ func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task {
37 Status: domain.TaskState(d.Status), 37 Status: domain.TaskState(d.Status),
38 Level: d.Level, 38 Level: d.Level,
39 LevelName: d.LevelName, 39 LevelName: d.LevelName,
  40 + SortBy: d.SortBy,
  41 + EndTime: d.EndTime,
40 RelatedUser: d.RelatedUser, 42 RelatedUser: d.RelatedUser,
41 RunAt: d.RunAt, 43 RunAt: d.RunAt,
42 StopAt: d.StopAt, 44 StopAt: d.StopAt,
@@ -65,12 +67,14 @@ func (repo *TaskRepository) Save(param *domain.Task) error { @@ -65,12 +67,14 @@ func (repo *TaskRepository) Save(param *domain.Task) error {
65 Level: param.Level, 67 Level: param.Level,
66 LevelName: param.LevelName, 68 LevelName: param.LevelName,
67 RelatedUser: param.RelatedUser, 69 RelatedUser: param.RelatedUser,
  70 + LastStage: param.LastStage,
68 RunAt: param.RunAt, 71 RunAt: param.RunAt,
69 StopAt: param.StopAt, 72 StopAt: param.StopAt,
70 Anomaly: param.Anomaly, 73 Anomaly: param.Anomaly,
71 WarnFlag: int(param.WarnFlag), 74 WarnFlag: int(param.WarnFlag),
72 CurrentStage: param.CurrentStage, 75 CurrentStage: param.CurrentStage,
73 - LastStage: param.LastStage, 76 + SortBy: param.SortBy,
  77 + EndTime: param.EndTime,
74 } 78 }
75 db := repo.transactionContext.PgTx 79 db := repo.transactionContext.PgTx
76 if m.Id == 0 { 80 if m.Id == 0 {