作者 lyh

未续费项目增加搜索

... ... @@ -1284,36 +1284,4 @@ class ProjectController extends BaseController
$this->response('success',Code::SUCCESS,['url'=>$this->param['url']]);
}
/**
* @remark :统计剩余服务时常
* @name :serviceNumCount
* @author :lyh
* @method :post
* @time :2025/7/29 14:12
*/
public function serviceNumCount(){
$this->request->validate([
'end_date'=>'required',
'project_id'=>'required',
],[
'end_date.required' => '结束时常不能为空',
'project_id.required' => '项目id不能为空',
]);
if(isset($this->param['renewal_record']) && !empty($this->param['renewal_record'])){
$paymentModel = new Payment();
$renewal_record = Arr::a2s($this->param['renewal_record']);
$paymentModel->edit(['renewal_record'=>$renewal_record],['project_id'=>$this->param['project_id']]);
}
$projectModel = new Project();
$projectInfo = $projectModel->read(['id'=>$this->param['project_id']],['uptime','project_type']);
$diff = (strtotime($this->param['end_date']) - strtotime($projectInfo['uptime'])) / (60 * 60 * 24);
$deployBuildModel = new DeployBuild();
if($projectModel['project_type'] == Project::PROJECT_TYPE_SEO){
$param = ['seo_service_duration'=>$diff];
}else{
$param = ['service_duration'=>$diff];
}
$deployBuildModel->edit($param,['project_id'=>$this->param['project_id']]);
$this->response('success');
}
}
... ...
... ... @@ -738,6 +738,24 @@ class ProjectLogic extends BaseLogic
//改为异步
NoticeLog::createLog(NoticeLog::TYPE_INIT_PROJECT, ['project_id' => $param['id']]);
}
//推广续费网站单独处理
if($param['type'] == Project::TYPE_FOUR){
// 提取非 null 的 expire_at 字段
$validDates = array_filter(
array_column($param['payment']['renewal_record'] ?? [], 'expire_at'),
fn($date) => !is_null($date)
);
// 获取最大日期(如果有)
$maxExpireAt = $validDates ? max($validDates) : null;
if(!empty($maxExpireAt)){
$diff = (strtotime($maxExpireAt) - strtotime($param['uptime'] ?? date('Y-m-d'))) / (60 * 60 * 24);
if($param['project_type'] == Project::PROJECT_TYPE_SEO){
$param['deploy_build']['seo_service_duration'] = $diff;
}else{
$param['deploy_build']['service_duration'] = $diff;
}
}
}
return $this->success($param);
}
... ...
... ... @@ -205,7 +205,6 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/setIsParticiple', [Aside\Project\ProjectController::class, 'setIsParticiple'])->name('admin.project_setIsParticiple');//开启/关闭分词
Route::any('/saveSiteStatus', [Aside\Project\ProjectController::class, 'saveSiteStatus'])->name('admin.project_saveSiteStatus');
Route::any('/updateTdk', [Aside\Project\ProjectController::class, 'updateTdk'])->name('admin.project_updateTdk');//更新项目tdk
Route::any('/serviceNumCount', [Aside\Project\ProjectController::class, 'serviceNumCount'])->name('admin.project_serviceNumCount');//根据续费记录统计剩余服务时常
//获取关键词前缀和后缀
Route::prefix('keyword')->group(function () {
Route::any('/getKeywordPrefix', [Aside\Project\KeywordPrefixController::class, 'getKeywordPrefix'])->name('admin.keyword_getKeywordPrefix');
... ...