接口调整

This commit is contained in:
chengxl
2025-05-15 15:32:08 +08:00
parent 4391b2c86d
commit 4cabe79a58

View File

@@ -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()];