作者 刘锟

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

@@ -61,7 +61,7 @@ class GeoQuestionRes extends Command @@ -61,7 +61,7 @@ class GeoQuestionRes extends Command
61 $geoQuestionModel->edit(['status'=>$geoQuestionModel::STATUS_CLOSE],['id'=>$task_id]); 61 $geoQuestionModel->edit(['status'=>$geoQuestionModel::STATUS_CLOSE],['id'=>$task_id]);
62 continue; 62 continue;
63 } 63 }
64 - if(empty($taskInfo['question']) || empty($taskInfo['keywords']) || empty($taskInfo['url'])){ 64 + if(empty($taskInfo['question']) || (empty($taskInfo['keywords']) && empty($taskInfo['url']) && empty($taskInfo['expect_result']))){
65 $this->output('task id: ' . $task_id . ', error: 任务数据缺失, continue!'); 65 $this->output('task id: ' . $task_id . ', error: 任务数据缺失, continue!');
66 $geoQuestionModel->edit(['status'=>$geoQuestionModel::STATUS_CLOSE],['id'=>$task_id]); 66 $geoQuestionModel->edit(['status'=>$geoQuestionModel::STATUS_CLOSE],['id'=>$task_id]);
67 continue; 67 continue;
@@ -113,7 +113,6 @@ class GeoQuestionRes extends Command @@ -113,7 +113,6 @@ class GeoQuestionRes extends Command
113 } 113 }
114 // 命中文案 114 // 命中文案
115 $hit_data[] = $result['text']; 115 $hit_data[] = $result['text'];
116 -  
117 if(!empty($result['annotations'])){ 116 if(!empty($result['annotations'])){
118 $url = array_column(array_column($result['annotations'], 'url_citation'), 'url'); 117 $url = array_column(array_column($result['annotations'], 'url_citation'), 'url');
119 $title = array_column(array_column($result['annotations'], 'url_citation'), 'title'); 118 $title = array_column(array_column($result['annotations'], 'url_citation'), 'title');
@@ -68,9 +68,7 @@ class UpdateRoute extends Command @@ -68,9 +68,7 @@ class UpdateRoute extends Command
68 */ 68 */
69 public function handle() 69 public function handle()
70 { 70 {
71 - ProjectServer::useProject(4132);  
72 - return $this->product_action(4132);  
73 - DB::disconnect('custom_mysql'); 71 + return $this->_action();
74 } 72 }
75 73
76 /** 74 /**
@@ -156,12 +154,17 @@ class UpdateRoute extends Command @@ -156,12 +154,17 @@ class UpdateRoute extends Command
156 */ 154 */
157 public function _action(){ 155 public function _action(){
158 $projectModel = new Project(); 156 $projectModel = new Project();
159 - $lists = $projectModel->list(['delete_status'=>0,'extend_type'=>0,'type'=>['!=',0]],'id',['id']);  
160 - $keywordModel = new Keyword(); 157 + $lists = $projectModel->list(['id'=>['in',[4379,4380,4381,4382,4383]],'delete_status'=>0,'extend_type'=>0,'type'=>['!=',0]],'id',['id']);
161 foreach ($lists as $v){ 158 foreach ($lists as $v){
162 ProjectServer::useProject($v['id']); 159 ProjectServer::useProject($v['id']);
163 echo date('Y-m-d H:i:s').' 执行的项目id:'.$v['id'].PHP_EOL; 160 echo date('Y-m-d H:i:s').' 执行的项目id:'.$v['id'].PHP_EOL;
164 - $keywordModel->edit(['type'=>1],['id'=>['!=',0]]); 161 + $productModel = new Product();
  162 + $productModel->edit(['project_id'=>$v['id']],['id'=>['!=',0]]);
  163 + $productLists = $productModel->list([],'id',['id','title','route']);
  164 + foreach ($productLists as $item){
  165 + $route = RouteMap::setRoute($item['route'],'product',$item['id'],$v['id']);
  166 + $productModel->edit(['route'=>$route],['id'=>$item['id']]);
  167 + }
165 DB::disconnect('custom_mysql'); 168 DB::disconnect('custom_mysql');
166 } 169 }
167 return true; 170 return true;
@@ -55,7 +55,7 @@ class RankData extends BaseCommands @@ -55,7 +55,7 @@ class RankData extends BaseCommands
55 ->where('gl_project.delete_status',0) 55 ->where('gl_project.delete_status',0)
56 ->where('gl_project_deploy_optimize.api_no', '>', 0) 56 ->where('gl_project_deploy_optimize.api_no', '>', 0)
57 ->whereIn('gl_project.type',[2,4]) 57 ->whereIn('gl_project.type',[2,4])
58 - ->whereRaw("FIND_IN_SET('2', gl_project.level) = 0 AND FIND_IN_SET('3', gl_project.level) = 0") 58 + ->whereRaw("FIND_IN_SET('2', gl_project.level) = 0")
59 ->select(['gl_project_deploy_optimize.api_no as api_no', 'gl_project_deploy_optimize.project_id as project_id']) 59 ->select(['gl_project_deploy_optimize.api_no as api_no', 'gl_project_deploy_optimize.project_id as project_id'])
60 ->orderBy('gl_project.id', 'asc') 60 ->orderBy('gl_project.id', 'asc')
61 ->get()->toArray(); 61 ->get()->toArray();
@@ -77,23 +77,27 @@ class TicketCount extends Command @@ -77,23 +77,27 @@ class TicketCount extends Command
77 $ticketManageCountModel = new TicketDailyManageCount(); 77 $ticketManageCountModel = new TicketDailyManageCount();
78 foreach ($manageList as $item){ 78 foreach ($manageList as $item){
79 $average_time = null; 79 $average_time = null;
  80 + $timeout_ratio = null;
80 $this->output('按人员统计:执行的人员名称/id:'.$item['name'].'/'.$item['manage_id']); 81 $this->output('按人员统计:执行的人员名称/id:'.$item['name'].'/'.$item['manage_id']);
81 $ticketLogModel = new TicketLog(); 82 $ticketLogModel = new TicketLog();
82 $ticket_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1]); 83 $ticket_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1]);
83 //工单总时长 84 //工单总时长
84 $timeCount = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1])->sum('end_time'); 85 $timeCount = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1])->sum('end_time');
85 - $ticket_end_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]]); 86 + $complete_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]]);
86 if(!empty($timeCount)){ 87 if(!empty($timeCount)){
87 - $average_time = round($timeCount / $ticket_end_num, 2); 88 + $average_time = round($timeCount / $complete_num, 2);
88 } 89 }
89 //最快完成的时间 90 //最快完成的时间
90 $fastest_time = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]])->min('end_time'); 91 $fastest_time = $ticketLogModel->formatQuery(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'end_at'=>['!=',null]])->min('end_time');
  92 + //最快完成时间
