diff --git a/application/master/controller/Article.php b/application/master/controller/Article.php index 61937fb..92d61cb 100644 --- a/application/master/controller/Article.php +++ b/application/master/controller/Article.php @@ -1041,20 +1041,20 @@ class Article extends Controller { */ public function pushCrossref() { $data = $this->request->post(); - - $has = $this->article_obj->where('doi','10.53388/'.$data['doi_num'])->find(); - if($has){ + + $has = $this->article_obj->where('doi', '10.53388/' . $data['doi_num'])->find(); + if ($has) { return jsonError('doi号重复'); } - if(strstr($data['doi_num'],'/')!==false){ + if (strstr($data['doi_num'], '/') !== false) { return jsonError('格式错误'); } $author = $this->article_author_obj->where('article_id', $data['article_id'])->where('state', 0)->find(); - if($author==null){ + if ($author == null) { return jsonError('请先上传作者'); } $article_info = $this->article_obj->where('article_id', $data['article_id'])->find(); - if($article_info['npp']==''){ + if ($article_info['npp'] == '') { return jsonError('请先上传页码'); } $url = 'https://doi.crossref.org/servlet/deposit'; @@ -1062,15 +1062,15 @@ class Article extends Controller { $this->crossRef($data); //存储 - $this->article_obj->where('article_id',$data['article_id'])->update(['doi'=>'10.53388/'.$data['doi_num']]); - + $this->article_obj->where('article_id', $data['article_id'])->update(['doi' => '10.53388/' . $data['doi_num']]); + //发送请求 $par['login_id'] = 'books@tmrjournals.com/tmrp'; $par['login_passwd'] = '849192806pnX'; $par['fname'] = new \CURLFile($file); $this->myPost($url, $par); - + return jsonSuccess([]); } @@ -1095,15 +1095,13 @@ class Article extends Controller { // die; // die; } - - public function met(){ + + public function met() { $s = '11'; - $arr = explode('-', $s); - echo $arr[0]; + $arr = explode('-', $s); + echo $arr[0]; } - - public function crossRef($data) { $xml = ''; //create xml 头 @@ -1166,7 +1164,7 @@ http://www.crossref.org/schemas/crossref4.3.7.xsd">' . PHP_EOL . PHP_EOL; $xml .= '' . $ca[0] . '' . PHP_EOL; $xml .= '' . PHP_EOL; $xml .= '' . PHP_EOL; - $xml .= ''.trim($data['doi_num']).'' . PHP_EOL; + $xml .= '' . trim($data['doi_num']) . '' . PHP_EOL; $xml .= '' . PHP_EOL; $xml .= '' . PHP_EOL; $xml .= '10.53388/' . trim($data['doi_num']) . '' . PHP_EOL; @@ -1180,6 +1178,111 @@ http://www.crossref.org/schemas/crossref4.3.7.xsd">' . PHP_EOL . PHP_EOL; file_put_contents($txt, $xml); } + private function changDOI() { + $list = $this->article_obj->where('journal_id', 14)->where('state', 0)->select(); + foreach ($list as $art) { + $ca_doi = explode('/', $art['doi']); + if (!isset($ca_doi[1])) { + continue; + } + $doi = '10.53388/' . $ca_doi[1]; + $this->article_obj->where('article_id',$art['article_id'])->update(['doi'=>$doi]); + } + } + + /** + * 生成xml文件 + */ + private function makeXML() { + $xml = ''; + //create xml 头 + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . date('Ymd') . '' . PHP_EOL; + $xml .= '' . date('YmdHis') . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= 'tmr@tmrjournals.com' . PHP_EOL; + $xml .= 'tmr@tmrjournals.com' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= 'TMR' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + //组装主体信息部分 + + $journal_info = $this->journal_obj->where('journal_id', 14)->find(); + +// $article_info = $this->article_obj->where('article_id', $data['article_id'])->find(); + $stage_list = $this->journal_stage_obj->where('journal_id', 14)->where('state', 0)->select(); + foreach ($stage_list as $stage) { + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . $journal_info['title'] . '' . PHP_EOL; + $xml .= '' . $journal_info['jabbr'] . '' . PHP_EOL; + $xml .= '' . $journal_info['issn'] . '' . PHP_EOL; + $xml .= '' . $journal_info['usx'] . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . $stage['stage_year'] . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . $stage['stage_vol'] . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . $stage['stage_no'] . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + + $art_list = $this->article_obj->where('journal_stage_id', $stage['journal_stage_id'])->where('state', 0)->select(); + foreach ($art_list as $art) { + + $ca_doi = explode('/', $art['doi']); + if (!isset($ca_doi[1])) { + continue; + } + $doi = '10.53388/' . $ca_doi[1]; + + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . $art['title'] . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $authors = $this->article_author_obj->where('article_id', $art['article_id'])->where('state', 0)->select(); + foreach ($authors as $v) { + if ($v['is_first'] == 1) { + $xml .= '' . PHP_EOL; + } else { + $xml .= '' . PHP_EOL; + } + $xml .= '' . $v['first_name'] . '' . PHP_EOL; + $xml .= '' . $v['last_name'] . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + } + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . $stage['stage_year'] . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $ca = explode('-', $art['npp']); + $xml .= '' . $ca[0] . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . $doi . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . $doi . '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + } + $xml .= '' . PHP_EOL; + } + $xml .= '' . PHP_EOL; + $xml .= '' . PHP_EOL; + $txt = ROOT_PATH . 'public' . DS . 'xml' . DS . 'all_1.xml'; + file_put_contents($txt, $xml); + } + /** * @title 注册doi * @description 注册doi @@ -1280,15 +1383,14 @@ http://www.crossref.org/schemas/crossref4.3.7.xsd">' . PHP_EOL . PHP_EOL; file_put_contents($txt, $xml); } - public function upXML() { - vendor("chinadoi.UPXML2"); - $up_obj = new \UpXml; - $xmlfile = ROOT_PATH . 'public' . DS . 'xml' . DS . '1333.xml'; - $result = $up_obj->upload($xmlfile); - echo '
';
-        var_dump($result);
-        echo '
'; - die; - } - +// public function upXML() { +// vendor("chinadoi.UPXML2"); +// $up_obj = new \UpXml; +// $xmlfile = ROOT_PATH . 'public' . DS . 'xml' . DS . '1333.xml'; +// $result = $up_obj->upload($xmlfile); +// echo '
';
+//        var_dump($result);
+//        echo '
'; +// die; +// } }