作者 刘锟

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

... ... @@ -247,7 +247,7 @@ class FetchTicketProjects extends Command
// $team_ids 去掉下标
$team_ids_in = array_values($team_ids_in);
$team_ids = ManageHr::whereIn('manage_id', $team_ids_in)->where('status', 1)->pluck('manage_id')
$team_ids = ManageHr::whereIn('id', $team_ids_in)->where('status', 1)->pluck('manage_id')
->unique()
->filter(fn($v) => !is_null($v) && $v !== 0)
->values()
... ...
... ... @@ -1283,4 +1283,5 @@ class ProjectController extends BaseController
NoticeLog::createLog(NoticeLog::TYPE_UPDATE_PROJECT_TDK, ['project_id' => $this->param['project_id'],'url'=>$this->param['url']]);
$this->response('success',Code::SUCCESS,['url'=>$this->param['url']]);
}
}
... ...
... ... @@ -114,17 +114,24 @@ class RenewProjectController extends BaseController
* @time :2023/8/18 14:33
*/
public function notHaveRenewItems(Project $project){
$this->map['extend_type'] = $project::TYPE_FIVE;//未续费网站 if(!empty($param['search']) && !empty($param['search_type'])){
$this->map['extend_type'] = $project::TYPE_FIVE;//未续费网站
if(!empty($this->map['title'])){
$this->map['title'] = ['like', '%'.$this->map['title'].'%'];
}
$domainModel = new DomainInfo();
if(!empty($this->map['domain'])){
$parsedUrl = parse_url($this->map['domain']);
$search_domain = $parsedUrl['host'] ?? $this->map['domain'];
$projectIds = $domainModel->selectField(['domain'=>['like','%'.$search_domain.'%']],'project_id');
$this->map['id'] = ['in',$projectIds];
unset($this->map['domain']);
}
$lists = $project->formatQuery($this->map)->with('payment')->with('deploy_build')
->with('deploy_optimize')->with('online_check')
->with('project_after')->paginate($this->row, ['*'], 'page', $this->page);
if(!empty($lists)){
$lists = $lists->toArray();
$manageModel = new ManageHr();
$domainModel = new DomainInfo();
foreach ($lists['list'] as $k=>$item){
$item = $this->handleParam($item,$manageModel,$domainModel);
$lists['list'][$k] = $item;
... ...
... ... @@ -30,7 +30,7 @@ class AuthorityScoreController extends BaseController
}
/**
* @remark :豹猫数据统计表详情
* @remark :白帽数据统计表详情
* @name :whiteHatReportInfo
* @author :lyh
* @method :post
... ...
... ... @@ -80,6 +80,8 @@ class KeywordController extends BaseController
public function searchParam($map){
if(!empty($map['title'])){
$map['title'] = ['like','%'.$map['title'].'%'];
}else{
unset($map['title']);
}
if(!empty($map['keyword_title'])){
$map['keyword_title'] = ['like','%'.$map['keyword_title'].'%'];
... ...
... ... @@ -330,7 +330,7 @@ class TranslateController extends BaseController
$this->pageSixList($data,$count,$v,1,15);
}
$blogInfo = $routeMapModel->read(['route'=>'blog']);
if($blogInfo === false){
if($blogInfo === false && ($this->user['is_show_blog'] == 1)){
$blogModel = new Blog();
$count = $blogModel->formatQuery(['status'=>1])->count();
$v['route'] = 'blog';
... ...
... ... @@ -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);
}
... ...
... ... @@ -61,7 +61,11 @@ class TranslateLogic extends BaseLogic
$param['url'] = $this->param['url'];
$info = $this->model->with('translate_data')->where($param)->first();
//获取当前URl的所有文本内容
try {
$text_array = $this->getUrlRead($url);
}catch (\Exception $e){
$text_array = [];
}
// 原始校对程序
$old_key = [];//key值组成数据
$data_read = json_decode($info && $info['translate_data'] ? $info['translate_data']['data'] : '',JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
... ...