正在显示
4 个修改的文件
包含
103 行增加
和
96 行删除
| @@ -124,6 +124,7 @@ class AiBlogAuthorTask extends Command | @@ -124,6 +124,7 @@ class AiBlogAuthorTask extends Command | ||
| 124 | ]; | 124 | ]; |
| 125 | $id = $aiBlogAuthorModel->addReturnId($param); | 125 | $id = $aiBlogAuthorModel->addReturnId($param); |
| 126 | $route = RouteMap::setRoute($v['route'] ?? $v['title'], RouteMap::SOURCE_AI_BLOG_AUTHOR, $id, $project_id); | 126 | $route = RouteMap::setRoute($v['route'] ?? $v['title'], RouteMap::SOURCE_AI_BLOG_AUTHOR, $id, $project_id); |
| 127 | + RouteMap::setRoute('top-blog',RouteMap::SOURCE_AI_BLOG_LIST,0,$project_id);//写一条列表页路由 | ||
| 127 | $aiBlogAuthorModel->edit(['route'=>$route],['id'=>$id]); | 128 | $aiBlogAuthorModel->edit(['route'=>$route],['id'=>$id]); |
| 128 | } | 129 | } |
| 129 | } | 130 | } |
| 1 | -<?php | ||
| 2 | -/** | ||
| 3 | - * @remark : | ||
| 4 | - * @name :AiBlogTask.php | ||
| 5 | - * @author :lyh | ||
| 6 | - * @method :post | ||
| 7 | - * @time :2025/2/14 11:14 | ||
| 8 | - */ | ||
| 9 | - | ||
| 10 | -namespace App\Console\Commands\AiBlog; | ||
| 11 | - | ||
| 12 | -use App\Models\Ai\AiBlog; | ||
| 13 | -use App\Models\Ai\AiBlogAuthor; | ||
| 14 | -use App\Models\Ai\AiBlogList; | ||
| 15 | -use App\Models\Project\ProjectAiSetting; | ||
| 16 | -use App\Models\RouteMap\RouteMap; | ||
| 17 | -use App\Services\AiBlogService; | ||
| 18 | -use App\Services\ProjectServer; | ||
| 19 | -use Illuminate\Console\Command; | ||
| 20 | -use App\Models\Project\AiBlogTask as AiBlogTaskModel; | ||
| 21 | -use Illuminate\Support\Facades\Cache; | ||
| 22 | -use Illuminate\Support\Facades\DB; | ||
| 23 | -use function Symfony\Component\String\s; | ||
| 24 | - | ||
| 25 | -class AiBlogListTask extends Command | ||
| 26 | -{ | ||
| 27 | - /** | ||
| 28 | - * The name and signature of the console command. | ||
| 29 | - * | ||
| 30 | - * @var string | ||
| 31 | - */ | ||
| 32 | - protected $signature = 'save_ai_blog_list'; | ||
| 33 | - | ||
| 34 | - /** | ||
| 35 | - * The console command description. | ||
| 36 | - * | ||
| 37 | - * @var string | ||
| 38 | - */ | ||
| 39 | - protected $description = '查询ai_blog是否已经生成'; | ||
| 40 | - | ||
| 41 | - public function handle(){ | ||
| 42 | - $aiBlogTaskModel = new AiBlogTaskModel(); | ||
| 43 | - $lists = $aiBlogTaskModel->list(['type'=>3,'status'=>1]); | ||
| 44 | - foreach ($lists as $k => $v){ | ||
| 45 | - echo '开始->项目id:' . $v['project_id'] . PHP_EOL . date('Y-m-d H:i:s'); | ||
| 46 | - $projectAiSettingModel = new ProjectAiSetting(); | ||
| 47 | - $aiSettingInfo = $projectAiSettingModel->read(['project_id'=>$v['project_id']]); | ||
| 48 | - if($aiSettingInfo === false){ | ||
| 49 | - continue; | ||
| 50 | - } | ||
| 51 | - $aiBlogService = new AiBlogService(); | ||
| 52 | - $aiBlogService->mch_id = $aiSettingInfo['mch_id']; | ||
| 53 | - $aiBlogService->key = $aiSettingInfo['key']; | ||
| 54 | - $page = 1; | ||
| 55 | - $saveData = []; | ||
| 56 | - $result = $aiBlogService->getAiBlogList($page,15); | ||
| 57 | - if(!isset($result['status']) && $result['status'] != 200){ | ||
| 58 | - continue; | ||
| 59 | - } | ||
| 60 | - $total_page = $result['data']['total_page']; | ||
| 61 | - //组装数据保存 | ||
| 62 | - $saveData[] = [ | ||
| 63 | - 'route'=>$page, | ||
| 64 | - 'text'=>$result['data']['section'], | ||
| 65 | - ]; | ||
| 66 | - while ($total_page > $page){ | ||
| 67 | - $page++; | ||
| 68 | - $result = $aiBlogService->getAiBlogList($page,15); | ||
| 69 | - if(isset($result['status']) && $result['status'] == 200){ | ||
| 70 | - $saveData[] = [ | ||
| 71 | - 'route'=>$page, | ||
| 72 | - 'text'=>$result['data']['section'], | ||
| 73 | - ]; | ||
| 74 | - } | ||
| 75 | - } | ||
| 76 | - //保存当前项目ai_blog数据 | ||
| 77 | - ProjectServer::useProject($v['project_id']); | ||
| 78 | - $aiBlogListModel = new AiBlogList(); | ||
| 79 | - if(!empty($saveData)){ | ||
| 80 | - //写一条路由信息 | ||
| 81 | - RouteMap::setRoute('top-blog',RouteMap::SOURCE_AI_BLOG_LIST,0,$v['project_id']); | ||
| 82 | - $aiBlogListModel->truncate(); | ||
| 83 | - $aiBlogListModel->insertAll($saveData); | ||
| 84 | - } | ||
| 85 | - DB::disconnect('custom_mysql'); | ||
| 86 | - //修改任务状态 | ||
| 87 | - $aiBlogTaskModel->edit(['status'=>2],['id'=>$v['id']]); | ||
| 88 | - echo '结束->->项目id:' . $v['project_id'] . PHP_EOL . date('Y-m-d H:i:s'); | ||
| 89 | - } | ||
| 90 | - return true; | ||
| 91 | - } | ||
| 92 | -} |
| @@ -11,6 +11,7 @@ namespace App\Console\Commands\AiBlog; | @@ -11,6 +11,7 @@ namespace App\Console\Commands\AiBlog; | ||
| 11 | 11 | ||
| 12 | use App\Models\Ai\AiBlog; | 12 | use App\Models\Ai\AiBlog; |
| 13 | use App\Models\Ai\AiBlogAuthor; | 13 | use App\Models\Ai\AiBlogAuthor; |
| 14 | +use App\Models\Ai\AiBlogList; | ||
| 14 | use App\Models\Project\ProjectAiSetting; | 15 | use App\Models\Project\ProjectAiSetting; |
| 15 | use App\Models\RouteMap\RouteMap; | 16 | use App\Models\RouteMap\RouteMap; |
| 16 | use App\Services\AiBlogService; | 17 | use App\Services\AiBlogService; |
| @@ -76,6 +77,7 @@ class AiBlogTask extends Command | @@ -76,6 +77,7 @@ class AiBlogTask extends Command | ||
| 76 | } | 77 | } |
| 77 | $aiBlogModel->edit(['new_title'=>$result['data']['title'], 'image'=>$result['data']['thumb'], 'text'=>$result['data']['section'], 'author_id'=>$result['data']['author_id'], 'route'=>$route ,'status'=>2], ['task_id'=>$info['task_id']]); | 78 | $aiBlogModel->edit(['new_title'=>$result['data']['title'], 'image'=>$result['data']['thumb'], 'text'=>$result['data']['section'], 'author_id'=>$result['data']['author_id'], 'route'=>$route ,'status'=>2], ['task_id'=>$info['task_id']]); |
| 78 | $this->updateAiBlogAuthor($aiSettingInfo,$result['data']['author_id']); | 79 | $this->updateAiBlogAuthor($aiSettingInfo,$result['data']['author_id']); |
| 80 | + $this->updateBlogList($aiSettingInfo); | ||
| 79 | DB::disconnect('custom_mysql'); | 81 | DB::disconnect('custom_mysql'); |
| 80 | //修改任务状态 | 82 | //修改任务状态 |
| 81 | $aiBlogTaskModel->edit(['status'=>2],['id'=>$info['id']]); | 83 | $aiBlogTaskModel->edit(['status'=>2],['id'=>$info['id']]); |
| @@ -128,4 +130,46 @@ class AiBlogTask extends Command | @@ -128,4 +130,46 @@ class AiBlogTask extends Command | ||
| 128 | } | 130 | } |
| 129 | return true; | 131 | return true; |
| 130 | } | 132 | } |
| 133 | + | ||
| 134 | + /** | ||
| 135 | + * @remark :更新列表页 | ||
| 136 | + * @name :updateBlogList | ||
| 137 | + * @author :lyh | ||
| 138 | + * @method :post | ||
| 139 | + * @time :2025/2/26 15:42 | ||
| 140 | + */ | ||
| 141 | + public function updateBlogList($aiSettingInfo){ | ||
| 142 | + $aiBlogService = new AiBlogService(); | ||
| 143 | + $aiBlogService->mch_id = $aiSettingInfo['mch_id']; | ||
| 144 | + $aiBlogService->key = $aiSettingInfo['key']; | ||
| 145 | + $page = 1; | ||
| 146 | + $saveData = []; | ||
| 147 | + $result = $aiBlogService->getAiBlogList($page,15); | ||
| 148 | + if(!isset($result['status']) && $result['status'] != 200){ | ||
| 149 | + return true; | ||
| 150 | + } | ||
| 151 | + $total_page = $result['data']['total_page']; | ||
| 152 | + //组装数据保存 | ||
| 153 | + $saveData[] = [ | ||
| 154 | + 'route'=>$page, | ||
| 155 | + 'text'=>$result['data']['section'], | ||
| 156 | + ]; | ||
| 157 | + while ($total_page > $page){ | ||
| 158 | + $page++; | ||
| 159 | + $result = $aiBlogService->getAiBlogList($page,15); | ||
| 160 | + if(isset($result['status']) && $result['status'] == 200){ | ||
| 161 | + $saveData[] = [ | ||
| 162 | + 'route'=>$page, | ||
| 163 | + 'text'=>$result['data']['section'], | ||
| 164 | + ]; | ||
| 165 | + } | ||
| 166 | + } | ||
| 167 | + $aiBlogListModel = new AiBlogList(); | ||
| 168 | + if(!empty($saveData)){ | ||
| 169 | + //写一条路由信息 | ||
| 170 | + $aiBlogListModel->truncate(); | ||
| 171 | + $aiBlogListModel->insertAll($saveData); | ||
| 172 | + } | ||
| 173 | + return true; | ||
| 174 | + } | ||
| 131 | } | 175 | } |
| @@ -131,6 +131,7 @@ class WeekProject extends Command | @@ -131,6 +131,7 @@ class WeekProject extends Command | ||
| 131 | * @time :2025/2/26 10:15 | 131 | * @time :2025/2/26 10:15 |
| 132 | */ | 132 | */ |
| 133 | public function workChatMessage($data,$project_id){ | 133 | public function workChatMessage($data,$project_id){ |
| 134 | + $arr = []; | ||
| 134 | //项目是否有绑定群 | 135 | //项目是否有绑定群 |
| 135 | $friend_id = ProjectAssociation::where('project_id', $project_id) | 136 | $friend_id = ProjectAssociation::where('project_id', $project_id) |
| 136 | ->where('status', ProjectAssociation::STATUS_NORMAL) | 137 | ->where('status', ProjectAssociation::STATUS_NORMAL) |
| @@ -140,6 +141,7 @@ class WeekProject extends Command | @@ -140,6 +141,7 @@ class WeekProject extends Command | ||
| 140 | echo date('Y-m-d H:i:s') . '没有绑定企微群:'.$project_id . PHP_EOL; | 141 | echo date('Y-m-d H:i:s') . '没有绑定企微群:'.$project_id . PHP_EOL; |
| 141 | return false; | 142 | return false; |
| 142 | } | 143 | } |
| 144 | + $content = ''; | ||
| 143 | $content1 = ''; | 145 | $content1 = ''; |
| 144 | if(!empty($data['inquiry_total'])){ | 146 | if(!empty($data['inquiry_total'])){ |
| 145 | $content1 .= '项目共计已收到询盘 '.$data['inquiry_total'].'条,'; | 147 | $content1 .= '项目共计已收到询盘 '.$data['inquiry_total'].'条,'; |
| @@ -159,6 +161,9 @@ class WeekProject extends Command | @@ -159,6 +161,9 @@ class WeekProject extends Command | ||
| 159 | } | 161 | } |
| 160 | $content1 .= '如有高质量客户,请您密切关注与跟进;'; | 162 | $content1 .= '如有高质量客户,请您密切关注与跟进;'; |
| 161 | } | 163 | } |
| 164 | + if(!empty($content1)){ | ||
| 165 | + $arr[] = $content1; | ||
| 166 | + } | ||
| 162 | $content2 = ''; | 167 | $content2 = ''; |
| 163 | if(!empty($data['google_indexed_num']) || !empty($data['google_links_num']) || !empty($data['keyword_home_num']) || !empty($data['keyword_three_num']) || !empty($data['keyword_five_num']) || !empty($data['keyword_ten_num']) || !empty($data['daily_average_num'])){ | 168 | if(!empty($data['google_indexed_num']) || !empty($data['google_links_num']) || !empty($data['keyword_home_num']) || !empty($data['keyword_three_num']) || !empty($data['keyword_five_num']) || !empty($data['keyword_ten_num']) || !empty($data['daily_average_num'])){ |
| 164 | $content2 .= '项目截止目前'; | 169 | $content2 .= '项目截止目前'; |
| @@ -168,8 +173,10 @@ class WeekProject extends Command | @@ -168,8 +173,10 @@ class WeekProject extends Command | ||
| 168 | if(!empty($data['google_links_num'])){ | 173 | if(!empty($data['google_links_num'])){ |
| 169 | $content2 .= '外链量:'.$data['google_links_num'].'条,'; | 174 | $content2 .= '外链量:'.$data['google_links_num'].'条,'; |
| 170 | } | 175 | } |
| 176 | + if(!empty($data['keyword_home_num']) || !empty($data['keyword_three_num']) || !empty($data['keyword_five_num']) || !empty($data['keyword_ten_num'])){ | ||
| 177 | + $content2 .= '谷歌搜索排名'; | ||
| 171 | if(!empty($data['keyword_home_num'])){ | 178 | if(!empty($data['keyword_home_num'])){ |
| 172 | - $content2 .= '谷歌搜索排名首页关键词数量为:'.$data['keyword_home_num'].'个,'; | 179 | + $content2 .= '首页关键词数量为:'.$data['keyword_home_num'].'个,'; |
| 173 | } | 180 | } |
| 174 | if(!empty($data['keyword_three_num'])){ | 181 | if(!empty($data['keyword_three_num'])){ |
| 175 | $content2 .= '前三页关键词数量为:'.$data['keyword_three_num'].'个,'; | 182 | $content2 .= '前三页关键词数量为:'.$data['keyword_three_num'].'个,'; |
| @@ -180,23 +187,70 @@ class WeekProject extends Command | @@ -180,23 +187,70 @@ class WeekProject extends Command | ||
| 180 | if(!empty($data['keyword_ten_num'])){ | 187 | if(!empty($data['keyword_ten_num'])){ |
| 181 | $content2 .= '前十页关键词数量为:'.$data['keyword_ten_num'].'个,'; | 188 | $content2 .= '前十页关键词数量为:'.$data['keyword_ten_num'].'个,'; |
| 182 | } | 189 | } |
| 190 | + } | ||
| 183 | if(!empty($data['daily_average_num'])){ | 191 | if(!empty($data['daily_average_num'])){ |
| 184 | $content2 .= '本周日均访客量:'.$data['daily_average_num'].'+。'; | 192 | $content2 .= '本周日均访客量:'.$data['daily_average_num'].'+。'; |
| 185 | } | 193 | } |
| 186 | $content2 .= '全球搜建议用户持续分析、选择、添加企业、产品、服务等相关关键词进行优化和监控,以覆盖更多相关排名和流量;'; | 194 | $content2 .= '全球搜建议用户持续分析、选择、添加企业、产品、服务等相关关键词进行优化和监控,以覆盖更多相关排名和流量;'; |
| 187 | } | 195 | } |
| 196 | + if(!empty($content2)){ | ||
| 197 | + $arr[] = $content2; | ||
| 198 | + } | ||
| 188 | $content3 = ''; | 199 | $content3 = ''; |
| 189 | if(!empty($data['product_num']) || !empty($data['news_num']) || !empty($data['week_product_num']) || !empty($data['week_news_num'])){ | 200 | if(!empty($data['product_num']) || !empty($data['news_num']) || !empty($data['week_product_num']) || !empty($data['week_news_num'])){ |
| 190 | - | 201 | + if(!empty($data['product_num']) || !empty($data['news_num'])){ |
| 202 | + $content3 .= '项目截止目前'; | ||
| 203 | + if(!empty($data['product_num'])){ | ||
| 204 | + $content3 .= '发布产品:'.$data['product_num'].'条,'; | ||
| 205 | + } | ||
| 206 | + if(!empty($data['news_num'])){ | ||
| 207 | + $content3 .= '发布新闻:'.$data['news_num'].'条。'; | ||
| 208 | + } | ||
| 209 | + } | ||
| 210 | + if(!empty($data['week_product_num']) || !empty($data['week_news_num'])){ | ||
| 211 | + $content3 .= '本周新增'; | ||
| 212 | + if(!empty($data['week_product_num'])){ | ||
| 213 | + $content3 .= '产品:'.$data['week_product_num'].'条,'; | ||
| 214 | + } | ||
| 215 | + if(!empty($data['week_news_num'])){ | ||
| 216 | + $content3 .= '新闻:'.$data['week_news_num'].'条。'; | ||
| 217 | + } | ||
| 191 | } | 218 | } |
| 219 | + } | ||
| 220 | + $content3 .= '全球搜建议用户保持网站内容的持续更新与完善,可参考谷歌关于创建实用、可靠、以用户为中心的内容的相关建议:https://developers.google.com/search/docs/fundamentals/creating-helpful-content?hl=zh-cn;'; | ||
| 221 | + $data[] = $content3; | ||
| 222 | + $content4 = '本周主要优化工作包括:TDK、H标签、Img标签等优化设置排查与进一步完善,Sitemap更新与网页收录提交,外链新增与排查。'; | ||
| 223 | + if(!empty($data['main_update_num'])){ | ||
| 224 | + $content4 .= '网站加载速度维护及主站页面更新'.$data['main_update_num'].'次。'; | ||
| 225 | + } | ||
| 226 | + if(!empty($data['aggregation_update_num'])){ | ||
| 227 | + $content4 .= '聚合页主站页面更新'.$data['aggregation_update_num'].'次。'; | ||
| 228 | + } | ||
| 229 | + if(!empty($data['aggregation_update_num'])){ | ||
| 230 | + $content4 .= '聚合页主站页面更新'.$data['aggregation_update_num'].'次。'; | ||
| 231 | + } | ||
| 232 | + if(!empty($data['minor_update_num'])){ | ||
| 233 | + $content4 .= '小语种站页面更新'.$data['minor_update_num'].'次。'; | ||
| 234 | + } | ||
| 235 | + if(!empty($data['aggregation_minor_update_num'])){ | ||
| 236 | + $content4 .= '聚合页小语种站页面'.$data['aggregation_minor_update_num'].'次。'; | ||
| 237 | + } | ||
| 238 | + $data[] = $content4; | ||
| 239 | + foreach ($data as $key => $val){ | ||
| 240 | + $content = $key.','.$val; | ||
| 241 | + } | ||
| 242 | + $timestamp = strtotime('tomorrow 9:00 AM'); | ||
| 243 | + $tomorrowNineAM = date('Y-m-d H:i:s', $timestamp); | ||
| 192 | $param = [ | 244 | $param = [ |
| 193 | 'project_id'=>$project_id, | 245 | 'project_id'=>$project_id, |
| 194 | 'friend_id'=>$friend_id, | 246 | 'friend_id'=>$friend_id, |
| 195 | 'type'=>MessagePush::TYPE_WEEK, | 247 | 'type'=>MessagePush::TYPE_WEEK, |
| 196 | - 'content'=>'', | 248 | + 'content'=>$content, |
| 249 | + 'ref_ids'=>'', | ||
| 250 | + 'send_time'=>$tomorrowNineAM | ||
| 197 | ]; | 251 | ]; |
| 198 | //写入一条推送消息 自动消费 | 252 | //写入一条推送消息 自动消费 |
| 199 | $messagePushModel = new MessagePush(); | 253 | $messagePushModel = new MessagePush(); |
| 200 | - | 254 | + $messagePushModel->add($param); |
| 201 | } | 255 | } |
| 202 | } | 256 | } |
-
请 注册 或 登录 后发表评论