aside.php 60.7 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734
<?php
/**
 * A端用户路由文件
 */

use App\Http\Controllers\Aside;
use App\Http\Controllers\Aside\ProjectAssociation\ProjectAssociationController;
use Illuminate\Support\Facades\Route;


Route::middleware(['aloginauth'])->group(function () {
    Route::any('/', [Aside\Com\IndexController::class, 'index'])->name('admin.home.white');
    Route::any('/get_menu', [Aside\Com\IndexController::class, 'get_menu'])->name('admin.get_menu.white');
    Route::any('/editPassword', [Aside\Com\IndexController::class, 'editPassword'])->name('admin.editPassword.white');
    Route::any('/logout', [Aside\LoginController::class, 'logout'])->name('admin.logout.white');
    Route::any('/getAccessAddress', [Aside\LoginController::class, 'getAccessAddress'])->name('admin.getAccessAddress');//获取B端地址
    Route::any('/sendNotify', [Aside\Com\CNoticeController::class, 'sendNotify'])->name('admin.sendNotify');
    Route::any('/getCountry', [Aside\Com\CNoticeController::class, 'getCountry'])->name('admin.getCountry');
    Route::any('/getDynamicPassword', [Aside\Com\IndexController::class, 'getDynamicPassword'])->name('admin.getDynamicPassword');
    Route::any('/notAiHumanizer', [Aside\Com\IndexController::class, 'notAiHumanizer'])->name('admin.notAiHumanizer');
    Route::any('/notWordAiHumanizer', [Aside\Com\IndexController::class, 'notWordAiHumanizer'])->name('admin.notWordAiHumanizer');
    Route::any('/prInfoDownload', [Aside\Com\IndexController::class, 'prInfoDownload'])->name('admin.prInfoDownload');//pr报告下载
    //会员相关
    Route::prefix('user')->group(function () {
        //会员管理
        Route::any('/', [Aside\User\ProjectUserController::class, 'lists'])->name('admin.user_lists');
        Route::any('/info', [Aside\User\ProjectUserController::class, 'info'])->name('admin.user_info');
        Route::any('/save', [Aside\User\ProjectUserController::class, 'save'])->name('admin.user_save');
        Route::any('/del', [Aside\User\ProjectUserController::class, 'del'])->name('admin.user_del');
        Route::any('/getRole', [Aside\User\ProjectUserController::class, 'getRole'])->name('admin.user_getRole');
        Route::any('/sort', [Aside\User\ProjectUserController::class, 'sort'])->name('admin.user_sort');
        Route::any('/setAdmin', [Aside\User\ProjectUserController::class, 'setAdmin'])->name('admin.user_setAdmin');
        Route::any('/getProjectList', [Aside\User\ProjectUserController::class, 'getProjectList'])->name('admin.user_getProjectList');

        //角色管理
        Route::prefix('role')->group(function () {
            Route::any('/', [Aside\User\ProjectRoleController::class, 'lists'])->name('admin.user_role_lists');
            Route::any('/info', [Aside\User\ProjectRoleController::class, 'info'])->name('admin.user_role_info');
            Route::any('/get_menu', [Aside\User\ProjectRoleController::class, 'get_menu'])->name('admin.user_get_menu');
            Route::any('/add', [Aside\User\ProjectRoleController::class, 'add'])->name('admin.user_role_add');
            Route::any('/edit', [Aside\User\ProjectRoleController::class, 'edit'])->name('admin.user_role_edit');
            Route::any('/del', [Aside\User\ProjectRoleController::class, 'del'])->name('admin.user_role_del');
        });

        //栏目管理
        Route::prefix('menu')->group(function () {
            Route::any('/', [Aside\User\ProjectMenuController::class, 'lists'])->name('admin.user_menu_lists');
            Route::any('/info', [Aside\User\ProjectMenuController::class, 'info'])->name('admin.user_menu_info');
            Route::any('/add', [Aside\User\ProjectMenuController::class, 'add'])->name('admin.user_menu_add');
            Route::any('/edit', [Aside\User\ProjectMenuController::class, 'edit'])->name('admin.user_menu_edit');
            Route::any('/del', [Aside\User\ProjectMenuController::class, 'del'])->name('admin.user_menu_del');
            Route::any('/getSonMenu', [Aside\User\ProjectMenuController::class, 'getSonMenu'])->name('admin.user_menu_getSonMenu');
            Route::any('/routes', [Aside\User\ProjectMenuController::class, 'routes'])->name('admin.user_menu_routes');
            Route::any('/sort', [Aside\User\ProjectMenuController::class, 'sort'])->name('admin.user_menu_sort');
        });
        //seo白帽菜单管理
        Route::prefix('seo_menu')->group(function () {
            Route::any('/', [Aside\User\ProjectMenuSeoController::class, 'lists'])->name('admin.user_menu_lists');
            Route::any('/info', [Aside\User\ProjectMenuSeoController::class, 'info'])->name('admin.user_menu_info');
            Route::any('/add', [Aside\User\ProjectMenuSeoController::class, 'add'])->name('admin.user_menu_add');
            Route::any('/edit', [Aside\User\ProjectMenuSeoController::class, 'edit'])->name('admin.user_menu_edit');
            Route::any('/del', [Aside\User\ProjectMenuSeoController::class, 'del'])->name('admin.user_menu_del');
            Route::any('/getMenu', [Aside\User\ProjectMenuSeoController::class, 'getMenu'])->name('admin.user_menu_getSonMenu');
            Route::any('/sort', [Aside\User\ProjectMenuSeoController::class, 'sort'])->name('admin.user_menu_sort');
        });
        //用户组
        Route::prefix('dept')->group(function () {
            Route::any('/', [Aside\User\ProjectDeptController::class, 'lists'])->name('admin.user_group_lists');
            Route::any('/read', [Aside\User\ProjectDeptController::class, 'read'])->name('admin.user_group_info');
            Route::any('/getDeptUser', [Aside\User\ProjectDeptController::class, 'getDeptUser'])->name('admin.user_getDeptUser');
        });

        //用户日志
        Route::prefix('log')->group(function () {
            Route::any('/', [Aside\User\UserLogController::class, 'lists'])->name('admin.user_log_lists');
        });
    });

    //ai指令
    Route::prefix('ai')->group(function () {
        Route::any('/', [Aside\Ai\AiCommandController::class, 'lists'])->name('admin.ai_lists');
        Route::any('/info', [Aside\Ai\AiCommandController::class, 'info'])->name('admin.ai_info');
        Route::any('/add', [Aside\Ai\AiCommandController::class, 'add'])->name('admin.ai_add');
        Route::any('/edit', [Aside\Ai\AiCommandController::class, 'edit'])->name('admin.ai_edit');
        Route::any('/del', [Aside\Ai\AiCommandController::class, 'del'])->name('admin.ai_del');
        //发送记录
        Route::any('/log', [Aside\Ai\AiLogController::class, 'lists'])->name('admin.lists');
        // 绑定AICC微信应用
        Route::post('/binding/save', [ProjectAssociationController::class, 'save'])->name('admin.binding.save');
        // OA后台开启关闭AICC用户绑定
        Route::post('/check', [ProjectAssociationController::class, 'check'])->name('admin.aicc.check');
    });
    //特殊模块权限设置
    Route::prefix('special')->group(function () {
        Route::any('/', [Aside\Manage\MenuSpecialController::class, 'lists'])->name('admin.Special_lists');
        Route::any('/info', [Aside\Manage\MenuSpecialController::class, 'info'])->name('admin.Special_info');
        Route::any('/save', [Aside\Manage\MenuSpecialController::class, 'save'])->name('admin.Special_save');
        Route::any('/del', [Aside\Manage\MenuSpecialController::class, 'del'])->name('admin.Special_del');
        Route::any('/getManagerList', [Aside\Manage\MenuSpecialController::class, 'getManagerList'])->name('admin.Special_getManagerList');
    });
    //站内信
    Route::prefix('mail')->group(function () {
        Route::any('/', [Aside\Mail\MailController::class, 'lists'])->name('admin.mail_lists');
        Route::any('/info', [Aside\Mail\MailController::class, 'info'])->name('admin.mail_info');
        Route::any('/getUser', [Aside\Mail\MailController::class, 'getUser'])->name('admin.mail_getUser');
        Route::any('/add', [Aside\Mail\MailController::class, 'add'])->name('admin.mail_add');
        Route::any('/edit', [Aside\Mail\MailController::class, 'edit'])->name('admin.mail_edit');
        Route::any('/del', [Aside\Mail\MailController::class, 'del'])->name('admin.mail_del');
    });

    //管理员
    Route::prefix('manage')->group(function () {
        Route::any('/', [Aside\Manage\ManageController::class, 'list'])->name('admin.manage');
        Route::any('/info', [Aside\Manage\ManageController::class, 'info'])->name('admin.manage_info');
        Route::post('/save', [Aside\Manage\ManageController::class, 'save'])->name('admin.manage_save');
        Route::any('/delete', [Aside\Manage\ManageController::class, 'delete'])->name('admin.manage_delete');
        Route::any('/sort', [Aside\Manage\ManageController::class, 'setSort'])->name('admin.manage_sort');

        //菜单
        Route::prefix('menu')->group(function () {
            Route::any('/', [Aside\Manage\MenuController::class, 'list'])->name('admin.menu');
            Route::any('/info', [Aside\Manage\MenuController::class, 'info'])->name('admin.menu_info');
            Route::post('/save', [Aside\Manage\MenuController::class, 'save'])->name('admin.menu_save');
            Route::any('/delete', [Aside\Manage\MenuController::class, 'delete'])->name('admin.menu_delete');
            Route::any('/sort', [Aside\Manage\MenuController::class, 'setSort'])->name('admin.menu_sort');
        });
        //权限菜单
        Route::prefix('role_menu')->group(function () {
            Route::any('/', [Aside\Manage\RoleMenuController::class, 'lists'])->name('admin.role_menu_list');
            Route::any('/save', [Aside\Manage\RoleMenuController::class, 'save'])->name('admin.role_menu_save');
            Route::any('/del', [Aside\Manage\RoleMenuController::class, 'del'])->name('admin.role_menu_del');
            Route::any('/routes', [Aside\Manage\RoleMenuController::class, 'routes'])->name('admin.role_menu_routes');
            Route::any('/info', [Aside\Manage\RoleMenuController::class, 'info'])->name('admin.role_menu_info');
        });
        //权限组
        Route::prefix('group')->group(function () {
            Route::any('/', [Aside\Manage\GroupController::class, 'list'])->name('admin.group');
            Route::any('/info', [Aside\Manage\GroupController::class, 'info'])->name('admin.group_info');
            Route::post('/save', [Aside\Manage\GroupController::class, 'save'])->name('admin.group_save');
            Route::any('/delete', [Aside\Manage\GroupController::class, 'delete'])->name('admin.group_delete');
        });

        //部门
        Route::prefix('dept')->group(function () {
            Route::any('/', [Aside\Manage\DeptController::class, 'lists'])->name('admin.dept');
            Route::any('/info', [Aside\Manage\DeptController::class, 'info'])->name('admin.dept_info');
            Route::post('/save', [Aside\Manage\DeptController::class, 'save'])->name('admin.dept_save');
            Route::any('/delete', [Aside\Manage\DeptController::class, 'delete'])->name('admin.dept_delete');
        });

        //人事管理
        Route::prefix('hr')->group(function () {
            Route::any('/', [Aside\Manage\HrController::class, 'list'])->name('admin.hr');
            Route::any('/getManagerList', [Aside\Manage\HrController::class, 'getManagerList'])->name('admin.hr_getManagerList');
            Route::any('/info', [Aside\Manage\HrController::class, 'info'])->name('admin.hr_info');
            Route::post('/save', [Aside\Manage\HrController::class, 'save'])->name('admin.hr_save');
            Route::post('/sort', [Aside\Manage\HrController::class, 'sort'])->name('admin.hr_sort');
            Route::post('/getGeoManagerList', [Aside\Manage\HrController::class, 'getGeoManagerList'])->name('admin.hr_getGeoManagerList');
            Route::any('/getSearchParamsList', [Aside\Manage\HrController::class, 'getSearchParamsList'])->name('admin.hr_getSearchParamsList');
        });

        //管理员日志
        Route::prefix('log')->group(function () {
            Route::any('/', [Aside\Manage\ManagerLogController::class, 'lists'])->name('admin.manager_log_lists');
            Route::any('/logList', [Aside\Manage\ManagerLogController::class, 'logList'])->name('admin.manager_log_logList');
            Route::any('/userLogList', [Aside\Manage\ManagerLogController::class, 'userLogList'])->name('admin.manager_log_userLogList');
        });
    });

    //企业服务配置信息
    Route::prefix('service')->group(function () {
        Route::any('/', [Aside\Service\ServiceController::class, 'lists'])->name('admin.service_lists');
        Route::any('/save', [Aside\Service\ServiceController::class, 'save'])->name('admin.service_save');
    });

    //项目管理
    Route::prefix('project')->group(function () {
        Route::any('/', [Aside\Project\ProjectController::class, 'lists'])->name('admin.project');
        Route::any('/info', [Aside\Project\ProjectController::class, 'info'])->name('admin.project_info');
        Route::post('/save', [Aside\Project\ProjectController::class, 'save'])->name('admin.project_save');
        Route::any('/deleteMinorLanguages', [Aside\Project\ProjectController::class, 'deleteMinorLanguages'])->name('admin.project_deleteMinorLanguages');
        Route::any('/inquiry_set', [Aside\Project\ProjectController::class, 'inquiry_set'])->name('admin.project_inquiry_set');
        Route::any('/get_process_records', [Aside\Project\ProjectController::class, 'get_process_records'])->name('admin.project_get_process_records');
        Route::any('/get_project_records', [Aside\Project\ProjectController::class, 'get_project_records'])->name('admin.project_get_project_records');
        Route::any('/save_process_records', [Aside\Project\ProjectController::class, 'save_process_records'])->name('admin.project_save_process_records');
        Route::any('/get_contract_bill', [Aside\Project\ProjectController::class, 'get_contract_bill'])->name('admin.project_get_contract_bill');
        Route::any('/data_source', [Aside\Project\ProjectController::class, 'data_source'])->name('admin.project_data_source.white');
        Route::any('/channel_source', [Aside\Project\ProjectController::class, 'channel_source'])->name('admin.project_channel_source.white');
        Route::any('/city_source', [Aside\Project\ProjectController::class, 'city_source'])->name('admin.project_city_source.white');
        Route::any('/submit_check', [Aside\Project\ProjectController::class, 'submit_check'])->name('admin.project_submit_check');
        Route::any('/online_check', [Aside\Project\ProjectController::class, 'online_check'])->name('admin.project_online_check');
        Route::any('/getBelongingGroup', [Aside\Project\ProjectController::class, 'getBelongingGroup'])->name('admin.project_getBelongingGroup');//获取组
        Route::any('/getManagerList', [Aside\Project\ProjectController::class, 'getManagerList'])->name('admin.project_getManagerList');//根据组获取用户
        Route::any('/getServiceConfig', [Aside\Project\ProjectController::class, 'getServiceConfig'])->name('admin.project_getServiceConfig');//获取数据库和服务器
        Route::any('/getDomain', [Aside\Project\ProjectController::class, 'getDomain'])->name('admin.project_getDomain');//获取域名列表
        Route::any('/del', [Aside\Project\ProjectController::class, 'del'])->name('admin.project_del');
        Route::any('/getRenewLog', [Aside\Project\ProjectController::class, 'getRenewLog'])->name('admin.project_getRenewLog');
        Route::any('/tdkList', [Aside\Project\ProjectController::class, 'tdkList'])->name('admin.project_tdkList');
        Route::any('/copyProject', [Aside\Project\ProjectController::class, 'copyProject'])->name('admin.project_copyProject');
        Route::any('/site_token', [Aside\Project\ProjectController::class, 'site_token'])->name('admin.project_site_token');
        Route::any('/saveOtherProject', [Aside\Project\ProjectController::class, 'saveOtherProject'])->name('admin.project_saveOtherProject');//其他项目设置
        Route::any('/getOtherProject', [Aside\Project\ProjectController::class, 'getOtherProject'])->name('admin.project_getOtherProject');//获取其他项目设置
        Route::any('/getChannel', [Aside\Project\ProjectController::class, 'getChannel'])->name('admin.project_getChannel');//其他项目设置
        Route::any('/languageLists', [Aside\Project\ProjectController::class, 'languageLists'])->name('admin.project_languageLists');//其他项目设置
        Route::any('/countryLists', [Aside\Project\ProjectController::class, 'countryLists'])->name('admin.project_countryLists');//国家地区列表
        Route::any('/saveInquiryFilterConfig', [Aside\Project\ProjectController::class, 'saveInquiryFilterConfig'])->name('admin.project_inquiry_filter_config_save');//保存询盘过滤配置
        Route::any('/saveWebTrafficConfig', [Aside\Project\ProjectController::class, 'saveWebTrafficConfig'])->name('admin.project_web_traffic_config_save');//保存引流配置
        Route::any('/updateProjectManager', [Aside\Project\ProjectController::class, 'updateProjectManager'])->name('admin.project_updateProjectManager');//更改项目人员配置
        Route::any('/setIsParticiple', [Aside\Project\ProjectController::class, 'setIsParticiple'])->name('admin.project_setIsParticiple');//开启/关闭分词
        Route::any('/saveSiteStatus', [Aside\Project\ProjectController::class, 'saveSiteStatus'])->name('admin.project_saveSiteStatus');
        Route::any('/updateTdk', [Aside\Project\ProjectController::class, 'updateTdk'])->name('admin.project_updateTdk');//更新项目tdk
        Route::any('/videoSetting', [Aside\Project\ProjectController::class, 'videoSetting'])->name('admin.project_videoSetting');//项目管理AI.video设置
        Route::any('/getSpAdsLists', [Aside\Project\ProjectController::class, 'getSpAdsLists'])->name('admin.project_getSpAdsLists');//项目管理广告投放
        //获取关键词前缀和后缀
        Route::prefix('keyword')->group(function () {
            Route::any('/getKeywordPrefix', [Aside\Project\KeywordPrefixController::class, 'getKeywordPrefix'])->name('admin.keyword_getKeywordPrefix');
            Route::any('/save', [Aside\Project\KeywordPrefixController::class, 'save'])->name('admin.keyword_save');
            Route::any('/del', [Aside\Project\KeywordPrefixController::class, 'del'])->name('admin.keyword_del');
            Route::any('/generateCountCharts', [Aside\Project\ProjectController::class, 'generateCountCharts'])->name('admin.keyword_generateCountCharts');
        });
        //企业资料库
        Route::prefix('enterprise_product')->group(function () {
            Route::any('/saveEnterpriseProduct', [Aside\Project\EnterpriseProductController::class, 'saveEnterpriseProduct'])->name('admin.enterprise_product_saveEnterpriseProduct');
            Route::any('/saveLinkData', [Aside\Project\EnterpriseProductController::class, 'saveLinkData'])->name('admin.enterprise_product_saveLinkData');

        });
        //小语种
        Route::prefix('language')->group(function () {
            Route::any('/', [Aside\Project\MinorLanguagesController::class, 'getMinorLanguageList'])->name('admin.getMinorLanguageList');
            Route::any('/getLanguages', [Aside\Project\MinorLanguagesController::class, 'getLanguages'])->name('admin.getLanguages');
        });

        //更新项目tdk
        Route::any('/updateSeoTdk', [Aside\Com\UpdateController::class, 'updateSeoTdk'])->name('admin.project_updateSeoTdk');
        //项目内容采集
        Route::any('/dataCollect', [Aside\Com\UpdateController::class, 'dataCollect'])->name('admin.project_dataCollect');
    });

    //续费
    Route::prefix('renew')->group(function () {
        Route::any('/', [Aside\Project\RenewProjectController::class, 'lists'])->name('admin.renew');
        Route::any('/log', [Aside\Project\RenewProjectController::class, 'renewLists'])->name('admin.renew_renewLists');
        Route::any('/info', [Aside\Project\RenewProjectController::class, 'info'])->name('admin.renew_info');
        Route::any('/notHaveRenewItems', [Aside\Project\RenewProjectController::class, 'notHaveRenewItems'])->name('admin.renew_notHaveRenewItems');
        Route::any('/editRenew', [Aside\Project\RenewProjectController::class, 'editRenew'])->name('admin.renew_editRenew');
        Route::any('/getRenewList', [Aside\Project\RenewProjectController::class, 'getRenewList'])->name('admin.renew_getRenewList');
        Route::any('/editStatusRenew', [Aside\Project\RenewProjectController::class, 'editStatusRenew'])->name('admin.renew_editStatusRenew');
    });
    //工单管理
    Route::prefix('task')->group(function () {
        Route::any('/', [Aside\Task\TaskController::class, 'list'])->name('admin.task');
        Route::any('/info', [Aside\Task\TaskController::class, 'info'])->name('admin.task_info');
        Route::post('/save', [Aside\Task\TaskController::class, 'save'])->name('admin.task_save');
        Route::post('/status', [Aside\Task\TaskController::class, 'status'])->name('admin.task_status');
        Route::post('/save_follow', [Aside\Task\TaskController::class, 'save_follow'])->name('admin.task_save_follow');
        Route::any('/getUserTaskList', [Aside\Task\TaskController::class, 'getUserTaskList'])->name('admin.task_getUserTaskList');
    });
    // 售后工单改版
    Route::prefix('tickets')->group(function () {
        Route::get('/', [Aside\WorkOrder\AsideTicketController::class, 'index'])->name('admin.tickets.index')->summary('A端工单列表');
        Route::post('/', [Aside\WorkOrder\AsideTicketController::class, 'store'])->name('admin.tickets.store')->summary('A端创建工单');
        Route::get('/{id}', [Aside\WorkOrder\AsideTicketController::class, 'show'])->name('admin.tickets.show')->summary('A端工单详情');
        Route::post('/{id}', [Aside\WorkOrder\AsideTicketController::class, 'update'])->name('admin.tickets.update')->summary('A端更新工单,审核,邀请同事');
        Route::get('/pushNotify/{id}', [Aside\WorkOrder\AsideTicketController::class, 'pushNotify'])->name('admin.tickets.pushNotify')->summary('A端工单推送企微群');
        Route::get('/projects/{search}', [Aside\WorkOrder\AsideTicketController::class, 'getProjects'])->name('admin.tickets.projects')->summary('A端V5V6项目列表');
        Route::patch('/projects/{id}', [Aside\WorkOrder\TicketProjectController::class, 'update'])->name('admin.tickets.projects.update')->summary('A端修改工单项目');
        Route::get('/projects_team/{id}', [Aside\WorkOrder\TicketProjectController::class, 'team'])->name('admin.tickets.projects_team')->summary('A端工单项目团队');
        Route::get('/v56_projects/list', [Aside\WorkOrder\AsideTicketController::class, 'projectList'])->name('admin.tickets.projectList')->summary('A端V5V6项目列表')
            ->description("project_cate[项目分类1]: 1 V5, 2 V6, 3 超迹, 4 域途");
        Route::get('/v56_projects/getorderTypeOptions', [Aside\WorkOrder\AsideTicketController::class, 'getorderTypeOptions'])->name('admin.tickets.getorderTypeOptions')->summary('A端V5V6项目列表')
            ->description("工单类型");
        Route::post('/log/{id}', [Aside\WorkOrder\AsideTicketLogController::class, 'update'])->name('admin.tickets.log.update')->summary('A端工单操作日志更新,完成工单');
        Route::get('/chat/{ticket_id}', [Aside\WorkOrder\TicketChatController::class, 'index'])->name('admin.tickets.chat.index')->summary('A端工单聊天记录');
        Route::post('/chat/{ticket_id}', [Aside\WorkOrder\TicketChatController::class, 'store'])->name('admin.tickets.chat.store')->summary('A端工单聊天记录创建');
    });

    //服务器配置
    Route::prefix('devops')->group(function () {
        Route::any('/', [Aside\Devops\ServerConfigController::class, 'lists'])->name('admin.devops.lists');
        Route::any('/save', [Aside\Devops\ServerConfigController::class, 'save'])->name('admin.devops.save');
        Route::any('/info', [Aside\Devops\ServerConfigController::class, 'info'])->name('admin.devops.info');
        Route::any('/update_database', [Aside\Devops\ServerConfigController::class, 'updateDatabase'])->name('admin.devops.update_database');
        Route::any('/del', [Aside\Devops\ServerConfigController::class, 'del'])->name('admin.devops.del');
    });


    // 域名管理
    Route::prefix('domain')->group(function () {
        Route::any('/', [Aside\Domain\DomainInfoController::class, 'lists'])->name('admin.domain');                 // 列表 | 搜索
        Route::any('/info', [Aside\Domain\DomainInfoController::class, 'info'])->name('admin.domain_info');         // 详情
        Route::any('/save', [Aside\Domain\DomainInfoController::class, 'save'])->name('admin.domain_save');
        Route::any('/status', [Aside\Domain\DomainInfoController::class, 'status'])->name('admin.domain_status');
        Route::any('/getProject', [Aside\Domain\DomainInfoController::class, 'getProject'])->name('admin.domain_getProject');
        Route::any('/del', [Aside\Domain\DomainInfoController::class, 'del'])->name('admin.domain_del');
        Route::any('/setSsl', [Aside\Domain\DomainInfoController::class, 'setSsl'])->name('admin.domain_setSsl');
        Route::any('/log', [Aside\Domain\DomainInfoLogController::class, 'lists'])->name('admin.domain_log_lists');     // 日志
        Route::any('/getCountryCode', [Aside\Domain\DomainInfoController::class, 'getCountryCode'])->name('admin.get_country_code');

    });
    Route::prefix('domain_log')->group(function () {
        Route::any('/', [Aside\Domain\DomainApplicantLogController::class, 'lists'])->name('admin.domain_log_lists');
        Route::any('/info', [Aside\Domain\DomainApplicantLogController::class, 'info'])->name('admin.domain_log_info');
        Route::any('/save', [Aside\Domain\DomainApplicantLogController::class, 'save'])->name('admin.domain_log_save');
        Route::any('/del', [Aside\Domain\DomainApplicantLogController::class, 'del'])->name('admin.domain_log_del');
    });
    //图片操作
    Route::prefix('images')->group(function () {
        Route::post('/upload', [\App\Http\Controllers\File\ImageController::class, 'upload'])->name('images_upload');
        Route::post('/getFont', [\App\Http\Controllers\File\ImageController::class, 'getFont'])->name('images_getFont');
        Route::post('/getPosition', [\App\Http\Controllers\File\ImageController::class, 'getPosition'])->name('images_getPosition');
        Route::post('/getDownloadUrl', [\App\Http\Controllers\File\ImageController::class, 'getDownloadUrl'])->name('images_getDownloadUrl');
    });
    //文件操作
    Route::prefix('files')->group(function () {
        Route::post('/upload', [\App\Http\Controllers\File\FileController::class, 'upload'])->name('files_upload');
        Route::post('/getDownloadUrl', [\App\Http\Controllers\File\FileController::class, 'getDownloadUrl'])->name('files_getDownloadUrl');
    });
    //谷歌流量系统
    Route::prefix('projects')->group(function () {
        Route::post('/', [Aside\Optimize\ProjectsController::class, 'lists'])->name('projects_lists');
        Route::post('/save', [Aside\Optimize\ProjectsController::class, 'save'])->name('projects_save');
        Route::post('/getCountry', [Aside\Optimize\ProjectsController::class, 'getCountry'])->name('projects_getCountry');
        Route::post('/del', [Aside\Optimize\ProjectsController::class, 'del'])->name('projects_del');
        //谷歌流量系统日志
        Route::prefix('log')->group(function () {
            Route::post('/', [Aside\Optimize\ProjectsLogController::class, 'lists'])->name('projectsLog_lists');
        });
    });
    //优化中台
    Route::prefix('optimize')->group(function () {
//        Route::any('/empowerDomain', [Aside\Optimize\OptimizeController::class, 'empowerDomain'])->name('admin.optimize_empowerDomain');
        Route::any('/', [Aside\Optimize\OptimizeController::class, 'lists'])->name('admin.optimize_lists');//优化中台
        Route::any('/importOptimize', [Aside\Optimize\OptimizeController::class, 'importOptimize'])->name('admin.optimize_importOptimize');//导出数据
        Route::any('/getAiPrefix', [Aside\Optimize\OptimizeController::class, 'getAiPrefix'])->name('admin.optimize_getAiPrefix');//获取Ai前后缀
        Route::any('/saveAiPrefix', [Aside\Optimize\OptimizeController::class, 'saveAiPrefix'])->name('admin.optimize_saveAiPrefix');//保存Ai前后缀
        Route::any('/setRobots', [Aside\Optimize\OptimizeController::class, 'setRobots'])->name('admin.optimize_setRobots');//设置robots开关
        Route::any('/editBacklink', [Aside\Optimize\OptimizeController::class, 'editBacklink'])->name('admin.optimize_editBacklink');//设置backlink开关
        Route::any('/setAiVideo', [Aside\Optimize\OptimizeController::class, 'setAiVideo'])->name('admin.optimize_setAiVideo');//设置ai_video
        Route::any('/anchorTextList', [Aside\Optimize\OptimizeController::class, 'anchorTextList'])->name('admin.optimize_anchorTextList');//锚文本链接
        Route::any('/getKeywordRouteList', [Aside\Optimize\OptimizeController::class, 'getKeywordRouteList'])->name('admin.optimize_getKeywordRouteList');//聚合页链接
        Route::any('/saveMinorLanguages', [Aside\Optimize\OptimizeController::class, 'saveMinorLanguages'])->name('admin.optimize_saveMinorLanguages');//设置小语种监控开关
        Route::any('/editTranslateStatus', [Aside\Optimize\OptimizeController::class, 'editTranslateStatus'])->name('admin.optimize_editTranslateStatus');//设置robots开关
        Route::any('/getAnchorLink', [Aside\Optimize\OptimizeController::class, 'getAnchorLink'])->name('admin.optimize_getAnchorLink');//设置robots开关
        Route::any('/getAfterCount', [Aside\Optimize\AfterCountController::class, 'getAfterCount'])->name('admin.optimize_getAfterCount');//售后统计数据
        Route::any('/getAfterCountInfo', [Aside\Optimize\AfterCountController::class, 'getAfterCountInfo'])->name('admin.optimize_getAfterCountInfo');//售后统计数据详情
        Route::any('/saveIsAnalysis', [Aside\Optimize\OptimizeController::class, 'saveIsAnalysis'])->name('admin.optimize_saveIsAnalysis');//优化中台开启与关闭泛解析
        //检查列表
        Route::prefix('check_list')->group(function () {
            Route::any('/', [Aside\Optimize\CheckListController::class, 'lists'])->name('admin.check_lists');
            Route::any('/list', [Aside\Optimize\CheckListController::class, 'list'])->name('admin.check_list');
            Route::any('/info', [Aside\Optimize\CheckListController::class, 'info'])->name('admin.check_list_info');
            Route::any('/save', [Aside\Optimize\CheckListController::class, 'save'])->name('admin.check_list_save');
            Route::any('/del', [Aside\Optimize\CheckListController::class, 'del'])->name('admin.check_list_del');
        });

        //检查记录
        Route::prefix('check_log')->group(function () {
            Route::any('/', [Aside\Optimize\CheckLogController::class, 'lists'])->name('admin.check_log');
            Route::any('/info', [Aside\Optimize\CheckLogController::class, 'info'])->name('admin.check_log_info');
            Route::any('/save', [Aside\Optimize\CheckLogController::class, 'save'])->name('admin.check_log_save');
            Route::any('/del', [Aside\Optimize\CheckLogController::class, 'del'])->name('admin.check_log_del');
        });
    });
    //生成关键字
    Route::prefix('create_keyword')->group(function () {
        Route::any('/', [Aside\Optimize\CreateKeywordController::class, 'lists'])->name('admin.create_keywords_lists');//创建关键字获取语种+前后缀
        Route::any('/save', [Aside\Optimize\CreateKeywordController::class, 'save'])->name('admin.create_keywords_save');//保存关键字获取语种+前后缀
        Route::any('/createKeyword', [Aside\Optimize\CreateKeywordController::class, 'createKeyword'])->name('admin.create_keywords_createKeyword');//保存关键字获取语种+前后缀
    });


    //优化中台
    Route::prefix('keyword')->group(function () {
        Route::any('/', [Aside\Optimize\KeywordsController::class, 'lists'])->name('admin.optimize_keywords_lists');//优化中台
    });

    //上线审核列表
    Route::prefix('online')->group(function () {
        Route::any('/', [Aside\Optimize\OnlineController::class, 'lists'])->name('admin.online_lists');//上线审核列表
        Route::any('/setQuestion', [Aside\Optimize\OnlineController::class, 'setQuestion'])->name('admin.online_setQuestion');//添加问题
    });


    //优化gsc账号记录表
    Route::prefix('gsc')->group(function () {
        Route::any('/', [Aside\Optimize\ProjectGscController::class, 'lists'])->name('admin.lists');
        Route::any('/domainLists', [Aside\Optimize\ProjectGscController::class, 'domainLists'])->name('admin.domainLists');
        Route::any('/read', [Aside\Optimize\ProjectGscController::class, 'read'])->name('admin.gsc_read');
        Route::any('/save', [Aside\Optimize\ProjectGscController::class, 'save'])->name('admin.gsc_save');
        Route::any('/del', [Aside\Optimize\ProjectGscController::class, 'del'])->name('admin.gsc_del');
    });
    //询盘
    Route::prefix('inquiry')->group(function () {
        Route::any('/', [Aside\Optimize\InquiryInfoController::class, 'lists'])->name('admin.inquiry_lists');
        Route::any('/save', [Aside\Optimize\InquiryInfoController::class, 'save'])->name('admin.inquiry_save');
        Route::any('/status', [Aside\Optimize\InquiryInfoController::class, 'status'])->name('admin.inquiry_status');
        Route::any('/del', [Aside\Optimize\InquiryInfoController::class, 'del'])->name('admin.inquiry_del');
        Route::any('/getCount', [Aside\Optimize\InquiryInfoController::class, 'getCount'])->name('admin.inquiry_getCount');
        Route::any('/forwardInquiry', [Aside\Optimize\InquiryInfoController::class, 'forwardInquiry'])->name('admin.inquiry_forwardInquiry');
        Route::any('/info', [Aside\Optimize\InquiryInfoController::class, 'info'])->name('admin.inquiry_info');
        Route::any('/importInquirySave', [Aside\Optimize\InquiryInfoController::class, 'importInquirySave'])->name('admin.inquiry_importInquirySave');
        Route::any('/getSearchIpInfo', [Aside\Optimize\InquiryInfoController::class, 'getSearchIpInfo'])->name('admin.inquiry_getSearchIpInfo');
        Route::any('/getKeywordUrl', [Aside\Optimize\InquiryInfoController::class, 'getKeywordUrl'])->name('admin.inquiry_getKeywordUrl');
        Route::any('/getInquiryType', [Aside\Optimize\InquiryInfoController::class, 'getInquiryType'])->name('admin.inquiry_getInquiryType');
        Route::any('/getTimeZone', [Aside\Optimize\InquiryInfoController::class, 'getTimeZone'])->name('admin.inquiry_getTimeZone');
        Route::any('/getInternalCount', [Aside\Optimize\InquiryInfoController::class, 'getInternalCount'])->name('admin.inquiry_getInternalCount');
    });

    //手动转发询盘
    Route::prefix('inquiry_forward')->group(function () {
        Route::any('/', [Aside\Optimize\InquiryForwardController::class, 'lists'])->name('admin.inquiry_forward_lists');
        Route::any('/getInquiryInfo', [Aside\Optimize\InquiryForwardController::class, 'getInquiryInfo'])->name('admin.inquiry_forward_getInquiryInfo');
        Route::any('/getInquiryType', [Aside\Optimize\InquiryForwardController::class, 'getInquiryType'])->name('admin.inquiry_forward_getInquiryType');
        Route::any('/forwardInquiry', [Aside\Optimize\InquiryForwardController::class, 'forwardInquiry'])->name('admin.inquiry_forward_forwardInquiry');
        Route::any('/getInquiryIp', [Aside\Optimize\InquiryForwardController::class, 'getInquiryIp'])->name('admin.inquiry_forward_getInquiryIp');
        Route::any('/searchInquiryKeywords', [Aside\Optimize\InquiryForwardController::class, 'searchInquiryKeywords'])->name('admin.inquiry_forward_searchInquiryKeywords');
        Route::any('/aiRewriteInquiry', [Aside\Optimize\InquiryForwardController::class, 'aiRewriteInquiry'])->name('admin.inquiry_forward_aiRewriteInquiry');
        Route::any('/setInquiryExpired', [Aside\Optimize\InquiryForwardController::class, 'setInquiryExpired'])->name('admin.inquiry_forward_setInquiryExpired');
        Route::any('/getInquiryDetailList', [Aside\Optimize\InquiryForwardController::class, 'getInquiryDetailList'])->name('admin.inquiry_forward_getInquiryDetailList');
        Route::any('/stopForwardInquiry', [Aside\Optimize\InquiryForwardController::class, 'stopForwardInquiry'])->name('admin.inquiry_forward_stopForwardInquiry');
        Route::any('/getInquiryCount', [Aside\Optimize\InquiryForwardController::class, 'getInquiryCount'])->name('admin.inquiry_forward_getInquiryCount');
        Route::any('/getInquiryManageCount', [Aside\Optimize\InquiryForwardController::class, 'getInquiryManageCount'])->name('admin.inquiry_forward_getInquiryManageCount');
    });

    Route::prefix('custom_module')->group(function () {
        Route::any('/', [\App\Http\Controllers\Aside\CustomModule\CustomModuleController::class, 'lists'])->name('custom_lists');
        Route::any('/save', [\App\Http\Controllers\Aside\CustomModule\CustomModuleController::class, 'save'])->name('custom_save');
        Route::any('/topping', [\App\Http\Controllers\Aside\CustomModule\CustomModuleController::class, 'topping'])->name('custom_topping');
        Route::any('/del', [\App\Http\Controllers\Aside\CustomModule\CustomModuleController::class, 'del'])->name('custom_del');
    });

    /**
     * 生成视频的项目
     */
    Route::prefix('keyword_video')->group(function () {
        Route::any('/', [Aside\KeywordVideo\KeywordVideoController::class, 'lists'])->name('keyword_video_lists');
        Route::any('/createKeywordTask', [Aside\KeywordVideo\KeywordVideoController::class, 'createKeywordTask'])->name('keyword_video_createKeywordTask');
        Route::any('/edit', [Aside\KeywordVideo\KeywordVideoController::class, 'edit'])->name('keyword_video_edit');
        Route::any('/getVideoTaskLog', [Aside\KeywordVideo\KeywordVideoController::class, 'getVideoTaskLog'])->name('keyword_video_getVideoTaskLog');
        Route::any('/taskNum', [Aside\KeywordVideo\KeywordVideoController::class, 'taskNum'])->name('keyword_video_taskNum');
        Route::any('/getVideoCount', [Aside\KeywordVideo\KeywordVideoController::class, 'getVideoCount'])->name('keyword_video_getVideoCount');
        Route::any('/get_template', [Aside\KeywordVideo\KeywordVideoController::class, 'get_template'])->name('keyword_get_template');
    });

    // 公共主题模版
    Route::prefix('template')->group(function () {
        Route::any('/', [Aside\Template\ATemplateController::class, 'lists'])->name('admin.ATemplate_lists');
        Route::any('/read', [Aside\Template\ATemplateController::class, 'read'])->name('admin.ATemplate_read');
        Route::any('/getSettingInfo', [Aside\Template\ATemplateController::class, 'getSettingInfo'])->name('admin.ATemplate_getSettingInfo');
        Route::any('/save', [Aside\Template\ATemplateController::class, 'save'])->name('admin.ATemplate_save');
        Route::any('/status', [Aside\Template\ATemplateController::class, 'status'])->name('admin.ATemplate_status');
        Route::any('/del', [Aside\Template\ATemplateController::class, 'del'])->name('admin.ATemplate_del');
        //设置公共主题head
        Route::any('/setHeadFooter', [Aside\Template\ATemplateController::class, 'setHeadFooter'])->name('admin.template_setHeadFooter');
        Route::any('/getHeadFooter', [Aside\Template\ATemplateController::class, 'getHeadFooter'])->name('admin.template_getHeadFooter');
        Route::any('/setPublicTemplate', [Aside\Template\ATemplateController::class, 'setPublicTemplate'])->name('admin.template_setPublicTemplate');
        Route::any('/auditingStatus', [Aside\Template\ATemplateController::class, 'auditingStatus'])->name('admin.template_auditingStatus');
        Route::any('/getProjectPublicTemplate', [Aside\Template\ATemplateController::class, 'getProjectPublicTemplate'])->name('admin.template_getProjectPublicTemplate');
        // 左侧模块
        Route::prefix('module')->group(function () {
            Route::any('/', [Aside\Template\ATemplateModuleController::class, 'lists'])->name('admin.ATemplateModule_lists');
            Route::any('/save', [Aside\Template\ATemplateModuleController::class, 'save'])->name('admin.ATemplateModule_save');
            Route::any('/status', [Aside\Template\ATemplateModuleController::class, 'status'])->name('admin.ATemplateModule_status');
            Route::any('/del', [Aside\Template\ATemplateModuleController::class, 'del'])->name('admin.ATemplateModule_del');
            Route::any('/type', [Aside\Template\ATemplateModuleController::class, 'getType'])->name('admin.ATemplateModule_getType');
            Route::any('/auditingStatus', [Aside\Template\ATemplateModuleController::class, 'auditingStatus'])->name('admin.ATemplateModule_auditingStatus');
            Route::any('/getProjectList', [Aside\Template\ATemplateModuleController::class, 'getProjectList'])->name('admin.ATemplateModule_getProjectList');
        });
        //设置类型
        Route::prefix('type')->group(function () {
            Route::any('/', [Aside\Template\ATemplateTypeController::class, 'getType'])->name('admin.ATemplateType_getType');
            Route::any('/save', [Aside\Template\ATemplateTypeController::class, 'save'])->name('admin.ATemplateType_save');
            Route::any('/sort', [Aside\Template\ATemplateTypeController::class, 'sort'])->name('admin.ATemplateType_sort');
            Route::any('/del', [Aside\Template\ATemplateTypeController::class, 'del'])->name('admin.ATemplateType_del');
        });
        //设置标签
        Route::prefix('label')->group(function () {
            Route::any('/getUserLists', [Aside\Template\TemplateLabelController::class, 'getUserLists'])->name('admin.ATemplateType_label_getUserLists');
            Route::any('/save', [Aside\Template\TemplateLabelController::class, 'save'])->name('admin.ATemplateType_label_save');
            Route::any('/del', [Aside\Template\TemplateLabelController::class, 'del'])->name('admin.ATemplateType_label_del');
        });
    });
    //可视化数据替换
    Route::prefix('replace')->group(function () {
        Route::any('/replaceTemplateMainHtml', [Aside\Template\ReplaceHtmlController::class, 'replaceTemplateMainHtml'])->name('admin.replace_replaceTemplateMainHtml');
        Route::any('/replaceTemplateLog', [Aside\Template\ReplaceHtmlController::class, 'replaceTemplateLog'])->name('admin.replace_replaceTemplateLog');
        Route::any('/replaceTemplateSonLog', [Aside\Template\ReplaceHtmlController::class, 'replaceTemplateSonLog'])->name('admin.replace_replaceTemplateSonLog');
        Route::any('/reductionHtml', [Aside\Template\ReplaceHtmlController::class, 'reductionHtml'])->name('admin.replace_reductionHtml');
        Route::any('/rollbackIdHtml', [Aside\Template\ReplaceHtmlController::class, 'rollbackIdHtml'])->name('admin.replace_rollbackIdHtml');
        Route::any('/pageType', [Aside\Template\ReplaceHtmlController::class, 'pageType'])->name('admin.replace_pageType');
    });

    //v6更新日志
    Route::prefix('v6_update')->group(function () {
        Route::any('/', [Aside\Com\V6UpdateLogController::class, 'lists'])->name('admin.v6_update');
        Route::any('/save', [Aside\Com\V6UpdateLogController::class, 'save'])->name('admin.v6_update_save');
        Route::any('/del', [Aside\Com\V6UpdateLogController::class, 'del'])->name('admin.v6_update_del');
    });

    //oa教程
    Route::prefix('tutorial')->group(function () {
        Route::any('/', [Aside\Com\TutorialController::class, 'lists'])->name('admin.tutorial_lists');
        Route::any('/save', [Aside\Com\TutorialController::class, 'save'])->name('admin.tutorial_save');
        Route::any('/sort', [Aside\Com\TutorialController::class, 'sort'])->name('admin.tutorial_sort');
        Route::any('/status', [Aside\Com\TutorialController::class, 'status'])->name('admin.tutorial_status');
        Route::any('/del', [Aside\Com\TutorialController::class, 'del'])->name('admin.tutorial_del');
    });

    //oa通知
    Route::prefix('oa_notice')->group(function () {
        Route::any('/', [Aside\Com\OaNoticeController::class, 'lists'])->name('admin.oa_notice_lists');
        Route::any('/save', [Aside\Com\OaNoticeController::class, 'save'])->name('admin.oa_notice_save');
        Route::any('/status', [Aside\Com\OaNoticeController::class, 'status'])->name('admin.oa_notice_status');
        Route::any('/info', [Aside\Com\OaNoticeController::class, 'info'])->name('admin.oa_notice_info');
    });

    Route::any('/generate_aicc_token', [Aside\Com\IndexController::class, 'generateAiCCToken'])->name('admin.generate_aicc_token');
    Route::any('/getAutoToken', [Aside\Com\IndexController::class, 'getAutoToken'])->name('admin.getAutoToken');

    // 生成页面任务
    Route::any('/create_html_task', [Aside\Task\AutoTaskController::class, 'createHtmlTask'])->name('admin.create_html_task');
    Route::any('/create_html_param', [Aside\Task\AutoTaskController::class, 'createHtmlTaskParam'])->name('admin.create_html_param');

    /**
     * 服务器管理
     */
    Route::prefix('servers')->group(function () {
        Route::any('/', [Aside\Devops\ServersController::class, 'lists'])->name('admin.servers_lists');
        Route::any('/list', [Aside\Devops\ServersController::class, 'list'])->name('admin.servers_list');
        Route::any('/serverList', [Aside\Devops\ServersController::class, 'serverList'])->name('admin.servers_serverList');
        Route::any('/save', [Aside\Devops\ServersController::class, 'save'])->name('admin.servers_save');
        Route::any('/info', [Aside\Devops\ServersController::class, 'info'])->name('admin.servers_info');
    });
    /**
     * ip+domain
     */
    Route::prefix('servers_ip')->group(function () {
        Route::any('/', [Aside\Devops\ServersIpController::class, 'lists'])->name('admin.servers_lists');
        Route::any('/list', [Aside\Devops\ServersIpController::class, 'list'])->name('admin.servers_list');
        Route::any('/save', [Aside\Devops\ServersIpController::class, 'save'])->name('admin.servers_save');
        Route::any('/batchSave', [Aside\Devops\ServersIpController::class, 'batchSave'])->name('admin.servers_batchSave');
        Route::any('/batchDel', [Aside\Devops\ServersIpController::class, 'batchDel'])->name('admin.servers_batchDel');
        Route::any('/info', [Aside\Devops\ServersIpController::class, 'info'])->name('admin.servers_info');
        Route::any('/downloadFile', [Aside\Devops\ServersIpController::class, 'downloadFile'])->name('admin.servers_downloadFile');
    });
    /**
     * 拓展数据模块
     */
    Route::prefix('extension_module')->group(function () {
        Route::any('/', [Aside\ExtentModule\ExtensionModuleController::class, 'getModuleLists'])->name('admin.extension_module_getModuleLists');
        Route::any('/saveModule', [Aside\ExtentModule\ExtensionModuleController::class, 'saveModule'])->name('admin.extension_module_saveModule');
        Route::any('/delModule', [Aside\ExtentModule\ExtensionModuleController::class, 'delModule'])->name('admin.extension_module_delModule');
    });
    /**
     * C端代码自动拉取模块
     */
    Route::prefix('auto_pull')->group(function () {
        Route::any('/', [Aside\AutoPull\AutoPullController::class, 'getTaskLists'])->name('admin.auto_pull_getTaskLists');
        Route::any('/saveTask', [Aside\AutoPull\AutoPullController::class, 'saveTask'])->name('admin.auto_pull_saveTask');
        Route::any('/taskMap', [Aside\AutoPull\AutoPullController::class, 'taskMap'])->name('admin.auto_pull_taskMap');
    });
    /**
     * 打包静态页面模块
     */
    Route::prefix('pack_dir')->group(function () {
        Route::any('/', [Aside\PackDir\PackDirController::class, 'getTaskLists'])->name('admin.pack_dir_getTaskLists');
        Route::any('/saveTask', [Aside\PackDir\PackDirController::class, 'saveTask'])->name('admin.pack_dir_saveTask');
    });
    //geo设置
    Route::prefix('geo')->group(function () {
        Route::any('/setGeoStatus', [Aside\Geo\GeoQuestionController::class, 'setGeoStatus'])->name('admin.geo_setGeoStatus');//开启与关闭geo设置
        Route::any('/getType', [Aside\Geo\GeoQuestionController::class, 'getType'])->name('admin.geo_getType');//geo设置类型
        Route::prefix('question')->group(function () {
            Route::any('/getGeoQuestionList', [Aside\Geo\GeoQuestionController::class, 'getGeoQuestionList'])->name('admin.geo_question_getGeoQuestionList');
            Route::any('/saveGeoQuestion', [Aside\Geo\GeoQuestionController::class, 'saveGeoQuestion'])->name('admin.geo_question_saveGeoQuestion');
            Route::any('/delGeoQuestion', [Aside\Geo\GeoQuestionController::class, 'delGeoQuestion'])->name('admin.geo_question_delGeoQuestion');
            Route::any('/unHitQuestionList', [Aside\Geo\GeoQuestionController::class, 'unHitQuestionList'])->name('admin.geo_question_unHitQuestionList');
            Route::any('/delUnHitQuestion', [Aside\Geo\GeoQuestionController::class, 'delUnHitQuestion'])->name('admin.geo_question_delUnHitQuestion');
        });
        //文章列表
        Route::prefix('article')->group(function () {
            Route::any('/lists', [Aside\Geo\GeoArticleController::class, 'lists'])->name('admin.geo_article_lists');
            Route::any('/save', [Aside\Geo\GeoArticleController::class, 'save'])->name('admin.geo_article_save');
            Route::any('/edit', [Aside\Geo\GeoArticleController::class, 'edit'])->name('admin.geo_article_edit');
            Route::any('/info', [Aside\Geo\GeoArticleController::class, 'info'])->name('admin.geo_article_info');
            Route::any('/del', [Aside\Geo\GeoArticleController::class, 'del'])->name('admin.geo_article_del');
        });
        //权威文章链接
        Route::prefix('link')->group(function () {
            Route::any('/lists', [Aside\Geo\GeoLinkController::class, 'lists'])->name('admin.geo_link_lists');
            Route::any('/save', [Aside\Geo\GeoLinkController::class, 'save'])->name('admin.geo_link_save');
            Route::any('/info', [Aside\Geo\GeoLinkController::class, 'info'])->name('admin.geo_link_info');
            Route::any('/del', [Aside\Geo\GeoLinkController::class, 'del'])->name('admin.geo_link_del');
            Route::any('/downloadGeoLink', [Aside\Geo\GeoLinkController::class, 'downloadGeoLink'])->name('admin.geo_link_downloadGeoLink');
            Route::any('/daResultData', [Aside\Geo\GeoLinkController::class, 'daResultData'])->name('admin.geo_link_daResultData');
        });
        //geo信息详情设置
        Route::prefix('conf')->group(function () {
            Route::any('/getConfig', [Aside\Geo\GeoController::class, 'getConfig'])->name('admin.geo_conf_getConfig');
            Route::any('/saveConfig', [Aside\Geo\GeoController::class, 'saveConfig'])->name('admin.geo_conf_saveConfig');
            Route::any('/getCount', [Aside\Geo\GeoController::class, 'getCount'])->name('admin.geo_conf_getCount');
        });
        //geo客户确认信息
        Route::prefix('confirm')->group(function () {
            Route::any('/saveConfirmContent', [Aside\Geo\GeoConfirmController::class, 'saveConfirmContent'])->name('admin.geo_confirm_saveConfirmContent');
            Route::any('/getInfo', [Aside\Geo\GeoConfirmController::class, 'getInfo'])->name('admin.geo_confirm_getInfo');
            Route::any('/saveInfo', [Aside\Geo\GeoConfirmController::class, 'saveInfo'])->name('admin.geo_confirm_saveInfo');
        });
        //geoai文章任务管理
        Route::prefix('writing_task')->group(function () {
            Route::any('/', [Aside\Geo\GeoWritingTaskController::class, 'lists'])->name('admin.geo_writing_task_lists');
            Route::any('/saveWritingTask', [Aside\Geo\GeoWritingTaskController::class, 'saveWritingTask'])->name('admin.geo_writing_task_saveWritingTask');
            Route::any('/delWritingTask', [Aside\Geo\GeoWritingTaskController::class, 'delWritingTask'])->name('admin.geo_writing_task_delWritingTask');
            Route::any('/sendAiTitle', [Aside\Geo\GeoWritingTaskController::class, 'sendAiTitle'])->name('admin.geo_writing_task_sendAiTitle');
            Route::any('/getAiCommand', [Aside\Geo\GeoWritingTaskController::class, 'getAiCommand'])->name('admin.getAiCommand');
        });
        //geo文章管理
        Route::prefix('writing')->group(function () {
            Route::any('/', [Aside\Geo\GeoWritingsController::class, 'lists'])->name('admin.geo_writing_task');
            Route::any('/info', [Aside\Geo\GeoWritingsController::class, 'info'])->name('admin.geo_writing_info');
            Route::any('/saveWriting', [Aside\Geo\GeoWritingsController::class, 'saveWriting'])->name('admin.geo_writing_saveWriting');
            Route::any('/delWriting', [Aside\Geo\GeoWritingsController::class, 'delWriting'])->name('admin.geo_writing_delWriting');
            Route::any('/sendWechatMessage', [Aside\Geo\GeoWritingsController::class, 'sendWechatMessage'])->name('admin.geo_writing_sendWechatMessage');
        });
    });
    // 任务相关
    Route::prefix('task')->group(function () {
        // FB广告相关路由
        Route::any('/fb_list', [Aside\Task\AdsController::class, 'fbAdsList'])->name('admin.fb_ads_task_list');
        Route::any('/fb_set', [Aside\Task\AdsController::class, 'setFbAds'])->name('admin.fb_ads_task_set');
        Route::any('/fb_default_set', [Aside\Task\AdsController::class, 'fbAdsDefaultSet'])->name('admin.fb_ads_default_set');
        Route::any('/fb_set_batch', [Aside\Task\AdsController::class, 'fbAdsSetBatch'])->name('admin.fb_ads_set_batch');
        Route::any('/fb_set_site', [Aside\Task\AdsController::class, 'setRelaySite'])->name('admin.fb_set_site');
        Route::any('/fb_check_domain', [Aside\Task\AdsController::class, 'checkDomain'])->name('admin.fb_check_domain');
        Route::any('/fb_inquiry_list', [Aside\Task\AdsController::class, 'fbInquiryList'])->name('admin.fb_ads_inquiry_list');
        Route::any('/fb_inquiry_chart', [Aside\Task\AdsController::class, 'fbInquiryChart'])->name('admin.fb_ads_inquiry_chart');
        Route::any('/fb_relay_detail_list', [Aside\Task\AdsController::class, 'fbRelayDetail'])->name('admin.fb_ads_relay_detail_list');
        Route::any('/fb_relay_count', [Aside\Task\AdsController::class, 'fbRelayCount'])->name('admin.fb_relay_count');
        Route::any('/fob_projects', [Aside\Task\AdsController::class, 'fob_projects'])->name('admin.fob_projects');
    });

    //统计所有项目相关
    Route::prefix('all_project')->group(function () {
        Route::any('/', [Aside\Project\AllProjectController::class, 'lists'])->name('admin.all_project_lists');
    });

    //项目行业相关
    Route::prefix('industry')->group(function () {
        Route::any('/', [Aside\Project\ProjectController::class, 'industryList'])->name('admin.industryList');
    });

    //聚合页关键词设置
    Route::prefix('aggregateKeyword')->group(function () {
        Route::any('/', [Aside\Project\AggregateKeywordController::class, 'lists'])->name('admin.aggregateKeyword');
        Route::any('/info', [Aside\Project\AggregateKeywordController::class, 'info'])->name('admin.aggregateKeyword_info');
        Route::any('/save', [Aside\Project\AggregateKeywordController::class, 'save'])->name('admin.aggregateKeyword_save');
        Route::any('/del', [Aside\Project\AggregateKeywordController::class, 'del'])->name('admin.aggregateKeyword_del');
        //聚合页关键词前后缀
        Route::prefix('affix')->group(function () {
            Route::any('/getAffix', [Aside\Project\AggregateKeywordAffixController::class, 'getAffix'])->name('admin.affix_getAffix');
            Route::any('/saveAffix', [Aside\Project\AggregateKeywordAffixController::class, 'saveAffix'])->name('admin.affix_saveAffix');
        });
    });

    //白帽seo前后缀
    Route::prefix('white_hat')->group(function () {
        Route::any('/list', [Aside\Project\ProjectWhiteHatAffixController::class, 'list'])->name('admin.white_hat_read');
        Route::any('/save', [Aside\Project\ProjectWhiteHatAffixController::class, 'save'])->name('admin.white_hat_save');
        Route::any('/del', [Aside\Project\ProjectWhiteHatAffixController::class, 'del'])->name('admin.white_hat_del');
    });
    // 统计数据
    Route::prefix('statistics')->group(function () {
        // 流量统计
        Route::any('/flow', [Aside\Project\StatisticsController::class, 'flow'])->name('admin.statistics_flow');
    });
    //ticket
    Route::prefix('ticket_count')->group(function () {
        Route::any('/ticketCount', [\App\Http\Controllers\Aside\Ticket\TicketController::class,'ticketCount'])->name('ticket_count_ticketCount');
        Route::any('/getMonthList', [\App\Http\Controllers\Aside\Ticket\TicketController::class,'getMonthList'])->name('ticket_count_getMonthList');//获取最近一个总统计的数据
        Route::any('/getTime', [\App\Http\Controllers\Aside\Ticket\TicketController::class,'getTime'])->name('ticket_count_getTime');//获取周/月时间
        Route::any('/weekManageList', [\App\Http\Controllers\Aside\Ticket\TicketController::class,'weekManageList'])->name('ticket_count_weekManageList');//周统计数据
        Route::any('/monthManageList', [\App\Http\Controllers\Aside\Ticket\TicketController::class,'monthManageList'])->name('ticket_count_monthManageList');//月统计数据
        Route::any('/manageTicketCount', [\App\Http\Controllers\Aside\Ticket\TicketController::class,'manageTicketCount'])->name('ticket_count_manageTicketCount');
    });
    //ticket
    Route::prefix('ticket_upload')->group(function () {
        Route::any('/', [Aside\Ticket\TicketUploadDataController::class,'lists'])->name('ticket_upload_lists');
        Route::any('/save', [Aside\Ticket\TicketUploadDataController::class,'save'])->name('ticket_upload_save');
        Route::any('/detail', [Aside\Ticket\TicketUploadDataController::class,'detail'])->name('ticket_upload_detail');
        Route::any('/del', [Aside\Ticket\TicketUploadDataController::class,'del'])->name('ticket_upload_del');
    });
    //岗位管理
    Route::prefix('entry_position')->group(function () {
        Route::any('/', [Aside\Manage\ManageEntryPositionController::class,'lists'])->name('entry_position_lists');
        Route::any('/save', [Aside\Manage\ManageEntryPositionController::class,'save'])->name('entry_position_save');
        Route::any('/del', [Aside\Manage\ManageEntryPositionController::class,'del'])->name('entry_position_del');
    });

    //去AI痕迹管理
    Route::prefix('ai_remove')->group(function () {
        Route::any('/', [Aside\AiRemove\AiRemoveController::class, 'getTaskLists'])->name('admin.ai_remove_getTaskLists');
        Route::any('/taskInfo', [Aside\AiRemove\AiRemoveController::class, 'taskInfo'])->name('admin.ai_remove_taskInfo');
        Route::any('/saveTask', [Aside\AiRemove\AiRemoveController::class, 'saveTask'])->name('admin.ai_remove_saveTask');
    });
});

