作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

... ... @@ -43,6 +43,7 @@ class RankData extends BaseCommands
*/
public function do()
{
Log::channel('rank_data')->info('开始-排名数据');
//同步api_no
$this->SyncApiNo();
... ...
... ... @@ -103,4 +103,21 @@ class IndexController extends BaseController
}
$this->response('success');
}
/**
* 生成嵌套AICC企微的token
* @author zbj
* @date 2024/2/29
*/
public function generateAiCCToken(){
$data = [
'id' => $this->manage['id'],
'name' => $this->manage['name'],
'timestamp' => time(), // 接收到字符串解密出来以后需要 验证时间不超过30秒 超过时间视为无效授权
];
$common = new \App\Helper\Common();
$str = $common->encrypt($data);
$this->response('success',Code::SUCCESS,['str'=>$str]);
}
}
... ...
... ... @@ -12,6 +12,7 @@ namespace App\Http\Controllers\Aside\Com;
use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Models\Com\KeywordVideoTask;
use App\Models\Com\KeywordVideoTaskLog;
use App\Models\Domain\DomainInfo;
use App\Models\Project\Project;
... ... @@ -125,4 +126,23 @@ class KeywordVideoController extends BaseController
}
$this->response('success');
}
/**
* @remark :记录
* @name :getVideoTaskLog
* @author :lyh
* @method :post
* @time :2024/3/1 16:40
*/
public function getVideoTaskLog(){
$this->request->validate([
'project_id'=>'required',
], [
'project_id.required' => '项目唯一标识不为空',
]);
$taskLogModel = new KeywordVideoTaskLog();
$list = $taskLogModel->lists($this->map,$this->page,$this->row);
$this->response('success',Code::SUCCESS,$list);
}
}
... ...
... ... @@ -324,4 +324,31 @@ class ComController extends BaseController
Cache::add('login-project-'.$this->user['mobile'],1,300);
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :推荐采购商
* @name :recommendedPurchaser
* @author :lyh
* @method :post
* @time :2024/3/4 10:10
*/
public function recommendedPurchaser(){
$this->param['keyword'] = 'led';
$url = 'https://admin.hagro.cn/api/company_list';
$data = [
'prod_desc'=>$this->param['keyword'],
'total'=>$this->param['now'] ?? 10,
];
@file_put_contents(storage_path('logs/lyh_error.log'), var_export(http_build_query($data), true) . PHP_EOL, FILE_APPEND);
$token = 'company_list'.date('Y-m-d').http_build_query(arsort($data));
@file_put_contents(storage_path('logs/lyh_error.log'), var_export($token, true) . PHP_EOL, FILE_APPEND);
$param = [
'prod_desc'=>$this->param['keyword'],
'token'=>$token,
'total'=>$this->param['now'] ?? 10,
];
$lists = http_post($url,$param);
@file_put_contents(storage_path('logs/lyh_error.log'), var_export($token, true) . PHP_EOL, FILE_APPEND);
$this->response('success',Code::SUCCESS,$lists);
}
}
... ...
... ... @@ -427,7 +427,6 @@ class RankDataLogic extends BaseLogic
$first_num = $first_page_num = $first_three_pages_num = $first_five_pages_num = $first_ten_pages_num = 0;
if(!$lang){
foreach ($data as &$ranks){
ksort($ranks);
// foreach ($ranks as &$rank){
... ... @@ -461,7 +460,7 @@ class RankDataLogic extends BaseLogic
$first_ten_pages_num ++;
}
}
}
$where = [
'project_id' => $project_id,
... ... @@ -473,12 +472,12 @@ class RankDataLogic extends BaseLogic
}
//关键词达标天数
$model->is_compliance = 0;
if($model->updated_date != date('Y-m-d')){
if($model->updated_date != date('Y-m-d') || empty($model->is_compliance)){
//保证关键词数
$keyword_num = DeployBuild::where('project_id', $project_id)->value('keyword_num');
$type = Project::where('id', $project_id)->value('type');
if($keyword_num && $type == Project::TYPE_TWO && $first_page_num >= $keyword_num){
Log::channel('rank_data')->info('项目'.$project_id.':关键词达标-'.$first_page_num);
$model->compliance_day = $model->compliance_day + 1;
$model->is_compliance = 1;
//项目表更新
... ... @@ -486,6 +485,8 @@ class RankDataLogic extends BaseLogic
$compliance_day = Project::where(['id' => $project_id])->value('finish_remain_day') ?: 0;
Project::where('id', $project_id)->update(['is_remain_today' => 1, 'finish_remain_day' => $compliance_day+1]);
}
}else{
Log::channel('rank_data')->info('项目'.$project_id.':关键词未达标-'.$first_page_num);
}
}
$model->project_id = $project_id;
... ...
<?php
/**
* @remark :
* @name :PurchaserJob.php
* @author :lyh
* @method :post
* @time :2024/3/4 11:06
*/
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class PurchaserJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $tries = 3; // 可配置任务重试次数
protected $param;
/**
* Create a new job instance.
*
* @param CopyImageFile $event
* @return void
*/
public function __construct($data)
{
$this->param = $data;
}
/**
* Handle the event.
*
* @param UpdateHtml $event
* @return void
*/
public function handle()
{
}
}
... ...
... ... @@ -336,9 +336,10 @@ Route::middleware(['aloginauth'])->group(function () {
* 生成视频的项目
*/
Route::prefix('keyword_video')->group(function () {
Route::any('/', [Aside\Com\KeywordVideoController::class, 'lists'])->name('promotion_keyword_lists');
Route::any('/createKeywordTask', [Aside\Com\KeywordVideoController::class, 'createKeywordTask'])->name('promotion_keyword_createKeywordTask');
Route::any('/edit', [Aside\Com\KeywordVideoController::class, 'edit'])->name('promotion_keyword_edit');
Route::any('/', [Aside\Com\KeywordVideoController::class, 'lists'])->name('keyword_video_lists');
Route::any('/createKeywordTask', [Aside\Com\KeywordVideoController::class, 'createKeywordTask'])->name('keyword_video_createKeywordTask');
Route::any('/edit', [Aside\Com\KeywordVideoController::class, 'edit'])->name('keyword_video_edit');
Route::any('/getVideoTaskLog', [Aside\Com\KeywordVideoController::class, 'getVideoTaskLog'])->name('keyword_video_getVideoTaskLog');
});
// 公共主题模版
... ... @@ -371,6 +372,9 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/del', [Aside\Template\ATemplateTypeController::class, 'del'])->name('admin.ATemplateType_del');
});
});
Route::any('/generate_aicc_token', [Aside\Com\IndexController::class, 'generateAiCCToken'])->name('admin.generate_aicc_token');
});
//无需登录验证的路由组
... ...
... ... @@ -20,6 +20,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/generateToken', [\App\Http\Controllers\Bside\BCom\ComController::class, 'generateToken'])->name('generateToken');
Route::any('/getLink', [\App\Http\Controllers\Bside\BCom\ComController::class, 'getLink'])->name('getLink');
Route::any('/getMobileProject', [\App\Http\Controllers\Bside\BCom\ComController::class, 'getMobileProject'])->name('getMobileProject');
Route::any('/recommendedPurchaser', [\App\Http\Controllers\Bside\BCom\ComController::class, 'recommendedPurchaser'])->name('recommendedPurchaser');
//用户相关路由
Route::prefix('user')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\User\UserController::class, 'lists'])->name('user_lists');
... ...