作者 赵彬吉
... ... @@ -412,8 +412,9 @@ class DomainInfo extends Command
->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT)
->value('friend_id');
if ($friend_id) {
$top_domain = getTopDomain($domain);
$tips = $is_end ? ' 已经到期,请及时处理。' : ' 有效期不足一个月,请留意。';
$message = '【域名到期提醒】' . PHP_EOL . '域名 ' . $domain . $tips;
$message = '【域名到期提醒】' . PHP_EOL . '域名 ' . $top_domain . $tips;
$param = [
'project_id' => $project_id,
'friend_id' => $friend_id,
... ...
... ... @@ -120,7 +120,7 @@ class RemainDay extends Command
//白帽版本的系统
if($deploy_build['seo_plan'] == 1){
if($deploy_build['seo_service_duration'] != 0){
if(in_array($item['id'],$this->bm_projectId) || (strpos($item['level'], '19') !== false)){
if(in_array($item['id'],$this->bm_projectId) || (in_array( 19,$item['level']))){
$compliance_day = (int)$item['bm_finish_remain_day'];
$seo_remain_day = $deploy_build['seo_service_duration'] - (int)$item['bm_finish_remain_day'];
}else{
... ...
... ... @@ -165,6 +165,7 @@ class GeoQuestionRes extends Command
'keywords_num'=>$keyword_num ?? [],
'url_num'=>$url_num ?? [],
'is_match'=>$is_match ?? 0,
'label'=>$taskInfo['label'] ?? null,
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s'),
];
... ...
... ... @@ -76,7 +76,7 @@ class TicketCount extends Command
$date = Carbon::yesterday()->toDateString(); // 昨日时间
$ticketManageCountModel = new TicketDailyManageCount();
foreach ($manageList as $item){
$average_time = '';
$average_time = null;
$this->output('按人员统计:执行的人员名称/id:'.$item['name'].'/'.$item['manage_id']);
$ticketLogModel = new TicketLog();
$ticket_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1]);
... ... @@ -88,6 +88,9 @@ class TicketCount extends Command
}
//最快完成的时间
$fastest_time = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]])->min('end_time');
if(!$fastest_time){
$fastest_time = null;
}
//超时工单数量
$timeout_num = $ticketLogModel->counts(['end_at'=>null,'engineer_id'=>$item['manage_id'],'is_engineer'=>1,'plan_end_at'=>['>',date('Y-m-d H:i:s')]]);
$complete_num = $ticketLogModel->counts(['end_at'=>['!=',null],'engineer_id'=>$item['manage_id'],'is_engineer'=>1]);
... ... @@ -96,8 +99,8 @@ class TicketCount extends Command
'manage_id'=>$item['id'],
'manage_name'=>$item['name'],
'ticket_num'=>$ticket_num,//工单总数量
'average_time'=>$average_time ?? '',//平均完成工单时长
'fastest_time'=>$fastest_time,//最快完成工单时间
'average_time'=>$average_time ?? null,//平均完成工单时长
'fastest_time'=>$fastest_time ?? null,//最快完成工单时间
'timeout_num'=>$timeout_num,//超时工单数量
'complete_num'=>$complete_num,//完成工单数量
'dept_id'=>$item['dept_id']
... ... @@ -130,7 +133,7 @@ class TicketCount extends Command
$ticketDailyDeptModel = new TicketDailyDeptCount();
$date = Carbon::yesterday()->toDateString(); // "2025-08-07"
foreach ($groupList as $item){
$average_time = '';
$average_time = null;
$this->output('组统计:执行的组/id:'.$item['name'].'/'.$item['id']);
$manageIdArr = $manageHrModel->selectField(['belong_group'=>$item['id'],'status'=>1,'dept_id'=>1],'manage_id');
$ticket_num = $ticketLogModel->counts(['engineer_id'=>['in',$manageIdArr],'is_engineer'=>1]);
... ... @@ -143,7 +146,7 @@ class TicketCount extends Command
'dept_id'=>$item['id'],
'dept_name'=>$item['name'],
'ticket_num'=>$ticket_num ?? 0,
'average_time'=>$average_time ?? ''
'average_time'=>$average_time ?? null
];
$deptInfo = $ticketDailyDeptModel->read(['date'=>$date,'dept_id'=>$item['id']],['id']);
if($deptInfo === false){
... ... @@ -189,7 +192,7 @@ class TicketCount extends Command
'add_num'=>$add_num,
'untreated_num'=>$untreated_num,
'processed_num'=>$processed_num,
'average_time'=>$average_time ?? '',
'average_time'=>$average_time ?? null,
'source'=>json_encode(['a'=>$submit_a_side,'b'=>$submit_b_side],true),
'source_type'=>json_encode($dbResult,true)
];
... ...
... ... @@ -216,11 +216,11 @@ class FetchTicketProjects extends Command
// 第一负责人
/**
* 5.0升级6.0的项目,白帽SEO的项目 都划给售后
* 5.0升级6.0的项目,白帽SEO, GEO的项目 都划给售后
* 其他:建站中找项目经理,建站完成找杨长远,推广找售后服务经理
*/
if ($item->is_upgrade || $item->project_type == 1)
$engineer_id = $assm_id; // V5升V6,白帽SEO,找售后服务经理
if ($item->is_upgrade || $item->project_type == 1 || $item->deploy_build->seo_plan > 0)
$engineer_id = $assm_id; // V5升V6,白帽SEO,GEO,找售后服务经理
elseif ($status == 1)
$engineer_id = $pm_id; // 建站中找项目经理
elseif ($status == 2)
... ...
... ... @@ -47,10 +47,12 @@ class PrivateController extends BaseController
public function optimizeProjectList(Request $request)
{
$page_size = $request->input('page_size', 20);
$field = ['gl_project.id', 'gl_project.company', 'gl_project.is_upgrade', 'b.start_date', 'd.domain', 'b.special'];
$field = ['gl_project.id', 'gl_project.company', 'gl_project.is_upgrade', 'b.start_date', 'd.domain', 'b.special', 'f.industry_name'];
$result = Project::select($field)->leftJoin('gl_project_deploy_optimize as b', 'gl_project.id', '=', 'b.project_id')
->leftJoin('gl_project_online_check as c', 'gl_project.id', '=', 'c.project_id')
->leftJoin('gl_domain_info as d', 'gl_project.id', '=', 'd.project_id')
->leftJoin('gl_project_industry_related as e', 'gl_project.id', '=', 'e.project_id')
->leftJoin('gl_project_industry as f', 'e.industry_id', '=', 'f.id')
->where('gl_project.type', Project::TYPE_TWO)
->where('gl_project.project_type',Project::TYPE_ZERO)
->where('gl_project.extend_type', 0) // 是否续费是由extend_type字段控制
... ...
... ... @@ -48,7 +48,7 @@ class GeoQuestionResLogic extends BaseLogic
*/
public function getResultList($map = [],$page = 1,$row = 20){
$map['project_id'] = $this->user['project_id'];
$filed = ['id','project_id','question_id','platform','is_match','question','en_question','keywords','url','created_at','updated_at'];
$filed = ['id','project_id','question_id','platform','is_match','question','en_question','keywords','url','label','created_at','updated_at'];
if(!empty($map['created_at'])){
$map['created_at'] = ['between',[$map['created_at'].' 00:00:00',$map['created_at'].' 23:59:59']];
$this->model = new GeoQuestionLog();
... ...
... ... @@ -345,6 +345,11 @@ class ProductLogic extends BaseLogic
}else{
$param['category_id'] = '';
}
if(isset($param['og_image']) && !empty($param['og_image'])){
$param['og_image'] = str_replace_url($param['og_image'] ?? '');
}else{
$param['og_image'] = $param['gallery'][0]['url'] ?? '';
}
//产品图
if(isset($param['gallery']) && !empty($param['gallery'])){
foreach ($param['gallery'] as $k => $v){
... ... @@ -357,11 +362,6 @@ class ProductLogic extends BaseLogic
$param['thumb'] = Arr::a2s([]);
$param['gallery'] = Arr::a2s([]);
}
if(isset($param['og_image']) && !empty($param['og_image'])){
$param['og_image'] = str_replace_url($param['og_image'] ?? '');
}else{
$param['og_image'] = $param['thumb']['url'] ?? '';
}
if(isset($param['files'])){
$param['files']['url'] = str_replace_url($param['files']['url'] ?? '');
$param['files'] = Arr::a2s($param['files'] ?? []);
... ...