ReleaseController.class.php 2.06 KB
<?php
/**
 * 定时发布回调
 * Created by PhpStorm.
 * User: 大熊
 * Date: 2018/5/16
 * Time: 19:21
 */

namespace Frontend\Controller\Callback;


use Common\Common\Constant;
use Common\Common\NewsHelper;
use Common\Service\ArticleService;
use Common\Service\ClassService;
use Think\Log;

class ReleaseController extends AbstractController
{
    public function index()
    {
        $param = $this->callBackData;
        if (empty($param)) {
            $param = I('post.');
        }

        if (empty($param)) {
            return true;
        }

        // 获取数据信息
        $service = new ArticleService();
        $data = $service->get($param['article_id']);

        // 不为定时发布时不做处理
        if ($data['news_status'] != Constant::NEWS_STATUS_TIMING_RELEASE) {
            return true;
        }

        // 判断素材状态,若转码成功则为发布状态,否则为预发布状态
        $updateData = ['news_status' => Constant::NEWS_STATUS_SEND];
        if ($data['convert_status'] == Constant::FILE_STATUS_CONVERT) {
            $updateData['news_status'] = Constant::NEWS_STATUS_READY_SEND;
        }

        $service->update($param['article_id'], $updateData);

        // 当为发布时
        if ($updateData['news_status'] == Constant::NEWS_STATUS_SEND) {
            // 获取顶级分类名称
            $classServ = new ClassService();
            $class = $classServ->getTopClass($data['class_id']);
            $data['class_name'] = $class['class_name'];

            // 发送未读提醒
            if ($data['is_notice'] == Constant::NEWS_IS_NOTICE_TRUE) {
                $newsHelper = &NewsHelper::instance();
                list($uids_all, $uids_read, $uids_unread) = $newsHelper->getReadData($param['article_id']);
                $newsHelper->sendUnreadMsg($uids_unread, $data);
            }

            // RPC推送到运营中心
            if ($data['is_recommend'] == Constant::NEWS_IS_RECOMMEND_TRUE) {
                $service->addNewsRpc($param['article_id'], []);
            }
        }

        return true;
    }
}