0, "message" => "缺少参数")); exit(); } if (!in_array($type, array(1, 2, 3))) { echo json_encode(array("success" => 0, "message" => "参数错误[1]")); exit(); } $groupInfo = Exam::model()->getGroupInfo($examId); if (empty($groupInfo)) exit(json_encode(array("success" => 0, "message" => "考试信息错误"))); $params = array( "schoolId" => $this->schoolId, "examId" => $examId, "classId" => $classId, "type" => $type, "studentIds" => array(), ); $classinfo = ClassModel::model()->find("class_id=:id", array(":id" => $classId)); $Sem = new SSemester(); $code = $Sem->conn->createQuery()->from('semester')->where("semester_id = '" . $classinfo['semester_id'] . "'") ->limit(1) ->query() ->read(); $print_time = ClassExamPrinter::model()->findAll('exam_id=:exam_id and class_id=:classid and type=0', array(':exam_id' => $examId, ':classid' => $classId)); $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $classId, "semester" => $code['refer_code'], "grade" => $classinfo['grade'], "students" => array(), "examTime" => $print_time[0]->add_time, "classify" => $type, ); //判断学科 $examInfo = Exam::model()->findByPk($examId); $intarr['subject'] = $examInfo['subject_id']; if (in_array($intarr['subject'], $this->mathSubjectId)) { $intarr['subject'] = 3; } if ($type == 1) { $pdfPathColumn = 'wrongbook_pdf_path'; $isGenerateColumn = 'is_wrongbook_pdf'; $isDownloadColumn = 'is_wrongbook_download'; $downloadTimeCoulmn = 'download_wrongbook_time'; } elseif ($type == 2) { $pdfPathColumn = 'isp_pdf_path'; $isGenerateColumn = 'is_isp_pdf'; $isDownloadColumn = 'is_two_isp_download'; $downloadTimeCoulmn = 'download_two_isp_time'; } else { $pdfPathColumn = 'wbisp_pdf_path'; $isGenerateColumn = 'is_wbisp_pdf'; $isDownloadColumn = 'is_three_isp_download'; $downloadTimeCoulmn = 'download_three_isp_time'; } $productDownload = new ProductDownload($type); //*****获取生成的学生***// $generateStu = $productDownload->getGenerateStu('student_paper_relation', 'exam_id', $pdfPathColumn, $isGenerateColumn, $examId, $studentsIds, $absentFilter); if(!$generateStu){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $params['studentIds'] = $generateStu['studentIds']; if ($printType == 'third_isp') { $params["subjectId"] = 8; $params["type"] = 3; } if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($generateStu['studentIds'], $intarr, $this->schoolId); } $this->updateIspDownloadStatus($params["studentIds"],$classId,$examId,$isDownloadColumn,$downloadTimeCoulmn); ProductProcessTime::model()->updateDownloadTime($params["studentIds"],$type,$examId); $printData=array(); $printData['typeId']=$type; $printData['params']=array( 'examIds'=>array($examId), 'classIds'=>array($classId), 'studentIds'=>$params["studentIds"] ); $printData['separate']=$separate; $printData['absentFilter']=$absentFilter; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } // //批量下载错题本 提分方案 个性化学习宝 public function actionBatchIsp() { $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $examIds=array(); $classIds=array(); $studentIds=array(); $separate=0; $absentFilter=0; foreach ($params_arr as $param) { $examId = isset($param['examId']) ? $param['examId'] : null; $classId = isset($param['classId']) ? $param['classId'] : null; $type = isset($param['type']) ? $param['type'] : null; $printType = isset($param['printType']) ? $param['printType'] : null; $absentFilter = isset($param['absent_filter']) ? $param['absent_filter'] : false; $printData['typeId']=$type; if (!$examId || !$classId || !$type) { echo json_encode(array("success" => 0, "message" => "缺少参数"));exit(); } if (!in_array($type, array(1, 2, 3))) { echo json_encode(array("success" => 0, "message" => "参数错误[1]"));exit(); } if ($type == 1) { $pdfPathColumn = 'wrongbook_pdf_path'; $isGenerateColumn = 'is_wrongbook_pdf'; $isDownloadColumn = 'is_wrongbook_download'; $downloadTimeCoulmn = 'download_wrongbook_time'; } elseif ($type == 2) { $pdfPathColumn = 'isp_pdf_path'; $isGenerateColumn = 'is_isp_pdf'; $isDownloadColumn = 'is_two_isp_download'; $downloadTimeCoulmn = 'download_two_isp_time'; } else { $pdfPathColumn = 'wbisp_pdf_path'; $isGenerateColumn = 'is_wbisp_pdf'; $isDownloadColumn = 'is_three_isp_download'; $downloadTimeCoulmn = 'download_three_isp_time'; } $productDownload = new ProductDownload($type); //*****获取生成的学生***// $generateStu = $productDownload->getGenerateStu('student_paper_relation', 'exam_id', $pdfPathColumn, $isGenerateColumn, $examId, array(), $absentFilter); if(!$generateStu){ $notFound++; continue; } if(!$separate && $generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $examIds[]=$examId; $classIds[]=$classId; $studentIds=array_merge($studentIds,$generateStu['studentIds']); $this->updateIspDownloadStatus($generateStu["studentIds"],$classId,$examId,$isDownloadColumn,$downloadTimeCoulmn); } if($notFound == count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $printData['params']=array( 'examIds'=>$examIds, 'classIds'=>$classIds, 'studentIds'=>$studentIds ); $printData['separate']=$separate; $printData['absentFilter']=$absentFilter; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //阶段复习个性化学习宝下载 public function actionDownloadStudentProduct() { $classId = Req::get("classId"); $type = Req::get("type"); $studentsIds = Req::get("studentsIds"); if (!$classId || !$type) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } if (!in_array($type, array(1, 2, 3))) { echo json_encode(array("success" => 0, "message" => "参数错误[1]")); exit(); } $student_class_data = SStudentClassRelation::model()->findAll('class_id=:class_id and status=:status', array(':class_id' => $classId, ':status' => 0)); if ($student_class_data) { if (!$studentsIds) { $studentsIds = array(); foreach ($student_class_data as $v) { $studentsIds[] = $v->student_id; } } }else{ echo json_encode(array("success" => 0, "message" => "班级暂无学生")); exit; } if ($studentsIds) { if (!is_array($studentsIds)) { $studentsIds = explode(',', $studentsIds); } if(in_array($this->subjectId,$this->mathSubjectId)){ $subjectId=3; }else{ $subjectId=$this->subjectId; } $_student_product_data=SStudentProductModel::model()->getStudentCreate($studentsIds,$subjectId,$type,$this->semesterId); if (!$_student_product_data) { echo json_encode(array("success" => 0, "message" => "无生成的学生")); exit; } $_stu=array(); foreach ($_student_product_data as $datum){ $_stu[]=$datum['student_id']; } } $planId=SStudentProductModel::model()->getPlanId($classId,$subjectId,$type); $this->updateSpDownloadStatus($_stu,$type,$planId); $printData['typeId']=4; $printData['params'][]=array( 'classId'=>$classId, 'studentIds'=>$_stu, 'type'=>$type ); $printData['separate']=0; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //批量打印阶段复习个性化学习宝 public function actionBatchSp() { $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $_stu=array(); $classIds=array(); $separate=0; $sendParams=array(); foreach ($params_arr as $param) { $classId = isset($param['classId'])?$param['classId']:null; $type = isset($param['type'])?$param['type']:null; if (!$classId || !$type) { echo json_encode(array("success" => 0, "message" => "缺少参数"));exit(); } if (!in_array($type, array(1, 2, 3))) { echo json_encode(array("success" => 0, "message" => "参数错误[1]"));exit(); } $studentsIds = array(); $student_class_data = SStudentClassRelation::model()->findAll('class_id=:class_id and status=:status', array(':class_id' => $classId, ':status' => 0)); if ($student_class_data) { foreach ($student_class_data as $v) { $studentsIds[] = $v->student_id; } } else { echo json_encode(array("success" => 0, "message" => "班级暂无学生")); exit; } $params['studentIds'] = $studentsIds; if(in_array($this->subjectId,$this->mathSubjectId)){ $subjectId=3; }else{ $subjectId=$this->subjectId; } $_student_product_data=SStudentProductModel::model()->getStudentCreate($studentsIds,$subjectId,$type,$this->semesterId); if (!$_student_product_data) { $notFound++; continue; } $planId=SStudentProductModel::model()->getPlanId($classId,$subjectId,$type); foreach ($_student_product_data as $datum){ $_stu[]=$datum['student_id']; } $classIds[]=$classId; $sendParams[]=array( 'classId'=>$classId, 'studentIds'=>$_stu, 'type'=>$type ); $this->updateSpDownloadStatus($params['studentIds'], $type,$planId); } if($notFound == count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $printData['separate']=$separate; $printData['typeId']=4; $printData['params']=$sendParams; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData)); } /** * 打印二轮复习个性化提分手册 */ public function actionGetMathReviewFile() { $mrId = (string)Req::get("mrId"); $classId = (string)Req::get("cid"); $studentsIds = Req::get("studentsIds"); $params = array(); if (!$mrId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_SECOND_RUN); $generateStu = $productDownload->getGenerateStu('math_review_student', 'mr_id', 'review_pdf_path', 'is_review_pdf', $mrId, $studentsIds); if(!$generateStu){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $params['studentIds'] = $generateStu['studentIds']; $params['mrId'] = $mrId; $sql = "select class_id,grade,create_time,semester_id,school_group_id,`name` from math_review_setting where mr_id = '{$mrId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $Sem = new SSemester(); $code = $Sem->conn->createQuery() ->from('semester') ->where("semester_id = '" . $msg['semester_id'] . "'") ->limit(1) ->query() ->read(); $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $msg['class_id'], "semester" => $code['refer_code'], "grade" => $msg['grade'], "students" => $studentsIds, "examTime" => $msg['create_time'], "classify" => 5, "subject" => 3 ); //************ Step-1 判断是否有订单 *************// if (Yii::app()->params["limit_open"]) { if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($params['studentIds'], $intarr, $this->schoolId); } } $this->updateSecondRunDownloadStatus($params['studentIds'],$mrId); $printData=array(); $printData['typeId']=5; $sendParams['mrId']=$mrId; $sendParams['classId']=$msg['class_id']; $sendParams['studentIds']=$params["studentIds"]; $printData['params'][]=$sendParams; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //批量下载二轮复习提分手册 public function actionBatchMathReview(){ $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $printData['typeId']=5; foreach ($params_arr as $param) { $sendParams=array(); $mrId = isset($param['mrId'])?$param['mrId']:null; $params = array(); if (!$mrId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_SECOND_RUN); $generateStu = $productDownload->getGenerateStu('math_review_student', 'mr_id', 'review_pdf_path', 'is_review_pdf', $mrId, array()); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; $sql = "select class_id,grade,create_time,semester_id,school_group_id,`name` from math_review_setting where mr_id = '{$mrId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $sendParams['mrId']=$mrId; $sendParams['classId']=$msg['class_id']; $sendParams['studentIds']=$params['studentIds']; $printData['params'][]=$sendParams; $this->updateSecondRunDownloadStatus($params['studentIds'], $mrId); } if($notFound == count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 打印好题本 */ public function actionGetHtbFile() { $htbId = (string)Req::get("htbId"); $studentsIds = Req::get("studentsIds"); $params = array(); if (!$htbId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_HTB); $generateStu = $productDownload->getGenerateStu('math_htb_student', 'htb_id', 'htb_pdf_path', 'is_htb_pdf', $htbId, $studentsIds); if(!$generateStu){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $sql = "select class_id,grade,create_time,semester_id,school_group_id,name from math_htb_setting where htb_id = '{$htbId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $Sem = new SSemester(); $code = $Sem->conn->createQuery() ->from('semester') ->where("semester_id = '" . $msg['semester_id'] . "'") ->limit(1) ->query() ->read(); $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $msg['class_id'], "semester" => $code['refer_code'], "grade" => $msg['grade'], "examTime" => $msg['create_time'], "classify" => 9, "subject" => 3 ); //************ Step-1 判断是否有订单 *************// if (Yii::app()->params["limit_open"]) { if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($params['studentIds'], $intarr, $this->schoolId); } } $this->updateHtbDownloadStatus($params['studentIds'],$htbId); $printData=array(); $printData['typeId']=6; $sendParams[]=array( 'htbId'=>$htbId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //批量下载好题本 public function actionBatchHtb() { $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $sendParams=array(); foreach ($params_arr as $param) { $htbId = isset($param['htbId']) ? $param['htbId'] : null; $params = array(); if (!$htbId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_HTB); $generateStu = $productDownload->getGenerateStu('math_htb_student', 'htb_id', 'htb_pdf_path', 'is_htb_pdf', $htbId, array()); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $sql = "select class_id,grade,create_time,semester_id,school_group_id from math_htb_setting where htb_id = '{$htbId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $sendParams[]=array( 'htbId'=>$htbId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $this->updateHtbDownloadStatus($params['studentIds'],$htbId); } if($notFound == count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $printData['typeId']=6; $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 下载假期报告 */ public function actionGetHolidayReportFile() { $reportId = (string)Req::get("reportId"); $studentsIds = Req::get("studentsIds"); $classDownload = $studentsIds ? false : true; $params = array(); if (!$reportId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_HOLIDAY_REPORT); $generateStu = $productDownload->getGenerateStu('holiday_report_student', 'report_id', 'report_pdf_path', 'is_report_pdf', $reportId, $studentsIds); if(!$generateStu){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $params['studentIds'] = $generateStu['studentIds']; $sql = "select class_id,grade,create_time,semester_id from holiday_report_setting where report_id = '{$reportId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $this->updateHrpDownloadStatus($params['studentIds'],$reportId); $printData=array(); $printData['typeId']=7; $sendParams[]=array( 'reportId'=>$reportId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //批量下载假期报告 public function actionBatchHoliday(){ $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $sendParams=array(); foreach ($params_arr as $param) { $reportId = isset($param['reportId']) ? $param['reportId'] : null; if (!$reportId) { echo json_encode(array("status" => 0, "message" => "缺少参数"));exit(); } $params = array(); //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_HOLIDAY_REPORT); $generateStu = $productDownload->getGenerateStu('holiday_report_student', 'report_id', 'report_pdf_path', 'is_report_pdf', $reportId, array()); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; $sql = "select class_id,grade,create_time,semester_id from holiday_report_setting where report_id = '{$reportId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $sendParams[]=array( 'reportId'=>$reportId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $this->updateHrpDownloadStatus($params['studentIds'],$reportId); } if($notFound == count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $printData['typeId']=7; $printData['params']=$sendParams; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //打印方法宝 public function actionGetFfb() { $examId = Req::get("examId"); $classId = Req::get("classId"); $type = Req::get("type"); $studentsIds = Req::get("studentsIds"); if (!$examId || !$classId || !$type) { self::responseMsg(0, '缺少参数'); } $params = array( "schoolId" => $this->schoolId, "examId" => $examId, "classId" => $classId, "type" => $type, "studentIds" => array(), ); $classinfo = ClassModel::model()->find("class_id=:id", array(":id" => $classId)); $Sem = new SSemester(); $code = $Sem->conn->createQuery()->from('semester')->where("semester_id = '" . $classinfo['semester_id'] . "'") ->limit(1) ->query() ->read(); $sql = "select p.add_time from exam e join class_exam_printer p on p.exam_id=e.exam_id join class c on e.class_id = c.class_id where e.class_id = '{$classId}' and e.exam_id = '{$examId}'"; $time = $this->sConn->createCommand($sql)->queryRow(); $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $classId, "semester" => $code['refer_code'], "grade" => $classinfo['grade'], "students" => array(), "examTime" => isset($time['add_time'])? $time['add_time'] : time(), "classify" => $type, ); //判断学科 $examInfo = Exam::model()->findByPk($examId); $intarr['subject'] = $examInfo['subject_id']; if (in_array($intarr['subject'], $this->mathSubjectId) && $intarr['subject']!=41) { $intarr['subject'] = 3; } $pdfPathColumn = 'pdf_path'; $isGenerateColumn = 'is_create_pdf'; $productDownload = new ProductDownload($type); //*****获取生成的学生***// $generateStu = $productDownload->getGenerateStu('exam_product_status', 'exam_id', $pdfPathColumn, $isGenerateColumn, $examId, $studentsIds); if(!$generateStu){ self::responseMsg(0, '无生成的pdf'); } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($generateStu['studentIds'], $intarr, $this->schoolId); } ProductProcessTime::model()->updateDownloadTime($params["studentIds"],$type,$examId); $this->updateDownloadStatus($params["studentIds"],$examId,$type); $printData=array(); $printData['typeId']=8; $printData['params']['examIds'][]=$examId; $printData['params']['classIds'][]=$classId; if($studentsIds){ $printData['params']['studentIds']=$params["studentIds"]; } $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //FIXME 批量 public function actionBatch(){ $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $printData['typeId']=8; $examIds=array(); $classIds=array(); foreach ($params_arr as $param) { $examId = isset($param['examId']) ? $param['examId'] : null; $classId = isset($param['classId']) ? $param['classId'] : null; $type = isset($param['type']) ? $param['type'] : null; $absentFilter = isset($param['absent_filter']) ? $param['absent_filter'] : false; if (!$examId || !$classId || !$type) { echo json_encode(array("success" => 0, "message" => "缺少参数"));exit(); } $pdfPathColumn = 'pdf_path'; $isGenerateColumn = 'is_create_pdf'; $productDownload = new ProductDownload($type); $condition = array('product_type'=>$type); //*****获取生成的学生***// $generateStu = $productDownload->getGenerateStu('exam_product_status', 'exam_id', $pdfPathColumn, $isGenerateColumn, $examId, array(), $absentFilter, $condition); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } ProductProcessTime::model()->updateDownloadTime($params["studentIds"],$type,$examId); $this->updateDownloadStatus($params["studentIds"],$examId,$type); $examIds[]=$examId; $classIds[]=$classId; } if($notFound && $notFound==count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的pdf"));exit(); } $printData['params']['examIds']=$examIds; $printData['params']['classIds']=$classIds; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //打印专题宝 public function actionGetUrlZtb() { $gpId = Req::get("gpId"); $classId = Req::get("classId"); $type = Req::get("type"); $studentsIds = Req::get("studentsIds"); if (!$gpId || !$classId || !$type) { self::responseMsg(0, '缺少参数'); } $params = array( "schoolId" => $this->schoolId, "gpId" => $gpId, "classId" => $classId, "type" => $type, "studentIds" => array(), ); $classinfo = ClassModel::model()->find("class_id=:id", array(":id" => $classId)); $Sem = new SSemester(); $code = $Sem->conn->createQuery()->from('semester')->where("semester_id = '" . $classinfo['semester_id'] . "'") ->limit(1) ->query() ->read(); $product = SGeneralProduct::model()->find('gp_id=:gp_id and class_id=:classid', array(':gp_id' => $gpId, ':classid' => $classId)); $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $classId, "semester" => $code['refer_code'], "grade" => $classinfo['grade'], "students" => array(), "examTime" => $product['create_time'] ? $product['create_time'] : time(), "classify" => $type, ); //判断学科 $intarr['subject'] = $product['subject_id']; $pdfPathColumn = 'pdf_path'; $isGenerateColumn = 'is_create_pdf'; $productDownload = new ProductDownload($type); //*****获取生成的学生***// $generateStu = $productDownload->getGenerateStu('general_product_student', 'gp_id', $pdfPathColumn, $isGenerateColumn, $gpId, $studentsIds); if(!$generateStu){ self::responseMsg(0, '无生成的pdf'); } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($generateStu['studentIds'], $intarr, $this->schoolId); array_push($params['studentIds'],0); } $this->updateDownloadStatusZtb($params["studentIds"],$gpId); $printData=array(); $printData['typeId']=9; $sendParams[]=array( 'gpId'=>$gpId, 'classId'=>$classId, 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //批量打印专题宝 public function actionBatchZtb(){ $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $printData['typeId']=9; $sendParams=array(); foreach ($params_arr as $param) { $gpId = isset($param['gpId']) ? $param['gpId'] : null; $classId = isset($param['classId']) ? $param['classId'] : null; $type = isset($param['type']) ? $param['type'] : null; $absentFilter = isset($param['absent_filter']) ? $param['absent_filter'] : false; if (!$gpId || !$classId || !$type) { echo json_encode(array("success" => 0, "message" => "缺少参数"));exit(); } $params = array( "schoolId" => $this->schoolId, "gpId" => $gpId, "classId" => $classId, "type" => $type, "studentIds" => array(), ); $pdfPathColumn = 'pdf_path'; $isGenerateColumn = 'is_create_pdf'; $productDownload = new ProductDownload($type); //*****获取生成的学生***// $generateStu = $productDownload->getGenerateStu('general_product_student', 'gp_id', $pdfPathColumn, $isGenerateColumn, $gpId, array(), $absentFilter); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $sendParams[]=array( 'gpId'=>$gpId, 'classId'=>$classId, 'studentIds'=>$params["studentIds"] ); $this->updateDownloadStatusZtb($params["studentIds"],$gpId); } if($notFound && $notFound==count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的pdf"));exit(); } $printData['separate']=$separate; $printData['params']=$sendParams; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //打印假期作业 public function actionGetUrlJqzy() { $gpId = Req::get("gpId"); $classId = Req::get("classId"); $type = Req::get("type"); $studentsIds = Req::get("studentsIds"); if (!$gpId || !$classId || !$type) { self::responseMsg(0, '缺少参数'); } $params = array( "schoolId" => $this->schoolId, "gpId" => $gpId, "classId" => $classId, "type" => $type, "studentIds" => array(), ); $classinfo = ClassModel::model()->find("class_id=:id", array(":id" => $classId)); $Sem = new SSemester(); $code = $Sem->conn->createQuery()->from('semester')->where("semester_id = '" . $classinfo['semester_id'] . "'") ->limit(1) ->query() ->read(); $product = SGeneralProduct::model()->find('gp_id=:gp_id and class_id=:classid', array(':gp_id' => $gpId, ':classid' => $classId)); $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $classId, "semester" => $code['refer_code'], "grade" => $classinfo['grade'], "students" => array(), "examTime" => $product['create_time'] ? $product['create_time'] : time(), "classify" => $type, ); //判断学科 $intarr['subject'] = $product['subject_id']; $pdfPathColumn = 'pdf_path'; $isGenerateColumn = 'is_create_pdf'; $productDownload = new ProductDownload($type); //*****获取生成的学生***// $generateStu = $productDownload->getGenerateStu('general_product_student', 'gp_id', $pdfPathColumn, $isGenerateColumn, $gpId, $studentsIds); if(!$generateStu){ self::responseMsg(0, '无生成的pdf'); } $params['studentIds'] = $generateStu['studentIds']; if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($generateStu['studentIds'], $intarr, $this->schoolId); array_push($params['studentIds'],0); } $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $this->updateDownloadStatusZtb($params["studentIds"],$gpId); $printData=array(); $printData['typeId']=10; $sendParams[]=array( 'gpId'=>$gpId, 'classId'=>$classId, 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //批量打印假期作业 public function actionBatchJqzy(){ $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $printData['typeId']=10; $sendParams=array(); foreach ($params_arr as $param) { $gpId = isset($param['gpId']) ? $param['gpId'] : null; $classId = isset($param['classId']) ? $param['classId'] : null; $type = isset($param['type']) ? $param['type'] : null; $absentFilter = isset($param['absent_filter']) ? $param['absent_filter'] : false; if (!$gpId || !$classId || !$type) { echo json_encode(array("success" => 0, "message" => "缺少参数"));exit(); } $params = array( "schoolId" => $this->schoolId, "gpId" => $gpId, "classId" => $classId, "type" => $type, "studentIds" => array(), ); $pdfPathColumn = 'pdf_path'; $isGenerateColumn = 'is_create_pdf'; $productDownload = new ProductDownload($type); //*****获取生成的学生***// $generateStu = $productDownload->getGenerateStu('general_product_student', 'gp_id', $pdfPathColumn, $isGenerateColumn, $gpId, array(), $absentFilter); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $sendParams[]=array( 'gpId'=>$gpId, 'classId'=>$classId, 'studentIds'=>$params["studentIds"] ); $this->updateDownloadStatusZtb($params["studentIds"],$gpId); } if($notFound && $notFound==count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的pdf"));exit(); } $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 打印晨读词汇 */ public function actionGetEnglishFile() { $weekId = (string)Req::get("weekId"); $studentsIds = Req::get("studentsIds"); $params = array(); if (!$weekId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_EN_MRV); $generateStu = $productDownload->getGenerateStu('english_week_student', 'week_id', 'week_pdf_path', 'is_week_pdf', $weekId, $studentsIds); if(!$generateStu){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $sql = "select class_id,grade,create_time,semester_id,`name` from english_week where week_id = '{$weekId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $Sem = new SSemester(); $code = $Sem->conn->createQuery() ->from('semester') ->where("semester_id = '" . $msg['semester_id'] . "'") ->limit(1) ->query() ->read(); $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $msg['class_id'], "semester" => $code['refer_code'], "grade" => $msg['grade'], "examTime" => $msg['create_time'], "classify" => 3, "subject" => 8 ); //************ Step-1 判断是否有订单 *************// if (Yii::app()->params["limit_open"]) { if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($params['studentIds'], $intarr, $this->schoolId); } } $this->updateEnMrvDownloadStatus($params['studentIds'],$weekId); $printData=array(); $printData['typeId']=15; $sendParams[]=array( 'weekId'=>$weekId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //批量晨读词汇 public function actionBatchEnMrv() { $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $printData['typeId']=15; $sendParams=array(); $separate=0; foreach ($params_arr as $param) { $weekId = isset($param['weekId']) ? $param['weekId'] : null; $params = array(); if (!$weekId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_EN_MRV); $generateStu = $productDownload->getGenerateStu('english_week_student', 'week_id', 'week_pdf_path', 'is_week_pdf', $weekId, array()); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; if($generateStu['pathArr'] && !$separate){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $sql = "select class_id,grade,create_time,semester_id,`name` from english_week where week_id = '{$weekId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $sendParams[]=array( 'weekId'=>$weekId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $this->updateEnMrvDownloadStatus($params['studentIds'], $weekId); } if($notFound == count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 下载外刊美文个性化学习宝 */ public function actionGetEnglishReadingFile() { $weekId = (string)Req::get("weekId"); $studentsIds = Req::get("studentsIds"); $classDownload = $studentsIds ? false : true; $params = array(); if (!$weekId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } $sql = "select class_id,ers.grade,er.create_time,er.semester_id,name,ers.category,ers.product_type from english_reading er join english_reading_setting ers on ers.reading_id=er.reading_id where week_id = '{$weekId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $Sem = new SSemester(); $code = $Sem->conn->createQuery() ->from('semester') ->where("semester_id = '" . $msg['semester_id'] . "'") ->limit(1) ->query() ->read(); $classify=6; if($msg['category']==2){ if($msg['product_type']==1){ $classify=57; $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_EN_READING_JICHU); }elseif($msg['product_type']==2){ $classify=61; $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_EN_READING_WAIKAN); }elseif($msg['product_type']==3){ $classify=58; $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_EN_READING_REDIAN); } }else{ $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_EN_READING); } //*****获取生成的学生***// $generateStu = $productDownload->getGenerateStu('english_reading_student', 'week_id', 'week_pdf_path', 'is_week_pdf', $weekId, $studentsIds); if(!$generateStu){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $msg['class_id'], "semester" => $code['refer_code'], "grade" => $msg['grade'], "students" => $studentsIds, "examTime" => $msg['create_time'], "classify" => $classify, "subject" => 8 ); //************ Step-1 判断是否有订单 *************// if (Yii::app()->params["limit_open"]) { if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($params['studentIds'], $intarr, $this->schoolId); } } $this->updateEnreadingDownloadStatus($params['studentIds'],$weekId); $printData=array(); $printData['typeId']=11; $sendParams[]=array( 'weekId'=>$weekId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 批量外刊美文个性化学习宝 */ public function actionBatchEnReading() { $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $printData['typeId']=11; $sendParams=array(); $separate=0; foreach ($params_arr as $param) { $weekId = isset($param['weekId']) ? (string)$param['weekId'] : null; $params = array(); if (!$weekId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_EN_READING); $generateStu = $productDownload->getGenerateStu('english_reading_student', 'week_id', 'week_pdf_path', 'is_week_pdf', $weekId, array()); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; if($generateStu['pathArr'] && !$separate){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $sql = "select class_id,grade,create_time,semester_id,name from english_reading where week_id = '{$weekId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $sendParams[]=array( 'weekId'=>$weekId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $this->updateEnreadingDownloadStatus($params['studentIds'], $weekId); } if($notFound == count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 下载词汇宝 */ public function actionGetMagicWordFile() { $mwId = (string)Req::get("mw_id"); $studentsIds = Req::get("studentsIds"); $params = array(); if (!$mwId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } $sql = "select class_id,grade,create_time,semester_id,name from english_magic_word where mw_id = '{$mwId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); //*****获取生成的学生***// $productDownload = new ProductDownload($msg['grade']==3?ProductDownload::PRODUCT_TYPE_EN_MAGIC_WORD:ProductDownload::PRODUCT_TYPE_EN_INTEREST_WORD); $generateStu = $productDownload->getGenerateStu('english_magic_word_student', 'mw_id', 'week_pdf_path', 'is_week_pdf', $mwId, $studentsIds); if(!$generateStu){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=count($checkTopicAnswer); } } $Sem = new SSemester(); $code = $Sem->conn->createQuery() ->from('semester') ->where("semester_id = '" . $msg['semester_id'] . "'") ->limit(1) ->query() ->read(); $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $msg['class_id'], "semester" => $code['refer_code'], "grade" => $msg['grade'], "students" => $studentsIds, "examTime" => $msg['create_time'], "classify" => 11, "subject" => 8 ); //************ Step-1 判断是否有订单 *************// if (Yii::app()->params["limit_open"]) { if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($params['studentIds'], $intarr, $this->schoolId); } } $this->updateMagicWordDownloadStatus($params['studentIds'],$mwId); $printData=array(); $printData['typeId']=12; $sendParams[]=array( 'mwId'=>$mwId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 批量词汇宝下载 */ public function actionBatchMagicWord() { $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $printData['typeId']=12; $sendParams=array(); $separate=0; foreach ($params_arr as $param) { $weekId = isset($param['mw_id']) ? (string)$param['mw_id'] : null; $params = array(); if (!$weekId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_EN_MAGIC_WORD); $generateStu = $productDownload->getGenerateStu('english_magic_word_student', 'mw_id', 'week_pdf_path', 'is_week_pdf', $weekId, array()); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; if($generateStu['pathArr'] && $separate==0){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $sql = "select class_id,grade,create_time,semester_id,name from english_magic_word where mw_id = '{$weekId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $params['schoolId'] = $this->schoolId; $params['type'] = 6; $params['mwId'] = $weekId; $sendParams[]=array( 'mwId'=>$weekId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $this->updateMagicWordDownloadStatus($params['studentIds'], $weekId); } if($notFound == count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 下载写作宝 */ public function actionGetWritingFile() { $ewId = (string)Req::get("ew_id"); $studentsIds = Req::get("studentsIds"); $classDownload = $studentsIds ? false : true; $params = array(); if (!$ewId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } $sql = "select class_id,grade,create_time,semester_id,name from english_writing where ew_id = '{$ewId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_WRITING); $generateStu = $productDownload->getGenerateStu('english_writing_student', 'ew_id', 'week_pdf_path', 'is_week_pdf', $ewId, $studentsIds); if(!$generateStu){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $params['studentIds'] = $generateStu['studentIds']; $separate=0; if($generateStu['pathArr']){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $Sem = new SSemester(); $code = $Sem->conn->createQuery() ->from('semester') ->where("semester_id = '" . $msg['semester_id'] . "'") ->limit(1) ->query() ->read(); $intarr = array( "schoolId" => $this->schoolId, "clazzId" => $msg['class_id'], "semester" => $code['refer_code'], "grade" => $msg['grade'], "students" => $studentsIds, "examTime" => $msg['create_time'], "classify" => 32, "subject" => 8 ); //************ Step-1 判断是否有订单 *************// if (Yii::app()->params["limit_open"]) { if (Yii::app()->params["limit_open"]) { $params["studentIds"] = $productDownload->getCanDownloadStu($params['studentIds'], $intarr, $this->schoolId); } } $this->updateWritingDownloadStatus($params['studentIds'],$ewId); $printData=array(); $printData['typeId']=13; $sendParams[]=array( 'ewId'=>$ewId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 批量写作宝下载 */ public function actionBatchWriting() { $json_params = file_get_contents('php://input'); $params_arr = json_decode($json_params, true); $notFound = 0; $printData=array(); $printData['typeId']=13; $sendParams=array(); $separate=0; foreach ($params_arr as $param) { $weekId = isset($param['ew_id']) ? (string)$param['ew_id'] : null; $params = array(); if (!$weekId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } //*****获取生成的学生***// $productDownload = new ProductDownload(ProductDownload::PRODUCT_TYPE_WRITING); $generateStu = $productDownload->getGenerateStu('english_writing_student', 'ew_id', 'week_pdf_path', 'is_week_pdf', $weekId, array()); if(!$generateStu){ $notFound++; continue; } $params['studentIds'] = $generateStu['studentIds']; if($generateStu['pathArr'] && $separate==0){ $checkTopicAnswer=explode(',',$generateStu['pathArr'][0]); if(count($checkTopicAnswer)>1){ $separate=1; } } $sql = "select class_id,grade,create_time,semester_id,name from english_writing where ew_id = '{$weekId}'"; $msg = $this->sConn->createCommand($sql)->queryRow(); $params['schoolId'] = $this->schoolId; $params['type'] = 7; $params['ewId'] = $weekId; $sendParams[]=array( 'ewId'=>$weekId, 'classId'=>$msg['class_id'], 'studentIds'=>$params["studentIds"] ); $this->updateWritingDownloadStatus($params['studentIds'], $weekId); } if($notFound == count($params_arr)){ echo json_encode(array("success" => 0, "message" => "无生成的学生"));exit(); } $printData['params']=$sendParams; $printData['separate']=$separate; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //打印在线答题卡 public function actionGetOnlinePdf(){ $examGroupId = (string)Req::post("examGroupId"); if(!$examGroupId ){ echo json_encode(array("success" => 0, "message" => "缺少参数")); exit; } $printData=array(); $sql = "select class_id,exam_id from exam where exam_group_id = '{$examGroupId}'"; $msg = $this->sConn->createCommand($sql)->queryAll(); $printData['typeId']=14; $examIds=array(); $classIds=array(); if($msg){ foreach ($msg as $item){ $examIds[]=$item['exam_id']; $classIds[]=$item['class_id']; } } $printData['params']['examIds']=$examIds; $printData['params']['classIds']=$classIds; $printData['separate']=0; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 下载词汇宝检测卡 */ public function actionGetMagicWordCard() { $mwId = (string)Req::get("mw_id"); $params = array(); if (!$mwId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } $sql = "select student_id from english_magic_word_student where mw_id = '{$mwId}' and is_card_pdf = 1"; $stuArr = $this->getDbConnection()->createCommand($sql)->queryAll(); if ($stuArr) { foreach ($stuArr as $k => $v) { $params['studentIds'][] = $v['student_id']; } }else{ echo json_encode(array("success" => 0, "message" => "未找到生成的检测卡")); exit(); } $sql = "select class_id from english_magic_word where mw_id = '{$mwId}'"; $magicWord = $this->getDbConnection()->createCommand($sql)->queryRow(); $printData=array(); $printData['typeId']=16; $sendParams[]=array( 'mwId'=>$mwId, 'classId'=>$magicWord['class_id'], 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; $printData['separate']=0; $this->updateMagicWordAfterDownloadStatus($params['studentIds'],$mwId); echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 下载写作宝检测卡 */ public function actionGetWritingCard() { $ewId = (string)Req::get("ew_id"); $params = array(); if (!$ewId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } $sql = "select student_id,card_pdf_path from english_writing_student where ew_id = '{$ewId}' and is_card_pdf = 1"; $stuArr = $this->getDbConnection()->createCommand($sql)->queryAll(); if ($stuArr) { foreach ($stuArr as $k => $v) { $params['studentIds'][] = $v['student_id']; } }else{ echo json_encode(array("success" => 0, "message" => "未找到生成的检测卡")); exit(); } $sql = "select class_id from english_writing where ew_id = '{$ewId}' "; $set = $this->getDbConnection()->createCommand($sql)->queryRow(); $time=time(); $sql = "update english_writing_student set is_card_download = 1,card_download_time={$time} where ew_id = '{$ewId}' and student_id in (" . implode(',', $params['studentIds']) . ")"; $this->sConn->createCommand($sql)->execute(); $printData=array(); $printData['typeId']=17; $sendParams[]=array( 'ewId'=>$ewId, 'classId'=>$set['class_id'], 'studentIds'=>$params["studentIds"] ); $printData['params']=$sendParams; $printData['separate']=0; echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } /** * 判断写作宝批改后答题卡是否分离 */ public function actionGetWritingCardAnswer() { $ewId = (string)Req::get("ew_id"); if (!$ewId) { echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } $sql = "select student_id,card_pdf_path from english_writing_student where ew_id = '{$ewId}' and is_card_pdf = 1"; $stuArr = $this->getDbConnection()->createCommand($sql)->queryRow(); $separate=0; if ($stuArr) { if($stuArr['card_pdf_path']){ $checkTopicAnswer=explode(',',$stuArr['card_pdf_path']); if(count($checkTopicAnswer)>1){ $separate=1; } } } echo json_encode(array("success" => 1, "message" => "success","data"=>$separate));exit(); } /** * 更新词汇宝批改后检测卡下载状态 * @param $studentsIds * @param $weekId */ private function updateMagicWordAfterDownloadStatus($studentsIds, $weekId) { $time = time(); $sql = "update english_magic_word_student set is_card_download = 1,card_download_time={$time} where mw_id = '{$weekId}' and student_id in (" . implode(',', $studentsIds) . ") and card_download_time = 0"; $this->sConn->createCommand($sql)->execute(); } /** * 更新写作宝下载状态 * @param $studentsIds * @param $weekId */ private function updateWritingDownloadStatus($studentsIds, $weekId) { $time = time(); $sql = "update english_writing_student set is_week_download = 1,week_download_time={$time} where ew_id = '{$weekId}' and student_id in (" . implode(',', $studentsIds) . ") and week_download_time = 0"; $this->sConn->createCommand($sql)->execute(); } /** * 更新词汇宝下载状态 * @param $studentsIds * @param $weekId */ private function updateMagicWordDownloadStatus($studentsIds, $weekId) { $time = time(); $sql = "update english_magic_word_student set is_week_download = 1,week_download_time={$time} where mw_id = '{$weekId}' and student_id in (" . implode(',', $studentsIds) . ") and week_download_time = 0"; $this->sConn->createCommand($sql)->execute(); } /** * 更新外刊下载状态 * @param $studentsIds * @param $weekId */ private function updateEnreadingDownloadStatus($studentsIds, $weekId) { $time = time(); $sql = "update english_reading_student set is_week_download = 1,week_download_time={$time} where week_id = '{$weekId}' and student_id in (" . implode(',', $studentsIds) . ") and week_download_time = 0"; $this->sConn->createCommand($sql)->execute(); } /** * 更新晨读词汇下载状态 * @param $studentsIds * @param $weekId */ private function updateEnMrvDownloadStatus($studentsIds, $weekId) { $time = time(); $sql = "update english_week_student set is_week_download = 1,week_download_time={$time} where week_id = '{$weekId}' and student_id in (" . implode(',', $studentsIds) . ")"; $this->sConn->createCommand($sql)->execute(); } /** * 更新阶段复习个性化学习宝下载状态 * @param $studentIds * @param $type */ private function updateSpDownloadStatus($studentIds, $type,$planId) { $criteria = new CDbCriteria(); $criteria->addInCondition('student_id', $studentIds); $criteria->addCondition('type=:type'); $criteria->addCondition('plan_id=:pid'); $criteria->params[':type'] = $type; $criteria->params[':pid'] = $planId; SStudentProductModel::model()->updateAll(array('is_download' => 1, 'download_time' => time()), $criteria); } /** * 更新二轮下载状态 * @param $studentsIds * @param $mrId */ private function updateSecondRunDownloadStatus($studentsIds, $mrId) { $time = time(); $sql = "update math_review_student set is_review_download = 1,review_download_time={$time} where mr_id = '{$mrId}' and student_id in (" . implode(',', $studentsIds) . ")"; $this->sConn->createCommand($sql)->execute(); } /** * 更新好题本下载状态 * @param $studentsIds * @param $htbId */ private function updateHtbDownloadStatus($studentsIds, $htbId) { $time = time(); $sql = "update math_htb_student set is_htb_download = 1,htb_download_time={$time} where htb_id = '{$htbId}' and student_id in (" . implode(',', $studentsIds) . ")"; $this->sConn->createCommand($sql)->execute(); } /** * 更新假期报告下载状态 * @param $studentsIds * @param $reportId */ private function updateHrpDownloadStatus($studentsIds, $reportId){ $time = time(); $sql = "update holiday_report_student set is_report_download = 1,report_download_time={$time} where report_id = '{$reportId}' and student_id in (" . implode(',', $studentsIds) . ") and report_download_time = 0"; $this->sConn->createCommand($sql)->execute(); } /** * 更新下载状态 * @param $studentsIds * @param $examId * @param $type * @return mixed */ private function updateDownloadStatus($studentsIds, $examId, $type) { $time = time(); $sql = "update exam_product_status set is_download = 1,download_time={$time} where `product_type`={$type} and exam_id = '{$examId}' and student_id in (" . implode(',', $studentsIds) . ")"; return $this->sConn->createCommand($sql)->execute(); } /** * 更新专题宝下载状态 * @param $studentsIds * @param $gpId * @param $type */ private function updateDownloadStatusZtb($studentsIds, $gpId) { $time = time(); $sql = "update general_product_student set is_download = 1,download_time={$time} where gp_id = '{$gpId}' and student_id in (" . implode(',', $studentsIds) . ")"; $this->sConn->createCommand($sql)->execute(); } /** * 更新个性化学习宝下载状态 * @param array $studentIds * @param $classId * @param $examId * @param $isDownloadColumn * @param $downloadTimeCoulmn * @return mixed */ private function updateIspDownloadStatus($studentIds=array(), $classId, $examId, $isDownloadColumn, $downloadTimeCoulmn) { $criteria = new CDbCriteria(); if ($studentIds) { $criteria->addInCondition('student_id', $studentIds); } else { $criteria->addCondition('(is_complete = :is_complete and is_feedback = :is_complete) or is_del = :is_complete '); $criteria->params[':is_complete'] = 1; $criteria->params[':is_feedback'] = 1; $criteria->params[':is_del'] = 1; } $criteria->addCondition('class_id=:class_id'); $criteria->params[':class_id'] = $classId; $criteria->addCondition('exam_id=:exam_id'); $criteria->addCondition("{$isDownloadColumn}=:is_download"); $criteria->params[':exam_id'] = $examId; $criteria->params[':is_download'] = 0; return SStudentPaperRelation::model()->updateAll(array($isDownloadColumn => 1, $downloadTimeCoulmn => time()), $criteria); } //个性化学习宝教学宝 public function actionGetTeacherPdf(){ $examId = safe_replace(Yii::app()->request->getQuery('examId')); if(!$examId){ echo json_encode(array("success" => 0, "message" => "缺少参数")); exit(); } $printData=array(); $sql = "select e.name as exam_name,e.academicr_pdf_path,e.academicr_pdf_time,e.exam_group_id,e.class_id,e.subject_id from exam as e left join exam_group as eg on e.exam_group_id=eg.exam_group_id left join paper as p on p.exam_id=e.exam_id left join `class` as c on c.class_id=e.class_id where e.exam_id={$examId}"; $exam_info = $this->sConn->createCommand($sql)->queryRow(); if($exam_info['academicr_pdf_path']){ $printData['typeId']=18; $printData['productType']=20003; $printData['params']=array( 'classIds'=>array($exam_info['class_id']), 'url'=>$exam_info['academicr_pdf_path'], 'name'=>$exam_info['exam_name'], 'subjectId'=>$exam_info['subject_id'], 'examGroupId'=>$exam_info['exam_group_id'], ); }else{ echo json_encode(array("success" => 0, "message" => "文件未生成")); exit(); } echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //方法宝教师版 public function actionGetMethodPdfPrint(){ $examId = (string)Req::get("examId"); $productType = 31; require_once('TeachingMethod.php'); $teachingPhysicsObj = new TeachingMethod($this); $result = $teachingPhysicsObj->getTeachingPdf($this->schoolId, $examId, $productType, $this->subjectId, 0, 1); if($result['pdf_url']){ $sql = "select class_id,exam_group_id from exam where exam_id = '{$examId}'"; $examInfo = $this->sConn->createCommand($sql)->queryRow(); $printData['typeId']=18; $printData['productType']=20031; $printData['params']=array( 'classIds'=>array($examInfo['class_id']), 'url'=>$result['pdf_url'], 'name'=>$result['file_name'], 'subjectId'=>$this->subjectId, 'examGroupId'=>$examInfo['exam_group_id'], ); }else{ echo json_encode(array("success" => 0, "message" => "文件未生成")); exit(); } echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } //错题前十 public function actionGetCTQSPrint() { $exam_id = safe_replace(Yii::app()->request->getQuery('exam_id')); $host = ''; $databases_data = BusinessDatabase::model()->find('school_id=:school_id', array(':school_id' => $this->schoolId)); if ($databases_data) { $host = isset(Yii::app()->params['static_url'][$databases_data->group_id]) ? Yii::app()->params['static_url'][$databases_data->group_id] : Yii::app()->params['api_host'] . '/uploads/'; } $exam_data = Exam::model()->find('exam_id=:exam_id', array(':exam_id' => $exam_id)); if ($exam_data) { $filename = $exam_data->topwb_pdf_path; $filenames = explode('/', $filename); $filenames = array_reverse($filenames); if (!filter_var(trim($filename), FILTER_VALIDATE_URL)) { //没有http $filename = $host . '/' . $filename; } $printData['typeId'] = 18; $printData['productType']=10005; $printData['params'] = array( 'classIds' => array($exam_data->class_id), 'url' => $filename, 'name' => $exam_data['name'], 'subjectId' => $this->subjectId, 'examGroupId' => $exam_data['exam_group_id'], ); echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); } echo json_encode(array("success" => 0, "message" => "没有找到文件"));exit(); } //英语周推教师版下载 public function actionCDCHTeacherPrint(){ set_time_limit(0); $weekId = safe_replace(Yii::app()->request->getQuery('weekId')); $sql = "select * from teacher_week_extend where week_id = '{$weekId}'"; $week_info = $this->sConn->createCommand($sql)->queryAll(); $teacher_extend_arr = array(); foreach($week_info as $info) { $content = $info['content']; $content = json_decode($content,true); $teacher_extend_arr[$info['type']] = $content; } $sql = "select grade,teacher_general_pdf_path,class_id,set_id from english_week where week_id = '{$weekId}'"; $week_info = $this->sConn->createCommand($sql)->queryRow(); $sql = "select class_id,semester_id,words_type,is_new_version from english_week_setting where id = '{$week_info['set_id']}'"; $week_setting_info = $this->sConn->createCommand($sql)->queryRow(); if($week_setting_info['is_new_version']){ $this->newEnTeacherWeek($weekId,$week_info); exit; } $words_type = $week_setting_info['words_type']; $sql = "select ps_id from product_class_relation where class_id={$week_setting_info['class_id']} and semester_id={$week_setting_info['semester_id']} and set_type=7 order by ps_id desc limit 1"; $arr = $this->sConn->createCommand($sql)->queryRow(); $product_setting = ''; if($arr){ $sql = "select custom_config from product_setting where ps_id={$arr['ps_id']}"; $product_setting = $this->sConn->createCommand($sql)->queryRow(); $product_setting = $product_setting ? $product_setting['custom_config'] : ''; } $setting = array( 'moduleName'=>'晨读词汇', 'moduleType'=>'english_4', 'setting'=>array( 'vocabularySelfTest' =>array( //词汇自测 "coreVocabulary"=>array( //核心词汇开关 "onOff" =>1, "vocabularyUse" =>1 //词汇运用 ), "keyPhrases" =>1 //重点短语 ), "focusOnGrammar" =>array(//语法聚焦 "singleSentenceGrammar" =>1, //单句语法填空 "grammaticalFillIn" =>1 //语法填空 ), "writingTraining" =>array(//写作训练 "commentsOnGoodSentences" =>1, // 佳句点拨 "actualCombatDrill" =>1 //实战演练 ), "extensiveReadingOfForeignJournals" =>array( //外刊泛读 "accumulationOfNewWords" =>1, //新词积累 "appreciationOfGoldenSentences" =>1, //金句赏析 "fullTextTranslation" =>1, //全文翻译 ), ) ); $product_setting = $product_setting ? json_decode($product_setting, true) : $setting; //$product_setting = $setting; //核心词区分派生非派生 $single_words_derivative = array(); if(isset($teacher_extend_arr[1])){ foreach($teacher_extend_arr[1] as $k=>$v){ if(isset($v['is_derivative'])){ $single_words_derivative[$v['is_derivative']][] = $v; } } } $html_data = array( 'cur_grade' => $week_info['grade'], 'single_words' => isset($teacher_extend_arr[1]) ? $teacher_extend_arr[1] : array(), 'phrase' => isset($teacher_extend_arr[2]) ? $teacher_extend_arr[2] : array(), 'topic_type_six' => isset($teacher_extend_arr[4]) ? $teacher_extend_arr[4] : array(), 'topic_type_nineteen'=> isset($teacher_extend_arr[3]) ? $teacher_extend_arr[3] : array(), 'writing_training' => isset($teacher_extend_arr[5]) ? $teacher_extend_arr[5] : array(), 'single_translation' => isset($teacher_extend_arr[6]) ? $teacher_extend_arr[6] : array(), 'essayDetail' => isset($teacher_extend_arr[7]) ? $teacher_extend_arr[7] : array(), 'word_single_translation' => isset($teacher_extend_arr[8]) ? $teacher_extend_arr[8] : array(), //词汇运用(单句翻译) 'word_grammar_blank' => isset($teacher_extend_arr[9]) ? $teacher_extend_arr[9] : array(), //词汇运用(单句语法填空) 'word_spelling' => isset($teacher_extend_arr[20]) ? $teacher_extend_arr[20] : array(), //词汇运用(单词拼写) 'complete_sentence' => isset($teacher_extend_arr[21]) ? $teacher_extend_arr[21] : array(), //词汇运用(完成句子) 'product_setting' => $product_setting['setting'], 'words_type'=>$words_type, 'single_words_derivative'=>$single_words_derivative ); $classId = $week_info['class_id']; $sql = "select class_name from class where class_id = '{$classId}'"; $classInfo = $this->sConn->createCommand($sql)->queryRow(); $className = $classInfo ? $classInfo['class_name'] : ''; if (empty($week_info['teacher_general_pdf_path'])) { $sql = "select topic_id from teacher_week where week_id = '{$weekId}' order by topic_id desc"; $topic_info = $this->sConn->createCommand($sql)->queryAll(); if (empty($topic_info)) { echo json_encode(array("success" => 0, "message" => "周推教师版尚未生成"));exit(); } else { $html_name = 'english_week_teacher'; //$this->render("{$html_name}", $html_data);exit; $html = $this->renderPartial("{$html_name}", $html_data,true); unset($html_data); $htmlpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/'; //存放生成的HTML路径 $pdfpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/' . $this->schoolId . "/"; //存放生成的PDF路径 $pdfurl = '/upload/tmpDir/reading/' . $this->schoolId . "/"; if (!is_dir($htmlpath)) { if (!mkdir($htmlpath, 0777, true)) { exit('Create directory fail: ' . $htmlpath); } } if (!is_dir($pdfpath)) { if (!mkdir($pdfpath, 0777, true)) { exit('Create directory fail1: ' . $pdfpath); } } $gradeRel = array(1=>"高一",2=>"高二",3=>"高三"); $grade = isset($gradeRel[$week_info['grade']]) ? $gradeRel[$week_info['grade']] : ''; $htmlpath .= $weekId . ".html"; $f = fopen($htmlpath, "w"); fwrite($f, $html); fclose($f); $htmlurl = '/upload/tmpDir/reading/' . $weekId . ".html"; //访问HTML的路径 $locale='en_US.UTF-8'; setlocale(LC_ALL,$locale); putenv('LC_ALL='.$locale); if (Yii::app()->basePath == 'D:\xampp\htdocs\zsy-as2-php\protected') {//本地的basePath $htmlurl = " http://192.168.1.48:8077/upload/tmpDir/reading" . '/' . $weekId . '.html'; $pdffname = $weekId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs'] . " " . Yii::app()->params['html2pdf'] . " " . " {$htmlurl}" . " {$pdfpath}" . ' 176mm*250mm "'.$grade.'|||'.date('Y-m-d',time()).'"'; } else { $htmlurl = "http://" . $_SERVER['SERVER_NAME'] . $htmlurl; $pdffname = $weekId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs_server_en'] . " " . Yii::app()->basePath . '/../js/html2pdf_en.js' . " " . " {$htmlurl}" . " {$pdfpath}" . ' 176mm*250mm "'.$grade.' '.$className.'|||'.date('Y-m-d',time()).'"'; } exec($commond, $res, $code); if(isset($res[0])){ $isBool = false; foreach ($res as $msg) { if (strpos($msg, 'succeed') !== false) { $isBool = true; } } if ($isBool) {//命令返回成功 if (file_exists($pdfpath)) { // $pdfurl=iconv("GBK", "UTF-8",$pdfurl); $repdf = $weekId . ".pdf"; $rename = 'zsyas2/reading/' . $this->schoolId . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/' . uniqid() . '.' . $repdf; $ucloud = new HuaweiCloud(); $uploadInfo = $ucloud->putFile($rename, $pdfpath); if ($uploadInfo['status'] == 0) { $pdfurl = "http://" . $_SERVER['SERVER_NAME'] . $pdfurl; $this->sConn->createCommand()->update("english_week", array("teacher_general_pdf_path" => $pdfurl), "week_id = '{$weekId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; }else{ $pdfurl = $uploadInfo['url']; $this->sConn->createCommand()->update("english_week", array("teacher_general_pdf_path" => $pdfurl), "week_id = '{$weekId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; @unlink($pdfpath); } @unlink($htmlpath); } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF文件未找到"));exit(); exit; } } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF创建失败"));exit(); exit; } } else { echo json_encode(array("success" => 0, "message" => "PDF创建失败"));exit(); } } } if($week_info['teacher_general_pdf_path']){ $fileName = $className.'_周推教师版'; $url = $week_info['teacher_general_pdf_path']; $printData['typeId'] = 18; $printData['productType']=30001; $printData['params'] = array( 'classIds' => array($week_info['class_id']), 'url' => $url, 'name' => $fileName, 'subjectId' => $this->subjectId, 'examGroupId' => $weekId, ); echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); }else{ echo json_encode(array("success" => 0, "message" => "尚未生成PDF"));exit(); } } //外刊宝教师版 public function actionDownPdfWKBTeacherPrint(){ set_time_limit(0); $gradeRel = array(1=>"高一",2=>"高二",3=>"高三"); $weekId = safe_replace(Yii::app()->request->getQuery('weekId')); $sql = "select teacher_general_pdf_path,grade,is_new_version,reading_id,class_id from english_reading where week_id = '{$weekId}'"; $week_info = $this->sConn->createCommand($sql)->queryRow(); if (empty($week_info['teacher_general_pdf_path'])) { if($week_info['is_new_version']){//新版本 $this->new_en_reading($weekId,$week_info); exit; } $grade = isset($gradeRel[$week_info['grade']]) ? $gradeRel[$week_info['grade']] : ''; $sql = "select distinct topic_id from student_reading_topic where week_id = '{$weekId}' order by create_time asc"; $topic_info = $this->sConn->createCommand($sql)->queryAll(); if (empty($topic_info)) { echo json_encode(array("success" => 0, "message" => "学生外刊宝尚未生成!")); } else { $push_topics = _array_column($topic_info, 'topic_id'); $_params = array('isFormat' => 1, 'isTird' => 1, 'isNewEnglish' => 1, 'isNoReplaceLable' => 1); $topicDetails = $this->apiBrainPost('/topic/batchAll', array('topicIds' => $push_topics, 'subjectId' => $this->subjectId, 'params' => $_params), 25, true); if (!$topicDetails) { echo json_encode(array("success" => 1, "message" => "获取接口batchALL无数据!")); exit(); } elseif (isset($topicDetails['status']) && $topicDetails['status'] == 0) { echo json_encode(array("success" => 1, "message" => $topicDetails['error'][0])); exit(); } else { foreach($topicDetails as $node=>$td){ if (isset($td['slave'])) { $topicDetails[$node]['diff_str'] = $this->getLargeDifficulty($td['slave']); }else { $topicDetails[$node]['diff_str'] = ''; } } $data = array(); $data['all_topics'] = $push_topics; $data['reading_detail'] = $topicDetails; $html_name = 'en_reading'; $html = $this->renderPartial("{$html_name}", $data,true); unset($data); $htmlpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/'; //存放生成的HTML路径 $pdfpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/' . $this->schoolId . "/"; //存放生成的PDF路径 $pdfurl = '/upload/tmpDir/reading/' . $this->schoolId . "/"; if (!is_dir($htmlpath)) { if (!mkdir($htmlpath, 0777, true)) { exit('Create directory fail: ' . $htmlpath); } } if (!is_dir($pdfpath)) { if (!mkdir($pdfpath, 0777, true)) { exit('Create directory fail1: ' . $pdfpath); } } $htmlpath .= $weekId . ".html"; $f = fopen($htmlpath, "w"); fwrite($f, $html); fclose($f); $htmlurl = '/upload/tmpDir/reading/' . $weekId . ".html"; //访问HTML的路径 //防止exec 执行命令行导致中文乱码 $locale='en_US.UTF-8'; setlocale(LC_ALL,$locale); putenv('LC_ALL='.$locale); if (Yii::app()->basePath == "E:\wamp64\www\zsyas2\protected") {//本地的basePath $htmlurl = " http://local.zsyas2teaching.com" . '/' . $weekId . '.html'; $pdffname = $weekId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs'] . " " . Yii::app()->params['html2pdf'] . " " . " {$htmlurl}" . " {$pdfpath}" . " 176mm*250mm '".$grade." || ".date('Y-m-d',time())."'"; } else { $htmlurl = "http://" . $_SERVER['SERVER_NAME'] . $htmlurl; $pdffname = $weekId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs_server_en'] . " " . Yii::app()->basePath . '/../js/html2pdf_en.js' . " " . " {$htmlurl}" . " {$pdfpath}" . ' 176mm*250mm "'.$grade.'|||'.date('Y-m-d',time()).'"'; } exec($commond, $res, $code); if(isset($res[0])){ $isBool = false; foreach ($res as $msg) { if (strpos($msg, 'succeed') !== false) { $isBool = true; } } if ($isBool) {//命令返回成功 if (file_exists($pdfpath)) { // $pdfurl=iconv("GBK", "UTF-8",$pdfurl); $repdf = $weekId . ".pdf"; $rename = 'zsyas2/reading/' . $this->schoolId . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/' . uniqid() . '.' . $repdf; $ucloud = new HuaweiCloud(); $uploadInfo = $ucloud->putFile($rename, $pdfpath); if ($uploadInfo['status'] == 0) { $pdfurl = "http://" . $_SERVER['SERVER_NAME'] . $pdfurl; $this->sConn->createCommand()->update("english_reading", array("teacher_general_pdf_path" => $pdfurl), "week_id = '{$weekId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; }else{ $pdfurl = $uploadInfo['url']; $this->sConn->createCommand()->update("english_reading", array("teacher_general_pdf_path" => $pdfurl), "week_id = '{$weekId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; @unlink($pdfpath); } @unlink($htmlpath); } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF文件未找到"));exit(); exit; } } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF创建失败"));exit(); exit; } } else { echo json_encode(array("success" => 0, "message" => "PDF创建失败"));exit(); exit; } } } } if($week_info['teacher_general_pdf_path']){ $url = $week_info['teacher_general_pdf_path']; $printData['typeId'] = 18; $printData['productType']=20006; $printData['params'] = array( 'classIds' => array($week_info['class_id']), 'url' => $url, 'name' => '外刊宝教师版', 'subjectId' => $this->subjectId, 'examGroupId' => $weekId, ); echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); }else{ echo json_encode(array("success" => 0, "message" => "尚未生成PDF"));exit(); } } //词汇宝教师版 public function actionDownPdfCHBTeacherPrint(){ set_time_limit(0); $mwId = safe_replace(Yii::app()->request->getQuery('mwId')); $sql = "select * from teacher_magic_word where mw_id = '{$mwId}'"; $week_info = $this->sConn->createCommand($sql)->queryAll(); $teacher_extend_arr = array(); foreach($week_info as $info) { $content = $info['content']; $content = json_decode($content,true); $teacher_extend_arr[$info['type']] = $content; } $sql = "select grade,mw_group_id,teacher_general_pdf_path,class_id,semester_id from english_magic_word where mw_id = '{$mwId}'"; $week_info = $this->sConn->createCommand($sql)->queryRow(); $sql = "select words_count,practice_type,translate_type,is_class_common,card_word_count,is_new_version from english_magic_word_setting where mw_group_id='{$week_info['mw_group_id']}'"; $week_setting_info = $this->sConn->createCommand($sql)->queryRow(); if($week_setting_info && $week_setting_info['practice_type'] == 2){ //1共性 2个性 echo json_encode(array("success" => 0, "message" => "学生个性化词汇宝无教师版"));exit(); } $sql = "select ps_id from product_class_relation where class_id={$week_info['class_id']} and semester_id={$week_info['semester_id']} and set_type=8 order by ps_id desc limit 1"; $arr = $this->sConn->createCommand($sql)->queryRow(); $sql = $arr ? "select custom_config from product_setting where ps_id={$arr['ps_id']}" : "select custom_config from product_setting where product_type=8"; $product_setting = $this->sConn->createCommand($sql)->queryRow(); $product_setting = $product_setting ? $product_setting['custom_config'] : ''; $setting = array( 'moduleName'=>'词汇宝', 'moduleType'=>'english_5', 'setting'=>array( 'training' => array( //a-词汇集训 'wordReview' => 1, //词汇回顾 'wordExplain' => 1, // 词汇精讲 'practiceExact' => array( // 精准训练 'translate' => 1, //英汉互译 'wordApply' => 1, //词汇运用 'discourse' => 1, //语篇训练 ) // ), 'checkCard' => 1, //词汇集训检测卡 'wrongPractice' => 1, //错词再练 'wrongPracticeTimes' => 3, //第几次推送错词再练 ) ); $product_setting = $product_setting ? json_decode($product_setting, true) : $setting; $sql = "select * from english_magic_word_student where mw_id = '{$mwId}'"; $h5_generate_time = $this->sConn->createCommand($sql)->queryRow(); $h5_generate_time = $h5_generate_time ? explode('-',date('Y-m-d',$h5_generate_time['week_html_time'])) : ''; $h5_year = $h5_generate_time ? $h5_generate_time[0] : 0; $h5_month = $h5_generate_time ? $h5_generate_time[1] : 0; $h5_day = $h5_generate_time ? $h5_generate_time[2] : 0; // if(YII_ENV != 'production'){ // $h5_url = 'http://zsyapi.testing.xueping.com/uploads/magic_word/html/'.$this->schoolId.'/'.$h5_year.'/'.$h5_month.'/'.$h5_day.'/'.$mwId.'/h5/0.html'; // }else{ // $h5_url = Yii::app()->params['static_url'][$this->schoolGroupId].'/magic_word/html/'.$this->schoolId.'/'.$h5_year.'/'.$h5_month.'/'.$h5_day.'/'.$mwId.'/h5/0.html'; // } if(!$week_setting_info['is_new_version']){ $h5_url = Yii::app()->params['static_url'][$this->schoolGroupId].'/magic_word/html/'.$this->schoolId.'/'.$h5_year.'/'.$h5_month.'/'.$h5_day.'/'.$mwId.'/0_h5.html'; }else{ $h5_url = Yii::app()->params['static_url'][$this->schoolGroupId].'/zxhx_exam_html/english/english_magic_word/'. date('Y-m-d') .'/'.$mwId.'/0_h5.html'; } $h5_img = $this->qrcode64($h5_url); $topic_type_ids = $topic_type_k_v = array(); if($week_setting_info['is_new_version']){ if(YII_ENV != 'production'){ //语篇训练 $topic_type_k_v = array('choice_cloze'=>554,'reading_comprehension'=>555,'sentence_cloze'=>556,'grammar_gap_filling'=>563); $topic_type_ids = array(554=>'Choice Cloze (完形填空)', 555=>'Reading Comprehension (阅读理解)', 556=>'Sentence Cloze (七选五)', 563=>'Grammar Gap Filling (语法填空)'); }else{ //语篇训练 $topic_type_k_v = array('choice_cloze'=>41,'reading_comprehension'=>42,'sentence_cloze'=>44,'grammar_gap_filling'=>278); $topic_type_ids = array(41=>'Choice Cloze (完形填空)', 42=>'Reading Comprehension (阅读理解)', 44=>'Sentence Cloze (七选五)', 278=>'Grammar Gap Filling (语法填空)'); } //新版检测卡根据word_type归类 $check_card = array(); $check_card_detail = isset($teacher_extend_arr[8]) ? $teacher_extend_arr[8] : array(); if($check_card_detail){ foreach ($check_card_detail as $val){ $check_card[$val['word_type']][] = $val; } if(isset($check_card[1])){ for($i=0;$i $week_info['grade'], 'title' => isset($teacher_extend_arr[0]) ? $teacher_extend_arr[0] : array(), 'word_review' => isset($teacher_extend_arr[1]) ? $teacher_extend_arr[1] : array(), 'word_phase' => isset($teacher_extend_arr[2]) ? $teacher_extend_arr[2] : array(), 'translates' => isset($teacher_extend_arr[3]) ? $teacher_extend_arr[3] : array(), 'word_apply_ids' => isset($teacher_extend_arr[4]) ? $teacher_extend_arr[4] : array(), 'word_apply_content'=> isset($teacher_extend_arr[5]) ? $teacher_extend_arr[5] : array(), 'card_topic_ids' => isset($teacher_extend_arr[6]) ? current($teacher_extend_arr[6]) : array(), 'card_topic_content' => isset($teacher_extend_arr[7]) ? $teacher_extend_arr[7] : array(), 'check_card' => $check_card, 'card_title' => isset($teacher_extend_arr[9]) ? $teacher_extend_arr[9] : (isset($teacher_extend_arr[0]) ? $teacher_extend_arr[0] : array()), 'product_setting' => $product_setting['setting'], 'setting' => $week_setting_info, 'h5_image' =>$h5_img, 'topic_type_ids' => $topic_type_ids, 'topic_type_k_v' => $topic_type_k_v ); if($week_setting_info['is_new_version']){ $cardPage = 0; }else{ $cardPage = isset($teacher_extend_arr[8]) ? 2 : 0; } if (empty($week_info['teacher_general_pdf_path'])) { $sql = "select mw_id from teacher_magic_word where mw_id = '{$mwId}' order by mw_id desc"; $topic_info = $this->sConn->createCommand($sql)->queryAll(); if (empty($topic_info)) { echo json_encode(array("success" => 0, "message" => "词汇宝教师版尚未生成"));exit(); } else { if(!$week_setting_info['is_new_version']){ $html_name = '../magic/english_magic_word_teacher'; }else{ $html_name = '../magic/english_magic_word_teacher_new'; } // $this->render("{$html_name}", $html_data);exit; $html = $this->renderPartial("{$html_name}", $html_data,true); unset($html_data); $htmlpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/'; //存放生成的HTML路径 $pdfpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/' . $this->schoolId . "/"; //存放生成的PDF路径 $pdfurl = '/upload/tmpDir/reading/' . $this->schoolId . "/"; if (!is_dir($htmlpath)) { if (!mkdir($htmlpath, 0777, true)) { exit('Create directory fail: ' . $htmlpath); } } if (!is_dir($pdfpath)) { if (!mkdir($pdfpath, 0777, true)) { exit('Create directory fail1: ' . $pdfpath); } } $gradeRel = array(1=>"高一",2=>"高二",3=>"高三"); $grade = isset($gradeRel[$week_info['grade']]) ? $gradeRel[$week_info['grade']] : ''; $classId = $week_info['class_id']; $sql = "select class_name from class where class_id = '{$classId}'"; $classInfo = $this->sConn->createCommand($sql)->queryRow(); $className = $classInfo ? $classInfo['class_name'] : ''; $htmlpath .= $mwId . ".html"; $f = fopen($htmlpath, "w"); fwrite($f, $html); fclose($f); $htmlurl = '/upload/tmpDir/reading/' . $mwId . ".html"; //访问HTML的路径 $locale='en_US.UTF-8'; setlocale(LC_ALL,$locale); putenv('LC_ALL='.$locale); if (Yii::app()->basePath == 'D:\xampp\htdocs\zsy-as2-php\protected') {//本地的basePath $htmlurl = " http://192.168.1.48:8077/upload/tmpDir/reading" . '/' . $mwId . '.html'; $pdffname = $mwId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs'] . " " . Yii::app()->params['html2_card_pdf'] . " " . " {$htmlurl}" . " {$pdfpath}" . ' 176mm*250mm "'.$grade.'|||'.date('Y-m-d',time()).'"'; } else { $htmlurl = "http://" . $_SERVER['SERVER_NAME'] . $htmlurl; $pdffname = $mwId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs_server'] . " " . Yii::app()->basePath . '/../js/html2pdf_enCard.js' . " " . " {$htmlurl}" . " {$pdfpath}" // . ' 176mm*250mm "'.date('Y-m-d',time()).'|||123456|||'.$grade.' '.$className.'|||'.$cardPage.'"'; . ' 176mm*250mm "'.$grade.'|||词汇宝|||'.date('Y-m-d',time()).'|||'.$grade.' '.$className.'|||'.$cardPage.'"'; } // $stu_name . "|||" . (subtext($week_name, 30)) . "|||" .$product_name."|||". Params::$params['cur_subject_id']."|||".$card_page, exec($commond, $res, $code); if(isset($res[0])){ $isBool = false; foreach ($res as $msg) { if (strpos($msg, 'succeed') !== false) { $isBool = true; } } if ($isBool) {//命令返回成功 if (file_exists($pdfpath) && file_exists($htmlpath)) { // $pdfurl=iconv("GBK", "UTF-8",$pdfurl); $repdf = $mwId . ".pdf"; $rename = 'zsyas2/reading/' . $this->schoolId . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/' . uniqid() . '.' . $repdf; $rehtml = $mwId . ".html"; $reHtmlName = 'zsyas2/reading/' . $this->schoolId . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/' . uniqid() . '.' . $rehtml; $ucloud = new HuaweiCloud(); $uploadInfo = $ucloud->putFile($rename, $pdfpath); $uploadHtmlInfo = $ucloud->putFile($reHtmlName, $htmlpath); if ($uploadInfo['status'] == 0 && $uploadHtmlInfo['status'] == 0) { $pdfurl = "http://" . $_SERVER['SERVER_NAME'] . $pdfurl; $htmlurl = "http://" . $_SERVER['SERVER_NAME'] . $htmlurl; //echo $pdfurl; $this->sConn->createCommand()->update("english_magic_word", array("teacher_general_pdf_path" => $pdfurl,"teacher_general_html_path" => $htmlurl), "mw_id = '{$mwId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; }else{ $pdfurl = $uploadInfo['url']; $htmlurl = $uploadHtmlInfo['url']; //echo $pdfurl; $this->sConn->createCommand()->update("english_magic_word", array("teacher_general_pdf_path" => $pdfurl,"teacher_general_html_path" => $htmlurl), "mw_id = '{$mwId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; @unlink($pdfpath); } @unlink($htmlpath); } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF文件未找到"));exit(); exit; } } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF创建失败"));exit(); exit; } } else { echo json_encode(array("success" => 0, "message" => "PDF创建失败"));exit(); exit; } } } if($week_info['teacher_general_pdf_path']){ $url = $week_info['teacher_general_pdf_path']; $printData['typeId'] = 18; $printData['productType']=20011; $printData['params'] = array( 'classIds' => array($week_info['class_id']), 'url' => $url, 'name' => '词汇宝教师版', 'subjectId' => $this->subjectId, 'examGroupId' => $mwId, ); echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); }else{ Yii::app()->jump->error('尚未生成PDF'); } } /** * 新版英语外刊教师版 */ public function new_en_reading($weekId='',$week_info=array()){ $sql = "select product_type,basic_topic,hot_topic from english_reading_setting where reading_id='{$week_info['reading_id']}'"; $week_setting = $this->sConn->createCommand($sql)->queryRow(); $data = array(); $gradeRel = array(1=>"高一",2=>"高二",3=>"高三"); $class_name = ''; $grade = isset($gradeRel[$week_info['grade']]) ? $gradeRel[$week_info['grade']] : ''; $class_id = $week_info['class_id']; $sql = "select class_id,class_name from class where class_id = '$class_id'"; $class_data = $this->sConn->createCommand($sql)->queryRow(); if($class_data){ $class_name = $class_data['class_name']; } if($week_setting){ if($week_setting['product_type'] == 1){//基础宝 $p_name="外刊-基础宝"; $html_name = 'en_jichu'; $basic_data = array(); $basic_topic = $week_setting['basic_topic'];//基础宝ID if($basic_topic){ $basic_topic_arr = explode(",",$basic_topic); $brain_data = $this->apiBrainPost('/all_library/englishBaseBaby', array('ids' => $basic_topic_arr), 25, true); if($brain_data && isset($brain_data['data']) && $brain_data['data']){ foreach($brain_data['data'] as $k=>$v){ if(isset($v['jsb']) && $v['jsb']){ $basic_data = json_decode($v['jsb'],true); } } }else{ echo json_encode(array("success" => 0, "message" => "基础宝教师版接口有误"));exit(); } }else{ echo json_encode(array("success" => 0, "message" => "基础宝ID设置有误"));exit(); } if(!$basic_data){ echo json_encode(array("success" => 0, "message" => "基础宝教师版没有数据"));exit(); }else{ $data['basic_data'] = $basic_data; } }else if($week_setting['product_type'] == 2){//外刊宝 $p_name="外刊-外刊宝"; $html_name = 'en_waikan'; $sql = "select topic_id from student_reading_topic where week_id='{$weekId}'"; $topic_data = $this->sConn->createCommand($sql)->queryAll(); if($topic_data){ $topic_ids = _array_column($topic_data, 'topic_id'); $topic_ids = array_unique($topic_ids); $data['topic_ids'] = $topic_ids; $topicDetails = $this->apiBrainPost('/topic/batchAll', array('topicIds' => $topic_ids), 25, true); if (!$topicDetails) { echo json_encode(array("success" => 0, "message" => "获取接口batchALL无数据"));exit(); } elseif (isset($topicDetails['status']) && $topicDetails['status'] == 0) { echo json_encode(array("success" => 0, "message" => $topicDetails['error'][0]));exit(); } else { $paper_topic_detail= array(); foreach($topicDetails as $k=>$v){ $paper_topic_detail[(string)$v['id']] = $v; } $new_topic_detail = $this->newTopicDetail($paper_topic_detail); $data['topic_detail'] = $new_topic_detail; } }else{ echo json_encode(array("success" => 0, "message" => "学生外刊没生成"));exit(); } }else{//热点宝 $p_name="外刊-热点宝"; $html_name = 'en_hot'; $hot_topic = $week_setting['hot_topic'];//热点宝ID $redian_topic_ids = array(); if($hot_topic){ $hot_topic_arr = explode(",",$hot_topic); $brain_data = $this->apiBrainPost('/all_library/englishHotBaby', array('ids' => $hot_topic_arr), 25, true); if($brain_data && isset($brain_data['data']) && $brain_data['data']){ foreach($brain_data['data'] as $k=>$v){ if(isset($v['xxtlsy']) && $v['xxtlsy']){ $redian_topic_ids = array_merge($redian_topic_ids,$v['xxtlsy']); } if(isset($v['ljfxsy']) && $v['ljfxsy']){ $redian_topic_ids = array_merge($redian_topic_ids,$v['ljfxsy']); } if(isset($v['sbsy']) && $v['sbsy']){ $redian_topic_ids = array_merge($redian_topic_ids,$v['sbsy']); } if(isset($v['yychhy']) && $v['yychhy']){ $redian_topic_ids = array_merge($redian_topic_ids,$v['yychhy']); } if(isset($v['yyjjfx']) && $v['yyjjfx']){ $redian_topic_ids = array_merge($redian_topic_ids,$v['yyjjfx']); } if(isset($v['zhyysy']) && $v['zhyysy']){ $redian_topic_ids = array_merge($redian_topic_ids,$v['zhyysy']); } } $data['hot_data'] = $brain_data['data'][0]; }else{ echo json_encode(array("success" => 0, "message" => "热点宝教师版接口有误"));exit(); } }else{ echo json_encode(array("success" => 0, "message" => "热点宝ID设置有误"));exit(); } $sql = "select topic_id from student_reading_topic where week_id='{$weekId}'"; $topic_data = $this->sConn->createCommand($sql)->queryAll(); if($topic_data){ $topic_ids_0 = _array_column($topic_data, 'topic_id'); $topic_ids_0 = array_unique($topic_ids_0); $topic_ids = array_merge($topic_ids_0,$redian_topic_ids); $data['topic_ids'] = $topic_ids_0; $topicDetails = $this->apiBrainPost('/topic/batchAll', array('topicIds' => $topic_ids), 25, true); if (!$topicDetails) { echo json_encode(array("success" => 0, "message" => "获取接口batchALL无数据"));exit(); } elseif (isset($topicDetails['status']) && $topicDetails['status'] == 0) { echo json_encode(array("success" => 0, "message" => "topicDetails['error'][0]"));exit(); } else { $paper_topic_detail= array(); foreach($topicDetails as $k=>$v){ $paper_topic_detail[(string)$v['id']] = $v; } $new_topic_detail = $this->newTopicDetail($paper_topic_detail); $data['topic_detail'] = $new_topic_detail; } }else{ echo json_encode(array("success" => 0, "message" => "学生外刊没生成"));exit(); } } //开始生成html $data['type_config'] =array('gestalt'=>713,'reading'=>714,'seven_selected_five'=>array(715,432)); $html = $this->renderPartial("{$html_name}", $data,true); unset($data); $htmlpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/'; //存放生成的HTML路径 $pdfpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/' . $this->schoolId . "/"; //存放生成的PDF路径 $pdfurl = '/upload/tmpDir/reading/' . $this->schoolId . "/"; if (!is_dir($htmlpath)) { if (!mkdir($htmlpath, 0777, true)) { Yii::app()->jump->error('Create directory fail: ' . $htmlpath); } } if (!is_dir($pdfpath)) { if (!mkdir($pdfpath, 0777, true)) { Yii::app()->jump->error('Create directory fail: ' . $pdfpath); } } $htmlpath .= $weekId . ".html"; $f = fopen($htmlpath, "w"); fwrite($f, $html); fclose($f); $htmlurl = '/upload/tmpDir/reading/' . $weekId . ".html"; //访问HTML的路径 //防止exec 执行命令行导致中文乱码 $locale='en_US.UTF-8'; setlocale(LC_ALL,$locale); putenv('LC_ALL='.$locale); if (Yii::app()->basePath == "E:\wamp64\www\zsyas2\protected") {//本地的basePath $htmlurl = " http://local.zsyas2teaching.com" . '/' . $weekId . '.html'; $pdffname = $weekId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs'] . " " . Yii::app()->params['html2pdf'] . " " . " {$htmlurl}" . " {$pdfpath}" . " 176mm*250mm '".$grade." || ".date('Y-m-d',time())."'"; } else { $htmlurl = "http://" . $_SERVER['SERVER_NAME'] . $htmlurl; $pdffname = $weekId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs_server_en'] . " " . Yii::app()->basePath . '/../js/html2pdf_en.js' . " " . " {$htmlurl}" . " {$pdfpath}" . ' 176mm*250mm "'.$class_name.'|||'.'时间:'.date('Y-m-d',time()).' '.$p_name.'"'; } exec($commond, $res, $code); if(isset($res[0])){ $isBool = false; foreach ($res as $msg) { if (strpos($msg, 'succeed') !== false) { $isBool = true; } } if ($isBool) {//命令返回成功 if (file_exists($pdfpath)) { // $pdfurl=iconv("GBK", "UTF-8",$pdfurl); $repdf = $weekId . ".pdf"; $rename = 'zsyas2/reading/' . $this->schoolId . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/' . uniqid() . '.' . $repdf; $ucloud = new HuaweiCloud(); $uploadInfo = $ucloud->putFile($rename, $pdfpath); //上传html $rehtml = $weekId.".html"; $rename = 'zsyas2/reading/' . $this->schoolId . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/' . uniqid() . '.' . $rehtml; $uploadHtmlInfo = $ucloud->putFile($rename, $htmlpath); if($uploadHtmlInfo['status'] == 0){ $html_url = "http://" . $_SERVER['SERVER_NAME'].$htmlurl; }else{ $html_url = $uploadHtmlInfo['url']; } if ($uploadInfo['status'] == 0) { $pdfurl = "http://" . $_SERVER['SERVER_NAME'] . $pdfurl; $this->sConn->createCommand()->update("english_reading", array("teacher_general_pdf_path" => $pdfurl,"teacher_general_html_path"=>$html_url), "week_id = '{$weekId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; }else{ $pdfurl = $uploadInfo['url']; $this->sConn->createCommand()->update("english_reading", array("teacher_general_pdf_path" => $pdfurl,"teacher_general_html_path"=>$html_url), "week_id = '{$weekId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; @unlink($pdfpath); } @unlink($htmlpath); } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF文件未找到"));exit(); } } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF创建失败"));exit(); } } else { echo json_encode(array("success" => 0, "message" => "PDF创建失败11"));exit(); } }else{ echo json_encode(array("success" => 0, "message" => "外刊宝设置信息有误"));exit(); } if($week_info['teacher_general_pdf_path']){ $url = $week_info['teacher_general_pdf_path']; $printData['typeId'] = 18; $printData['productType']=20006; $printData['params'] = array( 'classIds' => array($week_info['class_id']), 'url' => $url, 'name' => '外刊宝教师版', 'subjectId' => $this->subjectId, 'examGroupId' => $weekId, ); echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); }else{ echo json_encode(array("success" => 0, "message" => "尚未生成PDF"));exit(); } } //写作宝教师版 public function actionDownPdfXZBTeacherPrint(){ set_time_limit(0); $ewId = safe_replace(Yii::app()->request->getQuery('mwId')); $sql = "select * from teacher_writing where ew_id = '{$ewId}'"; $week_info = $this->sConn->createCommand($sql)->queryAll(); $teacher_extend_arr = array(); foreach($week_info as $info) { $content = stripslashes($info['content']); $content = substr($content,1,-1); $content = json_decode($content,true); $teacher_extend_arr[$info['type']] = $content; } $sql = "select grade,ew_group_id,teacher_general_pdf_path,class_id,semester_id from english_writing where ew_id = '{$ewId}'"; $week_info = $this->sConn->createCommand($sql)->queryRow(); $sql = "select * from english_writing_student where ew_id = '{$ewId}'"; $h5_generate_time = $this->sConn->createCommand($sql)->queryRow(); $h5_generate_time = $h5_generate_time ? explode('-',date('Y-m-d',$h5_generate_time['week_html_time'])) : ''; $h5_year = $h5_generate_time ? $h5_generate_time[0] : 0; $h5_month = $h5_generate_time ? $h5_generate_time[1] : 0; $h5_day = $h5_generate_time ? $h5_generate_time[2] : 0; $html_data = array( 'cur_grade' => $week_info['grade'], 'writing' => isset($teacher_extend_arr[0]) ? $teacher_extend_arr[0] : array(), 'third' => isset($teacher_extend_arr[1]) ? $teacher_extend_arr[1] : array(), ); $taskName = (isset($teacher_extend_arr[0]['task_name'])) ? ($teacher_extend_arr[0]['task_name']) : (isset($teacher_extend_arr[1]['task_name']) ? $teacher_extend_arr[1]['task_name'] : ''); //debug($html_data); $cardPage = isset($teacher_extend_arr[8]) ? 2 : 0; if (empty($week_info['teacher_general_pdf_path'])) { $sql = "select ew_id from teacher_writing where ew_id = '{$ewId}' order by ew_id desc"; $topic_info = $this->sConn->createCommand($sql)->queryAll(); if (empty($topic_info)) { echo json_encode(array("success" => 0, "message" => "写作宝教师版尚未生成"));exit(); } else { $html_name = '../writing/english_writing_teacher'; //$this->render("{$html_name}", $html_data);exit; $html = $this->renderPartial("{$html_name}", $html_data,true); unset($html_data); $htmlpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/'; //存放生成的HTML路径 $pdfpath = str_replace("protected", "", Yii::app()->basePath) . '/upload/tmpDir/reading/' . $this->schoolId . "/"; //存放生成的PDF路径 $pdfurl = '/upload/tmpDir/reading/' . $this->schoolId . "/"; if (!is_dir($htmlpath)) { if (!mkdir($htmlpath, 0777, true)) { exit('Create directory fail: ' . $htmlpath); } } if (!is_dir($pdfpath)) { if (!mkdir($pdfpath, 0777, true)) { exit('Create directory fail1: ' . $pdfpath); } } $gradeRel = array(1=>"高一",2=>"高二",3=>"高三"); $grade = isset($gradeRel[$week_info['grade']]) ? $gradeRel[$week_info['grade']] : ''; $classId = $week_info['class_id']; $sql = "select class_name from class where class_id = '{$classId}'"; $classInfo = $this->sConn->createCommand($sql)->queryRow(); $className = $classInfo ? $classInfo['class_name'] : ''; $htmlpath .= $ewId . ".html"; $f = fopen($htmlpath, "w"); fwrite($f, $html); fclose($f); $htmlurl = '/upload/tmpDir/reading/' . $ewId . ".html"; //访问HTML的路径 $locale='en_US.UTF-8'; setlocale(LC_ALL,$locale); putenv('LC_ALL='.$locale); if (Yii::app()->basePath == 'D:\xampp\htdocs\zsy-as2-php\protected') {//本地的basePath $htmlurl = " http://192.168.1.48:8077/upload/tmpDir/reading" . '/' . $ewId . '.html'; $pdffname = $ewId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs'] . " " . Yii::app()->params['html2_card_pdf'] . " " . " {$htmlurl}" . " {$pdfpath}" . ' 176mm*250mm "'.$grade.'|||'.date('Y-m-d',time()).'"'; } else { $htmlurl = "http://" . $_SERVER['SERVER_NAME'] . $htmlurl; $pdffname = $ewId . ".pdf"; $pdfpath = $pdfpath . $pdffname; $pdfurl = $pdfurl . $pdffname; $commond = Yii::app()->params['phantomjs_server'] . " " . Yii::app()->basePath . '/../js/html2pdf_enCard.js' . " " . " {$htmlurl}" . " {$pdfpath}" // . ' 176mm*250mm "'.date('Y-m-d',time()).'|||123456|||'.$grade.' '.$className.'|||'.$cardPage.'"'; . ' 176mm*250mm "'.$className.'|||'.$taskName.'|||'.date('Y-m-d',time()).' 写作宝-教师版|||'.$className.' '.$className.'|||'.$cardPage.'"'; } // $stu_name . "|||" . (subtext($week_name, 30)) . "|||" .$product_name."|||". Params::$params['cur_subject_id']."|||".$card_page, exec($commond, $res, $code); if(isset($res[0])){ $isBool = false; foreach ($res as $msg) { if (strpos($msg, 'succeed') !== false) { $isBool = true; } } if ($isBool) {//命令返回成功 if (file_exists($pdfpath)) { // $pdfurl=iconv("GBK", "UTF-8",$pdfurl); $repdf = $ewId . ".pdf"; $rename = 'zsyas2/reading/' . $this->schoolId . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/' . uniqid() . '.' . $repdf; $ucloud = new HuaweiCloud(); $uploadInfo = $ucloud->putFile($rename, $pdfpath); if ($uploadInfo['status'] == 0) { $pdfurl = "http://" . $_SERVER['SERVER_NAME'] . $pdfurl; //echo $pdfurl; $this->sConn->createCommand()->update("english_writing", array("teacher_general_pdf_path" => $pdfurl), "ew_id = '{$ewId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; }else{ $pdfurl = $uploadInfo['url']; //echo $pdfurl; $this->sConn->createCommand()->update("english_writing", array("teacher_general_pdf_path" => $pdfurl), "ew_id = '{$ewId}'"); $week_info['teacher_general_pdf_path'] = $pdfurl; @unlink($pdfpath); } @unlink($htmlpath); } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF文件未找到"));exit(); exit; } } else { @unlink($htmlpath); echo json_encode(array("success" => 0, "message" => "PDF创建失败"));exit(); exit; } } else { echo json_encode(array("success" => 0, "message" => "PDF创建失败"));exit(); exit; } } } if($week_info['teacher_general_pdf_path']){ $url = $week_info['teacher_general_pdf_path']; $printData['typeId'] = 18; $printData['productType']=20032; $printData['params'] = array( 'classIds' => array($week_info['class_id']), 'url' => $url, 'name' => '写作宝教师版', 'subjectId' => $this->subjectId, 'examGroupId' => $ewId, ); echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); }else{ echo json_encode(array("success" => 0, "message" => "尚未生成PDF"));exit(); } } /** * 整理试题详情数据 */ public function newTopicDetail($paper_topic_detail){ $result = array(); $answer = array('A','B','C','D','E','F','G','H','I','J','K'); foreach($paper_topic_detail as $k=>$v){ $result[$k]['title'] = $v['title']; $result[$k]['type_id'] = $v['type_id']; $result[$k]['parse_content'] = $v['parse_content']; $result[$k]['answer'] = array(); $slave_answer = array(); if(isset($v['slave']) && $v['slave']){ $slave_arr = array(); foreach($v['slave'] as $sla_k=>$sla_v){ $slave_arr[$sla_k]['title'] = $sla_v['title'];//小题题干 if(isset($sla_v['items']) && $sla_v['items']){ if(isset($sla_v['items']['options']) && $sla_v['items']['options']){ foreach($sla_v['items']['options'] as $op_k=>$op_v){ $slave_arr[$sla_k]['options'][$op_k] = $op_v['option_content']; if($op_v['option_correct']){ $slave_answer[] = $answer[$op_k]; } } } } } $result[$k]['slave'] = $slave_arr; $result[$k]['answer'] = $slave_answer; }else{ if(isset($v['items']) && $v['items'] && isset($v['items'][0]) && $v['items'][0]){ if(isset($v['items'][0]['options']) && $v['items'][0]['options']){ foreach($v['items'][0]['options'] as $op_k=>$op_v){ if($op_v['option_correct'] == 1){ $slave_answer[] = $op_v['option_content']; } } } } $result[$k]['answer'] = $slave_answer; } if(isset($v['affiliate']) && $v['affiliate']){ foreach($v['affiliate'] as $aff_k=>$aff_v){ if($aff_v['field_name'] == '体裁类型'){ $result[$k]['tc'] = $this->getTags($aff_v['field_key'],$aff_v['field_value']); } if($aff_v['field_name'] == '主题语境'){ //主题语境只显示一个 $ztyj_str = $this->getTags($aff_v['field_key'],$aff_v['field_value']); $ztyj_arr = explode(",",$ztyj_str); if($ztyj_arr){ $result[$k]['ztyj'] = $ztyj_arr[0]; }else{ $result[$k]['ztyj'] =''; } } if($aff_v['field_name'] == '语篇等级'){ $result[$k]['ypdj'] = $aff_v['field_value']; } if($aff_v['field_name'] == '句子剖析'){ $result[$k]['jzpx'] = $aff_v['field_value']; } if($aff_v['field_name'] == '词汇积累'){ $result[$k]['chjl'] = $aff_v['field_value']; } if($aff_v['field_name'] == '关键词拓展'){ $result[$k]['gjctz'] = $aff_v['field_value']; } if($aff_v['field_name'] == '长难句解析'){ $result[$k]['cnjjx'] = $aff_v['field_value']; } } } } return $result; } /* * 获取试题标签 * */ public function getTags($field_key='',$field_value=''){ $result = ''; $data = array( 'subjectId'=>8, 'isSearch'=>1, 'tagFieldName'=>array($field_key) ); $brain_data = $this->apiBrainPost('/all_subject/topic_tag', $data, 25, true); if($brain_data && isset($brain_data['data']) && $brain_data['data']){ $brain_arr = $brain_data['data']; if(isset($brain_arr[0]) && isset($brain_arr[0]['extend']) && $brain_arr[0]['extend']){ $field_value_arr = explode("|",$field_value); $field_arr = array(); foreach($brain_arr[0]['extend'] as $extend_v){ if(in_array($extend_v['tag_extend_id'],$field_value_arr)){ $field_arr[]=$extend_v['tag_extend_name']; } } if($field_arr){ $result = implode(",",$field_arr); } } } return $result; } public function qrcode64($code_str, $level = 'L', $size = 10, $margin = 1){ $QRcode = new \QRcode(); ob_start();//开启缓冲区 $QRcode::pngNoHeader($code_str, false, 'L', 10, 1);//生成二维码 $img = ob_get_contents();//获取缓冲区内容 ob_end_clean();//清除缓冲区内容 $imgInfo = 'data:png;base64,' . chunk_split(base64_encode($img));//转base64 //ob_flush(); return $imgInfo; } /** * 英语周推新版教师版下载 */ public function newEnTeacherWeek($weekId='',$weekMsg=array()){ $sql = "select week_pdf_path from english_week_student where week_id='{$weekId}' and student_id=0"; $week_info = $this->sConn->createCommand($sql)->queryRow(); if($week_info && $week_info['week_pdf_path']){ $classId = $weekMsg['class_id']; $sql = "select class_name from class where class_id = '{$classId}'"; $classInfo = $this->sConn->createCommand($sql)->queryRow(); $className = $classInfo ? $classInfo['class_name'] : ''; $url = $week_info['week_pdf_path']; if(isset(Yii::app()->params["static_url"][$this->schoolGroupId]) && Yii::app()->params["static_url"][$this->schoolGroupId]){ $url = Yii::app()->params["static_url"][$this->schoolGroupId].'/'.$url; }else{ echo json_encode(array("success" => 0, "message" => "接口配置信息错误"));exit(); } $fileName = $className.'_周推教师版'; $printData['typeId'] = 18; $printData['productType']=30001; $printData['params'] = array( 'classIds' => array($weekMsg['class_id']), 'url' => $url, 'name' => $fileName, 'subjectId' => $this->subjectId, 'examGroupId' => $weekId, ); echo json_encode(array("success" => 1, "message" => "success","data"=>$printData));exit(); }else{ echo json_encode(array("success" => 0, "message" => "周推教师版尚未生成"));exit(); } } }