91 if(!$fastest_time){ 93 if(!$fastest_time){
92 $fastest_time = null; 94 $fastest_time = null;
93 } 95 }
94 //超时工单数量 96 //超时工单数量
95 - $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')]]);  
96 - $complete_num = $ticketLogModel->counts(['end_at'=>['!=',null],'engineer_id'=>$item['manage_id'],'is_engineer'=>1]); 97 + $timeout_num = $ticketLogModel->counts(['engineer_id'=>$item['manage_id'],'is_engineer'=>1,'plan_end_at'=>['>',date('Y-m-d H:i:s')]]);
  98 + if(!empty($timeout_num)){
  99 + $timeout_ratio = round($timeout_num / $ticket_num, 2);
  100 + }
97 $data = [ 101 $data = [
98 'date'=>$date, 102 'date'=>$date,
99 'manage_id'=>$item['id'], 103 'manage_id'=>$item['id'],
@@ -103,7 +107,8 @@ class TicketCount extends Command @@ -103,7 +107,8 @@ class TicketCount extends Command
103 'fastest_time'=>$fastest_time ?? null,//最快完成工单时间 107 'fastest_time'=>$fastest_time ?? null,//最快完成工单时间
104 'timeout_num'=>$timeout_num,//超时工单数量 108 'timeout_num'=>$timeout_num,//超时工单数量
105 'complete_num'=>$complete_num,//完成工单数量 109 'complete_num'=>$complete_num,//完成工单数量
106 - 'dept_id'=>$item['dept_id'] 110 + 'dept_id'=>$item['dept_id'],
  111 + 'timeout_ratio'=>$timeout_ratio ?? null
107 ]; 112 ];
108 //查询当前用户是否当日已有记录 113 //查询当前用户是否当日已有记录
109 $ticketManageInfo = $ticketManageCountModel->read(['date'=>$date,'manage_id'=>$item['id']],['id']); 114 $ticketManageInfo = $ticketManageCountModel->read(['date'=>$date,'manage_id'=>$item['id']],['id']);
@@ -134,6 +139,7 @@ class TicketCount extends Command @@ -134,6 +139,7 @@ class TicketCount extends Command
134 $date = Carbon::yesterday()->toDateString(); // "2025-08-07" 139 $date = Carbon::yesterday()->toDateString(); // "2025-08-07"
135 foreach ($groupList as $item){ 140 foreach ($groupList as $item){
136 $average_time = null; 141 $average_time = null;
  142 + $timeout_ratio = null;
137 $this->output('组统计:执行的组/id:'.$item['name'].'/'.$item['id']); 143 $this->output('组统计:执行的组/id:'.$item['name'].'/'.$item['id']);
138 $manageIdArr = $manageHrModel->selectField(['belong_group'=>$item['id'],'status'=>1,'dept_id'=>1],'manage_id'); 144 $manageIdArr = $manageHrModel->selectField(['belong_group'=>$item['id'],'status'=>1,'dept_id'=>1],'manage_id');
139 $ticket_num = $ticketLogModel->counts(['engineer_id'=>['in',$manageIdArr],'is_engineer'=>1]); 145 $ticket_num = $ticketLogModel->counts(['engineer_id'=>['in',$manageIdArr],'is_engineer'=>1]);
@@ -141,12 +147,19 @@ class TicketCount extends Command @@ -141,12 +147,19 @@ class TicketCount extends Command
141 if(!empty($timeCount)){ 147 if(!empty($timeCount)){
142 $average_time = round($timeCount / $ticket_num, 2); 148 $average_time = round($timeCount / $ticket_num, 2);
143 } 149 }
  150 + //超期工单数量
  151 + $timeout_num = $ticketLogModel->counts(['engineer_id'=>['in',$manageIdArr],'is_engineer'=>1,'plan_end_at'=>['>',date('Y-m-d H:i:s')]]);
  152 + if(!empty($timeout_num)){
  153 + $timeout_ratio = round($timeout_num / $ticket_num, 2);
  154 + }
144 $data = [ 155 $data = [
145 'date'=>$date, 156 'date'=>$date,
146 'dept_id'=>$item['id'], 157 'dept_id'=>$item['id'],
147 'dept_name'=>$item['name'], 158 'dept_name'=>$item['name'],
148 'ticket_num'=>$ticket_num ?? 0, 159 'ticket_num'=>$ticket_num ?? 0,
149 - 'average_time'=>$average_time ?? null 160 + 'average_time'=>$average_time ?? null,
  161 + 'timeout_ratio'=>$timeout_ratio ?? null,
  162 + 'timeout_num'=>$timeout_num
150 ]; 163 ];
151 $deptInfo = $ticketDailyDeptModel->read(['date'=>$date,'dept_id'=>$item['id']],['id']); 164 $deptInfo = $ticketDailyDeptModel->read(['date'=>$date,'dept_id'=>$item['id']],['id']);
152 if($deptInfo === false){ 165 if($deptInfo === false){
@@ -186,6 +199,11 @@ class TicketCount extends Command @@ -186,6 +199,11 @@ class TicketCount extends Command
186 ) 199 )
187 ->groupBy('p.project_cate') 200 ->groupBy('p.project_cate')
188 ->pluck('ticket_count', 'project_cate'); 201 ->pluck('ticket_count', 'project_cate');
  202 + $timeout_num = $ticketModel->counts(['end_at'=>null,'plan_end_at'=>['>',date('Y-m-d H:i:s')]]);
  203 + $timeout_ratio = null;
  204 + if(!empty($timeout_num)){
  205 + $timeout_ratio = round($timeout_num / $ticket_num, 2);
  206 + }
189 $data = [ 207 $data = [
190 'date' => $date, 208 'date' => $date,
191 'ticket_num'=>$ticket_num, 209 'ticket_num'=>$ticket_num,
@@ -194,7 +212,9 @@ class TicketCount extends Command @@ -194,7 +212,9 @@ class TicketCount extends Command
194 'processed_num'=>$processed_num, 212 'processed_num'=>$processed_num,
195 'average_time'=>$average_time ?? null, 213 'average_time'=>$average_time ?? null,
196 'source'=>json_encode(['a'=>$submit_a_side,'b'=>$submit_b_side],true), 214 'source'=>json_encode(['a'=>$submit_a_side,'b'=>$submit_b_side],true),
197 - 'source_type'=>json_encode($dbResult,true) 215 + 'source_type'=>json_encode($dbResult,true),
  216 + 'timeout_num'=>$timeout_num,
  217 + 'timeout_ratio'=>$timeout_ratio ?? null
198 ]; 218 ];
199 $ticketDailyModel = new TicketDailyCount(); 219 $ticketDailyModel = new TicketDailyCount();
200 $ticketDailyInfo = $ticketDailyModel->read(['date'=>$date],['id']); 220 $ticketDailyInfo = $ticketDailyModel->read(['date'=>$date],['id']);
@@ -96,15 +96,11 @@ class GeoQuestionController extends BaseController @@ -96,15 +96,11 @@ class GeoQuestionController extends BaseController
96 $this->request->validate([ 96 $this->request->validate([
97 'project_id'=>'required', 97 'project_id'=>'required',
98 'question'=>'required', 98 'question'=>'required',
99 - 'keywords'=>'required',  
100 - 'url'=>'required',  
101 'status'=>'required', 99 'status'=>'required',
102 'type'=>'required', 100 'type'=>'required',
103 ],[ 101 ],[
104 'project_id.required' => '项目ID不能为空', 102 'project_id.required' => '项目ID不能为空',
105 'question.required' => 'question不能为空', 103 'question.required' => 'question不能为空',
106 - 'keywords.required' => 'keywords不能为空',  
107 - 'url.required' => 'url不能为空',  
108 'status.required' => 'status不能为空', 104 'status.required' => 'status不能为空',
109 'type.required' => 'type类型不能为空', 105 'type.required' => 'type类型不能为空',
110 ]); 106 ]);
@@ -61,6 +61,15 @@ class RenewProjectController extends BaseController @@ -61,6 +61,15 @@ class RenewProjectController extends BaseController
61 if(!empty($param['search']) && !empty($param['search_type'])){ 61 if(!empty($param['search']) && !empty($param['search_type'])){
62 $map[$this->param['search_type']] = ['like', "%{$this->param['search']}%"]; 62 $map[$this->param['search_type']] = ['like', "%{$this->param['search']}%"];
63 } 63 }
  64 + if(isset($param['zone_id']) && !empty($param['zone_id'])){
  65 + $map['channel'] = ['like','%"zone_id": "'.$this->map['zone_id'].'"%'];
  66 + }
  67 + if(isset($param['channel_id']) && !empty($param['channel_id'])){
  68 + $map['channel'] = ['like','%"channel_id": "'.$this->map['channel_id'].'"%'];
  69 + }
  70 + if(isset($param['user_id']) && !empty($param['user_id'])){
  71 + $map['channel'] = ['like','%"user_id": "'.$this->map['user_id'].'"%'];
  72 + }
64 //按类型搜索 73 //按类型搜索
65 $map['delete_status'] = 0; 74 $map['delete_status'] = 0;
66 if(empty($param['type'])){ 75 if(empty($param['type'])){
@@ -25,7 +25,7 @@ class ATemplateController extends BaseController @@ -25,7 +25,7 @@ class ATemplateController extends BaseController
25 */ 25 */
26 public function lists(ATemplateLogic $aTemplateLogic){ 26 public function lists(ATemplateLogic $aTemplateLogic){
27 $templateLabel = new TemplateLabel(); 27 $templateLabel = new TemplateLabel();
28 - $this->searchLabelName($templateLabel); 28 + $this->map = $this->searchLabelName($templateLabel);
29 $filed = ['id','name','image','url','status','sort','deleted_status','test_model','created_at','project_id']; 29 $filed = ['id','name','image','url','status','sort','deleted_status','test_model','created_at','project_id'];
30 $lists = $aTemplateLogic->aTemplateList($this->map,$this->page,$this->row,$this->order,$filed); 30 $lists = $aTemplateLogic->aTemplateList($this->map,$this->page,$this->row,$this->order,$filed);
31 if(!empty($lists) && !empty($lists['list'])){ 31 if(!empty($lists) && !empty($lists['list'])){
@@ -51,7 +51,7 @@ class ATemplateController extends BaseController @@ -51,7 +51,7 @@ class ATemplateController extends BaseController
51 $this->map['id'] = ['in',$id_arr]; 51 $this->map['id'] = ['in',$id_arr];
52 unset($this->map['label_name']); 52 unset($this->map['label_name']);
53 } 53 }
54 - return true; 54 + return $this->map;
55 } 55 }
56 56
57 /** 57 /**
@@ -28,7 +28,7 @@ class ATemplateModuleController extends BaseController @@ -28,7 +28,7 @@ class ATemplateModuleController extends BaseController
28 public function lists(TemplateModule $templateModule){ 28 public function lists(TemplateModule $templateModule){
29 $templateLabel = new TemplateLabel(); 29 $templateLabel = new TemplateLabel();
30 $this->map['deleted_status'] = 0; 30 $this->map['deleted_status'] = 0;
31 - $this->searchLabelName($templateLabel); 31 + $this->map = $this->searchLabelName($templateLabel);
32 $lists = $templateModule->lists($this->map,$this->page,$this->row,$this->order); 32 $lists = $templateModule->lists($this->map,$this->page,$this->row,$this->order);
33 if(!empty($lists) && !empty($lists['list'])){ 33 if(!empty($lists) && !empty($lists['list'])){
34 foreach ($lists['list'] as $k => $v){ 34 foreach ($lists['list'] as $k => $v){
@@ -52,7 +52,7 @@ class ATemplateModuleController extends BaseController @@ -52,7 +52,7 @@ class ATemplateModuleController extends BaseController
52 $this->map['id'] = ['in',$id_arr]; 52 $this->map['id'] = ['in',$id_arr];
53 unset($this->map['label_name']); 53 unset($this->map['label_name']);
54 } 54 }
55 - return true; 55 + return $this->map;
56 } 56 }
57 57
58 58
@@ -117,4 +117,16 @@ class GeoQuestionResController extends BaseController @@ -117,4 +117,16 @@ class GeoQuestionResController extends BaseController
117 $data = $this->logic->getSearchDate(); 117 $data = $this->logic->getSearchDate();
118 $this->response('success',Code::SUCCESS,$data); 118 $this->response('success',Code::SUCCESS,$data);
119 } 119 }
  120 +
  121 + /**
  122 + * @remark :获取当前项目所有标签
  123 + * @name :getLabel
  124 + * @author :lyh
  125 + * @method :post
  126 + * @time :2025/8/19 16:39
  127 + */
  128 + public function getLabel(){
  129 + $data = $this->logic->getLabelData();
  130 + $this->response('success',Code::SUCCESS,$data);
  131 + }
120 } 132 }
@@ -34,7 +34,6 @@ class AggregateKeywordLogic extends BaseLogic @@ -34,7 +34,6 @@ class AggregateKeywordLogic extends BaseLogic
34 $this->param['id'] = $this->model->addReturnId($this->param); 34 $this->param['id'] = $this->model->addReturnId($this->param);
35 // 添加预设功能 同步关键词 迁入到 namespace App\Console\Commands\Product\SetKeywordSync 35 // 添加预设功能 同步关键词 迁入到 namespace App\Console\Commands\Product\SetKeywordSync
36 } 36 }
37 -  
38 return $this->success(['id'=>$this->param['id']]); 37 return $this->success(['id'=>$this->param['id']]);
39 } 38 }
40 39
@@ -61,10 +61,11 @@ class TicketLogic extends BaseLogic @@ -61,10 +61,11 @@ class TicketLogic extends BaseLogic
61 $dailyModel = new TicketDailyCount(); 61 $dailyModel = new TicketDailyCount();
62 $dailyList = $dailyModel->list([],'date',['*'],'desc',5);//取最近5条数据 62 $dailyList = $dailyModel->list([],'date',['*'],'desc',5);//取最近5条数据
63 $manageModel = new TicketDailyManageCount(); 63 $manageModel = new TicketDailyManageCount();
64 - $manageList = $manageModel->list(['date'=>$date,'ticket_num'=>['!=',0],'average_time'=>['!=','']],'average_time',['*'],'asc',5);//取最近5条数据 64 + $manageList = $manageModel->list(['dept_id'=>1,'date'=>$date,'ticket_num'=>['!=',0],'average_time'=>['!=','']],'average_time',['*'],'asc');
  65 + $manage2List = $manageModel->list(['dept_id'=>2,'date'=>$date,'ticket_num'=>['!=',0],'average_time'=>['!=','']],'average_time',['*'],'asc');
