This commit is contained in:
wangjinlei
2022-09-12 17:42:14 +08:00
parent ea2355c4d8
commit 8490380169
4 changed files with 389 additions and 61 deletions

View File

@@ -39,6 +39,7 @@ class Typeset extends Controller
protected $ts_obj = ''; protected $ts_obj = '';
protected $ts_refer_obj = ''; protected $ts_refer_obj = '';
protected $ts_frag_obj = ''; protected $ts_frag_obj = '';
protected $online_obj = '';
public function __construct(\think\Request $request = null) public function __construct(\think\Request $request = null)
{ {
@@ -69,6 +70,7 @@ class Typeset extends Controller
$this->ts_obj = Db::name('ts'); $this->ts_obj = Db::name('ts');
$this->ts_refer_obj = Db::name('ts_refer'); $this->ts_refer_obj = Db::name('ts_refer');
$this->ts_frag_obj = Db::name('ts_frag'); $this->ts_frag_obj = Db::name('ts_frag');
$this->online_obj = Db::name('online');
} }
public function getTypeSet() public function getTypeSet()
@@ -92,6 +94,154 @@ class Typeset extends Controller
return jsonSuccess($re); return jsonSuccess($re);
} }
/**
* 添加online
*/
public function createOnline(){
$data = $this->request->post();
// 验证规则
$rule = new Validate([
'article_id' => 'require|number'
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$check = $this->online_obj->where('article_id',$data['article_id'])->where('on_state',0)->find();
if($check){
return jsonError('不能重复生成');
}
$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();
$ts_info = $this->ts_obj->where('article_id',$data['article_id'])->where('ts_state',0)->find();
$insert['article_id'] = $data['article_id'];
$insert['journal_id'] = $journal_info['journal_id'];
$insert['on_title'] = $article_info['title'];
$insert['on_doi'] = $ts_info['ts_doi'];
$insert['abstract'] = $ts_info['ts_abstract'];
$insert['keywords'] = $ts_info['keywords'];
$insert['on_ctime'] = time();
$this->online_obj->insert($insert);
return jsonSuccess([]);
}
/**
* 编辑online信息
*/
public function editOnline(){
$data = $this->request->post();
$rule = new Validate([
'on_id'=>'require',
'journal_stage_id'=>'require'
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$update['journal_stage_id'] = $data['journal_stage_id'];
if(isset($data['abstract'])){
$update['abstract'] =trim($data['abstract']);
}
if(isset($data['npp'])&&$data['npp']!=''){
$update['npp'] = $data['npp'];
}
$this->online_obj->where('on_id',$data['on_id'])->update($update);
return jsonSuccess([]);
}
/**
* 获取online列表
*/
public function getOnlineList(){
$data = $this->request->post();
$rule = new Validate([
'journal_id'=>'require',
'editor_id'=>'require',
'pageIndex'=>'require',
'pageSize'=>'require'
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$journalids = [];
if($data['journal_id']==0){
$journalids = $this->journal_obj->where('editor_id',$data['editor_id'])->column('journal_id');
}else{
$journalids[] = $data['journal_id'];
}
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
$list = $this->online_obj->where('journal_id','in',$journalids)->where('on_state',0)->limit($limit_start,$data['pageSize'])->select();
$count = $this->online_obj->where('journal_id','in',$journalids)->where('on_state',0)->count();
$re['onlines'] = $list;
$re['count'] = $count;
return jsonSuccess($re);
}
/**
* 推送文章到官网系统
*/
public function pushArticleToSystem(){
$data = $this->request->post();
$rule = new Validate([
'on_id'=>'require'
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$on_info = $this->online_obj->where('on_id',$data['on_id'])->find();
$ts_info = $this->ts_obj->where('article_id',$on_info['article_id'])->where('ts_state',0)->find();
$article_info = $this->article_obj->where('article_id',$on_info['article_id'])->find();
$journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
$authors = $this->article_author_obj->where('article_id',$article_info['article_id'])->where('state',0)->select();
//check信息是否完整
if($on_info['journal_stage_id']==''||$on_info['on_doi']==''||$on_info['abstract']==''||$on_info['npp']==''){
return jsonError('信息不全!');
}
//发送推送请求
// $url = "http://www.journal.com/master/Article/addArticleForSubmission";
$url = 'http://journalapi.tmrjournals.com/public/index.php/master/Article/addArticleForSubmission';
$pra = [];
$pra['title'] = $article_info['title'];
$pra['journal_stage_id'] = $on_info['journal_stage_id'];
$pra['issn'] = $journal_info['issn'];
$pra['type'] = translateType($article_info['type']);
$pra['doi'] = $on_info['on_doi'];
$pra['abstract'] = $on_info['abstract'];
$pra['pub_date'] = $ts_info['online_date'];
$pra['file_pdf'] = $article_info['pdf_url'];
$pra['keywords'] = $article_info['keywords'];
$pra['npp'] = $on_info['npp'];
$pra['authors'] = json_encode($authors);
$res = object_to_array(json_decode(myPost($url, $pra)));
if($res['code']==0){
$this->online_obj->where('on_id',$data['on_id'])->update(['has_push'=>1]);
return jsonSuccess([]);
}else{
return jsonError('system error!');
}
}
/**
* 编辑online信息
*/
// public function editOnline(){
// $data = $this->request->post();
// // 验证规则
// $rule = new Validate([
// 'on_id' => 'require|number',
// 'abstract' => 'require'
// ]);
// if (!$rule->check($data)) {
// return jsonError($rule->getError());
// }
// }
/** /**
* 获取排版实例列表 * 获取排版实例列表
*/ */
@@ -133,7 +283,8 @@ class Typeset extends Controller
/** /**
* 获取排版实例最终文件列表 * 获取排版实例最终文件列表
*/ */
public function getFragList(){ public function getFragList()
{
$data = $this->request->post(); $data = $this->request->post();
$rule = new Validate([ $rule = new Validate([
'ts_id' => 'require' 'ts_id' => 'require'
@@ -175,7 +326,8 @@ class Typeset extends Controller
/** /**
* 修改参考文献的最终结果 * 修改参考文献的最终结果
*/ */
public function editReferFrag(){ public function editReferFrag()
{
$data = $this->request->post(); $data = $this->request->post();
$rule = new Validate([ $rule = new Validate([
'ts_refer_id' => 'require', 'ts_refer_id' => 'require',
@@ -191,7 +343,8 @@ class Typeset extends Controller
/** /**
* 改成可修改状态 * 改成可修改状态
*/ */
public function beginEdit(){ public function beginEdit()
{
$data = $this->request->post(); $data = $this->request->post();
$rule = new Validate([ $rule = new Validate([
'ts_refer_id' => 'require' 'ts_refer_id' => 'require'
@@ -261,6 +414,30 @@ class Typeset extends Controller
return jsonSuccess([]); return jsonSuccess([]);
} }
/**
* 获取online信息
*/
public function getOnlineDetail(){
$data = $this->request->post();
// 验证规则
$rule = new Validate([
'on_id' => 'require|number'
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$online_info = $this->online_obj->where('on_id',$data['on_id'])->find();
$article_info = $this->article_obj->where('article_id',$online_info['article_id'])->find();
$ts_info = $this->ts_obj->where('article_id',$article_info['article_id'])->where('ts_state',0)->find();
$journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
$online_info['article_type'] = translateType($article_info['type']);
$re['journal'] = $journal_info;
$re['online'] = $online_info;
return jsonSuccess($re);
}
/** /**
* doi获取格式化的参考文献信息 * doi获取格式化的参考文献信息
*/ */
@@ -288,8 +465,106 @@ class Typeset extends Controller
return jsonSuccess([]); return jsonSuccess([]);
} }
/**
* pdf文件加水印
*/
public function pdfAddPfroof()
{
vendor('fpdf.fpdf');
vendor('fpdi/fpdi');
$pdf = new \FPDI();
$pageCount = $pdf->setSourceFile(ROOT_PATH . 'public' . DS.'pdf'.DS.'test.pdf');
public function up_pdf_file(){ // iterate through all pages
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
// import a page
$templateId = $pdf->importPage($pageNo);
// get the size of the imported page
$size = $pdf->getTemplateSize($templateId);
// create a page (landscape or portrait depending on the imported page size)
if ($size['w'] > $size['h']) $pdf->AddPage('L', array($size['w'], $size['h']));
else $pdf->AddPage('P', array($size['w'], $size['h']));
// use the imported page
// $pdf->useTemplate($templateId);
$pdf->image(ROOT_PATH . 'public' . DS.'pdf'.DS.'bg2.png',55, 25, 80);
$pdf->image(ROOT_PATH . 'public' . DS.'pdf'.DS.'bg2.png',55, 155, 80);
$pdf->useTemplate($templateId);
// $pdf->SetFont('Arial', 'B', '12');
// // sign with current date
// $pdf->SetXY(0, 0); // you should keep testing untill you find out correct x,y values
// $pdf->Write(7, date('Y-m-d'));
}
$pdf->Output(ROOT_PATH . 'public' . DS.'pdf'.DS.'word.pdf');
}
/**
* 获取online的分期
*/
public function getStagesOnline(){
$data = $this->request->post();
// 验证规则
$rule = new Validate([
'journal_id' => 'require|number'
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find();
$cs['issn'] = $journal_info['issn'];
$url = 'http://journalapi.tmrjournals.com/public/index.php/master/Journal/getStageByISSN';
// $url = 'http://www.journal.com/master/Journal/getStageByISSN';
$list = object_to_array(json_decode(myPost($url, $cs)));
$re['stages'] = $list['data']['stages'];
return jsonSuccess($re);
}
/**
* 添加online分期
*/
public function addStage(){
$data = $this->request->post();
// 验证规则
$rule = new Validate([
'journal_id' => 'require|number',
'stage_year'=>'require',
'stage_vol'=>'require',
'stage_no'=>'require',
'stage_pagename'=>'require',
'stage_page'=>'require',
'issue_date'=>'require',
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find();
$insert_data['issn'] = $journal_info['issn'];
$insert_data['stage_year'] = $data['stage_year'];
$insert_data['stage_vol'] = $data['stage_vol'];
$insert_data['stage_no'] = $data['stage_no'];
$insert_data['stage_pagename'] = $data['stage_pagename'];
$insert_data['stage_page'] = $data['stage_page'];
$insert_data['issue_date'] = $data['issue_date'];
if (isset($data['stage_icon']) && !empty($data['stage_icon'])) {
$insert_data['stage_icon'] = $data['stage_icon'];
}
$url = 'http://journalapi.tmrjournals.com/public/index.php/master/Journal/addStageForTG';
// $url = 'http://www.journal.com/master/Journal/addStageForTG';
$list = object_to_array(json_decode(myPost($url, $insert_data)));
return jsonSuccess([]);
}
/**
* 上传pdf文件
*/
public function up_pdf_file()
{
$file = request()->file('pdf'); $file = request()->file('pdf');
if ($file) { if ($file) {
$info = $file->move(ROOT_PATH . 'public' . DS . 'pdf'); $info = $file->move(ROOT_PATH . 'public' . DS . 'pdf');
@@ -305,7 +580,8 @@ class Typeset extends Controller
/** /**
* 更新pdf文件 * 更新pdf文件
*/ */
public function updateArticlePdfFile(){ public function updateArticlePdfFile()
{
$data = $this->request->post(); $data = $this->request->post();
$rule = new Validate([ $rule = new Validate([
'article_id' => 'require', 'article_id' => 'require',
@@ -322,7 +598,8 @@ class Typeset extends Controller
/** /**
* 验证参考文献是否全部通过 * 验证参考文献是否全部通过
*/ */
public function checkRefer(){ public function checkRefer()
{
$data = $this->request->post(); $data = $this->request->post();
$rule = new Validate([ $rule = new Validate([
'ts_id' => 'require' 'ts_id' => 'require'
@@ -393,6 +670,24 @@ class Typeset extends Controller
// echo $frag; // echo $frag;
} }
/**
* 获取作者详情为了online
*/
public function getAuthorForOnline(){
$data = $this->request->post();
// 验证规则
$rule = new Validate([
'article_id' => 'require|number'
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$authors = $this->article_author_obj->where('article_id',$data['article_id'])->where('state',0)->select();
$re['authors'] = $authors;
return jsonSuccess($re);
}
/** /**
* 排版主方法入口 * 排版主方法入口
@@ -504,13 +799,17 @@ class Typeset extends Controller
'ts_abstract' => 'require', 'ts_abstract' => 'require',
'acknowledgment' => 'require', 'acknowledgment' => 'require',
'abbreviation' => 'require', 'abbreviation' => 'require',
'ts_doi' => 'require',
'ts_topic' => 'require', 'ts_topic' => 'require',
'ts_main' => 'require' 'ts_main' => 'require'
]); ]);
if (!$rule->check($data)) { if (!$rule->check($data)) {
return jsonError($rule->getError()); return jsonError($rule->getError());
} }
$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();
$old_ts_info = $this->ts_obj->where('article_id',$data['article_id'])->where('ts_state',0)->find();
$insert_ts['ts_title'] = $data['ts_title']; $insert_ts['ts_title'] = $data['ts_title'];
$insert_ts['ts_type'] = $data['ts_type']; $insert_ts['ts_type'] = $data['ts_type'];
$insert_ts['author'] = $data['author']; $insert_ts['author'] = $data['author'];
@@ -528,7 +827,15 @@ class Typeset extends Controller
$insert_ts['ts_abstract'] = $data['ts_abstract']; $insert_ts['ts_abstract'] = $data['ts_abstract'];
$insert_ts['acknowledgment'] = $data['acknowledgment']; $insert_ts['acknowledgment'] = $data['acknowledgment'];
$insert_ts['abbreviation'] = $data['abbreviation']; $insert_ts['abbreviation'] = $data['abbreviation'];
$insert_ts['ts_doi'] = $data['ts_doi']; //如果doi还没有需要生成
if($old_ts_info['ts_doi']==''){
$c1 = explode(';',$data['stage']);
$year = $c1[0];
$c2 = explode('(',$c1[1]);
$vol = $c2[0];
$insert_ts['ts_doi'] =$this->createdoi($year,$vol,$journal_info['abbr']);
}
// $insert_ts['ts_doi'] = $data['ts_doi'];
$insert_ts['trdition'] = $data['trdition']; $insert_ts['trdition'] = $data['trdition'];
$insert_ts['ts_topic'] = $data['ts_topic']; $insert_ts['ts_topic'] = $data['ts_topic'];
$insert_ts['ts_main'] = $data['ts_main']; $insert_ts['ts_main'] = $data['ts_main'];
@@ -536,6 +843,18 @@ class Typeset extends Controller
return jsonSuccess([]); return jsonSuccess([]);
} }
private function createdoi($year,$vol,$abbr){
$frag = '';
$doi = $abbr.$year.$vol.rand(1000,9999);
$frag = $doi;
$check = $this->ts_obj->where('ts_doi',$doi)->find();
if($check){
$frag = $this->createdoi($year,$vol,$abbr);
}
return $frag;
}
/** /**
* 创建排版实例 * 创建排版实例
*/ */
@@ -616,7 +935,10 @@ class Typeset extends Controller
} }
$frag['main'][] = $v; $frag['main'][] = $v;
} }
// var_dump($frag); //创建doi
//组合,存储获取到的信息 //组合,存储获取到的信息
$insert_ts = []; $insert_ts = [];
$insert_ts['article_id'] = $article_info['article_id']; $insert_ts['article_id'] = $article_info['article_id'];
@@ -693,7 +1015,8 @@ class Typeset extends Controller
/** /**
* 删除排版实例 * 删除排版实例
*/ */
public function delTypeSet(){ public function delTypeSet()
{
$data = $this->request->post(); $data = $this->request->post();
$rule = new Validate([ $rule = new Validate([
'ts_id' => 'require' 'ts_id' => 'require'
@@ -708,7 +1031,8 @@ class Typeset extends Controller
/** /**
* 更新引用条目 * 更新引用条目
*/ */
public function freshRefers(){ public function freshRefers()
{
$data = $this->request->post(); $data = $this->request->post();
$rule = new Validate([ $rule = new Validate([
'article_id' => 'require', 'article_id' => 'require',

BIN
vendor/fpdf/bg.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

View File

@@ -73,7 +73,7 @@ var $PDFVersion; // PDF version number
* Public methods * * Public methods *
* * * *
*******************************************************************************/ *******************************************************************************/
function FPDF($orientation='P', $unit='mm', $size='A4') function __construct($orientation='P', $unit='mm', $size='A4')
{ {
// Some checks // Some checks
$this->_dochecks(); $this->_dochecks();

View File

@@ -560,10 +560,14 @@ class FPDI extends FPDF_TPL
reset ($value[1]); reset ($value[1]);
while (list($k, $v) = each($value[1])) { foreach ($value[1] as $k => $v){
$this->_straightOut($k . ' '); $this->_straightOut($k . ' ');
$this->_writeValue($v); $this->_writeValue($v);
} }
// while (list($k, $v) = each($value[1])) {
// $this->_straightOut($k . ' ');
// $this->_writeValue($v);
// }
$this->_straightOut('>>'); $this->_straightOut('>>');
break; break;