diff --git a/application/api/controller/Syncdata.php b/application/api/controller/Syncdata.php new file mode 100644 index 0000000..eeec63a --- /dev/null +++ b/application/api/controller/Syncdata.php @@ -0,0 +1,128 @@ +request->post(); + + //期刊ID + $iJournalId = empty($aParam['journal_id']) ? 0 : $aParam['journal_id']; + if(empty($iJournalId)){ + return json_encode(['code' => 2, 'msg' => 'Please select a journal']); + } + //获取期刊下的子刊 + $sUrl = $this->sJournalUrl."api/Syncdata/getJournalStage"; + $aResult = object_to_array(json_decode(myPost1($sUrl,$aParam),true)); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + + $sMsg = empty($aResult['msg']) ? 'Illegal operation-getJournalStage' : $aResult['msg']; + if($iStatus != 1){ + return json_encode(['code' => 3, 'msg' => $sMsg]); + } + //获取期刊下的子刊 + $aJournalStage = empty($aResult['data']) ? [] : $aResult['data']; + if(empty($aJournalStage)){ + return json_encode(['code' => 4, 'msg' => 'Journal data is empty']); + } + + //数据处理 + foreach ($aJournalStage as $key => $value) { + // $aArticle = json_decode($this->getJournalStageArticle(['journal_stage_id' => $value['journal_stage_id']]),true); + // var_dump($aArticle);exit; + //写入查询期刊文章队列 + $sQueue = Queue::push('app\api\job\SyncArticleData@fire', ['journal_stage_id' => $value['journal_stage_id']], 'SyncArticleData'); + } + return json_encode(['code' => 1, 'msg' => 'Synchronization queue addition completed','data' => $sQueue]); + } + /** + * @title 获取期刊下的文章 + * @param journal_id 期刊ID + * @param journal_stage_id 子刊ID + */ + public function getJournalStageArticle($aParam = []){ + + //获取数据 + $aParam = empty($aParam) ? $this->request->post() : $aParam; + + //期刊ID + $iJournalStageId = empty($aParam['journal_stage_id']) ? 0 : $aParam['journal_stage_id']; + if(empty($iJournalStageId)){ + return json_encode(['code' => 2, 'msg' => 'Please select a sub issue under the journal']); + } + //获取期刊下的子刊 + $sUrl = $this->sJournalUrl."api/Syncdata/getJournalStageArticle"; + $aResult = object_to_array(json_decode(myPost1($sUrl,$aParam),true)); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg = empty($aResult['msg']) ? 'Illegal operation-getJournalStageArticle' : $aResult['msg']; + if($iStatus != 1){ + return json_encode(['code' => 3, 'msg' => $sMsg]); + } + //获取文章 + $aArticle = empty($aResult['data']) ? [] : $aResult['data']; + if(empty($aArticle)){ + return json_encode(['code' => 4, 'msg' => 'Article data is empty']); + } + + //写入上传文章队列 + $sQueue = Queue::push('app\api\job\SyncArticleUpload@fire', $aArticle, 'SyncArticleUpload'); + // $aResult = json_decode($this->uploadArticle($aArticle),true); + return json_encode(['code' => 1, 'msg' => 'Joined the upload file queue','data' => $sQueue]); + } + /** + * @title 同步文章数据到服务器 + * @param file 文章数据 + * @param journal_stage_id 子刊ID + */ + public function uploadArticle($aParam = []){ + + //获取数据 + $aParam = empty($aParam) ? $this->request->post() : $aParam; + + //期刊ID + $iJournalStageId = empty($aParam['journal_stage_id']) ? 0 : $aParam['journal_stage_id']; + if(empty($iJournalStageId)){ + return json_encode(['code' => 2, 'msg' => 'Please select a sub issue under the journal']); + } + //文章数据 + $aArticle = empty($aParam['article']) ? [] : $aParam['article']; + if(empty($aArticle)){ + return json_encode(['code' => 2, 'msg' => 'Article data is empty']); + } + //获取期刊下的子刊 + $sUrl = $this->sJournalUrl."api/Syncdata/uploadArticle"; + $aResult = object_to_array(json_decode(myPost1($sUrl,$aParam),true)); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg = empty($aResult['msg']) ? 'Illegal operation-uploadArticle' : $aResult['msg']; + if($iStatus != 1){ + return json_encode(['code' => 3, 'msg' => $sMsg]); + } + $aResult = empty($aResult['data']) ? [] : $aResult['data']; + return json_encode(['code' => 1, 'msg' => $sMsg,'data' => $aResult]); + } +}