package identity import ( "context" "database/sql" userdomain "hyapp/services/user-service/internal/domain/user" "hyapp/services/user-service/internal/storage/mysql/shared" ) type displayUserIDLog struct { // AppCode 是短号审计所属 App。 AppCode string // UserID 是短号变更所属用户。 UserID int64 // OldID 是变更前短号。 OldID string // NewID 是变更后短号。 NewID string // OldKind 是变更前来源。 OldKind userdomain.DisplayUserIDKind // NewKind 是变更后来源。 NewKind userdomain.DisplayUserIDKind // ChangeType 区分 default_change、pretty_apply、pretty_expire。 ChangeType string // LeaseID 是靓号相关变更的租约 ID。 LeaseID string // Reason 是操作原因。 Reason string // OperatorID 是操作者,系统任务可为空。 OperatorID int64 // RequestID 是入口请求或任务 ID。 RequestID string // CreatedAtMs 是日志创建时间。 CreatedAtMs int64 } func insertDisplayUserIDChangeLog(ctx context.Context, tx *sql.Tx, item displayUserIDLog) error { // 所有短号变更都写审计日志,便于追踪默认号和靓号覆盖历史。 _, err := tx.ExecContext(ctx, ` INSERT INTO display_user_id_change_logs (app_code, user_id, old_display_user_id, new_display_user_id, old_display_user_id_kind, new_display_user_id_kind, change_type, lease_id, reason, operator_user_id, request_id, created_at_ms) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) `, item.AppCode, item.UserID, item.OldID, item.NewID, string(item.OldKind), string(item.NewKind), item.ChangeType, shared.NullableString(item.LeaseID), item.Reason, shared.NullableOperator(item.OperatorID), item.RequestID, item.CreatedAtMs) return err }