65 $deptModel = new TicketDailyDeptCount(); 66 $deptModel = new TicketDailyDeptCount();
66 - $deptList = $deptModel->list(['date'=>$date,'ticket_num'=>['!=',0]],'average_time',['*'],'asc',5);  
67 - $data = ['daily'=>$dailyList,'manage'=>$manageList,'dept'=>$deptList]; 67 + $deptList = $deptModel->list(['date'=>$date,'ticket_num'=>['!=',0]],'average_time',['*'],'asc');
  68 + $data = ['daily'=>$dailyList,'manage'=>$manageList,'manage2'=>$manage2List,'dept'=>$deptList];
68 return $this->success($data); 69 return $this->success($data);
69 } 70 }
70 71
@@ -60,10 +60,10 @@ class GeoQuestionResLogic extends BaseLogic @@ -60,10 +60,10 @@ class GeoQuestionResLogic extends BaseLogic
60 $map['keywords'] = ['like','%'.$map['keywords'].'%']; 60 $map['keywords'] = ['like','%'.$map['keywords'].'%'];
61 } 61 }
62 $query = $this->model->formatQuery($map); 62 $query = $this->model->formatQuery($map);
63 - $query = $query->where(function ($q) {  
64 - $q->whereRaw('JSON_LENGTH(keywords) > 0')  
65 - ->orWhereRaw('JSON_LENGTH(url) > 0');  
66 - }); 63 +// $query = $query->where(function ($q) {
  64 +// $q->whereRaw('JSON_LENGTH(keywords) > 0')
  65 +// ->orWhereRaw('JSON_LENGTH(url) > 0');
  66 +// });
