request->post(); //获取前一天日期 $sDate = empty($aParam['date']) ? date('Y-m-d', strtotime('-1 day')) : $aParam['date']; //模版ID $iTemplateId = empty($aParam['template_id']) ? $this->iTemplateId : $aParam['template_id'] ; //获取AI生成的文章 $sStartDate = strtotime($sDate.' 00:00:00'); //结束时间 $sEndDate = strtotime($sDate.'23:59:59'); $aWhere = ['is_delete' => 2,'update_time' => ['between',[$sStartDate,$sEndDate]]]; $aAiArticleId = Db::name('ai_article')->where($aWhere)->column('article_id'); if(empty($aAiArticleId)){ $this->showMessage('未查询到AI生成的文章:'.$sDate."\n\n",2); exit; } //查询草稿箱是否生成 $aWhere = ['article_id' => ['in',$aAiArticleId],'is_delete' => 2]; $aWechatArticle = Db::name('ai_wechat_article')->where($aWhere)->column('article_id'); //数据处理 $oAiarticle = new Aiarticle; //日志记录 $aLog = []; foreach ($aAiArticleId as $value) { if(in_array($value, $aWechatArticle)){ continue; } //获取上传素材接口 $aUploadParm = ['article_id' => $value,'template_id' => $iTemplateId]; $aResult = json_decode($oAiarticle->uploadMaterial($aUploadParm),true); $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; $sMsg = empty($aResult['msg']) ? '操作异常'."\n" : $aResult['msg']; $aLogInfo = ['article_id' => $value,'type' => 1,'msg' => $sMsg,'status' => 1,'create_time' => time()]; if($iStatus != 1){ $aLogInfo['status'] = 2; $aLog[] = $aLogInfo; $this->showMessage('文章ID:'.$value.'====='.$sMsg."\n",2); continue; } $aLog[] = $aLogInfo; //推送草稿箱 $aResult = json_decode($oAiarticle->syncWechat($aUploadParm),true); $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; $sMsg = empty($aResult['msg']) ? '操作异常'."\n" : $aResult['msg']; $aLogInfo = ['article_id' => $value,'type' => 2,'msg' => $sMsg,'status' => 1,'create_time' => time()]; if($iStatus != 1){ $aLogInfo['status'] = 2; $aLog[] = $aLogInfo; $this->showMessage('文章ID:'.$value.'====='.$sMsg."\n",2); continue; } $aLog[] = $aLogInfo; } //插入操作日志 if(!empty($aLog)){ $result = json_decode($oAiarticle->addWechatLog($aLog)); $iStatus = empty($result['status']) ? 0 : $result['status']; $sMsg = empty($result['msg']) ? '插入日志记录失败' : $result['msg']; if($iStatus != 1){ $this->showMessage($sMsg,2); } } $this->showMessage('AI生成的文章推送草稿箱完成:'.$sDate."\n",1); } /** * 查询推送到微信公众号草稿箱的AI文章并发布 * * @return void */ public function articlePublishDraft(){ $aParam = $this->request->post(); //获取前一天日期 $sDate = empty($aParam['date']) ? date('Y-m-d', strtotime('-1 day')) : $aParam['date']; //模版ID $iTemplateId = empty($aParam['template_id']) ? $this->iTemplateId : $aParam['template_id'] ; //获取AI生成的文章 $sStartDate = strtotime($sDate.' 00:00:00'); //结束时间 $sEndDate = strtotime($sDate.'23:59:59'); $aWhere = ['is_delete' => 2,'update_time' => ['between',[$sStartDate,$sEndDate]]]; //查询推送到草稿箱未发布的文章 $aWhere = ['publish_status' => '-1','is_delete' => 2]; $aWechatArticle = Db::name('ai_wechat_article')->field('article_id,template_id,media_id')->where($aWhere)->select(); if(empty($aWechatArticle)){ $this->showMessage('未查询到需要发布的文章:'.$sDate."\n\n",2); exit; } //数据处理 $oAiarticle = new Aiarticle; //日志记录 $aLog = []; foreach ($aWechatArticle as $value) { $aLogInfo = ['article_id' => $value['article_id'],'type' => 3,'msg' =>'','status' => 1,'create_time' => time()]; if(empty($value['media_id'])){ $sMsg = '需要发布的文章:'.$value['article_id']."未查询到media_id\n\n"; $aLogInfo['status'] = 2; $aLogInfo['msg'] = $sMsg; $aLog[] = $aLogInfo; $this->showMessage($sMsg,2); continue; } //发布草稿箱 $aUploadParm = ['article_id' => $value['article_id'],'template_id' => $value['template_id']]; $aResult = json_decode($oAiarticle->publishDraft($aUploadParm),true); $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; $sMsg = empty($aResult['msg']) ? '操作异常'."\n" : $aResult['msg']."\n"; $aLogInfo['msg'] = $sMsg; if($iStatus != 1){ $aLogInfo['status'] = 2; $aLog[] = $aLogInfo; $this->showMessage('文章ID:'.$value.'====='.$sMsg."\n",2); continue; } $aLog[] = $aLogInfo; } //插入操作日志 if(!empty($aLog)){ $result = json_decode($oAiarticle->addWechatLog($aLog)); $iStatus = empty($result['status']) ? 0 : $result['status']; $sMsg = empty($result['msg']) ? '插入日志记录失败' : $result['msg']; if($iStatus != 1){ $this->showMessage($sMsg,2); } } $this->showMessage('AI生成的文章发布草稿箱完成:'.$sDate."\n",1); } /** * 查询微信公众号草稿箱的AI文章已发布的文章状态 * * @return void */ public function queryWechatArticleStatus(){ $aParam = $this->request->post(); //获取前一天日期 $sDate = empty($aParam['date']) ? date('Y-m-d', strtotime('-1 day')) : $aParam['date']; //获取AI生成的文章 $sStartDate = strtotime($sDate.' 00:00:00'); //结束时间 $sEndDate = strtotime($sDate.'23:59:59'); //查询条件 $aWhere = ['is_publish' => 1,'publish_id' => ['<>',''],'publish_status' => 1,'is_delete' => 2,'update_time' => ['between',[$sStartDate,$sEndDate]]]; //查询已发布文章信息 $aWechatArticle = Db::name('ai_wechat_article')->where($aWhere)->field('id,article_id,template_id,wechat_id,publish_id')->select(); if(empty($aWechatArticle)){ $this->showMessage('未查询到需要发布的文章:'.$sDate."\n\n",2); exit; } //数据处理 $aLog = []; $oAiarticle = new Aiarticle; foreach ($aWechatArticle as $key => $value) { $aLogInfo = ['article_id' => $value['article_id'],'type' => 4,'msg' =>'','status' => 1,'create_time' => time()]; if(empty($value['wechat_id']) || empty($value['publish_id'])){ $sMsg = '需要查询的文章:'.$value['article_id']."wechat_id或publish_id\n\n"; $aLogInfo['status'] = 2; $aLogInfo['msg'] = $sMsg; $aLog[] = $aLogInfo; $this->showMessage($sMsg,2); continue; } $aResult = json_decode($oAiarticle->queryStatus($value),true); $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; $sMsg = empty($aResult['msg']) ? '操作异常'."\n" : $aResult['msg']."\n"; $aLogInfo['msg'] = $sMsg; if($iStatus != 1){ $aLogInfo['msg'] = $sMsg; $aLogInfo['status'] = 2; $this->showMessage('文章ID:'.$value.'====='.$sMsg."\n",2); continue; } $aLog[] = $aLogInfo; } //插入操作日志 if(!empty($aLog)){ $result = json_decode($oAiarticle->addWechatLog($aLog)); $iStatus = empty($result['status']) ? 0 : $result['status']; $sMsg = empty($result['msg']) ? '插入日志记录失败' : $result['msg']; if($iStatus != 1){ $this->showMessage($sMsg,2); } } $this->showMessage('AI生成的文章发布状态查询完成:'.$sDate."\n",1); } /** * * 格式化信息输出 * * @access public * @return void * @author huangpu * @date 2018.09.28 * @param $[message] [<显示信息>] * @param $[status] [<输出信息1成功,2失败>] */ private function showMessage($message, $status = 1) { if ($status == 1) { echo "[SUCCESS]"; } else { echo "[ERROR]"; } echo date("Y-m-d H:i:s") . " " . $message . "\n"; } }