自动推荐审稿人修改

This commit is contained in:
chengxl
2025-06-19 11:15:39 +08:00
parent 419689625b
commit 791b6db841

View File

@@ -4404,4 +4404,76 @@ class Article extends Base
Db::name('user')->where('user_id', 'IN', $aId)->limit(count($aId))->update($aUpdate);
return json(['status' => 1,'msg' => '执行成功']);
}
/**
* 获取文章所属领域
* @param reviewer_id 审核人ID
* @param
*/
public function getArticleField($aParam = []){
$aParam = empty($aParam) ? $this->request->post() : $this->request->post();
if(empty($aParam['article_id'])){
return json_encode(['status' => 2,'msg' => 'Please select a Article']);
}
//查询审稿人领域信息
$aParam['state'] = 0;
$aReviewerMajor = Db::name('major_to_article')->field('major_id')->where($aParam)->order('major_id asc')->select();
if(empty($aReviewerMajor)){
return json_encode(['status' => 1,'msg' => "The article field is empty",'data' => []]);
}
//数据处理
foreach ($aReviewerMajor as $key => $value) {
$aReviewerMajor[$key]['major_title'] = getMajorStr($value['major_id']);
$aReviewerMajor[$key]['shu'] = getMajorShu($value['major_id']);
}
return json_encode(['status' => 1,'msg' => "success",'data' => $aReviewerMajor]);
}
/**
* 修改文章所属领域
* @param reviewer_id 审核人ID
* @param
*/
public function updateArticleField($aParam = []){
$aParam = empty($aParam) ? $this->request->post() : $this->request->post();
$iArticleId = empty($aParam['article_id']) ? 0 : $aParam['article_id'];
if(empty($iArticleId)){
return json_encode(['status' => 2,'msg' => 'Please select a article']);
}
$sField = empty($aParam['article_field']) ? '' : $aParam['article_field'];
if(empty($sField)){
return json_encode(['status' => 2,'msg' => "Please select the field to which the article belongs"]);
}
$aField = is_array($sField) ? $sField : explode(',', trim($sField,','));
if(empty($aField)){
return json_encode(['status' => 3,'msg' => "Please select the user's field of expertise"]);
}
//查询审稿人领域信息
$aWhere = ['state' => 0,'article_id' => $iArticleId];
$aArticleMajor = Db::name('major_to_article')->where($aWhere)->order('major_id asc')->column('major_id');
//新增
$aInsert = array_diff($aField,$aArticleMajor);
//删除
$aDelete = array_diff($aArticleMajor,$aField);
//数据处理
Db::startTrans();
if(!empty($aInsert)){//新增
foreach ($aInsert as $key => $value) {
$aAdd[] = ['major_id' => $value,'article_id' => $iArticleId,'ctime' => time(),'state' => 0];
}
$result = Db::name('major_to_article')->insertAll($aAdd);
}
if(!empty($aDelete)){//修改状态为1
$aWhere = ['article_id' => $iArticleId,'state' => 0,'major_id' => ['in',$aDelete]];
$result = Db::name('major_to_article')->where($aWhere)->limit(count($aDelete))->update(['state' => 1,'ctime' => time()]);
}
Db::commit();
return json_encode(['status' => 1,'msg' => "The field to which the article belongs has been successfully updated"]);
}
}