正在显示
7 个修改的文件
包含
332 行增加
和
189 行删除
| @@ -255,3 +255,11 @@ func CreateTaskLevelRepository(options map[string]interface{}) domain.TaskLevelR | @@ -255,3 +255,11 @@ func CreateTaskLevelRepository(options map[string]interface{}) domain.TaskLevelR | ||
| 255 | } | 255 | } |
| 256 | return repository.NewTaskLevelRepository(transactionContext) | 256 | return repository.NewTaskLevelRepository(transactionContext) |
| 257 | } | 257 | } |
| 258 | + | ||
| 259 | +func CreateTaskAnomalyRepository(options map[string]interface{}) domain.TaskAnomalyRepository { | ||
| 260 | + var transactionContext *pg.TransactionContext | ||
| 261 | + if value, ok := options["transactionContext"]; ok { | ||
| 262 | + transactionContext = value.(*pg.TransactionContext) | ||
| 263 | + } | ||
| 264 | + return repository.NewTaskAnomalyRepository(transactionContext) | ||
| 265 | +} |
| @@ -11,8 +11,6 @@ import ( | @@ -11,8 +11,6 @@ import ( | ||
| 11 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | 11 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" |
| 12 | ) | 12 | ) |
| 13 | 13 | ||
| 14 | -//TODO 检查任务里程碑反馈, 记录异常情况 | ||
| 15 | - | ||
| 16 | // 检查昨日提交的任务里程碑反馈 | 14 | // 检查昨日提交的任务里程碑反馈 |
| 17 | func CheckYesterdayTaskRecord() { | 15 | func CheckYesterdayTaskRecord() { |
| 18 | nowTime := time.Now() | 16 | nowTime := time.Now() |
| @@ -2,11 +2,15 @@ package service | @@ -2,11 +2,15 @@ package service | ||
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | 4 | "fmt" |
| 5 | + "time" | ||
| 5 | 6 | ||
| 7 | + "github.com/linmadan/egglib-go/core/application" | ||
| 6 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" | 8 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" |
| 7 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | 9 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" |
| 8 | ) | 10 | ) |
| 9 | 11 | ||
| 12 | +// TODO 检查任务里程碑反馈, 记录异常情况 | ||
| 13 | + | ||
| 10 | func checkTaskRecordV2(param *domain.TaskRecord) error { | 14 | func checkTaskRecordV2(param *domain.TaskRecord) error { |
| 11 | transactionContext, err := factory.CreateTransactionContext(nil) | 15 | transactionContext, err := factory.CreateTransactionContext(nil) |
| 12 | if err != nil { | 16 | if err != nil { |
| @@ -21,7 +25,6 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | @@ -21,7 +25,6 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | ||
| 21 | taskRepo := factory.CreateTaskRepository(map[string]interface{}{ | 25 | taskRepo := factory.CreateTaskRepository(map[string]interface{}{ |
| 22 | "transactionContext": transactionContext, | 26 | "transactionContext": transactionContext, |
| 23 | }) | 27 | }) |
| 24 | - | ||
| 25 | _, taskDataList, err := taskRepo.Find(map[string]interface{}{"id": param.TaskId}) | 28 | _, taskDataList, err := taskRepo.Find(map[string]interface{}{"id": param.TaskId}) |
| 26 | if err != nil { | 29 | if err != nil { |
| 27 | return fmt.Errorf("获取任务数据失败:%s", err) | 30 | return fmt.Errorf("获取任务数据失败:%s", err) |
| @@ -30,17 +33,85 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | @@ -30,17 +33,85 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | ||
| 30 | return nil | 33 | return nil |
| 31 | } | 34 | } |
| 32 | taskData := taskDataList[0] | 35 | taskData := taskDataList[0] |
| 36 | + | ||
| 37 | + //userDao := dao.NewUserDao(map[string]interface{}{"transactionContext": transactionContext}) | ||
| 38 | + | ||
| 39 | + // 反馈异常,里程碑异常, 辅导异常 | ||
| 40 | + // 检查反馈异常 | ||
| 41 | + if param.IsRemarkAnomaly() { | ||
| 42 | + taskData.Anomaly += 1 | ||
| 43 | + // err = isAssessFlag(transactionContext, taskData) | ||
| 44 | + // if err != nil { | ||
| 45 | + // return err | ||
| 46 | + // } | ||
| 47 | + } else { | ||
| 48 | + taskData.Anomaly = 0 | ||
| 49 | + } | ||
| 50 | + // 检查里程碑异常 | ||
| 51 | + if param.IsTaskStageAnomaly() { | ||
| 52 | + taskData.WarnFlag = domain.TaskWarn | ||
| 53 | + err := isWarnFlag(transactionContext, taskData) | ||
| 54 | + if err != nil { | ||
| 55 | + return err | ||
| 56 | + } | ||
| 57 | + } else { | ||
| 58 | + taskData.WarnFlag = domain.TaskWarnNull | ||
| 59 | + } | ||
| 60 | + // 检查辅导异常 | ||
| 61 | + if param.IsAssistAnomaly() { | ||
| 62 | + taskData.AssistFlag += 1 | ||
| 63 | + err = isAssistFlag(transactionContext, taskData) | ||
| 64 | + if err != nil { | ||
| 65 | + return err | ||
| 66 | + } | ||
| 67 | + } else { | ||
| 68 | + taskData.AssistFlag = 0 | ||
| 69 | + } | ||
| 70 | + // 保存任务数据 | ||
| 71 | + err = taskRepo.Save(taskData) | ||
| 72 | + if err != nil { | ||
| 73 | + return fmt.Errorf("保存任务数据:%s", err) | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 77 | + return err | ||
| 78 | + } | ||
| 79 | + return nil | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +// 处理里程碑异常的情况 | ||
| 83 | +func isWarnFlag(transactionContext application.TransactionContext, taskData *domain.Task) error { | ||
| 84 | + taskAnomalyRepo := factory.CreateTaskAnomalyRepository(map[string]interface{}{ | ||
| 85 | + "transactionContext": transactionContext, | ||
| 86 | + }) | ||
| 87 | + | ||
| 88 | + userRepo := factory.CreateUserRepository(map[string]interface{}{ | ||
| 89 | + "transactionContext": transactionContext, | ||
| 90 | + }) | ||
| 91 | + //获取任务Leader的数据 | ||
| 92 | + _, useList, err := userRepo.Find(map[string]interface{}{"id": taskData.Leader.Id, "limit": 1}) | ||
| 93 | + if err != nil { | ||
| 94 | + return fmt.Errorf("获取任务Leader:%s", err) | ||
| 95 | + } | ||
| 96 | + if len(useList) == 0 { | ||
| 97 | + return nil | ||
| 98 | + } | ||
| 99 | + _, oldAnomaly, err := taskAnomalyRepo.Find(map[string]interface{}{"isLast": 1, "category": 2, "limit": 1}) | ||
| 100 | + if err != nil { | ||
| 101 | + return fmt.Errorf("查询反馈异常的数据:%s", err) | ||
| 102 | + } | ||
| 103 | + // 异常就通知自己和上级 | ||
| 33 | anomalyDataTmp := domain.TaskAnomaly{ | 104 | anomalyDataTmp := domain.TaskAnomaly{ |
| 34 | Id: taskData.Id, | 105 | Id: taskData.Id, |
| 35 | CreatedAt: taskData.CreatedAt, | 106 | CreatedAt: taskData.CreatedAt, |
| 36 | UpdatedAt: taskData.UpdatedAt, | 107 | UpdatedAt: taskData.UpdatedAt, |
| 37 | CompanyId: taskData.CompanyId, | 108 | CompanyId: taskData.CompanyId, |
| 38 | TaskId: taskData.Id, | 109 | TaskId: taskData.Id, |
| 39 | - Category: 0, | 110 | + Category: 1, |
| 40 | CurrentStage: taskData.CurrentStage, | 111 | CurrentStage: taskData.CurrentStage, |
| 41 | LastStage: taskData.LastStage, | 112 | LastStage: taskData.LastStage, |
| 42 | AssessFlag: 0, | 113 | AssessFlag: 0, |
| 43 | - WarnFlag: 0, | 114 | + WarnFlag: int(taskData.WarnFlag), |
| 44 | AssistFlag: 0, | 115 | AssistFlag: 0, |
| 45 | IsLast: 1, | 116 | IsLast: 1, |
| 46 | TaskLevel: taskData.LevelName, | 117 | TaskLevel: taskData.LevelName, |
| @@ -48,45 +119,102 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | @@ -48,45 +119,102 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | ||
| 48 | TaskAlias: taskData.Alias, | 119 | TaskAlias: taskData.Alias, |
| 49 | TaskSortBy: taskData.SortBy, | 120 | TaskSortBy: taskData.SortBy, |
| 50 | TaskEndTime: taskData.EndTime, | 121 | TaskEndTime: taskData.EndTime, |
| 51 | - RecordBegin: 0, | ||
| 52 | - NoticeWho: []int64{}, | 122 | + RecordBegin: time.Now().Unix(), |
| 123 | + NoticeWho: []int64{taskData.Leader.Id, useList[0].ParentId}, | ||
| 53 | Marks: map[string]string{ | 124 | Marks: map[string]string{ |
| 54 | "a": "", "b": "", "c": "", "d": "", | 125 | "a": "", "b": "", "c": "", "d": "", |
| 55 | }, | 126 | }, |
| 56 | } | 127 | } |
| 57 | - var anomalyList []domain.TaskAnomaly | ||
| 58 | 128 | ||
| 59 | - // 检查反馈异常 | ||
| 60 | - if param.IsRemarkAnomaly() { | ||
| 61 | - taskData.Anomaly += 1 | ||
| 62 | - anomalyDataTmp.Category = 2 | ||
| 63 | - anomalyList = append(anomalyList, anomalyDataTmp) | ||
| 64 | - } else { | ||
| 65 | - taskData.Anomaly = 0 | ||
| 66 | - } | ||
| 67 | - // 检查里程碑异常 | ||
| 68 | - if param.IsTaskStageAnomaly() { | ||
| 69 | - taskData.WarnFlag = domain.TaskWarn | ||
| 70 | - anomalyDataTmp.Category = 1 | ||
| 71 | - anomalyList = append(anomalyList, anomalyDataTmp) | ||
| 72 | - } else { | ||
| 73 | - taskData.WarnFlag = domain.TaskWarnNull | 129 | + if len(oldAnomaly) > 0 { |
| 130 | + anomalyDataTmp.RecordBegin = oldAnomaly[0].RecordBegin | ||
| 131 | + anomalyDataTmp.WarnFlag = oldAnomaly[0].WarnFlag + 1 | ||
| 132 | + oldAnomaly[0].IsLast = 2 | ||
| 133 | + err = taskAnomalyRepo.Save(oldAnomaly[0]) | ||
| 134 | + if err != nil { | ||
| 135 | + return fmt.Errorf("更新里程碑异常记录:%s", err) | ||
| 136 | + } | ||
| 74 | } | 137 | } |
| 75 | - // 检查辅导异常 | ||
| 76 | - if param.IsAssistAnomaly() { | ||
| 77 | - taskData.AssistFlag += 1 | ||
| 78 | - anomalyDataTmp.Category = 3 | ||
| 79 | - anomalyList = append(anomalyList, anomalyDataTmp) | ||
| 80 | - } else { | ||
| 81 | - taskData.AssistFlag = 0 | 138 | + err = taskAnomalyRepo.Save(&anomalyDataTmp) |
| 139 | + if err != nil { | ||
| 140 | + return fmt.Errorf("保存里程碑异常记录:%s", err) | ||
| 82 | } | 141 | } |
| 142 | + return nil | ||
| 143 | +} | ||
| 83 | 144 | ||
| 84 | - err = taskRepo.Save(taskData) | 145 | +// 处理辅导异常的情况 |
| 146 | +func isAssistFlag(transactionContext application.TransactionContext, taskData *domain.Task) error { | ||
| 147 | + taskAnomalyRepo := factory.CreateTaskAnomalyRepository(map[string]interface{}{ | ||
| 148 | + "transactionContext": transactionContext, | ||
| 149 | + }) | ||
| 150 | + | ||
| 151 | + userRepo := factory.CreateUserRepository(map[string]interface{}{ | ||
| 152 | + "transactionContext": transactionContext, | ||
| 153 | + }) | ||
| 154 | + //获取任务Leader的数据 | ||
| 155 | + _, useList, err := userRepo.Find(map[string]interface{}{"id": taskData.Leader.Id, "limit": 1}) | ||
| 85 | if err != nil { | 156 | if err != nil { |
| 86 | - return fmt.Errorf("保存任务数据:%s", err) | 157 | + return fmt.Errorf("获取任务Leader:%s", err) |
| 87 | } | 158 | } |
| 88 | - if err := transactionContext.CommitTransaction(); err != nil { | ||
| 89 | - return err | 159 | + if len(useList) == 0 { |
| 160 | + return nil | ||
| 161 | + } | ||
| 162 | + _, oldAnomaly, err := taskAnomalyRepo.Find(map[string]interface{}{"isLast": 1, "category": 3, "limit": 1}) | ||
| 163 | + if err != nil { | ||
| 164 | + return fmt.Errorf("查询反馈异常的数据:%s", err) | ||
| 165 | + } | ||
| 166 | + // 辅导异常通知该条任务负责人的上级;辅导异常超过3天,通知任务负责人的上上级 | ||
| 167 | + anomalyDataTmp := domain.TaskAnomaly{ | ||
| 168 | + Id: taskData.Id, | ||
| 169 | + CreatedAt: taskData.CreatedAt, | ||
| 170 | + UpdatedAt: taskData.UpdatedAt, | ||
| 171 | + CompanyId: taskData.CompanyId, | ||
| 172 | + TaskId: taskData.Id, | ||
| 173 | + Category: 3, | ||
| 174 | + CurrentStage: taskData.CurrentStage, | ||
| 175 | + LastStage: taskData.LastStage, | ||
| 176 | + AssessFlag: 0, | ||
| 177 | + WarnFlag: 0, | ||
| 178 | + AssistFlag: taskData.AssistFlag, | ||
| 179 | + IsLast: 1, | ||
| 180 | + TaskLevel: taskData.LevelName, | ||
| 181 | + TaskName: taskData.Name, | ||
| 182 | + TaskAlias: taskData.Alias, | ||
| 183 | + TaskSortBy: taskData.SortBy, | ||
| 184 | + TaskEndTime: taskData.EndTime, | ||
| 185 | + RecordBegin: time.Now().Unix(), | ||
| 186 | + NoticeWho: []int64{useList[0].ParentId}, | ||
| 187 | + Marks: map[string]string{ | ||
| 188 | + "a": "", "b": "", "c": "", "d": "", | ||
| 189 | + }, | ||
| 190 | + } | ||
| 191 | + if taskData.AssistFlag >= taskData.AssistFlagMax { | ||
| 192 | + //通知任务负责人的上上级 | ||
| 193 | + _, useList2, err := userRepo.Find(map[string]interface{}{"id": useList[0].ParentId, "limit": 1}) | ||
| 194 | + if err != nil { | ||
| 195 | + return fmt.Errorf("获取任务Leader:%s", err) | ||
| 196 | + } | ||
| 197 | + if len(useList2) > 0 { | ||
| 198 | + anomalyDataTmp.NoticeWho = append(anomalyDataTmp.NoticeWho, useList2[0].Id) | ||
| 199 | + } | ||
| 200 | + } | ||
| 201 | + if len(oldAnomaly) > 0 { | ||
| 202 | + anomalyDataTmp.RecordBegin = oldAnomaly[0].RecordBegin | ||
| 203 | + oldAnomaly[0].IsLast = 2 | ||
| 204 | + err = taskAnomalyRepo.Save(oldAnomaly[0]) | ||
| 205 | + if err != nil { | ||
| 206 | + return fmt.Errorf("更新里程碑异常记录:%s", err) | ||
| 207 | + } | ||
| 90 | } | 208 | } |
| 209 | + err = taskAnomalyRepo.Save(&anomalyDataTmp) | ||
| 210 | + if err != nil { | ||
| 211 | + return fmt.Errorf("保存里程碑异常记录:%s", err) | ||
| 212 | + } | ||
| 213 | + return nil | ||
| 214 | + | ||
| 215 | +} | ||
| 216 | + | ||
| 217 | +// 处理反馈异常的情况 | ||
| 218 | +func isAssessFlag(transactionContext application.TransactionContext, taskData *domain.Task) error { | ||
| 91 | return nil | 219 | return nil |
| 92 | } | 220 | } |
| @@ -21,7 +21,7 @@ type TaskAnomaly struct { | @@ -21,7 +21,7 @@ type TaskAnomaly struct { | ||
| 21 | TaskAlias string `json:"taskAlias"` // 任务别名 | 21 | TaskAlias string `json:"taskAlias"` // 任务别名 |
| 22 | TaskSortBy TaskSortBy `json:"taskSortBy"` // 优先级排序;值越小优先级越高 | 22 | TaskSortBy TaskSortBy `json:"taskSortBy"` // 优先级排序;值越小优先级越高 |
| 23 | TaskEndTime int64 `json:"taskEndTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 | 23 | TaskEndTime int64 `json:"taskEndTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 |
| 24 | - RecordBegin int `json:"recordBegin"` // 异常记录的开始时间 | 24 | + RecordBegin int64 `json:"recordBegin"` // 异常记录的开始时间 |
| 25 | NoticeWho []int64 `json:"noticeWho"` // 异常记录消息通知的人 | 25 | NoticeWho []int64 `json:"noticeWho"` // 异常记录消息通知的人 |
| 26 | Marks map[string]string `json:"marks"` // 已经操作的标记 | 26 | Marks map[string]string `json:"marks"` // 已经操作的标记 |
| 27 | } | 27 | } |
| @@ -26,7 +26,7 @@ type TaskAnomaly struct { | @@ -26,7 +26,7 @@ type TaskAnomaly struct { | ||
| 26 | TaskAlias string `pg:"task_alias"` // 任务别名 | 26 | TaskAlias string `pg:"task_alias"` // 任务别名 |
| 27 | TaskSortBy int `pg:"task_sort_by"` // 优先级排序;值越小优先级越高 | 27 | TaskSortBy int `pg:"task_sort_by"` // 优先级排序;值越小优先级越高 |
| 28 | TaskEndTime int64 `pg:"task_end_time,use_zero"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 | 28 | TaskEndTime int64 `pg:"task_end_time,use_zero"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 |
| 29 | - RecordBegin int `pg:"record_begin"` // 异常记录的开始时间 | 29 | + RecordBegin int64 `pg:"record_begin"` // 异常记录的开始时间 |
| 30 | NoticeWho []int64 `pg:"notice_who"` // 异常记录消息通知的人 | 30 | NoticeWho []int64 `pg:"notice_who"` // 异常记录消息通知的人 |
| 31 | Marks map[string]string `pg:"marks"` // 已经操作的标记 | 31 | Marks map[string]string `pg:"marks"` // 已经操作的标记 |
| 32 | } | 32 | } |
| @@ -14,75 +14,67 @@ import ( | @@ -14,75 +14,67 @@ import ( | ||
| 14 | 14 | ||
| 15 | //任务 | 15 | //任务 |
| 16 | 16 | ||
| 17 | -type TaskRepository struct { | 17 | +type TaskAnomalyRepository struct { |
| 18 | transactionContext *pgTransaction.TransactionContext | 18 | transactionContext *pgTransaction.TransactionContext |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | -var _ domain.TaskRepository = (*TaskRepository)(nil) | 21 | +var _ domain.TaskAnomalyRepository = (*TaskAnomalyRepository)(nil) |
| 22 | 22 | ||
| 23 | -func NewTaskRepository(transactionContext *pgTransaction.TransactionContext) *TaskRepository { | ||
| 24 | - return &TaskRepository{transactionContext: transactionContext} | 23 | +func NewTaskAnomalyRepository(transactionContext *pgTransaction.TransactionContext) *TaskAnomalyRepository { |
| 24 | + return &TaskAnomalyRepository{transactionContext: transactionContext} | ||
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | -func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task { | ||
| 28 | - return &domain.Task{ | ||
| 29 | - Id: d.Id, | ||
| 30 | - CreatedAt: d.CreatedAt, | ||
| 31 | - UpdatedAt: d.UpdatedAt, | ||
| 32 | - DeletedAt: d.DeletedAt, | ||
| 33 | - CompanyId: d.CompanyId, | ||
| 34 | - Name: d.Name, | ||
| 35 | - Alias: d.Alias, | ||
| 36 | - Leader: d.Leader, | ||
| 37 | - Status: domain.TaskState(d.Status), | ||
| 38 | - Level: d.Level, | ||
| 39 | - LevelName: d.LevelName, | ||
| 40 | - SortBy: domain.TaskSortBy(d.SortBy), | ||
| 41 | - EndTime: d.EndTime, | ||
| 42 | - UseEndTime: d.UseEndTime, | ||
| 43 | - RelatedUser: d.RelatedUser, | ||
| 44 | - RunAt: d.RunAt, | ||
| 45 | - StopAt: d.StopAt, | ||
| 46 | - Anomaly: d.Anomaly, | ||
| 47 | - WarnFlag: domain.TaskWarnFlag(d.WarnFlag), | ||
| 48 | - AssistFlag: d.AssistFlag, | ||
| 49 | - AssistFlagMax: d.AssistFlagMax, | ||
| 50 | - CurrentStage: d.CurrentStage, | ||
| 51 | - LastStage: d.LastStage, | ||
| 52 | - CreatedBy: d.CreatedBy, | 27 | +func (repo *TaskAnomalyRepository) TransformToDomain(d *models.TaskAnomaly) *domain.TaskAnomaly { |
| 28 | + return &domain.TaskAnomaly{ | ||
| 29 | + Id: d.Id, | ||
| 30 | + CreatedAt: d.CreatedAt, | ||
| 31 | + UpdatedAt: d.UpdatedAt, | ||
| 32 | + CompanyId: d.CompanyId, | ||
| 33 | + TaskId: d.TaskId, | ||
| 34 | + Category: d.Category, | ||
| 35 | + CurrentStage: d.CurrentStage, | ||
| 36 | + LastStage: d.LastStage, | ||
| 37 | + AssessFlag: d.AssessFlag, | ||
| 38 | + WarnFlag: d.WarnFlag, | ||
| 39 | + AssistFlag: d.AssistFlag, | ||
| 40 | + IsLast: d.IsLast, | ||
| 41 | + TaskLevel: d.TaskLevel, | ||
| 42 | + TaskName: d.TaskName, | ||
| 43 | + TaskAlias: d.TaskAlias, | ||
| 44 | + TaskSortBy: domain.TaskSortBy(d.TaskSortBy), | ||
| 45 | + TaskEndTime: d.TaskEndTime, | ||
| 46 | + RecordBegin: d.RecordBegin, | ||
| 47 | + NoticeWho: d.NoticeWho, | ||
| 48 | + Marks: d.Marks, | ||
| 53 | } | 49 | } |
| 54 | } | 50 | } |
| 55 | 51 | ||
| 56 | -func (repo *TaskRepository) Save(param *domain.Task) error { | 52 | +func (repo *TaskAnomalyRepository) Save(param *domain.TaskAnomaly) error { |
| 57 | param.UpdatedAt = time.Now() | 53 | param.UpdatedAt = time.Now() |
| 58 | if param.Id == 0 { | 54 | if param.Id == 0 { |
| 59 | param.CreatedAt = time.Now() | 55 | param.CreatedAt = time.Now() |
| 60 | } | 56 | } |
| 61 | - m := models.Task{ | ||
| 62 | - Id: param.Id, | ||
| 63 | - CreatedAt: param.CreatedAt, | ||
| 64 | - UpdatedAt: param.UpdatedAt, | ||
| 65 | - DeletedAt: param.DeletedAt, | ||
| 66 | - Name: param.Name, | ||
| 67 | - Alias: param.Alias, | ||
| 68 | - CompanyId: param.CompanyId, | ||
| 69 | - Leader: param.Leader, | ||
| 70 | - Status: int(param.Status), | ||
| 71 | - Level: param.Level, | ||
| 72 | - LevelName: param.LevelName, | ||
| 73 | - RelatedUser: param.RelatedUser, | ||
| 74 | - LastStage: param.LastStage, | ||
| 75 | - RunAt: param.RunAt, | ||
| 76 | - StopAt: param.StopAt, | ||
| 77 | - Anomaly: param.Anomaly, | ||
| 78 | - WarnFlag: int(param.WarnFlag), | ||
| 79 | - CurrentStage: param.CurrentStage, | ||
| 80 | - SortBy: int(param.SortBy), | ||
| 81 | - EndTime: param.EndTime, | ||
| 82 | - UseEndTime: param.UseEndTime, | ||
| 83 | - AssistFlag: param.AssistFlag, | ||
| 84 | - AssistFlagMax: param.AssistFlagMax, | ||
| 85 | - CreatedBy: param.CreatedBy, | 57 | + m := models.TaskAnomaly{ |
| 58 | + Id: param.Id, | ||
| 59 | + CreatedAt: param.CreatedAt, | ||
| 60 | + UpdatedAt: param.UpdatedAt, | ||
| 61 | + CompanyId: param.CompanyId, | ||
| 62 | + TaskId: param.TaskId, | ||
| 63 | + Category: param.Category, | ||
| 64 | + CurrentStage: param.CurrentStage, | ||
| 65 | + LastStage: param.LastStage, | ||
| 66 | + AssessFlag: param.AssessFlag, | ||
| 67 | + WarnFlag: param.WarnFlag, | ||
| 68 | + AssistFlag: param.AssistFlag, | ||
| 69 | + IsLast: param.IsLast, | ||
| 70 | + TaskLevel: param.TaskLevel, | ||
| 71 | + TaskName: param.TaskName, | ||
| 72 | + TaskAlias: param.TaskAlias, | ||
| 73 | + TaskSortBy: int(param.TaskSortBy), | ||
| 74 | + TaskEndTime: param.TaskEndTime, | ||
| 75 | + RecordBegin: param.RecordBegin, | ||
| 76 | + NoticeWho: param.NoticeWho, | ||
| 77 | + Marks: param.Marks, | ||
| 86 | } | 78 | } |
| 87 | db := repo.transactionContext.PgTx | 79 | db := repo.transactionContext.PgTx |
| 88 | if m.Id == 0 { | 80 | if m.Id == 0 { |
| @@ -100,28 +92,16 @@ func (repo *TaskRepository) Save(param *domain.Task) error { | @@ -100,28 +92,16 @@ func (repo *TaskRepository) Save(param *domain.Task) error { | ||
| 100 | return nil | 92 | return nil |
| 101 | } | 93 | } |
| 102 | 94 | ||
| 103 | -func (repo *TaskRepository) Remove(id int) error { | 95 | +func (repo *TaskAnomalyRepository) FindOne(queryOptions map[string]interface{}) (*domain.TaskAnomaly, error) { |
| 104 | tx := repo.transactionContext.PgTx | 96 | tx := repo.transactionContext.PgTx |
| 105 | - nowTime := time.Now() | ||
| 106 | - _, err := tx.Model(&models.Task{}). | ||
| 107 | - Where("id=?", id). | ||
| 108 | - Set("deleted_at=?", nowTime). | ||
| 109 | - Update() | ||
| 110 | - return err | ||
| 111 | - | ||
| 112 | -} | ||
| 113 | - | ||
| 114 | -func (repo *TaskRepository) FindOne(queryOptions map[string]interface{}) (*domain.Task, error) { | ||
| 115 | - tx := repo.transactionContext.PgTx | ||
| 116 | - m := new(models.Task) | 97 | + m := new(models.TaskAnomaly) |
| 117 | query := tx.Model(m) | 98 | query := tx.Model(m) |
| 118 | - query.Where("deleted_at isnull") | ||
| 119 | if id, ok := queryOptions["id"]; ok { | 99 | if id, ok := queryOptions["id"]; ok { |
| 120 | query.Where("id=?", id) | 100 | query.Where("id=?", id) |
| 121 | } | 101 | } |
| 122 | if err := query.First(); err != nil { | 102 | if err := query.First(); err != nil { |
| 123 | if errors.Is(err, pg.ErrNoRows) { | 103 | if errors.Is(err, pg.ErrNoRows) { |
| 124 | - return nil, fmt.Errorf("没有找到task数据") | 104 | + return nil, fmt.Errorf("没有找到TaskAnomaly数据") |
| 125 | } else { | 105 | } else { |
| 126 | return nil, err | 106 | return nil, err |
| 127 | } | 107 | } |
| @@ -130,33 +110,10 @@ func (repo *TaskRepository) FindOne(queryOptions map[string]interface{}) (*domai | @@ -130,33 +110,10 @@ func (repo *TaskRepository) FindOne(queryOptions map[string]interface{}) (*domai | ||
| 130 | return u, nil | 110 | return u, nil |
| 131 | } | 111 | } |
| 132 | 112 | ||
| 133 | -func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*domain.Task, error) { | 113 | +func (repo *TaskAnomalyRepository) Find(queryOptions map[string]interface{}) (int, []*domain.TaskAnomaly, error) { |
| 134 | tx := repo.transactionContext.PgTx | 114 | tx := repo.transactionContext.PgTx |
| 135 | - var m []*models.Task | ||
| 136 | - query := tx.Model(&m). | ||
| 137 | - Where("deleted_at isnull"). | ||
| 138 | - Limit(20) | ||
| 139 | - if val, ok := queryOptions["name"]; ok { | ||
| 140 | - query.Where("task.name like ?", val) | ||
| 141 | - } | ||
| 142 | - if val, ok := queryOptions["companyId"]; ok { | ||
| 143 | - query.Where("task.company_id = ?", val) | ||
| 144 | - } | ||
| 145 | - if val, ok := queryOptions["id"]; ok { | ||
| 146 | - query.Where("task.id=?", val) | ||
| 147 | - } | ||
| 148 | - if val, ok := queryOptions["leaderId"]; ok { | ||
| 149 | - query.Where("task.leader->>'id'=?", val) | ||
| 150 | - } | ||
| 151 | - if val, ok := queryOptions["aliasOrLeader"]; ok { | ||
| 152 | - query.Where(`task.alias like ? or task.leader->>'name' like ?`, val, val) | ||
| 153 | - } | ||
| 154 | - if val, ok := queryOptions["status"]; ok { | ||
| 155 | - query.Where("task.status=?", val) | ||
| 156 | - } | ||
| 157 | - if val, ok := queryOptions["createdBy"]; ok { | ||
| 158 | - query.Where("created_by = ?", val) | ||
| 159 | - } | 115 | + var m []*models.TaskAnomaly |
| 116 | + query := tx.Model(&m) | ||
| 160 | if val, ok := queryOptions["limit"]; ok { | 117 | if val, ok := queryOptions["limit"]; ok { |
| 161 | if limit, err := strconv.Atoi(fmt.Sprintf("%v", val)); err == nil { | 118 | if limit, err := strconv.Atoi(fmt.Sprintf("%v", val)); err == nil { |
| 162 | query.Limit(limit) | 119 | query.Limit(limit) |
| @@ -167,12 +124,21 @@ func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*d | @@ -167,12 +124,21 @@ func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*d | ||
| 167 | query.Offset(offset) | 124 | query.Offset(offset) |
| 168 | } | 125 | } |
| 169 | } | 126 | } |
| 127 | + if val, ok := queryOptions["category"]; ok { | ||
| 128 | + query.Where(" category =? ", val) | ||
| 129 | + } | ||
| 130 | + if val, ok := queryOptions["currentStage"]; ok { | ||
| 131 | + query.Where("current_stage @> ?", val) | ||
| 132 | + } | ||
| 133 | + if val, ok := queryOptions["isLast"]; ok { | ||
| 134 | + query.Where("is_last=?", val) | ||
| 135 | + } | ||
| 170 | query.Order("id desc") | 136 | query.Order("id desc") |
| 171 | count, err := query.SelectAndCount() | 137 | count, err := query.SelectAndCount() |
| 172 | if err != nil { | 138 | if err != nil { |
| 173 | return 0, nil, err | 139 | return 0, nil, err |
| 174 | } | 140 | } |
| 175 | - var datas []*domain.Task | 141 | + var datas []*domain.TaskAnomaly |
| 176 | for _, v := range m { | 142 | for _, v := range m { |
| 177 | d := repo.TransformToDomain(v) | 143 | d := repo.TransformToDomain(v) |
| 178 | datas = append(datas, d) | 144 | datas = append(datas, d) |
| @@ -14,67 +14,75 @@ import ( | @@ -14,67 +14,75 @@ import ( | ||
| 14 | 14 | ||
| 15 | //任务 | 15 | //任务 |
| 16 | 16 | ||
| 17 | -type TaskAnomalyRepository struct { | 17 | +type TaskRepository struct { |
| 18 | transactionContext *pgTransaction.TransactionContext | 18 | transactionContext *pgTransaction.TransactionContext |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | -var _ domain.TaskAnomalyRepository = (*TaskAnomalyRepository)(nil) | 21 | +var _ domain.TaskRepository = (*TaskRepository)(nil) |
| 22 | 22 | ||
| 23 | -func NewTaskAnomalyRepository(transactionContext *pgTransaction.TransactionContext) *TaskAnomalyRepository { | ||
| 24 | - return &TaskAnomalyRepository{transactionContext: transactionContext} | 23 | +func NewTaskRepository(transactionContext *pgTransaction.TransactionContext) *TaskRepository { |
| 24 | + return &TaskRepository{transactionContext: transactionContext} | ||
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | -func (repo *TaskAnomalyRepository) TransformToDomain(d *models.TaskAnomaly) *domain.TaskAnomaly { | ||
| 28 | - return &domain.TaskAnomaly{ | ||
| 29 | - Id: d.Id, | ||
| 30 | - CreatedAt: d.CreatedAt, | ||
| 31 | - UpdatedAt: d.UpdatedAt, | ||
| 32 | - CompanyId: d.CompanyId, | ||
| 33 | - TaskId: d.TaskId, | ||
| 34 | - Category: d.Category, | ||
| 35 | - CurrentStage: d.CurrentStage, | ||
| 36 | - LastStage: d.LastStage, | ||
| 37 | - AssessFlag: d.AssessFlag, | ||
| 38 | - WarnFlag: d.WarnFlag, | ||
| 39 | - AssistFlag: d.AssistFlag, | ||
| 40 | - IsLast: d.IsLast, | ||
| 41 | - TaskLevel: d.TaskLevel, | ||
| 42 | - TaskName: d.TaskName, | ||
| 43 | - TaskAlias: d.TaskAlias, | ||
| 44 | - TaskSortBy: domain.TaskSortBy(d.TaskSortBy), | ||
| 45 | - TaskEndTime: d.TaskEndTime, | ||
| 46 | - RecordBegin: d.RecordBegin, | ||
| 47 | - NoticeWho: d.NoticeWho, | ||
| 48 | - Marks: d.Marks, | 27 | +func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task { |
| 28 | + return &domain.Task{ | ||
| 29 | + Id: d.Id, | ||
| 30 | + CreatedAt: d.CreatedAt, | ||
| 31 | + UpdatedAt: d.UpdatedAt, | ||
| 32 | + DeletedAt: d.DeletedAt, | ||
| 33 | + CompanyId: d.CompanyId, | ||
| 34 | + Name: d.Name, | ||
| 35 | + Alias: d.Alias, | ||
| 36 | + Leader: d.Leader, | ||
| 37 | + Status: domain.TaskState(d.Status), | ||
| 38 | + Level: d.Level, | ||
| 39 | + LevelName: d.LevelName, | ||
| 40 | + SortBy: domain.TaskSortBy(d.SortBy), | ||
| 41 | + EndTime: d.EndTime, | ||
| 42 | + UseEndTime: d.UseEndTime, | ||
| 43 | + RelatedUser: d.RelatedUser, | ||
| 44 | + RunAt: d.RunAt, | ||
| 45 | + StopAt: d.StopAt, | ||
| 46 | + Anomaly: d.Anomaly, | ||
| 47 | + WarnFlag: domain.TaskWarnFlag(d.WarnFlag), | ||
| 48 | + AssistFlag: d.AssistFlag, | ||
| 49 | + AssistFlagMax: d.AssistFlagMax, | ||
| 50 | + CurrentStage: d.CurrentStage, | ||
| 51 | + LastStage: d.LastStage, | ||
| 52 | + CreatedBy: d.CreatedBy, | ||
| 49 | } | 53 | } |
| 50 | } | 54 | } |
| 51 | 55 | ||
| 52 | -func (repo *TaskAnomalyRepository) Save(param *domain.TaskAnomaly) error { | 56 | +func (repo *TaskRepository) Save(param *domain.Task) error { |
| 53 | param.UpdatedAt = time.Now() | 57 | param.UpdatedAt = time.Now() |
| 54 | if param.Id == 0 { | 58 | if param.Id == 0 { |
| 55 | param.CreatedAt = time.Now() | 59 | param.CreatedAt = time.Now() |
| 56 | } | 60 | } |
| 57 | - m := models.TaskAnomaly{ | ||
| 58 | - Id: param.Id, | ||
| 59 | - CreatedAt: param.CreatedAt, | ||
| 60 | - UpdatedAt: param.UpdatedAt, | ||
| 61 | - CompanyId: param.CompanyId, | ||
| 62 | - TaskId: param.TaskId, | ||
| 63 | - Category: param.Category, | ||
| 64 | - CurrentStage: param.CurrentStage, | ||
| 65 | - LastStage: param.LastStage, | ||
| 66 | - AssessFlag: param.AssessFlag, | ||
| 67 | - WarnFlag: param.WarnFlag, | ||
| 68 | - AssistFlag: param.AssistFlag, | ||
| 69 | - IsLast: param.IsLast, | ||
| 70 | - TaskLevel: param.TaskLevel, | ||
| 71 | - TaskName: param.TaskName, | ||
| 72 | - TaskAlias: param.TaskAlias, | ||
| 73 | - TaskSortBy: int(param.TaskSortBy), | ||
| 74 | - TaskEndTime: param.TaskEndTime, | ||
| 75 | - RecordBegin: param.RecordBegin, | ||
| 76 | - NoticeWho: param.NoticeWho, | ||
| 77 | - Marks: param.Marks, | 61 | + m := models.Task{ |
| 62 | + Id: param.Id, | ||
| 63 | + CreatedAt: param.CreatedAt, | ||
| 64 | + UpdatedAt: param.UpdatedAt, | ||
| 65 | + DeletedAt: param.DeletedAt, | ||
| 66 | + Name: param.Name, | ||
| 67 | + Alias: param.Alias, | ||
| 68 | + CompanyId: param.CompanyId, | ||
| 69 | + Leader: param.Leader, | ||
| 70 | + Status: int(param.Status), | ||
| 71 | + Level: param.Level, | ||
| 72 | + LevelName: param.LevelName, | ||
| 73 | + RelatedUser: param.RelatedUser, | ||
| 74 | + LastStage: param.LastStage, | ||
| 75 | + RunAt: param.RunAt, | ||
| 76 | + StopAt: param.StopAt, | ||
| 77 | + Anomaly: param.Anomaly, | ||
| 78 | + WarnFlag: int(param.WarnFlag), | ||
| 79 | + CurrentStage: param.CurrentStage, | ||
| 80 | + SortBy: int(param.SortBy), | ||
| 81 | + EndTime: param.EndTime, | ||
| 82 | + UseEndTime: param.UseEndTime, | ||
| 83 | + AssistFlag: param.AssistFlag, | ||
| 84 | + AssistFlagMax: param.AssistFlagMax, | ||
| 85 | + CreatedBy: param.CreatedBy, | ||
| 78 | } | 86 | } |
| 79 | db := repo.transactionContext.PgTx | 87 | db := repo.transactionContext.PgTx |
| 80 | if m.Id == 0 { | 88 | if m.Id == 0 { |
| @@ -92,16 +100,28 @@ func (repo *TaskAnomalyRepository) Save(param *domain.TaskAnomaly) error { | @@ -92,16 +100,28 @@ func (repo *TaskAnomalyRepository) Save(param *domain.TaskAnomaly) error { | ||
| 92 | return nil | 100 | return nil |
| 93 | } | 101 | } |
| 94 | 102 | ||
| 95 | -func (repo *TaskAnomalyRepository) FindOne(queryOptions map[string]interface{}) (*domain.TaskAnomaly, error) { | 103 | +func (repo *TaskRepository) Remove(id int) error { |
| 96 | tx := repo.transactionContext.PgTx | 104 | tx := repo.transactionContext.PgTx |
| 97 | - m := new(models.TaskAnomaly) | 105 | + nowTime := time.Now() |
| 106 | + _, err := tx.Model(&models.Task{}). | ||
| 107 | + Where("id=?", id). | ||
| 108 | + Set("deleted_at=?", nowTime). | ||
| 109 | + Update() | ||
| 110 | + return err | ||
| 111 | + | ||
| 112 | +} | ||
| 113 | + | ||
| 114 | +func (repo *TaskRepository) FindOne(queryOptions map[string]interface{}) (*domain.Task, error) { | ||
| 115 | + tx := repo.transactionContext.PgTx | ||
| 116 | + m := new(models.Task) | ||
| 98 | query := tx.Model(m) | 117 | query := tx.Model(m) |
| 118 | + query.Where("deleted_at isnull") | ||
| 99 | if id, ok := queryOptions["id"]; ok { | 119 | if id, ok := queryOptions["id"]; ok { |
| 100 | query.Where("id=?", id) | 120 | query.Where("id=?", id) |
| 101 | } | 121 | } |
| 102 | if err := query.First(); err != nil { | 122 | if err := query.First(); err != nil { |
| 103 | if errors.Is(err, pg.ErrNoRows) { | 123 | if errors.Is(err, pg.ErrNoRows) { |
| 104 | - return nil, fmt.Errorf("没有找到TaskAnomaly数据") | 124 | + return nil, fmt.Errorf("没有找到task数据") |
| 105 | } else { | 125 | } else { |
| 106 | return nil, err | 126 | return nil, err |
| 107 | } | 127 | } |
| @@ -110,10 +130,33 @@ func (repo *TaskAnomalyRepository) FindOne(queryOptions map[string]interface{}) | @@ -110,10 +130,33 @@ func (repo *TaskAnomalyRepository) FindOne(queryOptions map[string]interface{}) | ||
| 110 | return u, nil | 130 | return u, nil |
| 111 | } | 131 | } |
| 112 | 132 | ||
| 113 | -func (repo *TaskAnomalyRepository) Find(queryOptions map[string]interface{}) (int, []*domain.TaskAnomaly, error) { | 133 | +func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*domain.Task, error) { |
| 114 | tx := repo.transactionContext.PgTx | 134 | tx := repo.transactionContext.PgTx |
| 115 | - var m []*models.TaskAnomaly | ||
| 116 | - query := tx.Model(&m) | 135 | + var m []*models.Task |
| 136 | + query := tx.Model(&m). | ||
| 137 | + Where("deleted_at isnull"). | ||
| 138 | + Limit(20) | ||
| 139 | + if val, ok := queryOptions["name"]; ok { | ||
| 140 | + query.Where("task.name like ?", val) | ||
| 141 | + } | ||
| 142 | + if val, ok := queryOptions["companyId"]; ok { | ||
| 143 | + query.Where("task.company_id = ?", val) | ||
| 144 | + } | ||
| 145 | + if val, ok := queryOptions["id"]; ok { | ||
| 146 | + query.Where("task.id=?", val) | ||
| 147 | + } | ||
| 148 | + if val, ok := queryOptions["leaderId"]; ok { | ||
| 149 | + query.Where("task.leader->>'id'=?", val) | ||
| 150 | + } | ||
| 151 | + if val, ok := queryOptions["aliasOrLeader"]; ok { | ||
| 152 | + query.Where(`task.alias like ? or task.leader->>'name' like ?`, val, val) | ||
| 153 | + } | ||
| 154 | + if val, ok := queryOptions["status"]; ok { | ||
| 155 | + query.Where("task.status=?", val) | ||
| 156 | + } | ||
| 157 | + if val, ok := queryOptions["createdBy"]; ok { | ||
| 158 | + query.Where("created_by = ?", val) | ||
| 159 | + } | ||
| 117 | if val, ok := queryOptions["limit"]; ok { | 160 | if val, ok := queryOptions["limit"]; ok { |
| 118 | if limit, err := strconv.Atoi(fmt.Sprintf("%v", val)); err == nil { | 161 | if limit, err := strconv.Atoi(fmt.Sprintf("%v", val)); err == nil { |
| 119 | query.Limit(limit) | 162 | query.Limit(limit) |
| @@ -129,7 +172,7 @@ func (repo *TaskAnomalyRepository) Find(queryOptions map[string]interface{}) (in | @@ -129,7 +172,7 @@ func (repo *TaskAnomalyRepository) Find(queryOptions map[string]interface{}) (in | ||
| 129 | if err != nil { | 172 | if err != nil { |
| 130 | return 0, nil, err | 173 | return 0, nil, err |
| 131 | } | 174 | } |
| 132 | - var datas []*domain.TaskAnomaly | 175 | + var datas []*domain.Task |
| 133 | for _, v := range m { | 176 | for _, v := range m { |
| 134 | d := repo.TransformToDomain(v) | 177 | d := repo.TransformToDomain(v) |
| 135 | datas = append(datas, d) | 178 | datas = append(datas, d) |
-
请 注册 或 登录 后发表评论