初始化2
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
package eventlog
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"bj_power_mes/ent"
|
||||
"bj_power_mes/ent/eventlog"
|
||||
)
|
||||
|
||||
// Writer 封装操作日志写入
|
||||
type Writer struct {
|
||||
client *ent.Client
|
||||
}
|
||||
|
||||
func NewWriter(client *ent.Client) *Writer {
|
||||
return &Writer{client: client}
|
||||
}
|
||||
|
||||
// Payload 可选载荷
|
||||
type Payload = map[string]any
|
||||
|
||||
// Write 记录一条操作日志(event_log 必含 workOrderNo、operator 字段)
|
||||
func (w *Writer) Write(ctx context.Context, eventType, workOrderNo, operator, entityType, entityId, description string, payload Payload) {
|
||||
b := w.client.EventLog.Create().
|
||||
SetEventType(eventType).
|
||||
SetWorkOrderNo(workOrderNo).
|
||||
SetOperator(operator).
|
||||
SetEntityType(entityType).
|
||||
SetEntityId(entityId).
|
||||
SetDescription(description)
|
||||
if payload != nil {
|
||||
b.SetPayload(payload)
|
||||
}
|
||||
if _, err := b.Save(ctx); err != nil {
|
||||
_ = err
|
||||
}
|
||||
}
|
||||
|
||||
// Writer Query 支持按工单号/操作人/时间查询
|
||||
func (w *Writer) Query(ctx context.Context, eventType, workOrderNo, operator string, page, pageSize int) ([]*ent.EventLog, int, error) {
|
||||
q := w.client.EventLog.Query()
|
||||
if eventType != "" {
|
||||
q = q.Where(eventlog.EventType(eventType))
|
||||
}
|
||||
if workOrderNo != "" {
|
||||
q = q.Where(eventlog.WorkOrderNo(workOrderNo))
|
||||
}
|
||||
if operator != "" {
|
||||
q = q.Where(eventlog.Operator(operator))
|
||||
}
|
||||
total, err := q.Count(ctx)
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
list, err := q.Order(ent.Desc(eventlog.FieldCreatedAt)).
|
||||
Offset((page - 1) * pageSize).Limit(pageSize).All(ctx)
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
return list, total, nil
|
||||
}
|
||||
Reference in New Issue
Block a user