Просмотр исходного кода

feat(wip): making next/previous song logic consistent with order by logic in songs list

Fela Maslen 5 лет назад
Родитель
Сommit
ee0ced6a72
2 измененных файлов с 6 добавлено и 3 удалено
  1. 5 2
      gmus-backend/pkg/repository/player.go
  2. 1 1
      gmus-backend/pkg/repository/songs.go

+ 5 - 2
gmus-backend/pkg/repository/player.go

@@ -65,9 +65,12 @@ func GetNextSongId(db *sqlx.DB, prevSongId int64) (nextSongId int64, err error)
               and prev.id_next is null
               and next_track_number.artist = prev.artist
               and next_track_number.album = prev.album
-              and next_track_number.track_number > prev.track_number
+              and (
+                (prev.track_number > 0 and next_track_number.track_number > prev.track_number)
+                or (prev.track_number = 0 and next_track_number.id > $1)
+              )
 
-            order by next_track_number.track_number
+            order by next_track_number.track_number, next_track_number.id
             limit 1
 
           ) prev

+ 1 - 1
gmus-backend/pkg/repository/songs.go

@@ -96,7 +96,7 @@ func SelectSongsByArtist(db *sqlx.DB, artist string) (songs *[]*read.SongExterna
     ,duration
   from songs
   where artist = $1
-  order by album, track_number, title, id
+  order by album, track_number, id, title
   `, artist)
 
 	return