123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201 |
- <?php
- class PrintToolsController extends Controller
- {
- /**
- * 下载错题本/二步/三步产品文件
- */
- public function actionGetImproveFile()
- {
- $examId = Req::get("examId");
- $classId = Req::get("classId");
- $type = Req::get("type");
- $studentsIds = Req::get("studentsIds");
- $printType = Req::get("printType");
- $absentFilter = Req::get("absent_filter");
- $classDownload = $studentsIds ? false : true;
- 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();
- }
- $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 Qcloud();
- $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 Qcloud();
- $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<count($check_card[1]);$i+=2){
- $_check_card[] = array_slice($check_card[1],$i,2);
- }
- $check_card[1] = $_check_card;
- unset($_check_card);
- }
- }
- }else{
- $check_card = isset($teacher_extend_arr[8]) ? $teacher_extend_arr[8] : array();
- }
- $html_data = array(
- 'cur_grade' => $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 Qcloud();
- $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 Qcloud();
- $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 Qcloud();
- $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();
- }
- }
- }
|