DownAllFileController.class.php 3.33 KB
<?php
/**
 * 【调研中心-后台】24_下载问题的所有附件
 * DownAllFileController.class.php
 * CreateBy:dj
 * Date:2017-06-19
 */

namespace Apicp\Controller\Export;


use Common\Common\ExportDownload;
use Common\Service\BaseinfoService;
use Common\Service\QuestionService;
use Common\Service\RecordService;

class DownAllFileController extends \Apicp\Controller\AbstractController
{

    // 免登录
    protected $_require_login = false;

    public function Index()
    {

        // 问题id
        $q_id = I('post.q_id', '0', 'intval');
        // 参数验证
        if (empty($q_id)) {

            E('_EMPTY_QUESTION_ID');
        }

        // 调研回答信息表
        $question_s = new QuestionService();
        // 获取问题信息
        $data = $question_s->get($q_id);
        if (empty($data)) {

            E('_EMPTY_QUESTION_DATA');
        }

        // 调研基本信息表
        $base_s = new BaseinfoService();
        // 获取调研基本信息
        $base_info = $base_s->get($data['qu_id']);

        // 调研填写信息表
        $record_s = new RecordService();
        // 调研填写记录详情列表
        $record_list = $record_s->list_by_where($q_id);

        // 获取该试题的回答记录
        $result_data = $question_s->format_other_list($record_list, $page = 1, count($record_list),
            $base_info['anonymous']);

        if (empty($result_data)) {

            E('_EMPTY_QUESTION_ANSWER');
        }

        $pic_list = [];
        // 循环数据,格式化图片地址
        foreach ($result_data as $v) {

            $pic_data = [];
            $answer_option_data = [];

            if (!empty($v['answer_content'])) {
                // 反序列化答案数据
                $answer_option_data = unserialize($v['answer_content']);
            }

            // 此处需要处理答案中包含的图片的显示路径
            foreach ($answer_option_data as $_v) {

                if (!empty($_v['option_img'])) {

                    $pic_arr = [];
                    $pic_arr['imgUrl'] = imgUrl($_v['option_img']);
                    $pic_data[] = $pic_arr;
                }
            }

            // 处理部门信息
            if (empty($v['user_dp'])) {
                $key = $v['user_name'];
            } else {
                $key = $v['user_name'] . '(' . $v['user_dp'] . ')';
            }

            $pic_list[$key] = $pic_data;
        }

        if (empty($pic_list)) {

            E('_EMPTY_QUESTION_ANSWER');
        }

        // 生成文件名
        $title = $base_info['title'].'_问题附件_'.date('YmdHis', time());

        $params_down = [
            'title' => $title,
            'ea_id' => $this->_login->user['eaId'],
            'username' => $this->_login->user['eaRealname'],
            'type' => ExportDownload::ZIP_TYPE
        ];

        // 新增开始生成状态
        $id = ExportDownload::set_down_load($params_down);

        $params = [
            'user_id' => $this->_login->user['eaId'],
            'time' => microtime(true),
            'q_id'=>$q_id,
            'id' => $id,
            'title' => $title
        ];

        $url = oaUrl('Frontend/Callback/DownAllFile');

        // 生成定时任务
        ExportDownload::set_Cron($params, $url, '打包下载图片', 'Exam_GIF_Pdf_' . $id);

        return true;
    }

}