接口调整
This commit is contained in:
@@ -93,6 +93,8 @@ class Aiarticle extends Base
|
||||
protected $sArticleIcon = '/public/articleicon/';
|
||||
//期刊图片icon地址
|
||||
protected $sJournalIcon = '/public/journalicon/';
|
||||
//期刊编辑二维码地址
|
||||
protected $sJournalEditorQrcode = '/public/journaleditorqrcode/';
|
||||
//"highlights": {
|
||||
// "theory_innovation": "【中西医理论结合点】",
|
||||
// "methodology": "【关键技术+量化指标】",
|
||||
@@ -349,6 +351,7 @@ class Aiarticle extends Base
|
||||
|
||||
//更新数据库
|
||||
$aContent['ai_article_id'] = $iId;
|
||||
$aContent['author'] = empty($aJournal['publish_author']) ? 'TMR编辑部' : $aJournal['publish_author'];
|
||||
$aResult = $this->updateAiArticle($aContent);
|
||||
return $aResult;
|
||||
}
|
||||
@@ -580,6 +583,13 @@ class Aiarticle extends Base
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//查询是否上传到微信草稿箱
|
||||
if(!empty($iArticleId)){
|
||||
$aDraft = Db::name('ai_wechat_article')->where(['article_id' => $iArticleId,'is_delete' => 2])->column('template_id');
|
||||
$aAiArticle['upload_draft'] = $aDraft;
|
||||
}
|
||||
|
||||
return json_encode(['status' => 1,'msg' => 'success','data' => ['ai_article' => $aAiArticle,'ai_article_author' => $aAiAuthor]]);
|
||||
}
|
||||
/**
|
||||
@@ -589,7 +599,7 @@ class Aiarticle extends Base
|
||||
*/
|
||||
private function basic_html_filter($html) {
|
||||
// 移除所有HTML标签及PHP标签
|
||||
$text = strip_tags($html);
|
||||
$text = empty($html) ? '' : strip_tags($html);
|
||||
|
||||
// 转换HTML实体
|
||||
$text = html_entity_decode($text, ENT_QUOTES | ENT_HTML5, 'UTF-8');
|
||||
@@ -626,7 +636,7 @@ class Aiarticle extends Base
|
||||
$aInsertParam[$val] = $aParam[$val];
|
||||
continue;
|
||||
}
|
||||
$aInsertParam[$val] = addslashes(strip_tags($aParam[$val]));
|
||||
$aInsertParam[$val] = empty($aParam[$val]) ? '' : addslashes(strip_tags($aParam[$val]));
|
||||
}
|
||||
if($bStatus == false){
|
||||
return json_encode(['status' => 2,'msg' => $sFiled.'cannot be empty']);
|
||||
@@ -686,7 +696,7 @@ class Aiarticle extends Base
|
||||
if(!isset($aParam[$val])){
|
||||
continue;
|
||||
}
|
||||
$aUpdateParam[$val] = addslashes(strip_tags($aParam[$val]));
|
||||
$aUpdateParam[$val] = empty($aParam[$val]) ? '' : addslashes(strip_tags($aParam[$val]));
|
||||
}
|
||||
if(empty($aUpdateParam)){
|
||||
return json_encode(['status' => 1,'msg' => 'No data currently being processed']);
|
||||
@@ -695,7 +705,7 @@ class Aiarticle extends Base
|
||||
Db::startTrans();
|
||||
//执行入库
|
||||
$aUpdateParam['update_time'] = time();
|
||||
$aUpdateParam['author'] = empty($aUpdateParam['author']) ? 'TMR编辑部' : $aUpdateParam['author'];
|
||||
// $aUpdateParam['author'] = empty($aUpdateParam['author']) ? 'TMR编辑部' : $aUpdateParam['author'];
|
||||
$aUpdateParam['is_generate'] = 1;
|
||||
$result = Db::name('ai_article')->where('ai_article_id',$iAiArticleId)->limit(1)->update($aUpdateParam);
|
||||
if($result === false){
|
||||
@@ -828,6 +838,10 @@ class Aiarticle extends Base
|
||||
//期刊图片
|
||||
$sJournalIcon = trim($this->sJournalUsx,'/').$this->sJournalIcon.$aJournal['journal_icon'];
|
||||
|
||||
//期刊编辑二维码
|
||||
$sEditorQrcode = empty($aJournal['editor_qrcode']) ? '' : $aJournal['editor_qrcode'];
|
||||
$sEditorQrcode = trim($this->sSubmissionUrl,'/').$this->sJournalEditorQrcode.$sEditorQrcode;
|
||||
|
||||
//获取期刊图片二维码
|
||||
$aJournalQrCode = $this->createJournalQrCode($aJournal);
|
||||
$sJournalCode = empty($aJournalQrCode['qrcode_url']) ? '' : $this->sSubmissionUrl.'public/qrcode/'.$aJournalQrCode['qrcode_url'];
|
||||
@@ -882,12 +896,20 @@ class Aiarticle extends Base
|
||||
$aAiAuthor[$key]['icon'] = empty($aAuthorData['media_url']) ? $value['icon'] : $aAuthorData['media_url'];
|
||||
}
|
||||
}
|
||||
|
||||
//上传期刊编辑二维码
|
||||
$aUpload = ['editor_qrcode' => $aJournal['editor_qrcode']??'','journal_id' => $aAiArticle['journal_id']];
|
||||
$aJournalEditorQrCodeResult = json_decode($this->_updateJournalEditorQrcode($aUpload),true);
|
||||
$aJournalEditorQrCodeData = empty($aJournalEditorQrCodeResult['data']) ? [] : $aJournalEditorQrCodeResult['data'];
|
||||
$aAiArticle['editor_qrcode'] = empty($aJournalEditorQrCodeData['media_url']) ? $sEditorQrcode : $aJournalEditorQrCodeData['media_url'];
|
||||
}else{
|
||||
|
||||
//处理文章图片地址数据
|
||||
$aAiArticle['article_icon'] = $sArticleIcon;
|
||||
//处理文章期刊图片地址数据
|
||||
$aAiArticle['journal_icon'] = $sJournalIcon;
|
||||
//期刊编辑二维码图片地址数据
|
||||
$aAiArticle['editor_qrcode'] = $sEditorQrcode;
|
||||
|
||||
}
|
||||
//期刊访问地址
|
||||
@@ -919,7 +941,10 @@ class Aiarticle extends Base
|
||||
//数据处理
|
||||
$aSearch = [];
|
||||
foreach ($aAiArticle as $key => $value) {
|
||||
$aSearch['{###'.$key.'###}'] = htmlspecialchars(strip_tags($value));
|
||||
if(is_array($value)){
|
||||
continue;
|
||||
}
|
||||
$aSearch['{###'.$key.'###}'] = empty($value) ? '' : htmlspecialchars(strip_tags($value));
|
||||
}
|
||||
//处理通讯作者信息数据
|
||||
$aAuthorInfo = json_decode($this->dealTemplateAuthor($aAuthor,$iTemplateId),true);
|
||||
@@ -1407,12 +1432,6 @@ class Aiarticle extends Base
|
||||
if(empty($iJournalId) || empty($sIcon)){
|
||||
return json_encode(['status' => 2,'msg' => 'journal_id or image is empty']);
|
||||
}
|
||||
//查询是否添加素材
|
||||
$aWhere = ['journal_id' => $iJournalId,'is_delete' => 2];
|
||||
$aMaterial = Db::name('ai_journal_material')->field('media_id,media_url')->where($aWhere)->find();
|
||||
if(!empty($aMaterial)){
|
||||
return json_encode(['status' => 1,'msg' => 'success','data' => $aMaterial]);
|
||||
}
|
||||
|
||||
//处理图片地址
|
||||
$aImageInfo = pathinfo($sIcon);
|
||||
@@ -1420,12 +1439,12 @@ class Aiarticle extends Base
|
||||
$sExtension = empty($aImageInfo['extension']) ? 'jpg' : $aImageInfo['extension'];
|
||||
$sImagePath = 'journal/imgae_'.$iJournalId.'.'.$sExtension;
|
||||
$sImagePath = ROOT_PATH.'public/qrcode/'.$sImagePath;
|
||||
if (!file_exists($sImagePath)) {//下载图片
|
||||
$aImageInfo = json_decode($this->getImage($sIcon,$iJournalId,'journal'),true);
|
||||
if(empty($aImageInfo['data'])){
|
||||
return json_encode(['status' => 3,'msg' => 'Image download failed']);
|
||||
}
|
||||
// if (!file_exists($sImagePath)) {//下载图片
|
||||
$aImageInfo = json_decode($this->getImage($sIcon,$iJournalId,'journal'),true);
|
||||
if(empty($aImageInfo['data'])){
|
||||
return json_encode(['status' => 3,'msg' => 'Image download failed']);
|
||||
}
|
||||
// }
|
||||
|
||||
//调用微信新增素材接口上传
|
||||
$aUploadResult = json_decode($this->uploadMaterial($sImagePath),true);
|
||||
@@ -1439,16 +1458,31 @@ class Aiarticle extends Base
|
||||
return json_encode(['status' => 5,'msg' => 'Material not obtained']);
|
||||
}
|
||||
|
||||
//查询是否添加素材
|
||||
$aWhere = ['journal_id' => $iJournalId,'is_delete' => 2];
|
||||
$aMaterial = Db::name('ai_journal_material')->field('id,media_id,media_url')->where($aWhere)->find();
|
||||
|
||||
//处理入库数据
|
||||
$sMediaId = empty($aData['media_id']) ? [] : $aData['media_id'];
|
||||
$sMediaUrl = empty($aData['url']) ? [] : $aData['url'];
|
||||
$iTime = empty($aUploadResult['created_at']) ? time() : $aUploadResult['created_at'];
|
||||
//入库数据组装
|
||||
$aInsert = ['type' => 'image','media_id' => $sMediaId,'create_time' => $iTime,'journal_id' => $iJournalId,'media_url' => $sMediaUrl];
|
||||
$response = Db::name('ai_journal_material')->insert($aInsert);
|
||||
if($response === false){
|
||||
return json_encode(['status' => 6,'msg' => 'Add fail']);
|
||||
|
||||
|
||||
//操作数据组装
|
||||
$aInsert = ['type' => 'image','media_id' => $sMediaId,'journal_id' => $iJournalId,'media_url' => $sMediaUrl];
|
||||
|
||||
Db::startTrans();
|
||||
|
||||
$aInsert['create_time'] = $iTime;
|
||||
$responseInsert = Db::name('ai_journal_material')->insert($aInsert);
|
||||
|
||||
if(!empty($aMaterial)){
|
||||
$aUpdate['update_time'] = $iTime;
|
||||
$aUpdate['is_delete'] = 1;
|
||||
$responseUpdate = Db::name('ai_journal_material')->where('id',$aMaterial['id'])->limit(1)->update($aUpdate);
|
||||
}
|
||||
Db::commit();
|
||||
|
||||
return json_encode(['status' => 1,'msg' => 'success','data' => $aInsert]);
|
||||
}
|
||||
/**
|
||||
@@ -1594,6 +1628,60 @@ class Aiarticle extends Base
|
||||
return json_encode(['status' => 1,'msg' => 'success','data' => $aInsert]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新通讯作者关联微信公众号素材
|
||||
*/
|
||||
private function _updateJournalEditorQrcode($aParam = []){
|
||||
|
||||
$iJournalId = empty($aParam['journal_id']) ? '' : $aParam['journal_id'];
|
||||
//文章图片
|
||||
$sIcon = empty($aParam['editor_qrcode']) ? '20250515/103a7cdf2f76dc4d522b7273d4b149e5.jpg' : $aParam['editor_qrcode'];
|
||||
|
||||
if(empty($iJournalId) || empty($sIcon)){
|
||||
return json_encode(['status' => 2,'msg' => 'The journal editor did not upload the QR code']);
|
||||
}
|
||||
|
||||
//处理图片地址
|
||||
$sImagePath = ROOT_PATH.'/public/journaleditorqrcode/'.trim($sIcon,'/');
|
||||
|
||||
//调用微信新增素材接口上传
|
||||
$aUploadResult = json_decode($this->uploadMaterial($sImagePath),true);
|
||||
$iStatus = empty($aUploadResult['status']) ? 0 : $aUploadResult['status'];
|
||||
$sMsg = empty($aUploadResult['msg']) ? 'Failed to upload materials' : $aUploadResult['msg'];
|
||||
if($iStatus != 1){
|
||||
return json_encode(['status' => 4,'msg' => $sMsg]);
|
||||
}
|
||||
$aData = empty($aUploadResult['data']) ? [] : $aUploadResult['data'];
|
||||
if(empty($aData['url'])){
|
||||
return json_encode(['status' => 5,'msg' => 'Material not obtained']);
|
||||
}
|
||||
//查询是否添加素材
|
||||
$aWhere = ['journal_id' => $iJournalId,'is_delete' => 2];
|
||||
$aMaterial = Db::name('ai_journal_editor_material')->field('id,media_id,media_url')->where($aWhere)->find();
|
||||
|
||||
//处理入库数据
|
||||
$sMediaId = empty($aData['media_id']) ? [] : $aData['media_id'];
|
||||
$sMediaUrl = empty($aData['url']) ? [] : $aData['url'];
|
||||
$iTime = empty($aUploadResult['created_at']) ? time() : $aUploadResult['created_at'];
|
||||
|
||||
|
||||
//操作数据组装
|
||||
$aInsert = ['type' => 'image','media_id' => $sMediaId,'journal_id' => $iJournalId,'media_url' => $sMediaUrl];
|
||||
|
||||
Db::startTrans();
|
||||
|
||||
$aInsert['create_time'] = $iTime;
|
||||
$responseInsert = Db::name('ai_journal_editor_material')->insert($aInsert);
|
||||
|
||||
if(!empty($aMaterial)){
|
||||
$aUpdate['update_time'] = $iTime;
|
||||
$aUpdate['is_delete'] = 1;
|
||||
$responseUpdate = Db::name('ai_journal_editor_material')->where('id',$aMaterial['id'])->limit(1)->update($aUpdate);
|
||||
}
|
||||
Db::commit();
|
||||
return json_encode(['status' => 1,'msg' => 'success','data' => $aInsert]);
|
||||
}
|
||||
|
||||
/**
|
||||
* CURL 发送请求获取Token
|
||||
* @param $appid AppID(小程序ID)
|
||||
@@ -1814,10 +1902,10 @@ class Aiarticle extends Base
|
||||
}
|
||||
|
||||
//是否打开评论,0不打开(默认),1打开
|
||||
$need_open_comment = empty($aParam['need_open_comment']) ? 0 : $aParam['need_open_comment'];
|
||||
$need_open_comment = empty($aParam['need_open_comment']) ? 1 : $aParam['need_open_comment'];
|
||||
|
||||
//是否粉丝才可评论,0所有人可评论(默认),1粉丝才可评论
|
||||
$only_fans_can_comment = empty($aParam['only_fans_can_comment']) ? 0 : $aParam['only_fans_can_comment'];
|
||||
$only_fans_can_comment = empty($aParam['only_fans_can_comment']) ? 1 : $aParam['only_fans_can_comment'];
|
||||
|
||||
//插入文章表
|
||||
$aParam = ['media_id' => $response['media_id'],'update_time' => time(),'template_id' => $iTemplateId,'template_content' => $aParam['template_content'],'article_id' => $iArticleId,'article_type' => $article_type,'need_open_comment' => $need_open_comment,'only_fans_can_comment' => $only_fans_can_comment,'template_id' => $iTemplateId,'create_time' => time()];
|
||||
|
||||
Reference in New Issue
Block a user