//无需登录验证的路由组
Route::group([], function () {
    Route::any('/login', [Aside\LoginController::class, 'login'])->name('admin.login.white');
    Route::any('/stringTranslation', [Aside\Com\IndexController::class, 'stringTranslation'])->name('admin.stringTranslation');
//    Route::any('/image/{hash}/{w?}/{h?}', [\App\Http\Controllers\File\ImageController::class, 'index'])->name('admin.image_show');
    Route::any('/file/{hash}', [\App\Http\Controllers\File\FileController::class, 'index'])->name('admin.file_show');
    Route::any('/download_files', [\App\Http\Controllers\File\FileController::class, 'downLoad'])->name('admin.files_downLoad');//导出文件
    Route::any('/download_images', [\App\Http\Controllers\File\ImageController::class, 'downLoad'])->name('admin.images_downLoad');//导出图片
    Route::any('/domain/exportData', [Aside\Domain\DomainInfoController::class, 'exportData'])->name('admin.domain_exportData');//导出数据
    Route::any('/notice/project', [Aside\Notice\NoticeController::class, 'project'])->name('admin.notice.project');
    Route::any('/notice/rank_data', [Aside\Notice\NoticeController::class, 'rank_data'])->name('admin.notice.rank_data');
    Route::any('/sendLoginSms', [Aside\LoginController::class, 'sendLoginSms'])->name('admin.sendLoginSms');//发送验证码
    Route::any('/getProjectInService', [Aside\Project\ProjectController::class, 'getProjectInService'])->name('admin.getProjectInService');//获取项目服务状态
    Route::any('/getProjectByChannel', [Aside\Project\ProjectController::class, 'getProjectByChannel'])->name('admin.getProjectByChannel');//获取渠道商的项目
    // 提供接口 同步人事信息到5.0后台
    Route::any('/get_hr_list', [Aside\Manage\HrController::class, 'getHrList'])->name('admin.get_hr_list');
    // 提供模板 提单后台查看
    Route::any('get_template_list', [Aside\Template\ATemplateController::class, 'getTemplateList'])->name('admin.get_template_list');
    Route::any('get_template_detail', [Aside\Template\ATemplateController::class, 'getTemplateDetail'])->name('admin.get_template_detail');

    Route::any('/collect', [Aside\Collect\CollectController::class, 'index'])->name('admin.collect');
    //同步询盘
    Route::any('/sync_inquiry', [Aside\Com\IndexController::class, 'sync_inquiry'])->name('admin.sync_inquiry');
    Route::post('/images_uploads', [\App\Http\Controllers\File\ImageController::class, 'upload'])->name('admin.images_uploads');//无需登录上传
    Route::post('/files_uploads', [\App\Http\Controllers\File\FileController::class, 'upload'])->name('admin.files_uploads');
});