package audit // 管理后台操作审计公共能力? // // 职责? // 1. OperatorFromCtx ?HTTP 请求 context 提取当前登录操作人(uid ?用户名)? // ?logic 层记录人工操作时携带? // // 操作人缺失兜底:"系统"(自动化触发,非人工操作)? import ( "context" "fmt" xhttp "bj_power_mes/common/httpx" "bj_power_mes/ent" "bj_power_mes/ent/user" ) // OperatorFromCtx 从请?context 提取操作人用户名? // 无登录上下文(自动触发)返回 "系统";查库失败兜?"用户#",保证审计不丢操作人? func OperatorFromCtx(ctx context.Context, entClient *ent.Client) string { if entClient == nil { return "系统" } uid := xhttp.GetUidFromCtx(ctx) if uid <= 0 { return "系统" } u, err := entClient.User.Query(). Where(user.IDEQ(int(uid))). Only(ctx) if err != nil { return fmt.Sprintf("用户#%d", uid) } return u.Username }