Files
workspace/code/allapp/allapp-go-v3/pkg/db/common.go
T
2026-04-17 17:25:15 +08:00

58 lines
973 B
Go

package db
import (
"fmt"
"strconv"
"strings"
)
var auditExcludeTables = map[string]bool{
"user": true,
"user_oauth": true,
}
func validateData(table string, keyField string, data map[string]any) (any, error) {
if table == "" {
return nil, fmt.Errorf("表名不能为空")
}
if len(data) == 0 {
return nil, fmt.Errorf("数据不能为空")
}
if keyField == "" {
return nil, fmt.Errorf("主键字段不能为空")
}
val, ok := data[keyField]
if !ok {
return nil, fmt.Errorf("缺少主键字段: %s", keyField)
}
if val == nil {
return nil, fmt.Errorf("主键字段值不能为空")
}
return val, nil
}
// 高效 placeholder 转换
func convertPlaceholder(sql string) string {
var sb strings.Builder
sb.Grow(len(sql))
argIndex := 1
for i := 0; i < len(sql); i++ {
if sql[i] == '?' {
sb.WriteByte('$')
sb.WriteString(strconv.Itoa(argIndex))
argIndex++
} else {
sb.WriteByte(sql[i])
}
}
return sb.String()
}