31
31
class ItemMapperV2 extends NewsMapperV2
32
32
{
33
33
const TABLE_NAME = 'news_items ' ;
34
+ const USER_TABLE_NAME = 'news_user_items ' ;
34
35
35
36
/**
36
37
* ItemMapper constructor.
@@ -56,9 +57,8 @@ public function findAllFromUser(string $userId, array $params = []): array
56
57
$ builder = $ this ->db ->getQueryBuilder ();
57
58
$ builder ->select ('items.* ' )
58
59
->from ($ this ->tableName , 'items ' )
59
- ->innerJoin ('items ' , FeedMapperV2::TABLE_NAME , 'feeds ' , 'items.feed_id = feeds.id ' )
60
- ->where ('feeds.user_id = :user_id ' )
61
- ->andWhere ('feeds.deleted_at = 0 ' )
60
+ ->innerJoin ('items ' , self ::USER_TABLE_NAME , 'users ' , 'items.id = users.item_id ' )
61
+ ->where ('users.user_id = :user_id ' )
62
62
->setParameter ('user_id ' , $ userId , IQueryBuilder::PARAM_STR );
63
63
64
64
foreach ($ params as $ key => $ value ) {
@@ -92,10 +92,10 @@ public function findFromUser(string $userId, int $id): Entity
92
92
$ builder = $ this ->db ->getQueryBuilder ();
93
93
$ builder ->select ('items.* ' )
94
94
->from ($ this ->tableName , 'items ' )
95
- ->innerJoin ('items ' , FeedMapperV2:: TABLE_NAME , 'feeds ' , 'items.feed_id = feeds.id ' )
96
- ->where ('feeds .user_id = :user_id ' )
95
+ ->innerJoin ('items ' , self :: USER_TABLE_NAME , 'users ' , 'items.id = users.item_id ' )
96
+ ->where ('users .user_id = :user_id ' )
97
97
->andWhere ('items.id = :item_id ' )
98
- ->andWhere ('feeds .deleted_at = 0 ' )
98
+ ->andWhere ('users .deleted_at = 0 ' )
99
99
->setParameter ('user_id ' , $ userId , IQueryBuilder::PARAM_STR )
100
100
->setParameter ('item_id ' , $ id , IQueryBuilder::PARAM_INT );
101
101
@@ -444,9 +444,10 @@ public function findAllFeed(
444
444
): array {
445
445
$ builder = $ this ->db ->getQueryBuilder ();
446
446
447
- $ builder ->select ('items.* ' )
447
+ $ builder ->select ('items.* ' , ' users.unread ' , ' users.starred ' , ' users.shared_by ' )
448
448
->from ($ this ->tableName , 'items ' )
449
449
->innerJoin ('items ' , FeedMapperV2::TABLE_NAME , 'feeds ' , 'items.feed_id = feeds.id ' )
450
+ ->innerJoin ('items ' , self ::USER_TABLE_NAME , 'users ' , 'items.id = users.item_id ' )
450
451
->andWhere ('feeds.deleted_at = 0 ' )
451
452
->andWhere ('feeds.user_id = :userId ' )
452
453
->andWhere ('items.feed_id = :feedId ' )
@@ -501,9 +502,10 @@ public function findAllFolder(
501
502
$ folderWhere = $ builder ->expr ()->eq ('feeds.folder_id ' , new Literal ($ folderId ), IQueryBuilder::PARAM_INT );
502
503
}
503
504
504
- $ builder ->select ('items.* ' )
505
+ $ builder ->select ('items.* ' , ' users.unread ' , ' users.starred ' , ' users.shared_by ' )
505
506
->from ($ this ->tableName , 'items ' )
506
507
->innerJoin ('items ' , FeedMapperV2::TABLE_NAME , 'feeds ' , 'items.feed_id = feeds.id ' )
508
+ ->innerJoin ('items ' , self ::USER_TABLE_NAME , 'users ' , 'items.id = users.item_id ' )
507
509
->andWhere ('feeds.user_id = :userId ' )
508
510
->andWhere ('feeds.deleted_at = 0 ' )
509
511
->andWhere ($ folderWhere )
@@ -550,11 +552,10 @@ public function findAllItems(
550
552
): array {
551
553
$ builder = $ this ->db ->getQueryBuilder ();
552
554
553
- $ builder ->select ('items.* ' )
555
+ $ builder ->select ('items.* ' , ' users.unread ' , ' users.starred ' , ' users.shared_by ' )
554
556
->from ($ this ->tableName , 'items ' )
555
- ->innerJoin ('items ' , FeedMapperV2::TABLE_NAME , 'feeds ' , 'items.feed_id = feeds.id ' )
556
- ->andWhere ('feeds.user_id = :userId ' )
557
- ->andWhere ('feeds.deleted_at = 0 ' )
557
+ ->innerJoin ('items ' , self ::USER_TABLE_NAME , 'users ' , 'items.id = users.item_id ' )
558
+ ->andWhere ('users.user_id = :userId ' )
558
559
->setParameter ('userId ' , $ userId )
559
560
->addOrderBy ('items.id ' , ($ oldestFirst ? 'ASC ' : 'DESC ' ));
560
561
0 commit comments