SAAS-794: Schedule/get-current-playlist can take too long to respond

Fix for incorrect previous/next metadata when tracks are shuffled around
in current playing show.
This commit is contained in:
drigato 2015-05-28 09:47:58 -04:00
parent 51a3f19f43
commit 182b12e0e3

View file

@ -199,7 +199,6 @@ SQL;
$currentMedia["ends"] = $currentMedia["show_ends"]; $currentMedia["ends"] = $currentMedia["show_ends"];
} }
$currentMediaScheduleId = $currentMedia["id"];
$currentMediaFileId = $currentMedia["file_id"]; $currentMediaFileId = $currentMedia["file_id"];
$currentMediaStreamId = $currentMedia["stream_id"]; $currentMediaStreamId = $currentMedia["stream_id"];
if (isset($currentMediaFileId)) { if (isset($currentMediaFileId)) {
@ -234,9 +233,10 @@ SQL;
); );
$previousMedia = CcScheduleQuery::create() $previousMedia = CcScheduleQuery::create()
->filterByDbId($currentMediaScheduleId-1) ->filterByDbStarts($currentMedia["starts"], Criteria::LESS_THAN)
->filterByDbId($currentMedia["id"], Criteria::NOT_EQUAL)
->filterByDbPlayoutStatus(0, Criteria::GREATER_THAN) ->filterByDbPlayoutStatus(0, Criteria::GREATER_THAN)
->orderByDbStarts() ->orderByDbStarts(Criteria::DESC)
->findOne(); ->findOne();
if (isset($previousMedia)) { if (isset($previousMedia)) {
$previousMediaFileId = $previousMedia->getDbFileId(); $previousMediaFileId = $previousMedia->getDbFileId();
@ -253,10 +253,6 @@ SQL;
$previousWebstream = CcWebstreamQuery::create() $previousWebstream = CcWebstreamQuery::create()
->filterByDbId($previousMediaStreamId) ->filterByDbId($previousMediaStreamId)
->findOne(); ->findOne();
/*$previousWebstreamMetadata = CcWebstreamMetadataQuery::create()
->filterByDbInstanceId($previousMedia->getDbInstanceId())
->orderByDbStartTime(Criteria::DESC)
->findOne();*/
$previousMediaName = $previousWebstream->getDbName(); $previousMediaName = $previousWebstream->getDbName();
} else { } else {
$previousMediaType = null; $previousMediaType = null;
@ -270,8 +266,9 @@ SQL;
} }
$nextMedia = CcScheduleQuery::create() $nextMedia = CcScheduleQuery::create()
->filterByDbId($currentMediaScheduleId+1) ->filterByDbStarts($currentMedia["starts"], Criteria::GREATER_THAN)
->orderByDbStarts() ->filterByDbId($currentMedia["id"], Criteria::NOT_EQUAL)
->orderByDbStarts(Criteria::ASC)
->findOne(); ->findOne();
if (isset($nextMedia)) { if (isset($nextMedia)) {
$nextMediaFileId = $nextMedia->getDbFileId(); $nextMediaFileId = $nextMedia->getDbFileId();
@ -287,10 +284,6 @@ SQL;
$nextWebstream = CcWebstreamQuery::create() $nextWebstream = CcWebstreamQuery::create()
->filterByDbId($nextMediaStreamId) ->filterByDbId($nextMediaStreamId)
->findOne(); ->findOne();
/*$nextWebstreamMetadata = CcWebstreamMetadataQuery::create()
->filterByDbInstanceId($nextMedia->getDbInstanceId())
->orderByDbStartTime(Criteria::DESC)
->findOne();*/
$nextMediaName = $nextWebstream->getDbName(); $nextMediaName = $nextWebstream->getDbName();
} else { } else {
$nextMediaType = null; $nextMediaType = null;