|
...
|
...
|
@@ -16,13 +16,16 @@ use App\Models\HomeCount\Count; |
|
|
|
use App\Models\News\News;
|
|
|
|
use App\Models\Product\Product;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Models\ProjectAssociation\ProjectAssociation;
|
|
|
|
use App\Models\RankData\ExternalLinks;
|
|
|
|
use App\Models\RankData\RankData;
|
|
|
|
use App\Models\RankData\RankWeek;
|
|
|
|
use App\Models\Workchat\MessagePush;
|
|
|
|
use App\Services\ProjectServer;
|
|
|
|
use Carbon\Carbon;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
|
|
|
|
class WeekProject extends Command
|
|
|
|
{
|
|
...
|
...
|
@@ -49,7 +52,7 @@ class WeekProject extends Command |
|
|
|
*/
|
|
|
|
public function handle(){
|
|
|
|
$projectModel = new Project();
|
|
|
|
$list = $projectModel->list(['delete_status'=>0,'type'=>['in',[1,2,3,4,6]]],'id',['id','title']);
|
|
|
|
$list = $projectModel->list(['delete_status'=>0,'is_weekly_report'=>1,'type'=>['in',[1,2,3,4,6]]],'id',['id','title']);
|
|
|
|
foreach ($list as $k => $v){
|
|
|
|
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
|
|
|
|
ProjectServer::useProject($v['id']);
|
|
...
|
...
|
@@ -97,8 +100,10 @@ class WeekProject extends Command |
|
|
|
$data['keyword_ten_num'] = $rankInfo['first_ten_pages_num'] ?? 0;
|
|
|
|
$productModel = new Product();
|
|
|
|
$data['product_num'] = $productModel->counts(['status'=>1]) ?? 0;
|
|
|
|
$data['week_product_num'] = $productModel->counts(['status'=>1,'created_at'=>['between',[$startOfLastWeek,$endOfLastWeek]]]) ?? 0;
|
|
|
|
$newsModel = new News();
|
|
|
|
$data['news_num'] = $newsModel->counts(['status'=>1]) ?? 0;
|
|
|
|
$data['week_news_num'] = $newsModel->counts(['status'=>1,'created_at'=>['between',[$startOfLastWeek,$endOfLastWeek]]]) ?? 0;
|
|
|
|
$blogModel = new Blog();
|
|
|
|
$data['blog_num'] = $blogModel->counts(['status'=>1]) ?? 0;
|
|
|
|
$notifyModel = new Notify();
|
|
...
|
...
|
@@ -115,6 +120,138 @@ class WeekProject extends Command |
|
|
|
}
|
|
|
|
$v6WeeklyReportModel = new V6WeeklyReport();
|
|
|
|
$v6WeeklyReportModel->add($data);
|
|
|
|
$this->workChatMessage($data,$value['id']);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :推送消息
|
|
|
|
* @name :workChatMessage
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2025/2/26 10:15
|
|
|
|
*/
|
|
|
|
public function workChatMessage($data,$project_id){
|
|
|
|
$arr = [];
|
|
|
|
//项目是否有绑定群
|
|
|
|
$friend_id = ProjectAssociation::where('project_id', $project_id)
|
|
|
|
->where('status', ProjectAssociation::STATUS_NORMAL)
|
|
|
|
->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT)
|
|
|
|
->value('friend_id');
|
|
|
|
if(!$friend_id){
|
|
|
|
echo date('Y-m-d H:i:s') . '没有绑定企微群:'.$project_id . PHP_EOL;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
$content1 = '';
|
|
|
|
if(!empty($data['inquiry_total'])){
|
|
|
|
$content1 .= '项目共计已收到询盘 '.$data['inquiry_total'].'条,';
|
|
|
|
if(!empty($data['week_inquiry_total'])){
|
|
|
|
$content1 .= '本周新收 '.$data['week_inquiry_total'].' 封询盘。';
|
|
|
|
}
|
|
|
|
if(!empty($data['inquiry_country'])){
|
|
|
|
$data['inquiry_country'] = json_decode($data['inquiry_country']);
|
|
|
|
arsort($data);
|
|
|
|
$data['inquiry_country'] = array_slice($data, 0, 4, true);
|
|
|
|
$country = '';
|
|
|
|
foreach ($data['inquiry_country'] as $k => $v){
|
|
|
|
$country .= $k.'、';
|
|
|
|
};
|
|
|
|
$country = trim($country,'、');
|
|
|
|
$content1 .= '询盘主要来源于'.$country.'等国家地区';
|
|
|
|
}
|
|
|
|
$content1 .= '如有高质量客户,请您密切关注与跟进;';
|
|
|
|
}
|
|
|
|
if(!empty($content1)){
|
|
|
|
$arr[] = $content1;
|
|
|
|
}
|
|
|
|
$content2 = '';
|
|
|
|
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'])){
|
|
|
|
$content2 .= '项目截止目前';
|
|
|
|
if(!empty($data['google_indexed_num'])){
|
|
|
|
$content2 .= '谷歌收录量:'.$data['google_indexed_num'].'条,';
|
|
|
|
}
|
|
|
|
if(!empty($data['google_links_num'])){
|
|
|
|
$content2 .= '外链量:'.$data['google_links_num'].'条,';
|
|
|
|
}
|
|
|
|
if(!empty($data['keyword_home_num']) || !empty($data['keyword_three_num']) || !empty($data['keyword_five_num']) || !empty($data['keyword_ten_num'])){
|
|
|
|
$content2 .= '谷歌搜索排名';
|
|
|
|
if(!empty($data['keyword_home_num'])){
|
|
|
|
$content2 .= '首页关键词数量为:'.$data['keyword_home_num'].'个,';
|
|
|
|
}
|
|
|
|
if(!empty($data['keyword_three_num'])){
|
|
|
|
$content2 .= '前三页关键词数量为:'.$data['keyword_three_num'].'个,';
|
|
|
|
}
|
|
|
|
if(!empty($data['keyword_five_num'])){
|
|
|
|
$content2 .= '前五页关键词数量为:'.$data['keyword_five_num'].'个,';
|
|
|
|
}
|
|
|
|
if(!empty($data['keyword_ten_num'])){
|
|
|
|
$content2 .= '前十页关键词数量为:'.$data['keyword_ten_num'].'个,';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!empty($data['daily_average_num'])){
|
|
|
|
$content2 .= '本周日均访客量:'.$data['daily_average_num'].'+。';
|
|
|
|
}
|
|
|
|
$content2 .= '全球搜建议用户持续分析、选择、添加企业、产品、服务等相关关键词进行优化和监控,以覆盖更多相关排名和流量;';
|
|
|
|
}
|
|
|
|
if(!empty($content2)){
|
|
|
|
$arr[] = $content2;
|
|
|
|
}
|
|
|
|
$content3 = '';
|
|
|
|
if(!empty($data['product_num']) || !empty($data['news_num']) || !empty($data['week_product_num']) || !empty($data['week_news_num'])){
|
|
|
|
if(!empty($data['product_num']) || !empty($data['news_num'])){
|
|
|
|
$content3 .= '项目截止目前';
|
|
|
|
if(!empty($data['product_num'])){
|
|
|
|
$content3 .= '发布产品:'.$data['product_num'].'条,';
|
|
|
|
}
|
|
|
|
if(!empty($data['news_num'])){
|
|
|
|
$content3 .= '发布新闻:'.$data['news_num'].'条。';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!empty($data['week_product_num']) || !empty($data['week_news_num'])){
|
|
|
|
$content3 .= '本周新增';
|
|
|
|
if(!empty($data['week_product_num'])){
|
|
|
|
$content3 .= '产品:'.$data['week_product_num'].'条,';
|
|
|
|
}
|
|
|
|
if(!empty($data['week_news_num'])){
|
|
|
|
$content3 .= '新闻:'.$data['week_news_num'].'条。';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$content3 .= '全球搜建议用户保持网站内容的持续更新与完善,可参考谷歌关于创建实用、可靠、以用户为中心的内容的相关建议:https://developers.google.com/search/docs/fundamentals/creating-helpful-content?hl=zh-cn;';
|
|
|
|
$arr[] = $content3;
|
|
|
|
$content4 = '本周主要优化工作包括:TDK、H标签、Img标签等优化设置排查与进一步完善,Sitemap更新与网页收录提交,外链新增与排查。';
|
|
|
|
if(!empty($data['main_update_num'])){
|
|
|
|
$content4 .= '网站加载速度维护及主站页面更新'.$data['main_update_num'].'次。';
|
|
|
|
}
|
|
|
|
if(!empty($data['aggregation_update_num'])){
|
|
|
|
$content4 .= '聚合页主站页面更新'.$data['aggregation_update_num'].'次。';
|
|
|
|
}
|
|
|
|
if(!empty($data['aggregation_update_num'])){
|
|
|
|
$content4 .= '聚合页主站页面更新'.$data['aggregation_update_num'].'次。';
|
|
|
|
}
|
|
|
|
if(!empty($data['minor_update_num'])){
|
|
|
|
$content4 .= '小语种站页面更新'.$data['minor_update_num'].'次。';
|
|
|
|
}
|
|
|
|
if(!empty($data['aggregation_minor_update_num'])){
|
|
|
|
$content4 .= '聚合页小语种站页面'.$data['aggregation_minor_update_num'].'次。';
|
|
|
|
}
|
|
|
|
$arr[] = $content4;
|
|
|
|
foreach ($arr as $key => $val){
|
|
|
|
$content .= ($key + 1) .','.$val;
|
|
|
|
}
|
|
|
|
$timestamp = strtotime('tomorrow 9:00 AM');
|
|
|
|
$tomorrowNineAM = date('Y-m-d H:i:s', $timestamp);
|
|
|
|
$param = [
|
|
|
|
'project_id'=>$project_id,
|
|
|
|
'friend_id'=>$friend_id,
|
|
|
|
'type'=>MessagePush::TYPE_WEEK,
|
|
|
|
'content'=>'【全球搜V6.0周报】'.$content,
|
|
|
|
'ref_ids'=>'',
|
|
|
|
'send_time'=>$tomorrowNineAM
|
|
|
|
];
|
|
|
|
//写入一条推送消息 自动消费
|
|
|
|
$messagePushModel = new MessagePush();
|
|
|
|
echo date('Y-m-d H:i:s') . '生成推送消息:'.$project_id . PHP_EOL;
|
|
|
|
return $messagePushModel->add($param);
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|