67 $data = $query->orderByRaw('CHAR_LENGTH(question) ASC')->paginate($row, $filed, 'page', $page);; 67 $data = $query->orderByRaw('CHAR_LENGTH(question) ASC')->paginate($row, $filed, 'page', $page);;
68 return $this->success($data); 68 return $this->success($data);
69 } 69 }
@@ -144,4 +144,21 @@ class GeoQuestionResLogic extends BaseLogic @@ -144,4 +144,21 @@ class GeoQuestionResLogic extends BaseLogic
144 return $this->success($dates); 144 return $this->success($dates);
145 } 145 }
146 146
  147 + /**
  148 + * @remark :获取标签列表
  149 + * @name :getLabelData
  150 + * @author :lyh
  151 + * @method :post
  152 + * @time :2025/8/19 16:42
  153 + */
  154 + public function getLabelData(){
  155 + $questionModel = new GeoQuestion();
  156 + $labelArr = $questionModel->selectField(['project_id'=>$this->user['project_id']],'label');
  157 + $data = [];
  158 + foreach ($labelArr as $item){
  159 + $arr = explode("\r\n",$item);
  160 + $data = array_values(array_unique(array_merge($arr,$data)));
  161 + }
  162 + return $this->success($data);
  163 + }
147 } 164 }
@@ -67,7 +67,7 @@ class RankDataLogic extends BaseLogic @@ -67,7 +67,7 @@ class RankDataLogic extends BaseLogic
67 $speed = Speed::where('project_id', $project_id)->first(); 67 $speed = Speed::where('project_id', $project_id)->first();
68 //暂停优化的项目(排名数据显示横杠 - ,关键词排名第一页 、 关键词排名前十页 、 Google收录页面数 、 可查询外链数) 68 //暂停优化的项目(排名数据显示横杠 - ,关键词排名第一页 、 关键词排名前十页 、 Google收录页面数 、 可查询外链数)
69 if(!empty($project['level'])){ 69 if(!empty($project['level'])){
70 - if (in_array('2', $project['level']) || in_array('3', $project['level'])) { 70 + if (in_array('2', $project['level'])) {// || in_array('3', $project['level'])
71 $rank['first_page_num'] = $rank['first_ten_pages_num'] = $rank['indexed_pages_num'] = $external_links['total'] = '-'; 71 $rank['first_page_num'] = $rank['first_ten_pages_num'] = $rank['indexed_pages_num'] = $external_links['total'] = '-';
72 } 72 }
73 } 73 }
@@ -64,7 +64,8 @@ class Channel extends Base @@ -64,7 +64,8 @@ class Channel extends Base
64 return $sales_id; 64 return $sales_id;
65 } 65 }
66 $channel_alias = self::where('id', $user['channel_id'])->value('alias'); 66 $channel_alias = self::where('id', $user['channel_id'])->value('alias');
67 - $channel_alias = $channel_alias . '-' . $user['name']; 67 + $channel_mobile = self::where('id', $user['channel_id'])->value('contact_mobile');
  68 + $channel_alias = $channel_alias . '-' . $user['name'].'-'.$channel_mobile;
