PublishController.class.php 2.29 KB
<?php
/**
 * PublishController.class.php
 * 发布同事圈
 * User: heyuelong
 * Date:2017年4月24日10:40:17
 */

namespace Api\Controller\Replies;

use Common\Common\AttachOperation;
use Common\Common\Config;
use Common\Common\Constant;
use Common\Service\CircleService;
use Common\Common\TaskCenter;

class PublishController extends \Api\Controller\AbstractController
{

    public function Index_post()
    {

        set_time_limit(0);

        // 获取请求参数
        $params = I('post.');

        // 实例化同事圈帖子信息表
        $service = new CircleService();
        // 验证数据
        if (!$service->publish_validate($params, $this->uid)) {

            return false;
        }

        // 话题id
        $c_id = 0;
        if (isset($params['c_id']) && !empty($params['c_id'])) {

            $c_id = rintval($params['c_id']);
        }

        // 帖子
        $type = Constant::CIRCLE_NOTE_TYPE;
        if ($c_id) {
            // 回帖
            $type = Constant::CIRCLE_REPLIES_TOPIC_TYPE;
        }

        $params['pid'] = $c_id;
        $params['type'] = $type;

        $setting = Config::instance()->getCacheData();
        // 写入数据
        $data = $service->insert_data($params, $this->_login->user, $setting['release']);

        // 常规任务埋点:发表话题(如果没有开启审核直接触发埋点,开启审核则在审核通过后触发)
        if (!$this->_setting['release']) {

            $params = [
                'uid' => $this->uid,
                'app_data_id' => $data['id'],
                'action_key' => 'workmate_send_circle',
                'description' => $c_id ? '发布话题回帖' : '发布帖子'
            ];
            $taskCenter = &TaskCenter::instance();
            $taskCenter->triggerDailytask($params);
        }

        // 更新附件使用状态
        if (!empty($params['images'])) {

            $at_ids = array_column($params['images'], 'atId');
            $attach_serv = new AttachOperation();
            $attach_serv->insert_attach(
                APP_DIR,
                'circle',
                $data['id'],
                ['attach_ids' => $at_ids]
            );
        }

        $this->_result = [
            'id' => intval($data['id']),
            'data' => $data['data']
        ];
    }
}