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)->order("index")->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([]);
}
/**清空引用文献byp_article_id
* @return void
*/
public function discardRefersByParticleid(){
$data = $this->request->post();
$rule = new Validate([
"p_article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$this->production_article_refer_obj->where('p_article_id',$data['p_article_id'])->update(["state"=>1]);
return jsonSuccess([]);
}
/**添加refer
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function addRefer()
{
$data = $this->request->post();
$rule = new Validate([
"article_id" => "require",
"pre_p_refer_id" => "require",
"refer_type"=>"require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$p_info = $this->production_article_obj->where('article_id', $data['article_id'])->where('state', 0)->find();
$pre_refer = $this->production_article_refer_obj->where('p_refer_id', $data['pre_p_refer_id'])->find();
$insert['p_article_id'] = $p_info['p_article_id'];
$insert['index'] = $pre_refer['index'] + 1;
$insert['ctime'] = time();
$insert['is_change'] = 1;
$insert['refer_type'] = $data['refer_type'];
if($data['refer_type']=="journal"){
$insert['refer_doi'] = isset($data['doi'])?$data['doi']:'';
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['joura'] = trim($data['joura']);
$insert['dateno'] = $data['dateno'];
$insert['doilink'] = $data['doilink'];
$insert['cs'] = 1;
$insert['is_ja'] = 1;
}elseif($data['refer_type']=="book"){
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['dateno'] = $data['dateno'];
$insert['isbn'] = $data['isbn'];
$insert['cs'] = 1;
$insert['is_ja'] = 1;
}else{
$insert['cs'] = 0;
$insert['refer_frag'] = trim($data['content']);
}
$adId= $this->production_article_refer_obj->insertGetId($insert);
$this->production_article_refer_obj->where('p_article_id', $p_info['p_article_id'])->where("p_refer_id", "<>", $adId)->where("index", ">", $pre_refer['index'])->where('state', 0)->setInc('index');
return jsonSuccess([]);
// $adId = $this->production_article_refer_obj->insertGetId($insert);
// my_doiToFrag2($this->production_article_refer_obj->where('p_refer_id', $adId)->find());
// //判断是否合法
// $check = $this->production_article_refer_obj->where('p_refer_id', $adId)->find();
// if ($check['author']) {//合法
// $this->production_article_refer_obj->where('p_article_id', $p_info['p_article_id'])->where("p_refer_id", "<>", $adId)->where("index", ">", $pre_refer['index'])->where('state', 0)->setInc('index');
// return jsonSuccess([]);
// } else {//非法
// $this->production_article_refer_obj->where('p_refer_id', $adId)->update(['state' => 1]);
// return jsonError("Doi error");
// }
}
public function addReferByParticleid(){
$data = $this->request->post();
$rule = new Validate([
"p_article_id" => "require",
"pre_p_refer_id" => "require",
"refer_type"=>"require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$p_info = $this->production_article_obj->where('p_article_id', $data['p_article_id'])->find();
$pre_refer = $this->production_article_refer_obj->where('p_refer_id', $data['pre_p_refer_id'])->find();
$insert['p_article_id'] = $p_info['p_article_id'];
$insert['index'] = $pre_refer['index'] + 1;
$insert['ctime'] = time();
$insert['is_change'] = 1;
$insert['refer_type'] = $data['refer_type'];
if($data['refer_type']=="journal"){
$insert['refer_doi'] = isset($data['doi'])?$data['doi']:'';
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['joura'] = trim($data['joura']);
$insert['dateno'] = $data['dateno'];
$insert['doilink'] = $data['doilink'];
$insert['cs'] = 1;
$insert['is_ja'] = 1;
}elseif($data['refer_type']=="book"){
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['dateno'] = $data['dateno'];
$insert['isbn'] = $data['isbn'];
$insert['cs'] = 1;
$insert['is_ja'] = 1;
}else{
$insert['cs'] = 0;
$insert['refer_frag'] = trim($data['content']);
}
$adId= $this->production_article_refer_obj->insertGetId($insert);
$this->production_article_refer_obj->where('p_article_id', $p_info['p_article_id'])->where("p_refer_id", "<>", $adId)->where("index", ">", $pre_refer['index'])->where('state', 0)->setInc('index');
return jsonSuccess([]);
}
/**非doi形式添加refer节点
* @return void
*/
public function addReferNotdoi()
{
$data = $this->request->post();
$rule = new Validate([
"article_id" => "require",
"pre_p_refer_id" => "require",
"author" => "require",
"title" => "require",
"joura" => "require",
"dateno" => "require",
"doilink" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$p_info = $this->production_article_obj->where('article_id', $data['article_id'])->where('state', 0)->find();
$pre_refer = $this->production_article_refer_obj->where('p_refer_id', $data['pre_p_refer_id'])->find();
$insert['p_article_id'] = $p_info['p_article_id'];
$insert['index'] = $pre_refer['index'] + 1;
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['joura'] = trim($data['joura']);
$insert['dateno'] = trim($data['dateno']);
$insert['doilink'] = trim($data['doilink']);
$insert['refer_doi'] = trim($data['doilink']);
$insert['is_web'] = 1;
$insert['cs'] = 1;
$adId = $this->production_article_refer_obj->insertGetId($insert);
$this->production_article_refer_obj->where('p_article_id', $p_info['p_article_id'])->where("p_refer_id", "<>", $adId)->where("index", ">", $pre_refer['index'])->where('state', 0)->setInc('index');
return jsonSuccess([]);
}
public function editReferNotdoi()
{
$data = $this->request->post();
$rule = new Validate([
"p_refer_id" => "require",
"author" => "require",
"title" => "require",
"joura" => "require",
"dateno" => "require",
"doilink" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$update['author'] = trim($data['author']);
$update['title'] = trim($data['title']);
$update['joura'] = trim($data['joura']);
$update['dateno'] = trim($data['dateno']);
$update['doilink'] = trim($data['doilink']);
$update['refer_doi'] = trim($data['doilink']);
$this->production_article_refer_obj->where('p_refer_id', $data['p_refer_id'])->update($update);
return jsonSuccess([]);
}
// public function aaa(){
// $list = $this->production_article_refer_obj->where('p_article_id',423)->where('state',0)->where('index',">",0)->setInc('index');
// dump($list);
// }
/**删除refer
* @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 delRefer()
{
$data = $this->request->post();
$rule = new Validate([
"p_refer_id" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$this->delOneRefer($data['p_refer_id']);
return jsonSuccess([]);
}
public function delRefers(){
$data = $this->request->post();
$rule = new Validate([
"ids" => "require|array"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
foreach ($data['ids'] as $v){
$this->delOneRefer($v);
}
return jsonSuccess([]);
}
public function positioningImage(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require",
"ami_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$ami_info = $this->article_main_image_obj->where("ami_id",$data['ami_id'])->find();
$check = $this->article_main_obj->where("article_id",$am_info['article_id'])->where("ami_id",$data['ami_id'])->whereIn("state",[0,2])->find();
if($check){
return jsonError("Repeat operation");
}
$sort_check = $this->article_main_obj->where("article_id",$am_info['article_id'])->whereIn("state",[0,2])->where("sort",$am_info['sort']+1)->find();
if($sort_check){
$this->article_main_obj->where("article_id",$am_info['article_id'])->whereIn("state",[0,2])->where("sort",">",$am_info['sort'])->inc("sort",1)->update();
}
$insert['article_id'] = $am_info['article_id'];
$insert['type'] = 1;
$insert['content'] = "";
$insert['ami_id'] = $data['ami_id'];
$insert['sort'] = $am_info['sort']+1;
$insert['ctime'] = time();
$this->article_main_obj->insert($insert);
return jsonSuccess([]);
}
public function removeImage(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
if($am_info['type']!=1){
return jsonError("error");
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(['state'=>1]);
return jsonSuccess([]);
}
public function removeTable(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
if($am_info['type']!=2){
return jsonError("error");
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(['state'=>1]);
return jsonSuccess([]);
}
public function positioningTable(){
$data = $this->request->post();
$rule = new Validate([
"am_id" => "require",
"amt_id" => "require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$amt_info = $this->article_main_table_obj->where("amt_id",$data['amt_id'])->find();
$check = $this->article_main_obj->where("article_id",$am_info['article_id'])->where("amt_id",$data['amt_id'])->whereIn('state',[0,2])->find();
if($check){
return jsonError("Repeat operation");
}
$sort_check = $this->article_main_obj->where("article_id",$amt_info['article_id'])->whereIn("state",[0,2])->where("sort",$am_info['sort']+1)->find();
if ($sort_check){
$this->article_main_obj->where("article_id",$am_info['article_id'])->whereIn("state",[0,2])->where('sort',">",$am_info['sort'])->inc("sort",1)->update();
}
$insert['article_id'] = $am_info['article_id'];
$insert['type'] = 2;
$insert['amt_id'] = $data['amt_id'];
$insert["content"] = "