fix: try to fix pgsql #682

This commit is contained in:
CalciumIon
2024-12-31 02:10:19 +08:00
parent 87d5e286d5
commit a7e5f1e509
4 changed files with 2 additions and 18 deletions

View File

@@ -23,10 +23,6 @@ type Ability struct {
func GetGroupModels(group string) []string { func GetGroupModels(group string) []string {
var models []string var models []string
// Find distinct models // Find distinct models
groupCol := "`group`"
if common.UsingPostgreSQL {
groupCol = `"group"`
}
DB.Table("abilities").Where(groupCol+" = ? and enabled = ?", group, true).Distinct("model").Pluck("model", &models) DB.Table("abilities").Where(groupCol+" = ? and enabled = ?", group, true).Distinct("model").Pluck("model", &models)
return models return models
} }
@@ -45,10 +41,8 @@ func GetAllEnableAbilities() []Ability {
} }
func getPriority(group string, model string, retry int) (int, error) { func getPriority(group string, model string, retry int) (int, error) {
groupCol := "`group`"
trueVal := "1" trueVal := "1"
if common.UsingPostgreSQL { if common.UsingPostgreSQL {
groupCol = `"group"`
trueVal = "true" trueVal = "true"
} }
@@ -81,10 +75,8 @@ func getPriority(group string, model string, retry int) (int, error) {
} }
func getChannelQuery(group string, model string, retry int) *gorm.DB { func getChannelQuery(group string, model string, retry int) *gorm.DB {
groupCol := "`group`"
trueVal := "1" trueVal := "1"
if common.UsingPostgreSQL { if common.UsingPostgreSQL {
groupCol = `"group"`
trueVal = "true" trueVal = "true"
} }
maxPrioritySubQuery := DB.Model(&Ability{}).Select("MAX(priority)").Where(groupCol+" = ? and model = ? and enabled = "+trueVal, group, model) maxPrioritySubQuery := DB.Model(&Ability{}).Select("MAX(priority)").Where(groupCol+" = ? and model = ? and enabled = "+trueVal, group, model)

View File

@@ -114,15 +114,11 @@ func GetChannelsByTag(tag string, idSort bool) ([]*Channel, error) {
func SearchChannels(keyword string, group string, model string, idSort bool) ([]*Channel, error) { func SearchChannels(keyword string, group string, model string, idSort bool) ([]*Channel, error) {
var channels []*Channel var channels []*Channel
keyCol := "`key`"
groupCol := "`group`"
modelsCol := "`models`" modelsCol := "`models`"
// 如果是 PostgreSQL使用双引号 // 如果是 PostgreSQL使用双引号
if common.UsingPostgreSQL { if common.UsingPostgreSQL {
keyCol = `"key"` keyCol = `"key"`
groupCol = `"group"`
modelsCol = `"models"`
} }
order := "priority desc" order := "priority desc"
@@ -437,14 +433,10 @@ func GetPaginatedTags(offset int, limit int) ([]*string, error) {
func SearchTags(keyword string, group string, model string, idSort bool) ([]*string, error) { func SearchTags(keyword string, group string, model string, idSort bool) ([]*string, error) {
var tags []*string var tags []*string
keyCol := "`key`"
groupCol := "`group`"
modelsCol := "`models`" modelsCol := "`models`"
// 如果是 PostgreSQL使用双引号 // 如果是 PostgreSQL使用双引号
if common.UsingPostgreSQL { if common.UsingPostgreSQL {
keyCol = `"key"`
groupCol = `"group"`
modelsCol = `"models"` modelsCol = `"models"`
} }

View File

@@ -56,7 +56,7 @@ func formatUserLogs(logs []*Log) {
func GetLogByKey(key string) (logs []*Log, err error) { func GetLogByKey(key string) (logs []*Log, err error) {
if os.Getenv("LOG_SQL_DSN") != "" { if os.Getenv("LOG_SQL_DSN") != "" {
var tk Token var tk Token
if err = DB.Model(&Token{}).Where("`key`=?", strings.TrimPrefix(key, "sk-")).First(&tk).Error; err != nil { if err = DB.Model(&Token{}).Where(keyCol+"=?", strings.TrimPrefix(key, "sk-")).First(&tk).Error; err != nil {
return nil, err return nil, err
} }
err = LOG_DB.Model(&Log{}).Where("token_id=?", tk.Id).Find(&logs).Error err = LOG_DB.Model(&Log{}).Where("token_id=?", tk.Id).Find(&logs).Error

View File

@@ -68,7 +68,7 @@ func SearchUserTokens(userId int, keyword string, token string) (tokens []*Token
if token != "" { if token != "" {
token = strings.Trim(token, "sk-") token = strings.Trim(token, "sk-")
} }
err = DB.Where("user_id = ?", userId).Where("name LIKE ?", "%"+keyword+"%").Where("`key` LIKE ?", "%"+token+"%").Find(&tokens).Error err = DB.Where("user_id = ?", userId).Where("name LIKE ?", "%"+keyword+"%").Where(keyCol+" LIKE ?", "%"+token+"%").Find(&tokens).Error
return tokens, err return tokens, err
} }