This commit is contained in:
wangjinlei
2020-12-22 14:21:20 +08:00
parent 39e0ad84c2
commit 097698a36f
4 changed files with 302 additions and 185 deletions

View File

@@ -16,6 +16,7 @@ class Article extends Controller {
protected $article_obj = '';
protected $article_author_obj = '';
protected $article_organ_obj = '';
protected $article_ltai_obj = '';
protected $author_to_organ_obj = '';
protected $article_to_topic_obj = '';
protected $journal_topic_obj = '';
@@ -29,6 +30,7 @@ class Article extends Controller {
$this->article_obj = Db::name('article');
$this->article_author_obj = Db::name('article_author');
$this->article_organ_obj = Db::name('article_organ');
$this->article_ltai_obj = Db::name('article_ltai');
$this->author_to_organ_obj = Db::name('article_author_to_organ');
$this->article_to_topic_obj = Db::name('article_to_topic');
$this->journal_topic_obj = Db::name('journal_topic');
@@ -343,6 +345,9 @@ class Article extends Controller {
public function getArticleBase(){
$data = $this->request->post();
$article_info = $this->article_obj->where('article_id',$data['article_id'])->find();
$ltais = $this->article_ltai_obj->where('article_id',$article_info['article_id'])->where('state',0)->column('content');
$article_info['ltai'] = implode(',', $ltais);
$journal_info = $this->journal_obj->where('journal_id',$article_info['journal_id'])->find();
$list = scandir(ROOT_PATH.'public/articleHTML/'.$journal_info['sx']);
$frag = [];
@@ -398,6 +403,7 @@ class Article extends Controller {
* @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:类型
* @param name:cited type:int require:1 desc:引用数
@@ -410,6 +416,9 @@ class Article extends Controller {
*/
public function editArticleBase(){
$data = $this->request->post();
if(isset($data['ltai'])){
$this->editArticleLtai($data['ltai'],$data['article_id']);
}
$updata['icon'] = $data['icon'];
$updata['title'] = $data['title'];
$updata['journal_stage_id'] = $data['journal_stage_id'];
@@ -430,13 +439,36 @@ class Article extends Controller {
$updata['sort'] = $data['sort'];
$updata['pub_date'] = $data['pub_date'];
$res = $this->article_obj->where('article_id',$data['article_id'])->update($updata);
if($res){
return json(['code'=>0,'msg'=>'success']);
}else{
return json(['code'=>1,'msg'=>'system error']);
// if($res){
return json(['code'=>0,'msg'=>'success']);
// }else{
// return json(['code'=>1,'msg'=>'system error']);
// }
}
private function editArticleLtai($ltai,$article_id){
$list = explode(',', $ltai);
$has = $this->article_ltai_obj->where('article_id',$article_id)->where('state',0)->select();
foreach ($has as $val){
if(in_array($val['content'], $list)){
foreach( $list as $k=>$v) {
if($val['content'] == $v) {
unset($list[$k]);
}
}
}else{
//删除
$this->article_ltai_obj->where('article_ltai_id',$val['article_ltai_id'])->update(['state'=>1]);
}
}
//增加
foreach ($list as $value){
$cache['article_id'] = $article_id;
$cache['content'] = $value;
$this->article_ltai_obj->insert($cache);
}
}
/**
* @title 编辑文章文件信息
* @description 编辑文章文件信息
@@ -508,6 +540,14 @@ class Article extends Controller {
}
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
$article_list = $this->article_obj->field('j_article.*,j_journal_stage.*,j_journal.title journal_title')->join(array(['j_journal_stage','j_article.journal_stage_id = j_journal_stage.journal_stage_id','LEFT'],['j_journal','j_journal.journal_id=j_article.journal_id','LEFT']))->where($where)->order(['j_article.sort desc','j_article.article_id'])->limit($limit_start,$data['pageSize'])->select();
foreach ($article_list as $k => $v){
$caches = $this->article_ltai_obj->where('article_id',$v['article_id'])->where('state',0)->column('content');
$cache_title = $v['title'];
foreach ($caches as $val){
$cache_title = str_replace($val, '<i>'.$val.'</i>', $cache_title);
}
$article_list[$k]['title'] = $cache_title;
}
$count = $this->article_obj->where($where)->count();
return json(['code'=>0,'msg'=>'success','data'=>['count'=>$count,'articleList'=>$article_list]]);
}