Merge remote-tracking branch 'origin/master' into akun
正在显示
15 个修改的文件
包含
92 行增加
和
34 行删除
| @@ -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统计 |
-
请 注册 或 登录 后发表评论