src/AppBundle/Extensions/DataTag/HotThreadsDataTag.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace AppBundle\Extensions\DataTag;
use AppBundle\Common\ArrayToolkit;
use Biz\Group\Service\ThreadService;
class HotThreadsDataTag extends BaseDataTag implements DataTag
{
/**
* 获取最热话题.
*
* 可传入的参数:
*
* count 必需 话题数量,取值不能超过100
*
* @param array $arguments 参数
*
* @return array 最热话题
*/
public function getData(array $arguments)
{
$groupSetting = $this->getSettingService()->get('group', array());
$timeRange = 7 * 24 * 60 * 60;
if (isset($groupSetting['threadTime_range'])) {
$timeRange = $groupSetting['threadTime_range'] * 24 * 60 * 60;
}
$hotThreads = $this->getThreadService()->searchThreads(
array(
'createdTime' => time() - $timeRange,
'status' => 'open',
),
array(
'isStick' => 'DESC',
'postNum' => 'DESC',
'createdTime' => 'DESC',
),
0,
$arguments['count']
);
$ownerIds = ArrayToolkit::column($hotThreads, 'userId');
$groupIds = ArrayToolkit::column($hotThreads, 'groupId');
$userIds = ArrayToolkit::column($hotThreads, 'lastPostMemberId');
$lastPostMembers = $this->getUserService()->findUsersByIds($userIds);
$owners = $this->getUserService()->findUsersByIds($ownerIds);
$groups = $this->getGroupService()->getGroupsByids($groupIds);
foreach ($hotThreads as $key => $thread) {
if ($thread['userId'] == $owners[$thread['userId']]['id']) {
$hotThreads[$key]['user'] = $owners[$thread['userId']];
}
if ($thread['lastPostMemberId'] > 0 && $thread['lastPostMemberId'] == $lastPostMembers[$thread['lastPostMemberId']]['id']) {
$hotThreads[$key]['lastPostMember'] = $lastPostMembers[$thread['lastPostMemberId']];
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。