request->post(); $rule = new Validate([ "article_id"=>"require" ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $production_info = $this->production_article_obj->where('article_id',$data['article_id'])->find(); if($production_info==null){ return jsonError("Object is null"); } $list = $this->production_article_refer_obj->where("p_article_id",$production_info['p_article_id'])->where('state',0)->select(); $re["refers"] = $list; return jsonSuccess($re); } /**清空引用文献 * @return \think\response\Json * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public function discardRefers(){ $data = $this->request->post(); $rule = new Validate([ "article_id"=>"require" ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $production_info = $this->production_article_obj->where('article_id',$data['article_id'])->find(); $this->production_article_refer_obj->where('p_article_id',$production_info['p_article_id'])->update(['state'=>1]); return jsonSuccess([]); } public function addRefersByExcel(){ $data = $this->request->post(); $rule = new Validate([ "article_id"=>"require", "referFile" => "require" ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $production_info = $this->production_article_obj->where('article_id',$data['article_id'])->where("state",0)->find(); if(!$production_info){ return jsonError("Object is null"); } $file = ROOT_PATH . 'public' . DS . "referFile".DS.$data['referFile']; $list = $this->readRefersExcel($file); foreach ($list as $v){ $ca['p_article_id'] = $production_info['p_article_id']; $ca['refer_content'] = $v['content']; $ca['refer_doi'] = $v['doi']; $ca['ctime'] = time(); $this->production_article_refer_obj->insert($ca); } return jsonSuccess([]); } /**读取excel文件获取refer列表 * @param $afile * @return array * @throws \PHPExcel_Exception * @throws \PHPExcel_Reader_Exception */ public function readRefersExcel($afile){ $extension = substr($afile, strrpos($afile, '.') + 1); vendor("PHPExcel.PHPExcel"); if ($extension == 'xlsx') { $objReader = new \PHPExcel_Reader_Excel2007(); $objPHPExcel = $objReader->load($afile); } else if ($extension == 'xls') { $objReader = new \PHPExcel_Reader_Excel5(); $objPHPExcel = $objReader->load($afile); } $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); $frag = []; for ($i = 2; $i <= $highestRow; $i++) { if($objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue()==''){ continue ; } $aa['content'] = $objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue(); $aa['doi'] = $objPHPExcel->getActiveSheet()->getCell("B" . $i)->getValue(); $frag[] = $aa; } return $frag; } /**上传引用文献文件 * @return \think\response\Json|void */ public function up_refer_file(){ $file = request()->file("referFile"); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . "referFile"); if ($info) { $file = ROOT_PATH . 'public' . DS . "referFile".DS.str_replace("\\", "/", $info->getSaveName()); $re["refers"] = $this->readRefersExcel($file); $re["upurl"] = str_replace("\\", "/", $info->getSaveName()); $re['code'] =0; return json($re); } else { return json(['code' => 1, 'msg' => $file->getError()]); } } } }