68 Cache::put('channel_alias_'.$sales_id,$channel_alias,24 * 3600); 69 Cache::put('channel_alias_'.$sales_id,$channel_alias,24 * 3600);
69 } 70 }
70 return $channel_alias; 71 return $channel_alias;
@@ -754,6 +754,7 @@ Route::middleware(['bloginauth'])->group(function () { @@ -754,6 +754,7 @@ Route::middleware(['bloginauth'])->group(function () {
754 Route::prefix('geo_result')->group(function () { 754 Route::prefix('geo_result')->group(function () {
755 Route::any('/getList', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class,'getList'])->name('geo_result_getList'); 755 Route::any('/getList', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class,'getList'])->name('geo_result_getList');
756 Route::any('/getInfo', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class,'getInfo'])->name('geo_result_getInfo'); 756 Route::any('/getInfo', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class,'getInfo'])->name('geo_result_getInfo');
  757 + Route::any('/getLabel', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class,'getLabel'])->name('geo_result_getLabel');
757 Route::any('/getType', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class, 'getType'])->name('geo_result_getType');//geo设置类型 758 Route::any('/getType', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class, 'getType'])->name('geo_result_getType');//geo设置类型
758 Route::any('/getCount', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class, 'getCount'])->name('geo_result_getCount');//geo设置类型统计数量 759 Route::any('/getCount', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class, 'getCount'])->name('geo_result_getCount');//geo设置类型统计数量
759 Route::any('/countQuantity', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class, 'countQuantity'])->name('geo_result_countQuantity');//geo统计 760 Route::any('/countQuantity', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class, 'countQuantity'])->name('geo_result_countQuantity');//geo统计