fix: 渠道标签开启下使用ID排序出错
This commit is contained in:
@@ -63,7 +63,7 @@ func GetAllChannels(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
for _, tag := range tags {
|
for _, tag := range tags {
|
||||||
if tag != nil && *tag != "" {
|
if tag != nil && *tag != "" {
|
||||||
tagChannel, err := model.GetChannelsByTag(*tag)
|
tagChannel, err := model.GetChannelsByTag(*tag, idSort)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
channelData = append(channelData, tagChannel...)
|
channelData = append(channelData, tagChannel...)
|
||||||
}
|
}
|
||||||
@@ -181,7 +181,7 @@ func SearchChannels(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
for _, tag := range tags {
|
for _, tag := range tags {
|
||||||
if tag != nil && *tag != "" {
|
if tag != nil && *tag != "" {
|
||||||
tagChannel, err := model.GetChannelsByTag(*tag)
|
tagChannel, err := model.GetChannelsByTag(*tag, idSort)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
channelData = append(channelData, tagChannel...)
|
channelData = append(channelData, tagChannel...)
|
||||||
}
|
}
|
||||||
|
|||||||
2
main.go
2
main.go
@@ -33,7 +33,7 @@ var indexPage []byte
|
|||||||
func main() {
|
func main() {
|
||||||
err := godotenv.Load(".env")
|
err := godotenv.Load(".env")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
common.SysLog("Can't load .env file")
|
common.SysError("failed to load .env file: " + err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
common.SetupLogger()
|
common.SetupLogger()
|
||||||
|
|||||||
@@ -100,9 +100,13 @@ func GetAllChannels(startIdx int, num int, selectAll bool, idSort bool) ([]*Chan
|
|||||||
return channels, err
|
return channels, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetChannelsByTag(tag string) ([]*Channel, error) {
|
func GetChannelsByTag(tag string, idSort bool) ([]*Channel, error) {
|
||||||
var channels []*Channel
|
var channels []*Channel
|
||||||
err := DB.Where("tag = ?", tag).Find(&channels).Error
|
order := "priority desc"
|
||||||
|
if idSort {
|
||||||
|
order = "id desc"
|
||||||
|
}
|
||||||
|
err := DB.Where("tag = ?", tag).Order(order).Find(&channels).Error
|
||||||
return channels, err
|
return channels, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -362,7 +366,7 @@ func EditChannelByTag(tag string, newTag *string, modelMapping *string, models *
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if shouldReCreateAbilities {
|
if shouldReCreateAbilities {
|
||||||
channels, err := GetChannelsByTag(updatedTag)
|
channels, err := GetChannelsByTag(updatedTag, false)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
for _, channel := range channels {
|
for _, channel := range channels {
|
||||||
err = channel.UpdateAbilities()
|
err = channel.UpdateAbilities()
|
||||||
@@ -450,10 +454,13 @@ func SearchTags(keyword string, group string, model string, idSort bool) ([]*str
|
|||||||
args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%")
|
args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%")
|
||||||
}
|
}
|
||||||
|
|
||||||
err := baseQuery.Where(whereClause, args...).
|
subQuery := baseQuery.Where(whereClause, args...).
|
||||||
Select("DISTINCT tag").
|
Select("tag").
|
||||||
Where("tag != ''").
|
Where("tag != ''").
|
||||||
Order(order).
|
Order(order)
|
||||||
|
|
||||||
|
err := DB.Table("(?) as sub", subQuery).
|
||||||
|
Select("DISTINCT tag").
|
||||||
Find(&tags).Error
|
Find(&tags).Error
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user