Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into develop
正在显示
21 个修改的文件
包含
167 行增加
和
101 行删除
| @@ -4,12 +4,15 @@ namespace App\Console\Commands\DayCount; | @@ -4,12 +4,15 @@ namespace App\Console\Commands\DayCount; | ||
| 4 | 4 | ||
| 5 | use App\Helper\Common; | 5 | use App\Helper\Common; |
| 6 | use App\Helper\FormGlobalsoApi; | 6 | use App\Helper\FormGlobalsoApi; |
| 7 | +use App\Models\Domain\DomainInfo; | ||
| 7 | use App\Models\Project\DeployBuild; | 8 | use App\Models\Project\DeployBuild; |
| 8 | use App\Models\Project\DeployOptimize; | 9 | use App\Models\Project\DeployOptimize; |
| 9 | use App\Models\Project\Project; | 10 | use App\Models\Project\Project; |
| 11 | +use App\Services\ProjectServer; | ||
| 10 | use Carbon\Carbon; | 12 | use Carbon\Carbon; |
| 11 | use Illuminate\Console\Command; | 13 | use Illuminate\Console\Command; |
| 12 | use Illuminate\Support\Facades\DB; | 14 | use Illuminate\Support\Facades\DB; |
| 15 | +use Illuminate\Support\Facades\Log; | ||
| 13 | 16 | ||
| 14 | class Count extends Command | 17 | class Count extends Command |
| 15 | { | 18 | { |
| @@ -28,6 +31,7 @@ class Count extends Command | @@ -28,6 +31,7 @@ class Count extends Command | ||
| 28 | * @var string | 31 | * @var string |
| 29 | */ | 32 | */ |
| 30 | protected $description = '统计昨日数据'; | 33 | protected $description = '统计昨日数据'; |
| 34 | + | ||
| 31 | /** | 35 | /** |
| 32 | * @name :(定时执行生成昨日数据统计)handle | 36 | * @name :(定时执行生成昨日数据统计)handle |
| 33 | * @author :lyh | 37 | * @author :lyh |
| @@ -39,35 +43,48 @@ class Count extends Command | @@ -39,35 +43,48 @@ class Count extends Command | ||
| 39 | $list = DB::table('gl_project')->where('gl_project.extend_type','!=',5) | 43 | $list = DB::table('gl_project')->where('gl_project.extend_type','!=',5) |
| 40 | ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id') | 44 | ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id') |
| 41 | ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') | 45 | ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') |
| 42 | - ->select($this->selectParam())->get()->toArray(); | ||
| 43 | - $data = []; | ||
| 44 | - $yesterday = Carbon::yesterday()->toDateString(); | ||
| 45 | - foreach ($list as $v){ | ||
| 46 | - $v = (array)$v; | ||
| 47 | - if($v['domain'] != ''){ | ||
| 48 | - $v['test_domain'] = $v['domain']; | 46 | + ->select($this->selectParam())->get(); |
| 47 | + try { | ||
| 48 | + if(!empty($list)){ | ||
| 49 | + $list = $list->toArray(); | ||
| 50 | + $data = []; | ||
| 51 | + $yesterday = Carbon::yesterday()->toDateString(); | ||
| 52 | + $domainInfo = new DomainInfo(); | ||
| 53 | + foreach ($list as $v){ | ||
| 54 | + $v = (array)$v; | ||
| 55 | + if(!empty($v['domain'])){ | ||
| 56 | + $info = $domainInfo->read(['id'=>$v['domain']]); | ||
| 57 | + if($info !== false){ | ||
| 58 | + $v['test_domain'] = $info['domain']; | ||
| 59 | + } | ||
| 60 | + } | ||
| 61 | + $arr = []; | ||
| 62 | + //统计时间 | ||
| 63 | + $arr['date'] = $yesterday; | ||
| 64 | + ProjectServer::useProject($v['id']); | ||
| 65 | + //pv统计 | ||
| 66 | + $arr['pv_num'] = $this->pv_num($yesterday,$v['test_domain']); | ||
| 67 | + //ip统计 | ||
| 68 | + $arr['ip_num'] = $this->ip_num($yesterday,$v['test_domain']); | ||
| 69 | + DB::disconnect('custom_mysql'); | ||
| 70 | + //服务达标天数 | ||
| 71 | + $arr['compliance_day'] = $this->compliance_day($v['id']); | ||
| 72 | + //剩余服务时常 | ||
| 73 | + $arr['service_day'] = ((int)$v['service_duration'] - (int)$arr['compliance_day']) > 0 ? ((int)$v['service_duration'] - (int)$arr['compliance_day']) : 0; | ||
| 74 | + //项目id | ||
| 75 | + $arr['project_id'] = $v['project_id']; | ||
| 76 | + $arr['created_at'] = date('Y-m-d H:i:s'); | ||
| 77 | + $arr['updated_at'] = date('Y-m-d H:i:s'); | ||
| 78 | + //询盘统计 | ||
| 79 | + $arr = $this->inquiry($arr,$v['test_domain']); | ||
| 80 | + $data[] = $arr; | ||
| 81 | + } | ||
| 82 | + //判断数据是否存在 | ||
| 83 | + DB::table('gl_count')->insert($data); | ||
| 49 | } | 84 | } |
| 50 | - $arr = []; | ||
| 51 | - //统计时间 | ||
| 52 | - $arr['date'] = $yesterday; | ||
| 53 | - //pv统计 | ||
| 54 | - $arr['pv_num'] = $this->pv_num($yesterday,$v['test_domain']); | ||
| 55 | - //ip统计 | ||
| 56 | - $arr['ip_num'] = $this->ip_num($yesterday,$v['test_domain']); | ||
| 57 | - //服务达标天数 | ||
| 58 | - $arr['compliance_day'] = $this->compliance_day($v['test_domain']); | ||
| 59 | - //剩余服务时常 | ||
| 60 | - $arr['service_day'] = ((int)$v['service_duration'] - (int)$arr['compliance_day']) > 0 ? ((int)$v['service_duration'] - (int)$arr['compliance_day']) : 0; | ||
| 61 | - //项目id | ||
| 62 | - $arr['project_id'] = $v['project_id']; | ||
| 63 | - $arr['created_at'] = date('Y-m-d H:i:s'); | ||
| 64 | - $arr['updated_at'] = date('Y-m-d H:i:s'); | ||
| 65 | - //询盘统计 | ||
| 66 | - $arr = $this->inquiry($arr,$v['test_domain']); | ||
| 67 | - $data[] = $arr; | 85 | + }catch (\Exception $e){ |
| 86 | + Log::error('同步数据执行失败'); | ||
| 68 | } | 87 | } |
| 69 | - //判断数据是否存在 | ||
| 70 | - DB::table('gl_count')->insert($data); | ||
| 71 | echo $this->error; | 88 | echo $this->error; |
| 72 | } | 89 | } |
| 73 | 90 | ||
| @@ -78,7 +95,7 @@ class Count extends Command | @@ -78,7 +95,7 @@ class Count extends Command | ||
| 78 | * @time :2023/6/14 15:40 | 95 | * @time :2023/6/14 15:40 |
| 79 | */ | 96 | */ |
| 80 | public function pv_num($yesterday,$domain){ | 97 | public function pv_num($yesterday,$domain){ |
| 81 | - $pv = DB::table('gl_customer_visit_item')->whereDate('updated_date', $yesterday)->where('domain',$domain)->count(); | 98 | + $pv = DB::connection('custom_mysql')->table('gl_customer_visit_item')->whereDate('updated_date', $yesterday)->where('domain',$domain)->count(); |
| 82 | return $pv; | 99 | return $pv; |
| 83 | } | 100 | } |
| 84 | 101 | ||
| @@ -89,7 +106,7 @@ class Count extends Command | @@ -89,7 +106,7 @@ class Count extends Command | ||
| 89 | * @time :2023/6/14 15:40 | 106 | * @time :2023/6/14 15:40 |
| 90 | */ | 107 | */ |
| 91 | public function ip_num($yesterday,$domain){ | 108 | public function ip_num($yesterday,$domain){ |
| 92 | - $ip = DB::table('gl_customer_visit')->whereDate('updated_date', $yesterday)->where('domain',$domain)->count(); | 109 | + $ip = DB::connection('custom_mysql')->table('gl_customer_visit')->whereDate('updated_date', $yesterday)->where('domain',$domain)->count(); |
| 93 | return $ip; | 110 | return $ip; |
| 94 | } | 111 | } |
| 95 | 112 | ||
| @@ -150,7 +167,7 @@ class Count extends Command | @@ -150,7 +167,7 @@ class Count extends Command | ||
| 150 | */ | 167 | */ |
| 151 | public function selectParam(){ | 168 | public function selectParam(){ |
| 152 | $select = [ | 169 | $select = [ |
| 153 | - 'gl_project.id AS user_id', | 170 | + 'gl_project.id AS id', |
| 154 | 'gl_project.extend_type AS extend_type', | 171 | 'gl_project.extend_type AS extend_type', |
| 155 | 'gl_project_deploy_build.test_domain AS test_domain', | 172 | 'gl_project_deploy_build.test_domain AS test_domain', |
| 156 | 'gl_project_deploy_optimize.domain AS domain', | 173 | 'gl_project_deploy_optimize.domain AS domain', |
| @@ -38,7 +38,7 @@ class InquiryDelay extends Command | @@ -38,7 +38,7 @@ class InquiryDelay extends Command | ||
| 38 | { | 38 | { |
| 39 | $inquiryInfoModel = new InquiryInfo(); | 39 | $inquiryInfoModel = new InquiryInfo(); |
| 40 | $param = $inquiryInfoModel->formatQuery(['status'=>$inquiryInfoModel::STATUS_FOUR])->orderBy('send_time','asc')->first(); | 40 | $param = $inquiryInfoModel->formatQuery(['status'=>$inquiryInfoModel::STATUS_FOUR])->orderBy('send_time','asc')->first(); |
| 41 | - if($param !== false){ | 41 | + if(!empty($param)){ |
| 42 | $time = date('Y-m-d H:i:s'); | 42 | $time = date('Y-m-d H:i:s'); |
| 43 | if($time >= $param['send_time']){ | 43 | if($time >= $param['send_time']){ |
| 44 | $data = []; | 44 | $data = []; |
| @@ -3,6 +3,8 @@ | @@ -3,6 +3,8 @@ | ||
| 3 | namespace App\Console\Commands\MonthlyCount; | 3 | namespace App\Console\Commands\MonthlyCount; |
| 4 | 4 | ||
| 5 | use App\Helper\FormGlobalsoApi; | 5 | use App\Helper\FormGlobalsoApi; |
| 6 | +use App\Models\Domain\DomainInfo; | ||
| 7 | +use App\Services\ProjectServer; | ||
| 6 | use Carbon\Carbon; | 8 | use Carbon\Carbon; |
| 7 | use Illuminate\Console\Command; | 9 | use Illuminate\Console\Command; |
| 8 | use Illuminate\Support\Facades\DB; | 10 | use Illuminate\Support\Facades\DB; |
| @@ -41,16 +43,22 @@ class InquiryMonthlyCount extends Command | @@ -41,16 +43,22 @@ class InquiryMonthlyCount extends Command | ||
| 41 | $startTime = Carbon::now()->subMonth()->startOfMonth()->toDateString(); | 43 | $startTime = Carbon::now()->subMonth()->startOfMonth()->toDateString(); |
| 42 | // 获取上个月的结束时间 | 44 | // 获取上个月的结束时间 |
| 43 | $endTime = Carbon::now()->subMonth()->endOfMonth()->toDateString(); | 45 | $endTime = Carbon::now()->subMonth()->endOfMonth()->toDateString(); |
| 46 | + $domainInfo = new DomainInfo(); | ||
| 44 | foreach ($list as $value){ | 47 | foreach ($list as $value){ |
| 45 | $value = (array)$value; | 48 | $value = (array)$value; |
| 46 | - if($value['domain'] != ''){ | ||
| 47 | - $value['test_domain'] = $value['domain']; | 49 | + if(!empty($value['domain'])){ |
| 50 | + $info = $domainInfo->read(['id'=>$value['domain']]); | ||
| 51 | + if($info !== false){ | ||
| 52 | + $value['test_domain'] = $value['domain']; | ||
| 53 | + } | ||
| 48 | } | 54 | } |
| 49 | $arr = []; | 55 | $arr = []; |
| 50 | //按月统计询盘记录 | 56 | //按月统计询盘记录 |
| 51 | $arr = $this->inquiryCount($arr,$startTime,$endTime,$value['test_domain']); | 57 | $arr = $this->inquiryCount($arr,$startTime,$endTime,$value['test_domain']); |
| 52 | $arr = $this->flowCount($arr,$startTime,$endTime,$value['project_id']); | 58 | $arr = $this->flowCount($arr,$startTime,$endTime,$value['project_id']); |
| 59 | + ProjectServer::useProject($value['project_id']); | ||
| 53 | $arr = $this->sourceCount($arr,$value['test_domain'],$startTime,$endTime); | 60 | $arr = $this->sourceCount($arr,$value['test_domain'],$startTime,$endTime); |
| 61 | + DB::disconnect('custom_mysql'); | ||
| 54 | $arr['created_at'] = date('Y-m-d H:i:s'); | 62 | $arr['created_at'] = date('Y-m-d H:i:s'); |
| 55 | $arr['updated_at'] = date('Y-m-d H:i:s'); | 63 | $arr['updated_at'] = date('Y-m-d H:i:s'); |
| 56 | $arr['project_id'] = $value['project_id']; | 64 | $arr['project_id'] = $value['project_id']; |
| @@ -128,21 +136,21 @@ class InquiryMonthlyCount extends Command | @@ -128,21 +136,21 @@ class InquiryMonthlyCount extends Command | ||
| 128 | */ | 136 | */ |
| 129 | public function sourceCount(&$arr,$domain,$startTime,$endTime){ | 137 | public function sourceCount(&$arr,$domain,$startTime,$endTime){ |
| 130 | //访问来源前10 | 138 | //访问来源前10 |
| 131 | - $source = DB::table('gl_customer_visit') | 139 | + $source = DB::connection('custom_mysql')->table('gl_customer_visit') |
| 132 | ->select('referrer_url', DB::raw('COUNT(*) as count')) | 140 | ->select('referrer_url', DB::raw('COUNT(*) as count')) |
| 133 | ->groupBy('referrer_url')->where(['domain'=>$domain]) | 141 | ->groupBy('referrer_url')->where(['domain'=>$domain]) |
| 134 | ->whereBetween('updated_date', [$startTime,$endTime]) | 142 | ->whereBetween('updated_date', [$startTime,$endTime]) |
| 135 | ->orderByDesc('count')->limit(10)->get()->toArray(); | 143 | ->orderByDesc('count')->limit(10)->get()->toArray(); |
| 136 | $arr['source'] = json_encode($source); | 144 | $arr['source'] = json_encode($source); |
| 137 | //访问国家前15 | 145 | //访问国家前15 |
| 138 | - $source_country = DB::table('gl_customer_visit') | 146 | + $source_country = DB::connection('custom_mysql')->table('gl_customer_visit') |
| 139 | ->select('country',DB::raw('COUNT(*) as ip'),DB::raw('SUM(depth) as pv')) | 147 | ->select('country',DB::raw('COUNT(*) as ip'),DB::raw('SUM(depth) as pv')) |
| 140 | ->groupBy('country')->where(['domain'=>$domain]) | 148 | ->groupBy('country')->where(['domain'=>$domain]) |
| 141 | ->whereBetween('updated_date', [$startTime,$endTime]) | 149 | ->whereBetween('updated_date', [$startTime,$endTime]) |
| 142 | ->orderBy('ip','desc')->limit(15)->get()->toArray(); | 150 | ->orderBy('ip','desc')->limit(15)->get()->toArray(); |
| 143 | $arr['source_country'] = json_encode($source_country); | 151 | $arr['source_country'] = json_encode($source_country); |
| 144 | //受访界面前15 | 152 | //受访界面前15 |
| 145 | - $referrer_url = DB::table('gl_customer_visit') | 153 | + $referrer_url = DB::connection('custom_mysql')->table('gl_customer_visit') |
| 146 | ->select('url',DB::raw('COUNT(*) as num')) | 154 | ->select('url',DB::raw('COUNT(*) as num')) |
| 147 | ->orderBy('num','desc')->where(['domain'=>$domain]) | 155 | ->orderBy('num','desc')->where(['domain'=>$domain]) |
| 148 | ->whereBetween('updated_date', [$startTime,$endTime]) | 156 | ->whereBetween('updated_date', [$startTime,$endTime]) |
| @@ -150,7 +158,7 @@ class InquiryMonthlyCount extends Command | @@ -150,7 +158,7 @@ class InquiryMonthlyCount extends Command | ||
| 150 | ->limit(15)->get()->toArray(); | 158 | ->limit(15)->get()->toArray(); |
| 151 | $arr['referrer_url'] = json_encode($referrer_url); | 159 | $arr['referrer_url'] = json_encode($referrer_url); |
| 152 | //访问端口 | 160 | //访问端口 |
| 153 | - $referrer_port = DB::table('gl_customer_visit') | 161 | + $referrer_port = DB::connection('custom_mysql')->table('gl_customer_visit') |
| 154 | ->select('device_port',DB::raw('COUNT(*) as num')) | 162 | ->select('device_port',DB::raw('COUNT(*) as num')) |
| 155 | ->orderBy('num','desc')->where(['domain'=>$domain]) | 163 | ->orderBy('num','desc')->where(['domain'=>$domain]) |
| 156 | ->whereBetween('updated_date', [$startTime,$endTime]) | 164 | ->whereBetween('updated_date', [$startTime,$endTime]) |
| @@ -168,7 +176,7 @@ class InquiryMonthlyCount extends Command | @@ -168,7 +176,7 @@ class InquiryMonthlyCount extends Command | ||
| 168 | */ | 176 | */ |
| 169 | public function selectParam(){ | 177 | public function selectParam(){ |
| 170 | $select = [ | 178 | $select = [ |
| 171 | - 'gl_project.id AS user_id', | 179 | + 'gl_project.id AS id', |
| 172 | 'gl_project.extend_type AS extend_type', | 180 | 'gl_project.extend_type AS extend_type', |
| 173 | 'gl_project_deploy_build.test_domain AS test_domain', | 181 | 'gl_project_deploy_build.test_domain AS test_domain', |
| 174 | 'gl_project_deploy_optimize.domain AS domain', | 182 | 'gl_project_deploy_optimize.domain AS domain', |
| @@ -46,6 +46,8 @@ class Demo extends Command | @@ -46,6 +46,8 @@ class Demo extends Command | ||
| 46 | */ | 46 | */ |
| 47 | public function handle() | 47 | public function handle() |
| 48 | { | 48 | { |
| 49 | + $domain = parse_url('https//:dev.golbalso.site/'); | ||
| 50 | + dd($domain); | ||
| 49 | echo time() . PHP_EOL; | 51 | echo time() . PHP_EOL; |
| 50 | $blogModel = new Image(); | 52 | $blogModel = new Image(); |
| 51 | $list = $blogModel->list(); | 53 | $list = $blogModel->list(); |
| @@ -44,8 +44,7 @@ class TaskController extends BaseController | @@ -44,8 +44,7 @@ class TaskController extends BaseController | ||
| 44 | $map = $this->searchParam($task,$taskOwnerModel); | 44 | $map = $this->searchParam($task,$taskOwnerModel); |
| 45 | $manager_list = $taskOwnerModel->formatQuery($map)->select('manage_id', DB::raw('COUNT(*) as count')) | 45 | $manager_list = $taskOwnerModel->formatQuery($map)->select('manage_id', DB::raw('COUNT(*) as count')) |
| 46 | ->groupBy('manage_id')->get()->toArray(); | 46 | ->groupBy('manage_id')->get()->toArray(); |
| 47 | - var_dump($manager_list); | ||
| 48 | - die(); | 47 | + |
| 49 | $managerModel = new Manage(); | 48 | $managerModel = new Manage(); |
| 50 | foreach ($manager_list as $k => $v){ | 49 | foreach ($manager_list as $k => $v){ |
| 51 | $ids = $taskOwnerModel->where('manage_id', $v['manage_id'])->pluck('task_id')->toArray(); | 50 | $ids = $taskOwnerModel->where('manage_id', $v['manage_id'])->pluck('task_id')->toArray(); |
| @@ -76,19 +75,23 @@ class TaskController extends BaseController | @@ -76,19 +75,23 @@ class TaskController extends BaseController | ||
| 76 | $map['manage_id'] = $this->map['manage_id']; | 75 | $map['manage_id'] = $this->map['manage_id']; |
| 77 | } | 76 | } |
| 78 | } | 77 | } |
| 79 | - }elseif (isset($this->map['content']) && !empty($this->map['content'])){ | ||
| 80 | - $ids = $task->where('content', 'like','%'.$this->map['content'].'%')->pluck('id')->toArray(); | ||
| 81 | - $manage_ids = $taskOwnerModel->formatQuery(['task_id'=>['in',$ids]])->pluck('manage_id')->toArray(); | ||
| 82 | - $map['manage_id'] = ['in',$manage_ids]; | ||
| 83 | }elseif (isset($this->map['search_type']) && !empty($this->map['search_type'])){ | 78 | }elseif (isset($this->map['search_type']) && !empty($this->map['search_type'])){ |
| 84 | if(isset($this->map['search']) && !empty($this->map['search'])) { | 79 | if(isset($this->map['search']) && !empty($this->map['search'])) { |
| 85 | $projectModel = new Project(); | 80 | $projectModel = new Project(); |
| 86 | - $ids = $projectModel->where('title', 'like', '%' . $this->map['search'] . '%')->pluck('id')->toArray(); | ||
| 87 | - $manage_ids = $taskOwnerModel->formatQuery(['project'=>['in',$ids]])->pluck('manage_id')->toArray(); | ||
| 88 | - $map['manage_id'] = ['in',$manage_ids]; | 81 | + if($this->map['search_type'] == 'project'){ |
| 82 | + $ids = $projectModel->where('title', 'like', '%' . $this->map['search'] . '%')->pluck('id')->toArray(); | ||
| 83 | + $manage_ids = $taskOwnerModel->formatQuery(['project'=>['in',$ids]])->pluck('manage_id')->toArray(); | ||
| 84 | + $map['manage_id'] = ['in',$manage_ids]; | ||
| 85 | + }else{ | ||
| 86 | + $ids = $task->where('content', 'like','%'.$this->map['search'].'%')->pluck('id')->toArray(); | ||
| 87 | + $manage_ids = $taskOwnerModel->formatQuery(['task_id'=>['in',$ids]])->pluck('manage_id')->toArray(); | ||
| 88 | + $map['manage_id'] = ['in',$manage_ids]; | ||
| 89 | + } | ||
| 89 | } | 90 | } |
| 90 | }else{ | 91 | }else{ |
| 91 | - $map['manage_id'] = $this->map['manage_id']; | 92 | + if(isset($this->map['search_type']) && !empty($this->map['search_type'])){ |
| 93 | + $map['manage_id'] = $this->map['manage_id']; | ||
| 94 | + } | ||
| 92 | } | 95 | } |
| 93 | 96 | ||
| 94 | return $map; | 97 | return $map; |
| @@ -30,8 +30,8 @@ class ProjectMenuController extends BaseController | @@ -30,8 +30,8 @@ class ProjectMenuController extends BaseController | ||
| 30 | * @time :2023/6/21 17:24 | 30 | * @time :2023/6/21 17:24 |
| 31 | */ | 31 | */ |
| 32 | public function lists(ProjectMenuLogic $projectMenuLogic){ | 32 | public function lists(ProjectMenuLogic $projectMenuLogic){ |
| 33 | - $this->order = 'sort'; | ||
| 34 | - $lists = $projectMenuLogic->MenuList($this->map,$this->order); | 33 | + |
| 34 | + $lists = $projectMenuLogic->MenuList($this->map); | ||
| 35 | $this->response('success',Code::SUCCESS,$lists); | 35 | $this->response('success',Code::SUCCESS,$lists); |
| 36 | } | 36 | } |
| 37 | 37 |
| @@ -29,11 +29,17 @@ class ComController extends BaseController | @@ -29,11 +29,17 @@ class ComController extends BaseController | ||
| 29 | $projectRoleModel = new ProjectRoleModel(); | 29 | $projectRoleModel = new ProjectRoleModel(); |
| 30 | $info = $projectRoleModel->read(['id'=>$this->user['role_id']]); | 30 | $info = $projectRoleModel->read(['id'=>$this->user['role_id']]); |
| 31 | $info['role_menu'] = trim($info['role_menu'],','); | 31 | $info['role_menu'] = trim($info['role_menu'],','); |
| 32 | - $lists = $projectMenuModel->where(['status'=>0,'is_role'=>0])->whereIn('id',explode(',',$info['role_menu']))->get(); | 32 | + $this->map = [ |
| 33 | + 'status'=>0, | ||
| 34 | + 'is_role'=>0, | ||
| 35 | + 'id'=>['in',explode(',',$info['role_menu'])] | ||
| 36 | + ]; | ||
| 33 | }else{ | 37 | }else{ |
| 34 | - $lists = $projectMenuModel->where(['is_role'=>0])->get(); | 38 | + $this->map = [ |
| 39 | + 'status'=>0, | ||
| 40 | + ]; | ||
| 35 | } | 41 | } |
| 36 | - $lists = $lists->toArray(); | 42 | + $lists = $projectMenuModel->list($this->map,'sort'); |
| 37 | $menu = array(); | 43 | $menu = array(); |
| 38 | foreach ($lists as $k => $v){ | 44 | foreach ($lists as $k => $v){ |
| 39 | $v = (array)$v; | 45 | $v = (array)$v; |
| @@ -73,7 +79,7 @@ class ComController extends BaseController | @@ -73,7 +79,7 @@ class ComController extends BaseController | ||
| 73 | ]); | 79 | ]); |
| 74 | $userLogic = new UserLogic(); | 80 | $userLogic = new UserLogic(); |
| 75 | $this->param['id'] = $this->uid; | 81 | $this->param['id'] = $this->uid; |
| 76 | - $userLogic->edits($this->param); | 82 | + $userLogic->edits(); |
| 77 | $this->response('编辑成功'); | 83 | $this->response('编辑成功'); |
| 78 | } | 84 | } |
| 79 | 85 |
| @@ -7,6 +7,7 @@ use App\Helper\Common; | @@ -7,6 +7,7 @@ use App\Helper\Common; | ||
| 7 | use App\Http\Controllers\Controller; | 7 | use App\Http\Controllers\Controller; |
| 8 | use App\Http\Logic\Aside\Project\ProjectLogic; | 8 | use App\Http\Logic\Aside\Project\ProjectLogic; |
| 9 | use App\Http\Requests\Scene; | 9 | use App\Http\Requests\Scene; |
| 10 | +use App\Models\Domain\DomainInfo; | ||
| 10 | use App\Models\File\File; | 11 | use App\Models\File\File; |
| 11 | use App\Models\File\Image; | 12 | use App\Models\File\Image; |
| 12 | use App\Models\User\User as UserModel; | 13 | use App\Models\User\User as UserModel; |
| @@ -184,7 +184,8 @@ class LoginController extends BaseController | @@ -184,7 +184,8 @@ class LoginController extends BaseController | ||
| 184 | $message = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOERROR); | 184 | $message = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOERROR); |
| 185 | $jsonData = json_encode($message); | 185 | $jsonData = json_encode($message); |
| 186 | $arrayData = json_decode($jsonData, true); | 186 | $arrayData = json_decode($jsonData, true); |
| 187 | - $data = $this->setWechat($arrayData['ToUserName'],$arrayData['EventKey']); | 187 | + //gh_27174ac5c9d8,gh_27174ac5c9d8 |
| 188 | + $data = $this->setWechat($arrayData['FromUserName'],$arrayData['EventKey']); | ||
| 188 | if($data['code'] == 0){//登录失败,请先绑定 | 189 | if($data['code'] == 0){//登录失败,请先绑定 |
| 189 | $resMessage = $data['message']; | 190 | $resMessage = $data['message']; |
| 190 | }elseif($data['code'] == 1){ | 191 | }elseif($data['code'] == 1){ |
| @@ -296,21 +297,4 @@ class LoginController extends BaseController | @@ -296,21 +297,4 @@ class LoginController extends BaseController | ||
| 296 | return $data; | 297 | return $data; |
| 297 | } | 298 | } |
| 298 | 299 | ||
| 299 | - public function ceshi(){ | ||
| 300 | - $templateModel = new TemplateModule(); | ||
| 301 | - $list = $templateModel->list(); | ||
| 302 | - $imageModel = new ImageModel(); | ||
| 303 | - foreach ($list as $k=>$v){ | ||
| 304 | - if (strpos($v['image'], '.') !== false) { | ||
| 305 | - $v['image'] = '/upload'.$v['image']; | ||
| 306 | - }else{ | ||
| 307 | - $info = $imageModel->read(['hash'=>$v['image']]); | ||
| 308 | - if($info !== false){ | ||
| 309 | - $v['image'] = $info['path']; | ||
| 310 | - } | ||
| 311 | - } | ||
| 312 | - $templateModel->edit(['image'=>$v['image']],['id'=>$v['id']]); | ||
| 313 | - } | ||
| 314 | - $this->response('success'); | ||
| 315 | - } | ||
| 316 | } | 300 | } |
| @@ -54,7 +54,7 @@ class UserController extends BaseController | @@ -54,7 +54,7 @@ class UserController extends BaseController | ||
| 54 | * @author :liyuhang | 54 | * @author :liyuhang |
| 55 | * @method | 55 | * @method |
| 56 | */ | 56 | */ |
| 57 | - public function edit(UserRequest $request,UserLogic $userLogic){ | 57 | + public function edit(Request $request,UserLogic $userLogic){ |
| 58 | $request->validate([ | 58 | $request->validate([ |
| 59 | 'id'=>['required'] | 59 | 'id'=>['required'] |
| 60 | ],[ | 60 | ],[ |
| @@ -31,6 +31,10 @@ class DomainInfoLogic extends BaseLogic | @@ -31,6 +31,10 @@ class DomainInfoLogic extends BaseLogic | ||
| 31 | */ | 31 | */ |
| 32 | public function saveDomain() | 32 | public function saveDomain() |
| 33 | { | 33 | { |
| 34 | + $domain = parse_url($this->param['domain'], PHP_URL_HOST); | ||
| 35 | + if(!empty($domain)){ | ||
| 36 | + $this->param['domain'] = $domain['host']; | ||
| 37 | + } | ||
| 34 | //验证域名 | 38 | //验证域名 |
| 35 | $this->verifyDomain($this->param['domain'],isset($this->param['id']) ?? ''); | 39 | $this->verifyDomain($this->param['domain'],isset($this->param['id']) ?? ''); |
| 36 | if(isset($this->param['id']) && !empty($this->param['id'])){ | 40 | if(isset($this->param['id']) && !empty($this->param['id'])){ |
| @@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
| 2 | 2 | ||
| 3 | namespace App\Http\Logic\Aside\Project; | 3 | namespace App\Http\Logic\Aside\Project; |
| 4 | 4 | ||
| 5 | +use App\Models\Devops\ServerConfig; | ||
| 5 | use Illuminate\Support\Arr as SupArr; | 6 | use Illuminate\Support\Arr as SupArr; |
| 6 | use App\Helper\Arr; | 7 | use App\Helper\Arr; |
| 7 | use App\Helper\Common; | 8 | use App\Helper\Common; |
| @@ -178,8 +179,9 @@ class ProjectLogic extends BaseLogic | @@ -178,8 +179,9 @@ class ProjectLogic extends BaseLogic | ||
| 178 | protected function saveProjectDeployOptimize($deploy_optimize){ | 179 | protected function saveProjectDeployOptimize($deploy_optimize){ |
| 179 | $deployOptimizeModel = new DeployOptimize(); | 180 | $deployOptimizeModel = new DeployOptimize(); |
| 180 | if(isset($deploy_optimize['domain']) && !empty($deploy_optimize['domain'])){ | 181 | if(isset($deploy_optimize['domain']) && !empty($deploy_optimize['domain'])){ |
| 181 | - if (!preg_match('/http/', $deploy_optimize['domain'])) { | ||
| 182 | - $deploy_optimize['domain'] = 'https://'.trim($deploy_optimize['domain'],'/').'/'; | 182 | + //更改域名 |
| 183 | + if(isset($deploy_optimize['domain']) && !empty($deploy_optimize['domain'])){ | ||
| 184 | + $this->editDomainStatus($deploy_optimize['domain'],$deploy_optimize['project_id']); | ||
| 183 | } | 185 | } |
| 184 | } | 186 | } |
| 185 | if(isset($deploy_optimize['minor_languages']) && !empty($deploy_optimize['minor_languages'])){ | 187 | if(isset($deploy_optimize['minor_languages']) && !empty($deploy_optimize['minor_languages'])){ |
| @@ -258,8 +260,8 @@ class ProjectLogic extends BaseLogic | @@ -258,8 +260,8 @@ class ProjectLogic extends BaseLogic | ||
| 258 | * @time :2023/8/28 10:50 | 260 | * @time :2023/8/28 10:50 |
| 259 | */ | 261 | */ |
| 260 | public function updateServe($serve_id){ | 262 | public function updateServe($serve_id){ |
| 261 | - $domainModel = new DomainInfo(); | ||
| 262 | - $domainModel->edit(['status'=>$domainModel::STATUS_ONE],['id'=>$serve_id]); | 263 | + $serverModel = new ServerConfig(); |
| 264 | + $serverModel->edit(['status'=>$serverModel::STATUS_ONE],['id'=>$serve_id]); | ||
| 263 | return $this->success(); | 265 | return $this->success(); |
| 264 | } | 266 | } |
| 265 | 267 | ||
| @@ -355,7 +357,24 @@ class ProjectLogic extends BaseLogic | @@ -355,7 +357,24 @@ class ProjectLogic extends BaseLogic | ||
| 355 | } | 357 | } |
| 356 | 358 | ||
| 357 | 359 | ||
| 358 | - | 360 | + /** |
| 361 | + * @remark :修改域名时,同时更改其状态 | ||
| 362 | + * @name :domainStatus | ||
| 363 | + * @author :lyh | ||
| 364 | + * @method :post | ||
| 365 | + * @time :2023/9/4 14:29 | ||
| 366 | + */ | ||
| 367 | + public function editDomainStatus($domain,$project_id){ | ||
| 368 | + $domainModel = new DomainInfo(); | ||
| 369 | + //先清空上一次所绑定的域名 | ||
| 370 | + $info = $domainModel->read(['project_id'=>$project_id]); | ||
| 371 | + if($info !== false){ | ||
| 372 | + $domainModel->edit(['project_id'=>'','status'=>DomainInfo::STATUS_ZERO],['id'=>$info['id']]); | ||
| 373 | + } | ||
| 374 | + //重新设置域名 | ||
| 375 | + $domainModel->edit(['status'=>DomainInfo::STATUS_ONE,'project_id'=>$project_id],['id'=>$domain]); | ||
| 376 | + return $this->success(); | ||
| 377 | + } | ||
| 359 | 378 | ||
| 360 | 379 | ||
| 361 | 380 |
| @@ -74,7 +74,7 @@ class UserLogic extends BaseLogic | @@ -74,7 +74,7 @@ class UserLogic extends BaseLogic | ||
| 74 | } | 74 | } |
| 75 | $this->param['type'] = 1; | 75 | $this->param['type'] = 1; |
| 76 | $this->param['operator_id'] = $this->user['id']; | 76 | $this->param['operator_id'] = $this->user['id']; |
| 77 | - $this->edits($this->param); | 77 | + $this->edits(); |
| 78 | return $this->success(); | 78 | return $this->success(); |
| 79 | } | 79 | } |
| 80 | 80 | ||
| @@ -116,20 +116,24 @@ class UserLogic extends BaseLogic | @@ -116,20 +116,24 @@ class UserLogic extends BaseLogic | ||
| 116 | * @method :post | 116 | * @method :post |
| 117 | * @time :2023/6/17 16:41 | 117 | * @time :2023/6/17 16:41 |
| 118 | */ | 118 | */ |
| 119 | - public function edits($param){ | ||
| 120 | - //查看密码是否修改 | ||
| 121 | - $info = $this->model->read(['id'=>$param['id']]); | ||
| 122 | - $param['password'] = base64_encode(md5($param['password'])); | ||
| 123 | - if($param['password'] == $info['password']){ | ||
| 124 | - unset($param['password']); | 119 | + public function edits(){ |
| 120 | + if(!isset($this->param['password']) || empty($this->param['password'])){ | ||
| 121 | + unset($this->param['password']); | ||
| 122 | + }else{ | ||
| 123 | + $this->param['password'] = base64_encode(md5($this->param['password'])); | ||
| 124 | + } | ||
| 125 | + $info = $this->model->read(['mobile'=>$this->param['mobile'], | ||
| 126 | + 'project_id'=>$this->user['project_id'],'id'=>['!=',$this->param['id']]]); | ||
| 127 | + if($info !== false){ | ||
| 128 | + $this->fail('当前手机号码已注册'); | ||
| 125 | } | 129 | } |
| 126 | //密码加密 | 130 | //密码加密 |
| 127 | - $rs = $this->model->edit($param,['id'=>$param['id']]); | 131 | + $rs = $this->model->edit($this->param,['id'=>$this->param['id']]); |
| 128 | if($rs === false){ | 132 | if($rs === false){ |
| 129 | $this->fail('系统错误,请联系管理员'); | 133 | $this->fail('系统错误,请联系管理员'); |
| 130 | } | 134 | } |
| 131 | //清空当前用户登录缓存 | 135 | //清空当前用户登录缓存 |
| 132 | - Cache::pull($info['token']); | 136 | + Cache::pull($this->user['token']); |
| 133 | return $this->success(); | 137 | return $this->success(); |
| 134 | } | 138 | } |
| 135 | } | 139 | } |
| @@ -6,6 +6,7 @@ use App\Enums\Common\Code; | @@ -6,6 +6,7 @@ use App\Enums\Common\Code; | ||
| 6 | use App\Exceptions\AsideGlobalException; | 6 | use App\Exceptions\AsideGlobalException; |
| 7 | use App\Exceptions\BsideGlobalException; | 7 | use App\Exceptions\BsideGlobalException; |
| 8 | use App\Helper\Common; | 8 | use App\Helper\Common; |
| 9 | +use App\Models\Domain\DomainInfo; | ||
| 9 | use App\Models\Project\Project; | 10 | use App\Models\Project\Project; |
| 10 | use App\Models\Sms\SmsLog; | 11 | use App\Models\Sms\SmsLog; |
| 11 | use App\Models\User\ProjectRole as ProjectRoleModel; | 12 | use App\Models\User\ProjectRole as ProjectRoleModel; |
| @@ -55,6 +56,8 @@ class UserLoginLogic | @@ -55,6 +56,8 @@ class UserLoginLogic | ||
| 55 | } | 56 | } |
| 56 | $projectModel = new Project(); | 57 | $projectModel = new Project(); |
| 57 | $project_list = $projectModel->list(['id'=>['in',$projectArr]],'id',['id','title']); | 58 | $project_list = $projectModel->list(['id'=>['in',$projectArr]],'id',['id','title']); |
| 59 | + //登录选择项目的有效时间 | ||
| 60 | + Cache::add('login-project-'.$this->param['mobile'],1,300); | ||
| 58 | return $this->success($project_list); | 61 | return $this->success($project_list); |
| 59 | } | 62 | } |
| 60 | 63 | ||
| @@ -66,11 +69,15 @@ class UserLoginLogic | @@ -66,11 +69,15 @@ class UserLoginLogic | ||
| 66 | * @time :2023/6/17 16:43 | 69 | * @time :2023/6/17 16:43 |
| 67 | */ | 70 | */ |
| 68 | public function projectLogin(){ | 71 | public function projectLogin(){ |
| 72 | + if(!Cache::get('login-project-'.$this->param['mobile'])){ | ||
| 73 | + $this->fail('当前用户选择项目有限时间已过期'); | ||
| 74 | + } | ||
| 69 | //获取项目详情 | 75 | //获取项目详情 |
| 70 | $info = $this->assembleParam($this->param['mobile'],$this->param['project_id']); | 76 | $info = $this->assembleParam($this->param['mobile'],$this->param['project_id']); |
| 71 | if(isset($info['token']) && !empty($info['token'])){ | 77 | if(isset($info['token']) && !empty($info['token'])){ |
| 72 | //清除上一次用户缓存 | 78 | //清除上一次用户缓存 |
| 73 | Cache::pull($info['token']); | 79 | Cache::pull($info['token']); |
| 80 | + Cache::pull('login-project-'.$this->param['mobile']); | ||
| 74 | } | 81 | } |
| 75 | //生成新token | 82 | //生成新token |
| 76 | $token = md5(uniqid().$info['id']); | 83 | $token = md5(uniqid().$info['id']); |
| @@ -157,7 +164,7 @@ class UserLoginLogic | @@ -157,7 +164,7 @@ class UserLoginLogic | ||
| 157 | $info['hagro'] = $project['hagro'] ?? ''; | 164 | $info['hagro'] = $project['hagro'] ?? ''; |
| 158 | $info['plan'] = Project::planMap()[$project['deploy_build']['plan']]; | 165 | $info['plan'] = Project::planMap()[$project['deploy_build']['plan']]; |
| 159 | $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? | 166 | $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? |
| 160 | - $project['deploy_optimize']['domain'] : ($project['deploy_build']['test_domain'] ?? '')); | 167 | + ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? '')); |
| 161 | //保存项目缓存 | 168 | //保存项目缓存 |
| 162 | Cache::put('user-'.$info['project_id'],$project,$minutes = null); | 169 | Cache::put('user-'.$info['project_id'],$project,$minutes = null); |
| 163 | return $this->success($info); | 170 | return $this->success($info); |
| @@ -171,7 +178,7 @@ class UserLoginLogic | @@ -171,7 +178,7 @@ class UserLoginLogic | ||
| 171 | * @time :2023/8/29 15:26 | 178 | * @time :2023/8/29 15:26 |
| 172 | */ | 179 | */ |
| 173 | public function assembleParam($mobile,$project_id){ | 180 | public function assembleParam($mobile,$project_id){ |
| 174 | - $info = $this->model->read(['mobile'=>$mobile,'project_id'=>$project_id],['id','mobile','status','role_id','token','name','project_id']); | 181 | + $info = $this->model->read(['mobile'=>$mobile,'project_id'=>$project_id],['id','mobile','status','role_id','token','name','wechat','project_id']); |
| 175 | //获取项目详情 | 182 | //获取项目详情 |
| 176 | $project = $this->getProjectInfo($project_id); | 183 | $project = $this->getProjectInfo($project_id); |
| 177 | $info['title'] = $project['title'] ?? ''; | 184 | $info['title'] = $project['title'] ?? ''; |
| @@ -181,13 +188,14 @@ class UserLoginLogic | @@ -181,13 +188,14 @@ class UserLoginLogic | ||
| 181 | $info['hagro'] = $project['hagro'] ?? ''; | 188 | $info['hagro'] = $project['hagro'] ?? ''; |
| 182 | $info['plan'] = Project::planMap()[$project['deploy_build']['plan']]; | 189 | $info['plan'] = Project::planMap()[$project['deploy_build']['plan']]; |
| 183 | $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? | 190 | $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? |
| 184 | - $project['deploy_optimize']['domain'] : ($project['deploy_build']['test_domain'] ?? '')); | 191 | + ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? '')); |
| 185 | //保存项目缓存 | 192 | //保存项目缓存 |
| 186 | Cache::put('user-'.$info['project_id'],$project,$minutes = null); | 193 | Cache::put('user-'.$info['project_id'],$project,$minutes = null); |
| 187 | return $this->success($info); | 194 | return $this->success($info); |
| 188 | } | 195 | } |
| 189 | 196 | ||
| 190 | 197 | ||
| 198 | + | ||
| 191 | /** | 199 | /** |
| 192 | * @remark :获取项目数据详情 | 200 | * @remark :获取项目数据详情 |
| 193 | * @name :getProjectInfo | 201 | * @name :getProjectInfo |
| @@ -9,6 +9,8 @@ | @@ -9,6 +9,8 @@ | ||
| 9 | 9 | ||
| 10 | namespace App\Models\ASide; | 10 | namespace App\Models\ASide; |
| 11 | 11 | ||
| 12 | +use App\Helper\AyrShare as AyrShareHelper; | ||
| 13 | +use App\Models\AyrShare\AyrShare as AyrShareModel; | ||
| 12 | use App\Models\Base; | 14 | use App\Models\Base; |
| 13 | use App\Services\ProjectServer; | 15 | use App\Services\ProjectServer; |
| 14 | use Illuminate\Support\Facades\DB; | 16 | use Illuminate\Support\Facades\DB; |
| @@ -38,5 +40,4 @@ class APublicModel extends Base | @@ -38,5 +40,4 @@ class APublicModel extends Base | ||
| 38 | return ['product'=>$productNumber,'blog'=>$blogNumber,'news'=>$newsNumber]; | 40 | return ['product'=>$productNumber,'blog'=>$blogNumber,'news'=>$newsNumber]; |
| 39 | } | 41 | } |
| 40 | 42 | ||
| 41 | - | ||
| 42 | } | 43 | } |
| @@ -7,9 +7,6 @@ use App\Models\Base; | @@ -7,9 +7,6 @@ use App\Models\Base; | ||
| 7 | class AyrShare extends Base | 7 | class AyrShare extends Base |
| 8 | { | 8 | { |
| 9 | protected $table = 'gl_ayr_share'; | 9 | protected $table = 'gl_ayr_share'; |
| 10 | - //连接数据库 | ||
| 11 | - protected $connection = 'custom_mysql'; | ||
| 12 | - | ||
| 13 | 10 | ||
| 14 | const COUNT = 3; | 11 | const COUNT = 3; |
| 15 | 12 |
| @@ -15,7 +15,7 @@ use App\Models\Base; | @@ -15,7 +15,7 @@ use App\Models\Base; | ||
| 15 | class DomainInfo extends Base | 15 | class DomainInfo extends Base |
| 16 | { | 16 | { |
| 17 | const STATUS_ONE = 1; | 17 | const STATUS_ONE = 1; |
| 18 | - | 18 | + const STATUS_ZERO = 0; |
| 19 | public $btAction = [ | 19 | public $btAction = [ |
| 20 | 'create_site' => '/site?action=AddSite', | 20 | 'create_site' => '/site?action=AddSite', |
| 21 | ]; | 21 | ]; |
| @@ -51,7 +51,20 @@ class DomainInfo extends Base | @@ -51,7 +51,20 @@ class DomainInfo extends Base | ||
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | 53 | ||
| 54 | - | 54 | + /** |
| 55 | + * @remark :获取域名信息 | ||
| 56 | + * @name :getDomain | ||
| 57 | + * @author :lyh | ||
| 58 | + * @method :post | ||
| 59 | + * @time :2023/9/4 17:05 | ||
| 60 | + */ | ||
| 61 | + public function getDomain($domain){ | ||
| 62 | + $info = $this->read(['id'=>$domain]); | ||
| 63 | + if($info === false){ | ||
| 64 | + return ''; | ||
| 65 | + } | ||
| 66 | + return 'https://'.$info['domain'].'/'; | ||
| 67 | + } | ||
| 55 | 68 | ||
| 56 | 69 | ||
| 57 | } | 70 | } |
| @@ -16,7 +16,8 @@ class Visit extends Base | @@ -16,7 +16,8 @@ class Visit extends Base | ||
| 16 | 16 | ||
| 17 | //设置关联表名 | 17 | //设置关联表名 |
| 18 | protected $table = 'gl_customer_visit'; | 18 | protected $table = 'gl_customer_visit'; |
| 19 | - | 19 | + //连接数据库 |
| 20 | + protected $connection = 'custom_mysql'; | ||
| 20 | protected $appends = ['device_text']; | 21 | protected $appends = ['device_text']; |
| 21 | 22 | ||
| 22 | public static function deviceMap(){ | 23 | public static function deviceMap(){ |
| @@ -35,7 +35,6 @@ Route::middleware(['aloginauth'])->group(function () { | @@ -35,7 +35,6 @@ Route::middleware(['aloginauth'])->group(function () { | ||
| 35 | //栏目管理 | 35 | //栏目管理 |
| 36 | Route::prefix('menu')->group(function () { | 36 | Route::prefix('menu')->group(function () { |
| 37 | Route::any('/', [Aside\User\ProjectMenuController::class, 'lists'])->name('admin.user_menu_lists'); | 37 | Route::any('/', [Aside\User\ProjectMenuController::class, 'lists'])->name('admin.user_menu_lists'); |
| 38 | - Route::any('/list', [Aside\User\ProjectMenuController::class, 'list'])->name('admin.user_menu_list'); | ||
| 39 | Route::any('/info', [Aside\User\ProjectMenuController::class, 'info'])->name('admin.user_menu_info'); | 38 | Route::any('/info', [Aside\User\ProjectMenuController::class, 'info'])->name('admin.user_menu_info'); |
| 40 | Route::any('/add', [Aside\User\ProjectMenuController::class, 'add'])->name('admin.user_menu_add'); | 39 | Route::any('/add', [Aside\User\ProjectMenuController::class, 'add'])->name('admin.user_menu_add'); |
| 41 | Route::any('/edit', [Aside\User\ProjectMenuController::class, 'edit'])->name('admin.user_menu_edit'); | 40 | Route::any('/edit', [Aside\User\ProjectMenuController::class, 'edit'])->name('admin.user_menu_edit'); |
-
请 注册 或 登录 后发表评论