summary_evaluation_dao.go
3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package dao
import (
"github.com/go-pg/pg/v10"
pgTransaction "github.com/linmadan/egglib-go/transaction/pg"
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
)
type SummaryEvaluationDao struct {
transactionContext *pgTransaction.TransactionContext
}
func NewSummaryEvaluationDao(options map[string]interface{}) *SummaryEvaluationDao {
var transactionContext *pgTransaction.TransactionContext
if value, ok := options["transactionContext"]; ok {
transactionContext = value.(*pgTransaction.TransactionContext)
}
return &SummaryEvaluationDao{
transactionContext: transactionContext,
}
}
type PersonalCycle struct {
CycleId string `pg:"cycle_id" ` //周期id
CycleName string `pg:"cycle_name"` //周期名称
SummaryEvaluationId string `pg:"summary_evaluation_id"` //评估任务id
}
// GetExecutorCycleList 获取执行人拥有的周期列表
// executorId 执行人id
// offset,limit 分页
func (d *SummaryEvaluationDao) GetExecutorCycleList(executorId int, offset int, limit int, evaluationType domain.EvaluationType) ([]PersonalCycle, error) {
sqlStr := `select
distinct
summary_evaluation.cycle_id ,
summary_evaluation.cycle_name
from summary_evaluation
where summary_evaluation.executor ->>'userId'='?'
`
tx := d.transactionContext.PgTx
condition := []interface{}{
executorId,
}
if evaluationType > 0 {
sqlStr += ` and summary_evaluation."types"=? `
condition = append(condition, int(evaluationType))
}
condition = append(condition, offset, limit)
sqlStr += ` order by summary_evaluation.cycle_id desc offset ? limit ? `
result := []PersonalCycle{}
_, err := tx.Query(&result, sqlStr, condition...)
return result, err
}
// CountExecutorCycleList 统计执行人拥有的周期列表
func (d *SummaryEvaluationDao) CountExecutorCycleList(executorId int, evaluationType domain.EvaluationType) (int, error) {
sqlStr := `select count(
distinct summary_evaluation.cycle_id
) as cnt
from summary_evaluation
where summary_evaluation.executor ->>'userId'='?' `
tx := d.transactionContext.PgTx
condition := []interface{}{
executorId,
}
if evaluationType > 0 {
sqlStr += ` and summary_evaluation."types"=? `
condition = append(condition, int(evaluationType))
}
var cnt int
_, err := tx.QueryOne(pg.Scan(&cnt), sqlStr, condition...)
return cnt, err
}
// GetExecutorCycleList 获取被评估目标人拥有的周期列表
// executorId 执行人id
// offset,limit 分页
func (d *SummaryEvaluationDao) GetTargetUserCycleList(executorId int, offset int, limit int, evaluationType int) ([]PersonalCycle, error) {
sqlStr := `select
distinct
summary_evaluation.id as summary_evaluation_id,
summary_evaluation.cycle_id ,
summary_evaluation.cycle_name
from summary_evaluation
where summary_evaluation.target_user ->>'userId'='?'
`
tx := d.transactionContext.PgTx
condition := []interface{}{
executorId,
}
if evaluationType > 0 {
sqlStr += ` and summary_evaluation."types"=? `
condition = append(condition, evaluationType)
}
condition = append(condition, offset, limit)
sqlStr += ` offset ? limit ? `
result := []PersonalCycle{}
_, err := tx.Query(&result, sqlStr, condition...)
return result, err
}
// CountExecutorCycleList 统计 被评估目标人拥有的周期列表
func (d *SummaryEvaluationDao) CountTargetUserCycleList(executorId int, evaluationType int) (int, error) {
sqlStr := `select count(
distinct summary_evaluation.cycle_id
) as cnt
from summary_evaluation
where summary_evaluation.target_user ->>'userId'='?' `
condition := []interface{}{
executorId,
}
if evaluationType > 0 {
sqlStr += ` and summary_evaluation."types"=? `
condition = append(condition, evaluationType)
}
tx := d.transactionContext.PgTx
var cnt int
_, err := tx.QueryOne(pg.Scan(&cnt), sqlStr, condition...)
return cnt, err
}