本次提交包含多模块功能更新: 1. 权限系统重构:移除硬编码admin放行逻辑,新增精细化权限控制,完善权限树形结构与用户/角色保护 2. 新增物料导入导出接口,补充台账查询条件 3. 优化列表查询排序逻辑,新增区域编码大小写不敏感搜索 4. 修复帮助抽屉重复弹出问题,补充页面权限控制 5. 新增弱密码提示逻辑,优化MES/WMS用户/角色管理权限 6. 调整路由结构,新增权限校验脚本与前端权限树重构 7. 补充数据库字段与依赖包更新
61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
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), ent.Desc(eventlog.FieldID)).
|
|
Offset((page - 1) * pageSize).Limit(pageSize).All(ctx)
|
|
if err != nil {
|
|
return nil, 0, err
|
|
}
|
|
return list, total, nil
|
|
} |