src/AppBundle/Extensions/DataTag/PopularArticlePostsDataTag.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace AppBundle\Extensions\DataTag;
use AppBundle\Common\ArrayToolkit;
use Biz\Article\Service\ArticleService;
use Biz\Group\Service\ThreadService;
class PopularArticlePostsDataTag extends BaseDataTag implements DataTag
{
/**
* 获取个人动态
*
* count 必需
*
* @param array $arguments 参数
*
* @return array 个人动态
*/
public function getData(array $arguments)
{
$limitCount = $arguments['count'] * 2;
$articlePosts = $this->getThreadService()->searchPosts(
array(
'targetType' => 'article',
'parentId' => 0,
'latest' => 'week',
),
array('ups' => 'DESC', 'createdTime' => 'DESC'),
0,
$limitCount
);
if ($limitCount > count($articlePosts)) {
$conditions = array(
'targetType' => 'article',
);
$excludeIds = ArrayToolkit::column($articlePosts, 'id');
if (!empty($excludeIds)) {
$conditions['excludeIds'] = $excludeIds;
}
$otherPosts = $this->getThreadService()->searchPosts(
$conditions,
array('ups' => 'DESC', 'createdTime' => 'DESC'),
0,
$limitCount - count($articlePosts)
);
$articlePosts = array_merge($articlePosts, $otherPosts);
}
$articleIds = ArrayToolkit::column($articlePosts, 'targetId');
$publishedArticles = $this->getArticleService()->findArticlesByIds($articleIds);
foreach ($articlePosts as $index => $articlePost) {
if (empty($publishedArticles[$articlePost['targetId']])) {
unset($articlePosts[$index]);
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。