8
8
9
9
namespace App \Actions \Photo ;
10
10
11
+ use App \Constants \PhotoAlbum as PA ;
11
12
use App \Exceptions \Internal \LycheeLogicException ;
12
13
use App \Exceptions \Internal \QueryBuilderException ;
13
14
use App \Models \Photo ;
@@ -77,7 +78,8 @@ private function query(
77
78
}
78
79
79
80
return Photo::query ()
80
- ->join ('base_albums ' , 'base_albums.id ' , '= ' , 'photos.album_id ' )
81
+ ->join (PA ::PHOTO_ALBUM , PA ::PHOTO_ID , '= ' , 'photos.id ' )
82
+ ->join ('base_albums ' , 'base_albums.id ' , '= ' , PA ::ALBUM_ID )
81
83
->join (
82
84
'size_variants ' , 'size_variants.photo_id ' , '= ' , 'photos.id ' , 'left '
83
85
)
@@ -104,12 +106,14 @@ private function getDuplicatesIdsQuery(
104
106
bool $ must_have_same_title ,
105
107
): Builder {
106
108
return DB ::table ('photos ' , 'p1 ' )->select ('p1.id ' )
109
+ ->joinSub (DB ::table (PA ::PHOTO_ALBUM ), 'pa1 ' , 'pa1.photo_id ' , '= ' , 'p1.id ' , 'left ' )
107
110
->join (
108
111
'photos as p2 ' ,
109
112
fn ($ join ) => $ join ->on ('p1.id ' , '<> ' , 'p2.id ' )
113
+ ->joinSub (DB ::table (PA ::PHOTO_ALBUM ), 'pa2 ' , 'pa2.photo_id ' , '= ' , 'p2.id ' , 'left ' )
110
114
->when ($ must_have_same_title , fn ($ q ) => $ q ->on ('p1.title ' , '= ' , 'p2.title ' ))
111
115
->when ($ must_have_same_checksum , fn ($ q ) => $ q ->on ('p1.checksum ' , '= ' , 'p2.checksum ' ))
112
- ->when ($ must_be_within_same_album , fn ($ q ) => $ q ->on ('p1 .album_id ' , '= ' , 'p2 .album_id ' ))
116
+ ->when ($ must_be_within_same_album , fn ($ q ) => $ q ->on ('pa1 .album_id ' , '= ' , 'pa2 .album_id ' ))
113
117
);
114
118
}
115
119
}
0 commit comments