pg_order_log_repository.go
2.2 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
package repository
import (
"fmt"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/models"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction"
)
//订单日志
type OrderLogRepository struct {
transactionContext *transaction.TransactionContext
}
var _ domain.OrderLogRepository = (*OrderLogRepository)(nil)
func NewOrderLogRepository(transactionContext *transaction.TransactionContext) (*OrderLogRepository, error) {
if transactionContext == nil {
return nil, fmt.Errorf("transactionContext参数不能为nil")
}
return &OrderLogRepository{transactionContext: transactionContext}, nil
}
func (repository OrderLogRepository) transformPgModelToDomainModel(m *models.OrderLog) (data domain.OrderLog, err error) {
return domain.OrderLog{
Id: m.Id,
OrderId: m.OrderId,
Operator: m.Operator,
OperatorId: m.OperatorId,
OperatorType: m.OperatorType,
AlterTime: m.AlterTime,
LogAction: m.LogAction,
Descript: m.Descript,
DataFrom: m.DataFrom,
}, nil
}
func (repository OrderLogRepository) Add(data *domain.OrderLog) error {
db := repository.transactionContext.GetDB()
m := models.OrderLog{
OrderId: data.OrderId,
Operator: data.Operator,
OperatorId: data.OperatorId,
OperatorType: data.OperatorType,
LogAction: data.LogAction,
Descript: data.Descript,
DataFrom: data.DataFrom,
}
_, err := db.Model(&m).Insert()
data.AlterTime = m.AlterTime
return err
}
func (repository OrderLogRepository) Find(queryOptions domain.OrderLogFindQuery) ([]domain.OrderLog, error) {
db := repository.transactionContext.GetDB()
logModels := []models.OrderLog{}
var err error
query := db.Model(&logModels)
if queryOptions.OrderId > 0 {
query = query.Where("order_id=?", queryOptions.OrderId)
}
query = query.Order("order_log.id")
query = query.Limit(1000)
err = query.Select()
if err != nil {
return nil, err
}
logReturn := []domain.OrderLog{}
for i := range logModels {
domainLog, err := repository.transformPgModelToDomainModel(&logModels[i])
if err != nil {
return logReturn, err
}
logReturn = append(logReturn, domainLog)
}
return logReturn, nil
}