This commit is contained in:
wangjinlei
2022-11-02 17:04:28 +08:00
parent 6814f788ed
commit 6058d5d32f
4 changed files with 106 additions and 9 deletions

View File

@@ -419,8 +419,10 @@ class Production extends Controller
$pra['title'] = $p_info['title'];
$pra['journal_stage_id'] = $p_info['journal_stage_id'];
$pra['issn'] = $journal_info['issn'];
$pra['type'] = translateType($article_info['type']);
$pra['type'] = $p_info['type'];
$pra['doi'] = $p_info['doi'];
$pra['tradition_tag'] = $p_info['tradition_tag'];
$pra['tradition'] = $p_info['tradition'];
$pra['abstract'] = $p_info['abstract'];
$pra['pub_date'] = $p_info['pub_date'];
$pra['abbr'] = $p_info['abbr'];
@@ -573,7 +575,8 @@ class Production extends Controller
$list[$k]['organs'] = $this->production_article_author_to_organ_obj
->field("t_production_article_organ.*")
->join("t_production_article_organ", 't_production_article_organ.p_article_organ_id = t_production_article_author_to_organ.p_article_organ_id', 'left')
->where('p_article_author_id', $v['p_article_author_id'])
->where('t_production_article_author_to_organ.p_article_author_id', $v['p_article_author_id'])
->where('t_production_article_author_to_organ.state',0)
->select();
}
$re['production'] = $p_info;
@@ -581,6 +584,26 @@ class Production extends Controller
return jsonSuccess($re);
}
public function getProductionPreview(){
$data = $this->request->post();
$rule = new Validate([
'p_article_id' => 'require|number'
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$p_info = $this->production_article_obj->where('p_article_id', $data['p_article_id'])->find();
$article_info = $this->article_obj->where('article_id',$p_info['article_id'])->find();
$journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
// $list = $this->production_article_author_obj->where('p_article_id', $data['p_article_id'])->where('state', 0)->select();
$re['production'] = $p_info;
$re['author'] = $this->authorFormate($data['p_article_id']);
$re['journal'] = $journal_info;
return jsonSuccess($re);
}
/**
* 获取生产实例详情通过文章id
*/
@@ -642,6 +665,56 @@ class Production extends Controller
return jsonSuccess([]);
}
/**
* 编辑作者信息
*/
public function editAuthor(){
$data = $this->request->post();
$rule = new Validate([
'p_article_author_id' => 'require',
'first_name' => 'require',
'last_name' => 'require',
'author_country' => 'require',
'is_first' => 'require',
'is_report' => 'require',
'organs'=>'require'
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$old_article_author_info = $this->production_article_author_obj->where('p_article_author_id',$data['p_article_author_id'])->find();
$updata['author_name'] = trim($data['first_name']) . ' ' . trim($data['last_name']);
$updata['first_name'] = trim($data['first_name']);
$updata['last_name'] = trim($data['last_name']);
$updata['orcid'] = isset($data['orcid']) ? $data['orcid'] : '';
$updata['author_country'] = $data['author_country'];
$updata['is_first'] = $data['is_first'];
$updata['is_report'] = $data['is_report'];
$updata['email'] = isset($data['email']) ? trim($data['email']) : '';
$this->production_article_author_obj->where('p_article_author_id',$data['p_article_author_id'])->update($updata);
if (is_array($data['organs'])) {
$has_ids = [];
foreach ($data['organs'] as $v) {
$cache_one = $this->production_article_author_to_organ_obj
->where('p_article_author_id',$data['p_article_author_id'])
->where('p_article_organ_id',$v)
->where('state',0)
->find();
if ($cache_one == null) {
$insert['p_article_id'] = $old_article_author_info['p_article_id'];
$insert['p_article_author_id'] = $data['p_article_author_id'];
$insert['p_article_organ_id'] = $v;
$this->production_article_author_to_organ_obj->insert($insert);
}
$has_ids[] = intval($v);
}
$this->production_article_author_to_organ_obj->where('p_article_author_id', $data['p_article_author_id'])->where('state', 0)->where('p_article_organ_id', 'not in', $has_ids)->update(['state' => 1]);
}else{
$this->production_article_author_to_organ_obj->where('p_article_author_id', $data['p_article_author_id'])->where('state', 0)->update(['state' => 1]);
}
return jsonSuccess([]);
}
/**
* 编辑作者机构信息
*/
@@ -895,7 +968,8 @@ class Production extends Controller
$list[$k]['organs'] = $this->production_article_author_to_organ_obj
->field("t_production_article_organ.*")
->join("t_production_article_organ", 't_production_article_organ.p_article_organ_id = t_production_article_author_to_organ.p_article_organ_id', 'left')
->where('p_article_author_id', $v['p_article_author_id'])
->where('t_production_article_author_to_organ.p_article_author_id', $v['p_article_author_id'])
->where('t_production_article_author_to_organ.state',0)
->select();
}
$re['authors'] = $list;
@@ -1154,6 +1228,7 @@ class Production extends Controller
}
$frag['author'] = $author;
$frag['address'] = $address_str;
$frag['addressList'] = $address;
return $frag;
}