This commit is contained in:
wangjinlei
2021-06-25 15:25:42 +08:00
parent 7d216a169d
commit a34439b183
5 changed files with 445 additions and 214 deletions

View File

@@ -434,9 +434,6 @@ class Article extends Controller {
* @param name:doi type:string require:1 desc:doi
* @param name:abstract type:string require:1 desc:简介
* @param name:keywords type:string require:1 desc:关键字
* @param name:abs_num type:int require:1 desc:简介数量
* @param name:pdf_num type:int require:1 desc:pdf数量
* @param name:html_num type:int require:1 desc:html数量
* @param name:ltai type:string require:0 desc:标题斜体(demo1,demo2)
* @param name:npp type:strng require:1 desc:文章页码
* @param name:type type:string require:1 desc:类型
@@ -462,9 +459,9 @@ class Article extends Controller {
$updata['doi'] = $data['doi'];
$updata['abstract'] = $data['abstract'];
$updata['keywords'] = $data['keywords'];
$updata['abs_num'] = $data['abs_num'];
$updata['pdf_num'] = $data['pdf_num'];
$updata['html_num'] = $data['html_num'];
// $updata['abs_num'] = $data['abs_num'];
// $updata['pdf_num'] = $data['pdf_num'];
// $updata['html_num'] = $data['html_num'];
$updata['npp'] = $data['npp'];
$updata['type'] = $data['type'];
$updata['cited'] = $data['cited'];
@@ -1018,4 +1015,116 @@ class Article extends Controller {
$re['cites'] = $list;
return jsonSuccess($re);
}
/**
* @title 注册doi
* @description 注册doi
* @author wangjinlei
* @url /master/Article/agentDOI
* @method POST
*
* @param name:doi type:string require:1 desc:doi号
* @param name:article_id type:int require:1 desc:文章id
*/
public function agentDOI(){
$data = $this->request->post();
$data['doi'] = '10.12032/TMR20210301222';
$data['article_id'] = 1333;
$xml = '';
//create xml 头
$xml .= '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
$xml .= '<doi_batch version="1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="D:\jboss-4.0.3SP1\wanfang\jboss-4.0.3SP1\server\default\deploy\WanFang.war\check.xsd">'.PHP_EOL.PHP_EOL;
$xml .= '<head>'.PHP_EOL;
$xml .= '<doi_batch_id>'.date('Ymd').'</doi_batch_id>'.PHP_EOL;
$xml .= '<timestamp>'.date('YmdHis').'</timestamp>'.PHP_EOL;
$xml .= '<depositor>'.PHP_EOL;
$xml .= '<name>TMR2015@163.com</name>'.PHP_EOL;
$xml .= '<email_address>TMR2015@163.com</email_address>'.PHP_EOL;
$xml .= '</depositor>'.PHP_EOL;
$xml .= '<registrant>传统医学研究(英文版)</registrant>'.PHP_EOL;
$xml .= '</head>'.PHP_EOL;
//组装主体信息部分
$article_info = $this->article_obj->where('article_id',$data['article_id'])->find();
$journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
$stage_info = $this->journal_stage_obj->where('journal_stage_id',$article_info['journal_stage_id'])->find();
$xml .= '<body>'.PHP_EOL;
$xml .= '<journal>'.PHP_EOL;
$xml .= '<journal_metadata>'.PHP_EOL;
$xml .= '<journal_id>'.$journal_info['usx'].'</journal_id>'.PHP_EOL;
$xml .= '<full_title>'.$journal_info['title'].'</full_title>'.PHP_EOL;
$xml .= '<issn media_type="print">'.$journal_info['issn'].'</issn>'.PHP_EOL;
$xml .= '<cn media_type="print"></cn>'.PHP_EOL;
$xml .= '</journal_metadata>'.PHP_EOL;
$xml .= '<journal_issue>'.PHP_EOL;
$xml .= '<publication_date media_type="print">'.PHP_EOL;
$xml .= '<year>'.$stage_info['stage_year'].'</year>'.PHP_EOL;
$xml .= '<month/>'.PHP_EOL;
$xml .= '<day/>'.PHP_EOL;
$xml .= '</publication_date>'.PHP_EOL;
$xml .= '<journal_volume>'.PHP_EOL;
$xml .= '<volume>'.$stage_info['stage_vol'].'</volume>'.PHP_EOL;
$xml .= '</journal_volume>'.PHP_EOL;
$xml .= '<issue>'.$stage_info['stage_no'].'</issue>'.PHP_EOL;
$xml .= '</journal_issue>'.PHP_EOL;
$xml .= '<journal_article>'.PHP_EOL;
$xml .= '<titles>'.PHP_EOL;
$xml .= '<title>'.$article_info['title'].'</title>'.PHP_EOL;
$xml .= '<subtitle></subtitle>'.PHP_EOL;
$xml .= '</titles>'.PHP_EOL;
$xml .= '<contributors>'.PHP_EOL;
$xml .= '<contributors>'.PHP_EOL;
$authors = $this->article_author_obj->where('article_id',$data['article_id'])->where('state',0)->select();
$address = '';
$author = '';
foreach ($authors as $v){
if($v['is_first']==1){
$ca = $this->author_to_organ_obj->where('article_author_id',$v['article_author_id'])->where('article_id',$data['article_id'])->find();
$ca_organ = $this->article_organ_obj->where('article_organ_id',$ca['article_organ_id'])->find();
$address = $ca_organ['organ_name'];
}
$author .= $v['author_name'].',';
}
$xml .= '<person_name sequence="first" contributor_role="author">'.substr($author,-1).'</person_name>'.PHP_EOL;
$xml .= '<organization sequence="first" contributor_role="author">'.$address.'</organization>'.PHP_EOL;
$xml .= '</contributors>'.PHP_EOL;
$xml .= '<keywords></keywords>'.PHP_EOL;
$xml .= '<keywords>'. str_replace(',', ' ', $article_info['keywords']).'</keywords>'.PHP_EOL;
$xml .= '<abstract></abstract>'.PHP_EOL;
$xml .= '<abstract>'.str_replace('Abstract','',strip_tags(str_replace("&nbsp;","",htmlspecialchars_decode($article_info['abstract'])))).'</abstract>'.PHP_EOL;
$xml .= '<doi_data>'.PHP_EOL;
$xml .= '<doi>'.$article_info['doi'].'</doi>'.PHP_EOL;
$xml .= '<resource><![CDATA[https://www.tmrjournals.com/article.html?J_num='.$journal_info['journal_id'].'&a_id='.$article_info['article_id'].']]></resource>'.PHP_EOL;
$xml .= '</doi_data>'.PHP_EOL;
$xml .= '<pages>'.PHP_EOL;
$start = '';
$end = '';
if(stripos($article_info['npp'],'-')>0){
$ca_list = explode('-', $article_info['npp']);
$start = $ca_list[0];
$end = $ca_list[1];
}else{
$start = $article_info['npp'];
}
$xml .= '<first_page>'.$start.'</first_page>'.PHP_EOL;
$xml .= '<last_page>'.$end.'</last_page>'.PHP_EOL;
$xml .= '</pages>'.PHP_EOL;
$xml .= '</journal_article>'.PHP_EOL;
$txt = ROOT_PATH . 'public' . DS . 'xml'.DS.$article_info['article_id'].'.xml';
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 '<pre>';
var_dump($result);
echo '</pre>';
die;
}
}