切换导航条
此项目
正在载入...
登录
allied-creation
/
performance
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
tangxvhui
2 years ago
提交
9bbada5722e5b70afb69f0de8184e262c78ffb9a
1 个父辈
f620db92
日常保存
隐藏空白字符变更
内嵌
并排对比
正在显示
10 个修改的文件
包含
464 行增加
和
173 行删除
pkg/application/staff_assess/service/create_staff_assess.go
pkg/application/task/service/check_task_record.go
pkg/application/task/service/check_task_recordv2.go
pkg/application/task/service/service.go
pkg/application/task/service/service2.go
pkg/domain/task_anomaly.go
pkg/domain/task_record.go
pkg/infrastructure/pg/models/task_anomaly.go
pkg/infrastructure/repository/pg_task_anomaly_repository.go
pkg/infrastructure/repository/pg_task_repository.go
pkg/application/staff_assess/service/create_staff_assess.go
查看文件 @
9bbada5
...
...
@@ -485,6 +485,7 @@ func (srv StaffAssessServeice) buildTaskRecord(staffAssess *domain.StaffAssess)
AnomalyState
:
domain
.
AnomalyStateInit
,
TaskStages
:
[]
domain
.
TaskStage
{},
TaskStageCheck
:
domain
.
TaskStage
{},
TaskCreatedBy
:
taskList
[
0
]
.
CreatedBy
,
}
sort
.
Slice
(
taskStageList
,
func
(
i
,
j
int
)
bool
{
return
taskStageList
[
i
]
.
SortBy
<
taskStageList
[
j
]
.
SortBy
...
...
pkg/application/task/service/check_task_record.go
查看文件 @
9bbada5
...
...
@@ -11,6 +11,8 @@ import (
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
)
//TODO 检查任务里程碑反馈, 记录异常情况
// 检查昨日提交的任务里程碑反馈
func
CheckYesterdayTaskRecord
()
{
nowTime
:=
time
.
Now
()
...
...
@@ -90,10 +92,8 @@ func getYesterdayTaskRecord(nowDay string) ([]*domain.TaskRecord, error) {
_
=
transactionContext
.
RollbackTransaction
()
}()
// nowDay := time.Now().Format("2006-01-02")
nowDayTime
,
_
:=
time
.
ParseInLocation
(
"2006-01-02"
,
nowDay
,
time
.
Local
)
yesterday
:=
nowDayTime
.
Add
(
-
23
*
time
.
Hour
)
.
Format
(
"2006-01-02"
)
taskRecordRepo
:=
factory
.
CreateTaskRecordRepository
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
})
...
...
pkg/application/task/service/check_task_recordv2.go
0 → 100644
查看文件 @
9bbada5
package
service
import
(
"fmt"
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory"
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
)
func
checkTaskRecordV2
(
param
*
domain
.
TaskRecord
)
error
{
transactionContext
,
err
:=
factory
.
CreateTransactionContext
(
nil
)
if
err
!=
nil
{
return
err
}
if
err
:=
transactionContext
.
StartTransaction
();
err
!=
nil
{
return
err
}
defer
func
()
{
_
=
transactionContext
.
RollbackTransaction
()
}()
taskRepo
:=
factory
.
CreateTaskRepository
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
})
_
,
taskDataList
,
err
:=
taskRepo
.
Find
(
map
[
string
]
interface
{}{
"id"
:
param
.
TaskId
})
if
err
!=
nil
{
return
fmt
.
Errorf
(
"获取任务数据失败:%s"
,
err
)
}
if
len
(
taskDataList
)
==
0
{
return
nil
}
taskData
:=
taskDataList
[
0
]
anomalyDataTmp
:=
domain
.
TaskAnomaly
{
Id
:
taskData
.
Id
,
CreatedAt
:
taskData
.
CreatedAt
,
UpdatedAt
:
taskData
.
UpdatedAt
,
CompanyId
:
taskData
.
CompanyId
,
TaskId
:
taskData
.
Id
,
Category
:
0
,
CurrentStage
:
taskData
.
CurrentStage
,
LastStage
:
taskData
.
LastStage
,
AssessFlag
:
0
,
WarnFlag
:
0
,
AssistFlag
:
0
,
IsLast
:
1
,
TaskLevel
:
taskData
.
LevelName
,
TaskName
:
taskData
.
Name
,
TaskAlias
:
taskData
.
Alias
,
TaskSortBy
:
taskData
.
SortBy
,
TaskEndTime
:
taskData
.
EndTime
,
RecordBegin
:
0
,
NoticeWho
:
[]
int64
{},
Marks
:
map
[
string
]
string
{
"a"
:
""
,
"b"
:
""
,
"c"
:
""
,
"d"
:
""
,
},
}
var
anomalyList
[]
domain
.
TaskAnomaly
// 检查反馈异常
if
param
.
IsRemarkAnomaly
()
{
taskData
.
Anomaly
+=
1
anomalyDataTmp
.
Category
=
2
anomalyList
=
append
(
anomalyList
,
anomalyDataTmp
)
}
else
{
taskData
.
Anomaly
=
0
}
// 检查里程碑异常
if
param
.
IsTaskStageAnomaly
()
{
taskData
.
WarnFlag
=
domain
.
TaskWarn
}
else
{
taskData
.
WarnFlag
=
domain
.
TaskWarnNull
}
// 检查辅导异常
if
param
.
IsAssistAnomaly
()
{
taskData
.
AssistFlag
+=
1
}
else
{
taskData
.
AssistFlag
=
0
}
err
=
taskRepo
.
Save
(
taskData
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"保存任务数据:%s"
,
err
)
}
if
err
:=
transactionContext
.
CommitTransaction
();
err
!=
nil
{
return
err
}
return
nil
}
...
...
pkg/application/task/service/service.go
查看文件 @
9bbada5
...
...
@@ -29,41 +29,20 @@ func dayEndTime(t time.Time) time.Time {
return
t2
}
// func dayZeroTime(t time.Time) time.Time {
// y, m, d := t.Local().Date()
// t2 := time.Date(y, m, d, 0, 0, 0, 0, time.Local)
// return t2
// }
// func (srv TaskService) CreateTaskTest(param *command.CreateTaskCommand) error {
// transactionContext, err := factory.CreateTransactionContext(nil)
// if err != nil {
// return application.ThrowError(application.TRANSACTION_ERROR, err.Error())
// }
// if err := transactionContext.StartTransaction(); err != nil {
// return application.ThrowError(application.TRANSACTION_ERROR, err.Error())
// }
// defer func() {
// _ = transactionContext.RollbackTransaction()
// }()
// err = srv.CreateTask(transactionContext, param)
// if err != nil {
// return application.ThrowError(application.INTERNAL_SERVER_ERROR, "创建任务失败:"+err.Error())
// }
// if err := transactionContext.CommitTransaction(); err != nil {
// return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
// }
// return nil
// }
func
dayZeroTime
(
t
time
.
Time
)
time
.
Time
{
y
,
m
,
d
:=
t
.
Local
()
.
Date
()
t2
:=
time
.
Date
(
y
,
m
,
d
,
0
,
0
,
0
,
0
,
time
.
Local
)
return
t2
}
// CreateTask 重评估模板中创建
func
(
srv
TaskService
)
CreateTaskByProject
(
transactionContext
application
.
TransactionContext
,
param
*
command
.
CreateTaskByProjectCommand
)
error
{
taskRepo
:=
factory
.
CreateTaskRepository
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
})
taskStageRepo
:=
factory
.
CreateTaskStageRepository
(
map
[
string
]
interface
{}{
"transactionContext"
:
transactionContext
,
})
// taskStageRepo := factory.CreateTaskStageRepository(map[string]interface{}{
// "transactionContext": transactionContext,
// })
cnt
,
_
,
err
:=
taskRepo
.
Find
(
map
[
string
]
interface
{}{
"name"
:
param
.
Name
,
"leaderId"
:
strconv
.
Itoa
(
param
.
LeaderId
),
...
...
@@ -123,36 +102,11 @@ func (srv TaskService) CreateTaskByProject(transactionContext application.Transa
if
err
!=
nil
{
return
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"创建任务失败:"
+
err
.
Error
())
}
newTaskStage
:=
[]
*
domain
.
TaskStage
{
// {
// Id: 0,
// TaskId: newTask.Id,
// Name: "里程碑1",
// SortBy: 1,
// PlanCompletedAt: nowEndTime.Add(30 * 24 * time.Hour).Unix(),
// RealCompletedAt: 0,
// },
// {
// Id: 0,
// TaskId: newTask.Id,
// Name: "里程碑2",
// SortBy: 2,
// PlanCompletedAt: nowEndTime.Add(60 * 24 * time.Hour).Unix(),
// RealCompletedAt: 0,
// },
// {
// Id: 0,
// TaskId: newTask.Id,
// Name: "里程碑3",
// SortBy: 3,
// PlanCompletedAt: nowEndTime.Add(90 * 24 * time.Hour).Unix(),
// RealCompletedAt: 0,
// },
}
err
=
taskStageRepo
.
Save
(
newTaskStage
)
if
err
!=
nil
{
return
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"创建任务失败:"
+
err
.
Error
())
}
newTaskStage
:=
[]
*
domain
.
TaskStage
{}
// err = taskStageRepo.Save(newTaskStage)
// if err != nil {
// return application.ThrowError(application.INTERNAL_SERVER_ERROR, "创建任务失败:"+err.Error())
// }
//记录待执行的里程碑
newTask
.
SetCurrentStage
(
newTaskStage
)
err
=
taskRepo
.
Save
(
&
newTask
)
...
...
pkg/application/task/service/service2.go
0 → 100644
查看文件 @
9bbada5
package
service
// 异常中心查看
...
...
pkg/domain/task_anomaly.go
查看文件 @
9bbada5
package
domain
import
"time"
// 任务的异常记录
type
TaskAnomaly
struct
{
Id
int
TaskId
int
Types
int
Id
int
CreatedAt
time
.
Time
`json:"createdAt"`
UpdatedAt
time
.
Time
`json:"updatedAt"`
CompanyId
int
`json:"companyId,string"`
TaskId
int
`jsom:"taskId,string"`
// 任务id
Category
int
`json:"category"`
// 异常记录的分类 1 里程碑异常;2反馈异常 ;3 辅导异常
CurrentStage
TaskStage
`json:"currentStage"`
// 当前执行的里程碑
LastStage
TaskStage
`json:"lastStage"`
// 上一个完成的里程碑
AssessFlag
int
`json:"anomaly"`
// 异常反馈的次数
WarnFlag
int
`json:"warnFlag"`
// 里程碑异常次数
AssistFlag
int
`json:"assistFlag"`
// 辅导异常次数
IsLast
int
`json:"isLast"`
// 是否是最新的一条记录 1 是最新的记录 2 不是最新的记录
TaskLevel
string
`json:"taskLevel"`
// 任务类型
TaskName
string
`json:"taskName"`
// 任务名称
TaskAlias
string
`json:"taskAlias"`
// 任务别名
TaskSortBy
TaskSortBy
`json:"taskSortBy"`
// 优先级排序;值越小优先级越高
TaskEndTime
int64
`json:"taskEndTime"`
// 任务截止的时间戳,单位:秒;等于0时表示未设置时间
RecordBegin
int
`json:"recordBegin"`
// 异常记录的开始时间
NoticeWho
[]
int64
`json:"noticeWho"`
// 异常记录消息通知的人
Marks
map
[
string
]
string
`json:"marks"`
// 已经操作的标记
}
// 已点击“去更新”
func
(
t
*
TaskAnomaly
)
MarkA
()
{
t
.
Marks
[
"a"
]
=
"已更新"
}
// 已点击 "去反馈"
func
(
t
*
TaskAnomaly
)
MarkB
()
{
t
.
Marks
[
"b"
]
=
"已反馈"
}
// 已点击 "找上级"
func
(
t
*
TaskAnomaly
)
MarkC
()
{
t
.
Marks
[
"c"
]
=
"已求助"
}
// 已点击 "去辅导"
func
(
t
*
TaskAnomaly
)
MarkD
()
{
t
.
Marks
[
"d"
]
=
"已辅导"
}
// 存储
type
TaskAnomalyRepository
interface
{
Save
(
param
*
TaskAnomaly
)
error
FindOne
(
queryOptions
map
[
string
]
interface
{})
(
*
TaskAnomaly
,
error
)
Find
(
queryOptions
map
[
string
]
interface
{})
(
int
,
[]
*
TaskAnomaly
,
error
)
}
...
...
pkg/domain/task_record.go
查看文件 @
9bbada5
package
domain
import
(
"strings"
"time"
)
...
...
@@ -46,14 +47,42 @@ type TaskRecordRepository interface {
Find
(
queryOptions
map
[
string
]
interface
{})
(
int
,
[]
*
TaskRecord
,
error
)
}
// 是否取消任务的里程碑反馈异常记录
// func (record *TaskRecord) CanTaskAnomaly() bool {
// trimSpace := strings.TrimLeft(record.AssistContent, "\n") // 去掉前换行符
// trimSpace = strings.TrimRight(trimSpace, "\n") // 去掉后换行符
// trimSpace = strings.TrimSpace(trimSpace) // 去掉前后空格符
// // 上级填写内容有值,选项是已辅导,变为正常
// if !(len(trimSpace) == 0 || trimSpace == "无") && record.AssistLevel != AssistLevel1 {
// return true
// }
// return false
// }
// 是否是辅导异常
func
(
r
*
TaskRecord
)
IsAssistAnomaly
()
bool
{
r
.
AssistContent
=
strings
.
TrimSpace
(
r
.
AssistContent
)
if
r
.
AssistLevel
==
AssistLevel1
||
r
.
AssistContent
==
"无"
{
return
true
}
return
false
}
// 是否是里程碑异常
func
(
r
*
TaskRecord
)
IsTaskStageAnomaly
()
bool
{
if
r
.
TaskStageCheck
.
Id
==
0
{
return
false
}
realCompletedAt
:=
r
.
TaskStageCheck
.
RealCompletedAt
if
realCompletedAt
==
0
{
//假设现在完成
realCompletedAt
=
time
.
Now
()
.
Unix
()
}
if
r
.
TaskStageCheck
.
PlanCompletedAt
<
realCompletedAt
{
//逾期完成,或者预期未完成
return
true
}
return
false
}
// 是否是反馈异常
func
(
r
*
TaskRecord
)
IsRemarkAnomaly
()
bool
{
all
:=
""
for
_
,
val
:=
range
r
.
RemarkContent
{
txt
:=
strings
.
TrimSpace
(
val
.
RemarkText
)
all
+=
txt
}
if
len
(
all
)
==
0
||
all
==
"无"
{
return
true
}
return
false
}
...
...
pkg/infrastructure/pg/models/task_anomaly.go
0 → 100644
查看文件 @
9bbada5
package
models
import
(
"time"
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
)
// 任务的异常记录
type
TaskAnomaly
struct
{
tableName
struct
{}
`comment:"任务的异常记录" pg:"task_anomaly"`
Id
int
`pg:"id"`
CreatedAt
time
.
Time
`pg:"created_at"`
UpdatedAt
time
.
Time
`pg:"updated_at"`
CompanyId
int
`pg:"company_id"`
TaskId
int
`pg:"task_id"`
// 任务id
Category
int
`pg:"category"`
// 异常任务的分类
CurrentStage
domain
.
TaskStage
`pg:"current_stage"`
// 当前执行的里程碑
LastStage
domain
.
TaskStage
`pg:"last_stage"`
// 上一个完成的里程碑
AssessFlag
int
`pg:"assess_flag,use_zero"`
// 异常反馈的次数
WarnFlag
int
`pg:"warn_flag,use_zero"`
// 里程碑异常次数
AssistFlag
int
`pg:"assist_flag,use_zero"`
// 辅导异常次数
IsLast
int
`pg:"is_last"`
// 是否是最新的一条记录 1 是最新的记录 2 不是最新的记录
TaskLevel
string
`pg:"task_level"`
// 任务类型
TaskName
string
`pg:"task_name"`
// 任务名称
TaskAlias
string
`pg:"task_alias"`
// 任务别名
TaskSortBy
int
`pg:"task_sort_by"`
// 优先级排序;值越小优先级越高
TaskEndTime
int64
`pg:"task_end_time,use_zero"`
// 任务截止的时间戳,单位:秒;等于0时表示未设置时间
RecordBegin
int
`pg:"record_begin"`
// 异常记录的开始时间
NoticeWho
[]
int64
`pg:"notice_who"`
// 异常记录消息通知的人
Marks
map
[
string
]
string
`pg:"marks"`
// 已经操作的标记
}
...
...
pkg/infrastructure/repository/pg_task_anomaly_repository.go
0 → 100644
查看文件 @
9bbada5
package
repository
import
(
"errors"
"fmt"
"strconv"
"time"
"github.com/go-pg/pg/v10"
pgTransaction
"github.com/linmadan/egglib-go/transaction/pg"
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/pg/models"
)
//任务
type
TaskRepository
struct
{
transactionContext
*
pgTransaction
.
TransactionContext
}
var
_
domain
.
TaskRepository
=
(
*
TaskRepository
)(
nil
)
func
NewTaskRepository
(
transactionContext
*
pgTransaction
.
TransactionContext
)
*
TaskRepository
{
return
&
TaskRepository
{
transactionContext
:
transactionContext
}
}
func
(
repo
*
TaskRepository
)
TransformToDomain
(
d
*
models
.
Task
)
*
domain
.
Task
{
return
&
domain
.
Task
{
Id
:
d
.
Id
,
CreatedAt
:
d
.
CreatedAt
,
UpdatedAt
:
d
.
UpdatedAt
,
DeletedAt
:
d
.
DeletedAt
,
CompanyId
:
d
.
CompanyId
,
Name
:
d
.
Name
,
Alias
:
d
.
Alias
,
Leader
:
d
.
Leader
,
Status
:
domain
.
TaskState
(
d
.
Status
),
Level
:
d
.
Level
,
LevelName
:
d
.
LevelName
,
SortBy
:
domain
.
TaskSortBy
(
d
.
SortBy
),
EndTime
:
d
.
EndTime
,
UseEndTime
:
d
.
UseEndTime
,
RelatedUser
:
d
.
RelatedUser
,
RunAt
:
d
.
RunAt
,
StopAt
:
d
.
StopAt
,
Anomaly
:
d
.
Anomaly
,
WarnFlag
:
domain
.
TaskWarnFlag
(
d
.
WarnFlag
),
AssistFlag
:
d
.
AssistFlag
,
AssistFlagMax
:
d
.
AssistFlagMax
,
CurrentStage
:
d
.
CurrentStage
,
LastStage
:
d
.
LastStage
,
CreatedBy
:
d
.
CreatedBy
,
}
}
func
(
repo
*
TaskRepository
)
Save
(
param
*
domain
.
Task
)
error
{
param
.
UpdatedAt
=
time
.
Now
()
if
param
.
Id
==
0
{
param
.
CreatedAt
=
time
.
Now
()
}
m
:=
models
.
Task
{
Id
:
param
.
Id
,
CreatedAt
:
param
.
CreatedAt
,
UpdatedAt
:
param
.
UpdatedAt
,
DeletedAt
:
param
.
DeletedAt
,
Name
:
param
.
Name
,
Alias
:
param
.
Alias
,
CompanyId
:
param
.
CompanyId
,
Leader
:
param
.
Leader
,
Status
:
int
(
param
.
Status
),
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
,
SortBy
:
int
(
param
.
SortBy
),
EndTime
:
param
.
EndTime
,
UseEndTime
:
param
.
UseEndTime
,
AssistFlag
:
param
.
AssistFlag
,
AssistFlagMax
:
param
.
AssistFlagMax
,
CreatedBy
:
param
.
CreatedBy
,
}
db
:=
repo
.
transactionContext
.
PgTx
if
m
.
Id
==
0
{
_
,
err
:=
db
.
Model
(
&
m
)
.
Insert
()
if
err
!=
nil
{
return
err
}
}
else
{
_
,
err
:=
db
.
Model
(
&
m
)
.
WherePK
()
.
Update
()
if
err
!=
nil
{
return
err
}
}
param
.
Id
=
m
.
Id
return
nil
}
func
(
repo
*
TaskRepository
)
Remove
(
id
int
)
error
{
tx
:=
repo
.
transactionContext
.
PgTx
nowTime
:=
time
.
Now
()
_
,
err
:=
tx
.
Model
(
&
models
.
Task
{})
.
Where
(
"id=?"
,
id
)
.
Set
(
"deleted_at=?"
,
nowTime
)
.
Update
()
return
err
}
func
(
repo
*
TaskRepository
)
FindOne
(
queryOptions
map
[
string
]
interface
{})
(
*
domain
.
Task
,
error
)
{
tx
:=
repo
.
transactionContext
.
PgTx
m
:=
new
(
models
.
Task
)
query
:=
tx
.
Model
(
m
)
query
.
Where
(
"deleted_at isnull"
)
if
id
,
ok
:=
queryOptions
[
"id"
];
ok
{
query
.
Where
(
"id=?"
,
id
)
}
if
err
:=
query
.
First
();
err
!=
nil
{
if
errors
.
Is
(
err
,
pg
.
ErrNoRows
)
{
return
nil
,
fmt
.
Errorf
(
"没有找到task数据"
)
}
else
{
return
nil
,
err
}
}
u
:=
repo
.
TransformToDomain
(
m
)
return
u
,
nil
}
func
(
repo
*
TaskRepository
)
Find
(
queryOptions
map
[
string
]
interface
{})
(
int
,
[]
*
domain
.
Task
,
error
)
{
tx
:=
repo
.
transactionContext
.
PgTx
var
m
[]
*
models
.
Task
query
:=
tx
.
Model
(
&
m
)
.
Where
(
"deleted_at isnull"
)
.
Limit
(
20
)
if
val
,
ok
:=
queryOptions
[
"name"
];
ok
{
query
.
Where
(
"task.name like ?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"companyId"
];
ok
{
query
.
Where
(
"task.company_id = ?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"id"
];
ok
{
query
.
Where
(
"task.id=?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"leaderId"
];
ok
{
query
.
Where
(
"task.leader->>'id'=?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"aliasOrLeader"
];
ok
{
query
.
Where
(
`task.alias like ? or task.leader->>'name' like ?`
,
val
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"status"
];
ok
{
query
.
Where
(
"task.status=?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"createdBy"
];
ok
{
query
.
Where
(
"created_by = ?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"limit"
];
ok
{
if
limit
,
err
:=
strconv
.
Atoi
(
fmt
.
Sprintf
(
"%v"
,
val
));
err
==
nil
{
query
.
Limit
(
limit
)
}
}
if
val
,
ok
:=
queryOptions
[
"offset"
];
ok
{
if
offset
,
err
:=
strconv
.
Atoi
(
fmt
.
Sprintf
(
"%v"
,
val
));
err
==
nil
{
query
.
Offset
(
offset
)
}
}
query
.
Order
(
"id desc"
)
count
,
err
:=
query
.
SelectAndCount
()
if
err
!=
nil
{
return
0
,
nil
,
err
}
var
datas
[]
*
domain
.
Task
for
_
,
v
:=
range
m
{
d
:=
repo
.
TransformToDomain
(
v
)
datas
=
append
(
datas
,
d
)
}
return
count
,
datas
,
nil
}
...
...
pkg/infrastructure/repository/pg_task_repository.go
查看文件 @
9bbada5
...
...
@@ -14,75 +14,67 @@ import (
//任务
type
TaskRepository
struct
{
type
Task
Anomaly
Repository
struct
{
transactionContext
*
pgTransaction
.
TransactionContext
}
var
_
domain
.
Task
Repository
=
(
*
Task
Repository
)(
nil
)
var
_
domain
.
Task
AnomalyRepository
=
(
*
TaskAnomaly
Repository
)(
nil
)
func
NewTaskRepository
(
transactionContext
*
pgTransaction
.
TransactionContext
)
*
TaskRepository
{
return
&
TaskRepository
{
transactionContext
:
transactionContext
}
func
NewTaskAnomalyRepository
(
transactionContext
*
pgTransaction
.
TransactionContext
)
*
TaskAnomalyRepository
{
return
&
TaskAnomalyRepository
{
transactionContext
:
transactionContext
}
}
func
(
repo
*
TaskRepository
)
TransformToDomain
(
d
*
models
.
Task
)
*
domain
.
Task
{
return
&
domain
.
Task
{
Id
:
d
.
Id
,
CreatedAt
:
d
.
CreatedAt
,
UpdatedAt
:
d
.
UpdatedAt
,
DeletedAt
:
d
.
DeletedAt
,
CompanyId
:
d
.
CompanyId
,
Name
:
d
.
Name
,
Alias
:
d
.
Alias
,
Leader
:
d
.
Leader
,
Status
:
domain
.
TaskState
(
d
.
Status
),
Level
:
d
.
Level
,
LevelName
:
d
.
LevelName
,
SortBy
:
domain
.
TaskSortBy
(
d
.
SortBy
),
EndTime
:
d
.
EndTime
,
UseEndTime
:
d
.
UseEndTime
,
RelatedUser
:
d
.
RelatedUser
,
RunAt
:
d
.
RunAt
,
StopAt
:
d
.
StopAt
,
Anomaly
:
d
.
Anomaly
,
WarnFlag
:
domain
.
TaskWarnFlag
(
d
.
WarnFlag
),
AssistFlag
:
d
.
AssistFlag
,
AssistFlagMax
:
d
.
AssistFlagMax
,
CurrentStage
:
d
.
CurrentStage
,
LastStage
:
d
.
LastStage
,
CreatedBy
:
d
.
CreatedBy
,
func
(
repo
*
TaskAnomalyRepository
)
TransformToDomain
(
d
*
models
.
TaskAnomaly
)
*
domain
.
TaskAnomaly
{
return
&
domain
.
TaskAnomaly
{
Id
:
d
.
Id
,
CreatedAt
:
d
.
CreatedAt
,
UpdatedAt
:
d
.
UpdatedAt
,
CompanyId
:
d
.
CompanyId
,
TaskId
:
d
.
TaskId
,
Category
:
d
.
Category
,
CurrentStage
:
d
.
CurrentStage
,
LastStage
:
d
.
LastStage
,
AssessFlag
:
d
.
AssessFlag
,
WarnFlag
:
d
.
WarnFlag
,
AssistFlag
:
d
.
AssistFlag
,
IsLast
:
d
.
IsLast
,
TaskLevel
:
d
.
TaskLevel
,
TaskName
:
d
.
TaskName
,
TaskAlias
:
d
.
TaskAlias
,
TaskSortBy
:
domain
.
TaskSortBy
(
d
.
TaskSortBy
),
TaskEndTime
:
d
.
TaskEndTime
,
RecordBegin
:
d
.
RecordBegin
,
NoticeWho
:
d
.
NoticeWho
,
Marks
:
d
.
Marks
,
}
}
func
(
repo
*
Task
Repository
)
Save
(
param
*
domain
.
Task
)
error
{
func
(
repo
*
Task
AnomalyRepository
)
Save
(
param
*
domain
.
TaskAnomaly
)
error
{
param
.
UpdatedAt
=
time
.
Now
()
if
param
.
Id
==
0
{
param
.
CreatedAt
=
time
.
Now
()
}
m
:=
models
.
Task
{
Id
:
param
.
Id
,
CreatedAt
:
param
.
CreatedAt
,
UpdatedAt
:
param
.
UpdatedAt
,
DeletedAt
:
param
.
DeletedAt
,
Name
:
param
.
Name
,
Alias
:
param
.
Alias
,
CompanyId
:
param
.
CompanyId
,
Leader
:
param
.
Leader
,
Status
:
int
(
param
.
Status
),
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
,
SortBy
:
int
(
param
.
SortBy
),
EndTime
:
param
.
EndTime
,
UseEndTime
:
param
.
UseEndTime
,
AssistFlag
:
param
.
AssistFlag
,
AssistFlagMax
:
param
.
AssistFlagMax
,
CreatedBy
:
param
.
CreatedBy
,
m
:=
models
.
TaskAnomaly
{
Id
:
param
.
Id
,
CreatedAt
:
param
.
CreatedAt
,
UpdatedAt
:
param
.
UpdatedAt
,
CompanyId
:
param
.
CompanyId
,
TaskId
:
param
.
TaskId
,
Category
:
param
.
Category
,
CurrentStage
:
param
.
CurrentStage
,
LastStage
:
param
.
LastStage
,
AssessFlag
:
param
.
AssessFlag
,
WarnFlag
:
param
.
WarnFlag
,
AssistFlag
:
param
.
AssistFlag
,
IsLast
:
param
.
IsLast
,
TaskLevel
:
param
.
TaskLevel
,
TaskName
:
param
.
TaskName
,
TaskAlias
:
param
.
TaskAlias
,
TaskSortBy
:
int
(
param
.
TaskSortBy
),
TaskEndTime
:
param
.
TaskEndTime
,
RecordBegin
:
param
.
RecordBegin
,
NoticeWho
:
param
.
NoticeWho
,
Marks
:
param
.
Marks
,
}
db
:=
repo
.
transactionContext
.
PgTx
if
m
.
Id
==
0
{
...
...
@@ -100,28 +92,16 @@ func (repo *TaskRepository) Save(param *domain.Task) error {
return
nil
}
func
(
repo
*
Task
Repository
)
Remove
(
id
int
)
error
{
func
(
repo
*
Task
AnomalyRepository
)
FindOne
(
queryOptions
map
[
string
]
interface
{})
(
*
domain
.
TaskAnomaly
,
error
)
{
tx
:=
repo
.
transactionContext
.
PgTx
nowTime
:=
time
.
Now
()
_
,
err
:=
tx
.
Model
(
&
models
.
Task
{})
.
Where
(
"id=?"
,
id
)
.
Set
(
"deleted_at=?"
,
nowTime
)
.
Update
()
return
err
}
func
(
repo
*
TaskRepository
)
FindOne
(
queryOptions
map
[
string
]
interface
{})
(
*
domain
.
Task
,
error
)
{
tx
:=
repo
.
transactionContext
.
PgTx
m
:=
new
(
models
.
Task
)
m
:=
new
(
models
.
TaskAnomaly
)
query
:=
tx
.
Model
(
m
)
query
.
Where
(
"deleted_at isnull"
)
if
id
,
ok
:=
queryOptions
[
"id"
];
ok
{
query
.
Where
(
"id=?"
,
id
)
}
if
err
:=
query
.
First
();
err
!=
nil
{
if
errors
.
Is
(
err
,
pg
.
ErrNoRows
)
{
return
nil
,
fmt
.
Errorf
(
"没有找到
task
数据"
)
return
nil
,
fmt
.
Errorf
(
"没有找到
TaskAnomaly
数据"
)
}
else
{
return
nil
,
err
}
...
...
@@ -130,33 +110,10 @@ func (repo *TaskRepository) FindOne(queryOptions map[string]interface{}) (*domai
return
u
,
nil
}
func
(
repo
*
Task
Repository
)
Find
(
queryOptions
map
[
string
]
interface
{})
(
int
,
[]
*
domain
.
Task
,
error
)
{
func
(
repo
*
Task
AnomalyRepository
)
Find
(
queryOptions
map
[
string
]
interface
{})
(
int
,
[]
*
domain
.
TaskAnomaly
,
error
)
{
tx
:=
repo
.
transactionContext
.
PgTx
var
m
[]
*
models
.
Task
query
:=
tx
.
Model
(
&
m
)
.
Where
(
"deleted_at isnull"
)
.
Limit
(
20
)
if
val
,
ok
:=
queryOptions
[
"name"
];
ok
{
query
.
Where
(
"task.name like ?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"companyId"
];
ok
{
query
.
Where
(
"task.company_id = ?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"id"
];
ok
{
query
.
Where
(
"task.id=?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"leaderId"
];
ok
{
query
.
Where
(
"task.leader->>'id'=?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"aliasOrLeader"
];
ok
{
query
.
Where
(
`task.alias like ? or task.leader->>'name' like ?`
,
val
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"status"
];
ok
{
query
.
Where
(
"task.status=?"
,
val
)
}
if
val
,
ok
:=
queryOptions
[
"createdBy"
];
ok
{
query
.
Where
(
"created_by = ?"
,
val
)
}
var
m
[]
*
models
.
TaskAnomaly
query
:=
tx
.
Model
(
&
m
)
if
val
,
ok
:=
queryOptions
[
"limit"
];
ok
{
if
limit
,
err
:=
strconv
.
Atoi
(
fmt
.
Sprintf
(
"%v"
,
val
));
err
==
nil
{
query
.
Limit
(
limit
)
...
...
@@ -172,7 +129,7 @@ func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*d
if
err
!=
nil
{
return
0
,
nil
,
err
}
var
datas
[]
*
domain
.
Task
var
datas
[]
*
domain
.
Task
Anomaly
for
_
,
v
:=
range
m
{
d
:=
repo
.
TransformToDomain
(
v
)
datas
=
append
(
datas
,
d
)
...
...
请
注册
或
登录
后发表评论