Merge branch 'master' of http://47.244.231.31:8099/zhl/globalso-v6
正在显示
12 个修改的文件
包含
138 行增加
和
321 行删除
| @@ -71,14 +71,20 @@ class AfterDayCount extends Command | @@ -71,14 +71,20 @@ class AfterDayCount extends Command | ||
| 71 | ->where('gl_project.created_at','<=',$todayMidnight) | 71 | ->where('gl_project.created_at','<=',$todayMidnight) |
| 72 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) | 72 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) |
| 73 | ->whereIn('gl_project.type',[2,4]) | 73 | ->whereIn('gl_project.type',[2,4]) |
| 74 | - ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count(); | 74 | + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') |
| 75 | + ->whereRaw("FIND_IN_SET('2', gl_project.level) = 0 AND FIND_IN_SET('3', gl_project.level) = 0") | ||
| 76 | + ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0") | ||
| 77 | + ->count(); | ||
| 75 | $qualified_count = $projectModel->where('gl_project.extend_type',0) | 78 | $qualified_count = $projectModel->where('gl_project.extend_type',0) |
| 76 | ->where('gl_project.delete_status',0) | 79 | ->where('gl_project.delete_status',0) |
| 77 | ->where('gl_project.created_at','<=',$todayMidnight) | 80 | ->where('gl_project.created_at','<=',$todayMidnight) |
| 78 | ->where('gl_project.is_remain_today',1) | 81 | ->where('gl_project.is_remain_today',1) |
| 79 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) | 82 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) |
| 80 | ->whereIn('gl_project.type',[2,4]) | 83 | ->whereIn('gl_project.type',[2,4]) |
| 81 | - ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count(); | 84 | + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') |
| 85 | + ->whereRaw("FIND_IN_SET('2', gl_project.level) = 0 AND FIND_IN_SET('3', gl_project.level) = 0") | ||
| 86 | + ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0") | ||
| 87 | + ->count(); | ||
| 82 | $rate = number_format($qualified_count / $project_count, 2); | 88 | $rate = number_format($qualified_count / $project_count, 2); |
| 83 | $threeMonthsAgo = date('Y-m-d 00:00:00', strtotime('-3 months')); | 89 | $threeMonthsAgo = date('Y-m-d 00:00:00', strtotime('-3 months')); |
| 84 | $three_project_count = $projectModel->where('gl_project.extend_type',0) | 90 | $three_project_count = $projectModel->where('gl_project.extend_type',0) |
| @@ -86,14 +92,20 @@ class AfterDayCount extends Command | @@ -86,14 +92,20 @@ class AfterDayCount extends Command | ||
| 86 | ->where('gl_project.created_at','<=',$threeMonthsAgo) | 92 | ->where('gl_project.created_at','<=',$threeMonthsAgo) |
| 87 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) | 93 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) |
| 88 | ->whereIn('gl_project.type',[2,4]) | 94 | ->whereIn('gl_project.type',[2,4]) |
| 89 | - ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count(); | 95 | + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') |
| 96 | + ->whereRaw("FIND_IN_SET('2', gl_project.level) = 0 AND FIND_IN_SET('3', gl_project.level) = 0") | ||
| 97 | + ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0") | ||
| 98 | + ->count(); | ||
| 90 | $three_qualified_count = $projectModel->where('gl_project.extend_type',0) | 99 | $three_qualified_count = $projectModel->where('gl_project.extend_type',0) |
| 91 | ->whereIn('gl_project.id',$projectIdArr) | 100 | ->whereIn('gl_project.id',$projectIdArr) |
| 92 | ->where('gl_project.delete_status',0) | 101 | ->where('gl_project.delete_status',0) |
| 93 | ->where('gl_project.created_at','<=',$threeMonthsAgo) | 102 | ->where('gl_project.created_at','<=',$threeMonthsAgo) |
| 94 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) | 103 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) |
| 95 | ->whereIn('gl_project.type',[2,4]) | 104 | ->whereIn('gl_project.type',[2,4]) |
| 96 | - ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')->count(); | 105 | + ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') |
| 106 | + ->whereRaw("FIND_IN_SET('2', gl_project.level) = 0 AND FIND_IN_SET('3', gl_project.level) = 0") | ||
| 107 | + ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0") | ||
| 108 | + ->count(); | ||
| 97 | $three_rate = number_format($three_qualified_count / $three_project_count, 2); | 109 | $three_rate = number_format($three_qualified_count / $three_project_count, 2); |
| 98 | $data = $projectModel->where('gl_project.extend_type',0) | 110 | $data = $projectModel->where('gl_project.extend_type',0) |
| 99 | ->where('gl_project.delete_status',0) | 111 | ->where('gl_project.delete_status',0) |
| @@ -102,6 +114,8 @@ class AfterDayCount extends Command | @@ -102,6 +114,8 @@ class AfterDayCount extends Command | ||
| 102 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) | 114 | ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) |
| 103 | ->whereIn('gl_project.type',[2,4]) | 115 | ->whereIn('gl_project.type',[2,4]) |
| 104 | ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') | 116 | ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') |
| 117 | + ->whereRaw("FIND_IN_SET('2', gl_project.level) = 0 AND FIND_IN_SET('3', gl_project.level) = 0") | ||
| 118 | + ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0") | ||
| 105 | ->pluck('gl_project.title')->toArray(); | 119 | ->pluck('gl_project.title')->toArray(); |
| 106 | $saveData[] = [ | 120 | $saveData[] = [ |
| 107 | 'date'=>date('Y-m-d', strtotime('yesterday')), | 121 | 'date'=>date('Y-m-d', strtotime('yesterday')), |
| @@ -113,6 +113,7 @@ class SyncInquiryProject extends Command | @@ -113,6 +113,7 @@ class SyncInquiryProject extends Command | ||
| 113 | $result = http_get($route_domain . 'k_u_api.php'); | 113 | $result = http_get($route_domain . 'k_u_api.php'); |
| 114 | if (empty($result)) { | 114 | if (empty($result)) { |
| 115 | $this->log('syncGloV5Route 未获取到路由信息:' . $project->id . ', 路由获取地址:' . $route_domain . 'k_u_api.php'); | 115 | $this->log('syncGloV5Route 未获取到路由信息:' . $project->id . ', 路由获取地址:' . $route_domain . 'k_u_api.php'); |
| 116 | + $this->deleteExpire([$project->id]); | ||
| 116 | continue; | 117 | continue; |
| 117 | } | 118 | } |
| 118 | file_put_contents(storage_path('logs/sync_inquiry_project_route/' . $project->id . '.json'), json_encode($result)); | 119 | file_put_contents(storage_path('logs/sync_inquiry_project_route/' . $project->id . '.json'), json_encode($result)); |
| @@ -120,6 +121,7 @@ class SyncInquiryProject extends Command | @@ -120,6 +121,7 @@ class SyncInquiryProject extends Command | ||
| 120 | } catch (\Exception $e) { | 121 | } catch (\Exception $e) { |
| 121 | $this->log('syncGloV5Route 未获取到路由信息:' . $project->id . ', 路由获取地址:' . $route_domain . 'k_u_api.php' . ', 错误信息:' . $e->getMessage()); | 122 | $this->log('syncGloV5Route 未获取到路由信息:' . $project->id . ', 路由获取地址:' . $route_domain . 'k_u_api.php' . ', 错误信息:' . $e->getMessage()); |
| 122 | $this->output('syncGloV5Route 未获取到路由信息:' . $project->id . ', 路由获取地址:' . $route_domain . 'k_u_api.php' . ', 错误信息:' . $e->getMessage()); | 123 | $this->output('syncGloV5Route 未获取到路由信息:' . $project->id . ', 路由获取地址:' . $route_domain . 'k_u_api.php' . ', 错误信息:' . $e->getMessage()); |
| 124 | + $this->deleteExpire([$project->id]); | ||
| 123 | continue; | 125 | continue; |
| 124 | } | 126 | } |
| 125 | } | 127 | } |
| @@ -67,7 +67,7 @@ class UpdateRoute extends Command | @@ -67,7 +67,7 @@ class UpdateRoute extends Command | ||
| 67 | */ | 67 | */ |
| 68 | public function handle() | 68 | public function handle() |
| 69 | { | 69 | { |
| 70 | - return $this->keyword_actions(); | 70 | + return $this->settingSeo(); |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | public function keyword_actions(){ | 73 | public function keyword_actions(){ |
| @@ -592,270 +592,23 @@ class UpdateRoute extends Command | @@ -592,270 +592,23 @@ class UpdateRoute extends Command | ||
| 592 | } | 592 | } |
| 593 | 593 | ||
| 594 | /** | 594 | /** |
| 595 | - * @remark :更新产品分类前后缀 | ||
| 596 | - * @name :updateSeo | 595 | + * @remark :设置seo_前后缀 |
| 596 | + * @name :settingSeo | ||
| 597 | * @author :lyh | 597 | * @author :lyh |
| 598 | * @method :post | 598 | * @method :post |
| 599 | - * @time :2025/3/14 14:39 | 599 | + * @time :2025/4/15 15:14 |
| 600 | */ | 600 | */ |
| 601 | - public function insertData(){ | ||
| 602 | - $countries = [ | ||
| 603 | - 'AFG' => 'Afghanistan', | ||
| 604 | - 'ALB' => 'Albania', | ||
| 605 | - 'DZA' => 'Algeria', | ||
| 606 | - 'AND' => 'Andorra', | ||
| 607 | - 'AGO' => 'Angola', | ||
| 608 | - 'ATG' => 'Antigua and Barbuda', | ||
| 609 | - 'ARG' => 'Argentina', | ||
| 610 | - 'ARM' => 'Armenia', | ||
| 611 | - 'AUS' => 'Australia', | ||
| 612 | - 'AUT' => 'Austria', | ||
| 613 | - 'AZE' => 'Azerbaijan', | ||
| 614 | - 'BHS' => 'Bahamas', | ||
| 615 | - 'BHR' => 'Bahrain', | ||
| 616 | - 'BGD' => 'Bangladesh', | ||
| 617 | - 'BRB' => 'Barbados', | ||
| 618 | - 'BLR' => 'Belarus', | ||
| 619 | - 'BEL' => 'Belgium', | ||
| 620 | - 'BLZ' => 'Belize', | ||
| 621 | - 'BEN' => 'Benin', | ||
| 622 | - 'BTN' => 'Bhutan', | ||
| 623 | - 'BOL' => 'Bolivia', | ||
| 624 | - 'BES' => 'Bonaire, Sint Eustatius and Saba', | ||
| 625 | - 'BIH' => 'Bosnia and Herzegovina', | ||
| 626 | - 'BWA' => 'Botswana', | ||
| 627 | - 'BVT' => 'Bouvet Island', | ||
| 628 | - 'BRA' => 'Brazil', | ||
| 629 | - 'IOT' => 'British Indian Ocean Territory', | ||
| 630 | - 'BRN' => 'Brunei Darussalam', | ||
| 631 | - 'BGR' => 'Bulgaria', | ||
| 632 | - 'BFA' => 'Burkina Faso', | ||
| 633 | - 'BDI' => 'Burundi', | ||
| 634 | - 'CPV' => 'Cabo Verde', | ||
| 635 | - 'KHM' => 'Cambodia', | ||
| 636 | - 'CMR' => 'Cameroon', | ||
| 637 | - 'CAN' => 'Canada', | ||
| 638 | - 'CYM' => 'Cayman Islands', | ||
| 639 | - 'CAF' => 'Central African Republic', | ||
| 640 | - 'TCD' => 'Chad', | ||
| 641 | - 'CHL' => 'Chile', | ||
| 642 | - 'CHN' => 'China', | ||
| 643 | - 'CXR' => 'Christmas Island', | ||
| 644 | - 'CCK' => 'Cocos (Keeling) Islands', | ||
| 645 | - 'COL' => 'Colombia', | ||
| 646 | - 'COM' => 'Comoros', | ||
| 647 | - 'COD' => 'Congo (Democratic Republic of the)', | ||
| 648 | - 'COG' => 'Congo', | ||
| 649 | - 'COK' => 'Cook Islands', | ||
| 650 | - 'CRI' => 'Costa Rica', | ||
| 651 | - 'CIV' => 'Côte d\'Ivoire', | ||
| 652 | - 'HRV' => 'Croatia', | ||
| 653 | - 'CUB' => 'Cuba', | ||
| 654 | - 'CUW' => 'Curaçao', | ||
| 655 | - 'CYP' => 'Cyprus', | ||
| 656 | - 'CZE' => 'Czech Republic', | ||
| 657 | - 'DNK' => 'Denmark', | ||
| 658 | - 'DJI' => 'Djibouti', | ||
| 659 | - 'DMA' => 'Dominica', | ||
| 660 | - 'DOM' => 'Dominican Republic', | ||
| 661 | - 'ECU' => 'Ecuador', | ||
| 662 | - 'EGY' => 'Egypt', | ||
| 663 | - 'SLV' => 'El Salvador', | ||
| 664 | - 'GNQ' => 'Equatorial Guinea', | ||
| 665 | - 'ERI' => 'Eritrea', | ||
| 666 | - 'EST' => 'Estonia', | ||
| 667 | - 'SWZ' => 'Eswatini', | ||
| 668 | - 'ETH' => 'Ethiopia', | ||
| 669 | - 'FLK' => 'Falkland Islands (Malvinas)', | ||
| 670 | - 'FRO' => 'Faroe Islands', | ||
| 671 | - 'FJI' => 'Fiji', | ||
| 672 | - 'FIN' => 'Finland', | ||
| 673 | - 'FRA' => 'France', | ||
| 674 | - 'GUF' => 'French Guiana', | ||
| 675 | - 'PYF' => 'French Polynesia', | ||
| 676 | - 'ATF' => 'French Southern Territories', | ||
| 677 | - 'GAB' => 'Gabon', | ||
| 678 | - 'GMB' => 'Gambia', | ||
| 679 | - 'GEO' => 'Georgia', | ||
| 680 | - 'DEU' => 'Germany', | ||
| 681 | - 'GHA' => 'Ghana', | ||
| 682 | - 'GIB' => 'Gibraltar', | ||
| 683 | - 'GRC' => 'Greece', | ||
| 684 | - 'GRL' => 'Greenland', | ||
| 685 | - 'GRD' => 'Grenada', | ||
| 686 | - 'GLP' => 'Guadeloupe', | ||
| 687 | - 'GUM' => 'Guam', | ||
| 688 | - 'GTM' => 'Guatemala', | ||
| 689 | - 'GGY' => 'Guernsey', | ||
| 690 | - 'GIN' => 'Guinea', | ||
| 691 | - 'GNB' => 'Guinea-Bissau', | ||
| 692 | - 'GUY' => 'Guyana', | ||
| 693 | - 'HTI' => 'Haiti', | ||
| 694 | - 'HMD' => 'Heard Island and McDonald Islands', | ||
| 695 | - 'VAT' => 'Holy See', | ||
| 696 | - 'HND' => 'Honduras', | ||
| 697 | - 'HKG' => 'Hong Kong', | ||
| 698 | - 'HUN' => 'Hungary', | ||
| 699 | - 'ISL' => 'Iceland', | ||
| 700 | - 'IND' => 'India', | ||
| 701 | - 'IDN' => 'Indonesia', | ||
| 702 | - 'IRN' => 'Iran (Islamic Republic of)', | ||
| 703 | - 'IRQ' => 'Iraq', | ||
| 704 | - 'IRL' => 'Ireland', | ||
| 705 | - 'IMN' => 'Isle of Man', | ||
| 706 | - 'ISR' => 'Israel', | ||
| 707 | - 'ITA' => 'Italy', | ||
| 708 | - 'JAM' => 'Jamaica', | ||
| 709 | - 'JPN' => 'Japan', | ||
| 710 | - 'JEY' => 'Jersey', | ||
| 711 | - 'JOR' => 'Jordan', | ||
| 712 | - 'KAZ' => 'Kazakhstan', | ||
| 713 | - 'KEN' => 'Kenya', | ||
| 714 | - 'KIR' => 'Kiribati', | ||
| 715 | - 'KOR' => 'Korea (Republic of)', | ||
| 716 | - 'KWT' => 'Kuwait', | ||
| 717 | - 'KGZ' => 'Kyrgyzstan', | ||
| 718 | - 'LAO' => 'Lao People\'s Democratic Republic', | ||
| 719 | - 'LVA' => 'Latvia', | ||
| 720 | - 'LBN' => 'Lebanon', | ||
| 721 | - 'LSO' => 'Lesotho', | ||
| 722 | - 'LBR' => 'Liberia', | ||
| 723 | - 'LBY' => 'Libya', | ||
| 724 | - 'LIE' => 'Liechtenstein', | ||
| 725 | - 'LTU' => 'Lithuania', | ||
| 726 | - 'LUX' => 'Luxembourg', | ||
| 727 | - 'MAC' => 'Macao', | ||
| 728 | - 'MDG' => 'Madagascar', | ||
| 729 | - 'MWI' => 'Malawi', | ||
| 730 | - 'MYS' => 'Malaysia', | ||
| 731 | - 'MDV' => 'Maldives', | ||
| 732 | - 'MLI' => 'Mali', | ||
| 733 | - 'MLT' => 'Malta', | ||
| 734 | - 'MHL' => 'Marshall Islands', | ||
| 735 | - 'MTQ' => 'Martinique', | ||
| 736 | - 'MRT' => 'Mauritania', | ||
| 737 | - 'MUS' => 'Mauritius', | ||
| 738 | - 'MYT' => 'Mayotte', | ||
| 739 | - 'MEX' => 'Mexico', | ||
| 740 | - 'FSM' => 'Micronesia (Federated States of)', | ||
| 741 | - 'MDA' => 'Moldova (Republic of)', | ||
| 742 | - 'MCO' => 'Monaco', | ||
| 743 | - 'MNG' => 'Mongolia', | ||
| 744 | - 'MNE' => 'Montenegro', | ||
| 745 | - 'MSR' => 'Montserrat', | ||
| 746 | - 'MAR' => 'Morocco', | ||
| 747 | - 'MOZ' => 'Mozambique', | ||
| 748 | - 'MMR' => 'Myanmar', | ||
| 749 | - 'NAM' => 'Namibia', | ||
| 750 | - 'NRU' => 'Nauru', | ||
| 751 | - 'NPL' => 'Nepal', | ||
| 752 | - 'NLD' => 'Netherlands', | ||
| 753 | - 'NCL' => 'New Caledonia', | ||
| 754 | - 'NZL' => 'New Zealand', | ||
| 755 | - 'NIC' => 'Nicaragua', | ||
| 756 | - 'NER' => 'Niger', | ||
| 757 | - 'NGA' => 'Nigeria', | ||
| 758 | - 'NIU' => 'Niue', | ||
| 759 | - 'NFK' => 'Norfolk Island', | ||
| 760 | - 'MNP' => 'Northern Mariana Islands', | ||
| 761 | - 'NOR' => 'Norway', | ||
| 762 | - 'OMN' => 'Oman', | ||
| 763 | - 'PAK' => 'Pakistan', | ||
| 764 | - 'PLW' => 'Palau', | ||
| 765 | - 'PSE' => 'Palestine, State of', | ||
| 766 | - 'PAN' => 'Panama', | ||
| 767 | - 'PNG' => 'Papua New Guinea', | ||
| 768 | - 'PRY' => 'Paraguay', | ||
| 769 | - 'PER' => 'Peru', | ||
| 770 | - 'PHL' => 'Philippines', | ||
| 771 | - 'PCN' => 'Pitcairn', | ||
| 772 | - 'POL' => 'Poland', | ||
| 773 | - 'PRT' => 'Portugal', | ||
| 774 | - 'PRI' => 'Puerto Rico', | ||
| 775 | - 'QAT' => 'Qatar', | ||
| 776 | - 'REU' => 'Réunion', | ||
| 777 | - 'ROU' => 'Romania', | ||
| 778 | - 'RUS' => 'Russian Federation', | ||
| 779 | - 'RWA' => 'Rwanda', | ||
| 780 | - 'BLM' => 'Saint Barthélemy', | ||
| 781 | - 'SHN' => 'Saint Helena, Ascension and Tristan da Cunha', | ||
| 782 | - 'KNA' => 'Saint Kitts and Nevis', | ||
| 783 | - 'LCA' => 'Saint Lucia', | ||
| 784 | - 'MAF' => 'Saint Martin (French part)', | ||
| 785 | - 'SPM' => 'Saint Pierre and Miquelon', | ||
| 786 | - 'VCT' => 'Saint Vincent and the Grenadines', | ||
| 787 | - 'WSM' => 'Samoa', | ||
| 788 | - 'SMR' => 'San Marino', | ||
| 789 | - 'STP' => 'Sao Tome and Principe', | ||
| 790 | - 'SAU' => 'Saudi Arabia', | ||
| 791 | - 'SEN' => 'Senegal', | ||
| 792 | - 'SRB' => 'Serbia', | ||
| 793 | - 'SYC' => 'Seychelles', | ||
| 794 | - 'SLE' => 'Sierra Leone', | ||
| 795 | - 'SGP' => 'Singapore', | ||
| 796 | - 'SXM' => 'Sint Maarten (Dutch part)', | ||
| 797 | - 'SVK' => 'Slovakia', | ||
| 798 | - 'SVN' => 'Slovenia', | ||
| 799 | - 'SLB' => 'Solomon Islands', | ||
| 800 | - 'SOM' => 'Somalia', | ||
| 801 | - 'ZAF' => 'South Africa', | ||
| 802 | - 'SGS' => 'South Georgia and the South Sandwich Islands', | ||
| 803 | - 'SSD' => 'South Sudan', | ||
| 804 | - 'ESP' => 'Spain', | ||
| 805 | - 'LKA' => 'Sri Lanka', | ||
| 806 | - 'SDN' => 'Sudan', | ||
| 807 | - 'SUR' => 'Suriname', | ||
| 808 | - 'SJM' => 'Svalbard and Jan Mayen', | ||
| 809 | - 'SWE' => 'Sweden', | ||
| 810 | - 'CHE' => 'Switzerland', | ||
| 811 | - 'SYR' => 'Syrian Arab Republic', | ||
| 812 | - 'TWN' => 'Taiwan, Province of China', | ||
| 813 | - 'TJK' => 'Tajikistan', | ||
| 814 | - 'TZA' => 'Tanzania, United Republic of', | ||
| 815 | - 'THA' => 'Thailand', | ||
| 816 | - 'TLS' => 'Timor-Leste', | ||
| 817 | - 'TGO' => 'Togo', | ||
| 818 | - 'TKL' => 'Tokelau', | ||
| 819 | - 'TON' => 'Tonga', | ||
| 820 | - 'TTO' => 'Trinidad and Tobago', | ||
| 821 | - 'TUN' => 'Tunisia', | ||
| 822 | - 'TUR' => 'Turkey', | ||
| 823 | - 'TKM' => 'Turkmenistan', | ||
| 824 | - 'TCA' => 'Turks and Caicos Islands', | ||
| 825 | - 'TUV' => 'Tuvalu', | ||
| 826 | - 'UGA' => 'Uganda', | ||
| 827 | - 'UKR' => 'Ukraine', | ||
| 828 | - 'ARE' => 'United Arab Emirates', | ||
| 829 | - 'GBR' => 'United Kingdom', | ||
| 830 | - 'USA' => 'United States', | ||
| 831 | - 'URY' => 'Uruguay', | ||
| 832 | - 'UZB' => 'Uzbekistan', | ||
| 833 | - 'VUT' => 'Vanuatu', | ||
| 834 | - 'VEN' => 'Venezuela (Bolivarian Republic of)', | ||
| 835 | - 'VNM' => 'Viet Nam', | ||
| 836 | - 'WLF' => 'Wallis and Futuna', | ||
| 837 | - 'ESH' => 'Western Sahara', | ||
| 838 | - 'YEM' => 'Yemen', | ||
| 839 | - 'ZMB' => 'Zambia', | ||
| 840 | - 'ZWE' => 'Zimbabwe', | ||
| 841 | - ]; | ||
| 842 | - $codeCountryModel = new GoogleCodeCountry(); | ||
| 843 | - $data = []; | ||
| 844 | - foreach ($countries as $key =>$val){ | ||
| 845 | - $wordModel = new WordCountry(); | ||
| 846 | - $info = $wordModel->read(['iso3'=>$key]); | ||
| 847 | - if($info === false){ | ||
| 848 | - $zh = Translate::tran($val,'zh'); | ||
| 849 | - }else{ | ||
| 850 | - $zh = $info['chinese_name']; | 601 | + public function settingSeo(){ |
| 602 | + $list = (new Project())->formatQuery(['delete_status'=>0,'type'=>[2,4]])->pluck('id')->unique()->values()->toArray(); | ||
| 603 | + foreach ($list as $val){ | ||
| 604 | + ProjectServer::useProject($val); | ||
| 605 | + $seoModel = new WebSettingSeo(); | ||
| 606 | + $results = $seoModel->whereRaw('product_category_prefix = product_category_suffix')->get(); | ||
| 607 | + if(!empty($results)){ | ||
| 608 | + echo '项目id:'.$val.PHP_EOL; | ||
| 851 | } | 609 | } |
| 852 | - $data[] = [ | ||
| 853 | - 'code'=>$key, | ||
| 854 | - 'en_country'=>$val, | ||
| 855 | - 'zh_country'=>$zh, | ||
| 856 | - ]; | 610 | + DB::disconnect('custom_mysql'); |
| 857 | } | 611 | } |
| 858 | - $codeCountryModel->insertAll($data); | ||
| 859 | - return true; | 612 | + |
| 860 | } | 613 | } |
| 861 | } | 614 | } |
| @@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
| 7 | * @time :2025/2/21 9:55 | 7 | * @time :2025/2/21 9:55 |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | -namespace App\Console\Commands\RequestUrlLog; | 10 | +namespace App\Console\Commands\Monitor; |
| 11 | 11 | ||
| 12 | use App\Helper\FormGlobalsoApi; | 12 | use App\Helper\FormGlobalsoApi; |
| 13 | use App\Models\Com\RequestUrl; | 13 | use App\Models\Com\RequestUrl; |
| @@ -42,15 +42,15 @@ class RequestUrlLog extends Command | @@ -42,15 +42,15 @@ class RequestUrlLog extends Command | ||
| 42 | //获取需要请求的接口 | 42 | //获取需要请求的接口 |
| 43 | $requestUrlModel = new RequestUrl(); | 43 | $requestUrlModel = new RequestUrl(); |
| 44 | $urlList = $requestUrlModel->list(['status'=>0]); | 44 | $urlList = $requestUrlModel->list(['status'=>0]); |
| 45 | - //随机获取一个项目,需要验证的其他方法 | ||
| 46 | - $projectModel = new Project(); | ||
| 47 | - $projectInfo = $projectModel->formatQuery(['type'=>2,'delete_status'=>0])->inRandomOrder()->first(); | ||
| 48 | - //获取对应项目的域名 | ||
| 49 | - $domainModel = new DomainInfo(); | ||
| 50 | - $domainInfo = $domainModel->read(['project_id'=>$projectInfo['id']]); | ||
| 51 | foreach ($urlList as $v){ | 45 | foreach ($urlList as $v){ |
| 52 | //需要单独验证的方法 | 46 | //需要单独验证的方法 |
| 53 | if($v['url'] == 'getMonthInquiry'){ | 47 | if($v['url'] == 'getMonthInquiry'){ |
| 48 | + //随机获取一个项目,需要验证的其他方法 | ||
| 49 | + $projectModel = new Project(); | ||
| 50 | + $projectInfo = $projectModel->formatQuery(['type'=>2,'delete_status'=>0])->inRandomOrder()->first(); | ||
| 51 | + //获取对应项目的域名 | ||
| 52 | + $domainModel = new DomainInfo(); | ||
| 53 | + $domainInfo = $domainModel->read(['project_id'=>$projectInfo['id']]); | ||
| 54 | $result = $this->getMonthInquiry($domainInfo['domain'],date('Y-m'), 0); | 54 | $result = $this->getMonthInquiry($domainInfo['domain'],date('Y-m'), 0); |
| 55 | $requestUrlModel->edit(['text'=>json_encode($result,true),'time'=>$result['$requestTime'],'http_code'=>$result['http_code']],['id'=>$v['id']]); | 55 | $requestUrlModel->edit(['text'=>json_encode($result,true),'time'=>$result['$requestTime'],'http_code'=>$result['http_code']],['id'=>$v['id']]); |
| 56 | continue; | 56 | continue; |
| @@ -60,8 +60,16 @@ class RequestUrlLog extends Command | @@ -60,8 +60,16 @@ class RequestUrlLog extends Command | ||
| 60 | $result = $this->postRequest($v['url'],$v['param']); | 60 | $result = $this->postRequest($v['url'],$v['param']); |
| 61 | echo '执行的url:' . $v['url'] . PHP_EOL . '返回的结果:'.json_encode($result,true) . date('Y-m-d H:i:s').PHP_EOL; | 61 | echo '执行的url:' . $v['url'] . PHP_EOL . '返回的结果:'.json_encode($result,true) . date('Y-m-d H:i:s').PHP_EOL; |
| 62 | //更新请求结果 | 62 | //更新请求结果 |
| 63 | - $requestUrlModel->edit(['text'=>json_encode($result,true),'time'=>$result['$requestTime'],'http_code'=>$result['http_code']],['id'=>$v['id']]); | 63 | + $requestUrlModel->edit(['text'=>json_encode($result,true),'time'=>$result['requestTime'],'http_code'=>$result['http_code']],['id'=>$v['id']]); |
| 64 | + continue; | ||
| 65 | + }else if($v['method'] == 'get'){ | ||
| 66 | + $result = $this->getRequest($v['url']); | ||
| 67 | + echo '执行的url:' . $v['url'] . PHP_EOL . '返回的结果:'.json_encode($result,true) . date('Y-m-d H:i:s').PHP_EOL; | ||
| 68 | + //更新请求结果 | ||
| 69 | + $requestUrlModel->edit(['text'=>json_encode($result,true),'time'=>$result['requestTime'],'http_code'=>$result['http_code']],['id'=>$v['id']]); | ||
| 64 | continue; | 70 | continue; |
| 71 | + }else{ | ||
| 72 | + //todo::其他方式的验证 | ||
| 65 | } | 73 | } |
| 66 | } | 74 | } |
| 67 | return true; | 75 | return true; |
| @@ -44,6 +44,7 @@ class CopyProject extends Command | @@ -44,6 +44,7 @@ class CopyProject extends Command | ||
| 44 | public function handle() | 44 | public function handle() |
| 45 | { | 45 | { |
| 46 | while (true) { | 46 | while (true) { |
| 47 | + $projectModel = new Project(); | ||
| 47 | $list = NoticeLog::where('type', NoticeLog::TYPE_COPY_PROJECT)->where('status', NoticeLog::STATUS_PENDING)->get(); | 48 | $list = NoticeLog::where('type', NoticeLog::TYPE_COPY_PROJECT)->where('status', NoticeLog::STATUS_PENDING)->get(); |
| 48 | if(empty($list)){ | 49 | if(empty($list)){ |
| 49 | sleep(30); | 50 | sleep(30); |
| @@ -71,10 +72,12 @@ class CopyProject extends Command | @@ -71,10 +72,12 @@ class CopyProject extends Command | ||
| 71 | sleep(60); | 72 | sleep(60); |
| 72 | try { | 73 | try { |
| 73 | $this->copyMysql($old_project_id,$project_id); | 74 | $this->copyMysql($old_project_id,$project_id); |
| 75 | + $this->output('CopyProjectJob end, old project_id: ' . $old_project_id . ', new project_id: ' . $project_id); | ||
| 74 | }catch (\Exception $e){ | 76 | }catch (\Exception $e){ |
| 75 | echo '复制数据库失败:'.$old_project_id . '<->'.$project_id; | 77 | echo '复制数据库失败:'.$old_project_id . '<->'.$project_id; |
| 76 | } | 78 | } |
| 77 | - $this->output('CopyProjectJob end, old project_id: ' . $old_project_id . ', new project_id: ' . $project_id); | 79 | + //修改项目状态 |
| 80 | + $projectModel->edit(['delete_status'=>0],['id'=>$project_id]); | ||
| 78 | } | 81 | } |
| 79 | } | 82 | } |
| 80 | return true; | 83 | return true; |
| @@ -206,13 +209,62 @@ class CopyProject extends Command | @@ -206,13 +209,62 @@ class CopyProject extends Command | ||
| 206 | } | 209 | } |
| 207 | //复制数据库 | 210 | //复制数据库 |
| 208 | public function copyMysql($project_id,$new_project_id){ | 211 | public function copyMysql($project_id,$new_project_id){ |
| 209 | - Artisan::call("php artisan copy_project_s $project_id $new_project_id"); | 212 | + //切换数据库配置 |
| 213 | + $project = ProjectServer::useProject($new_project_id); | ||
| 214 | + //创建数据库 | ||
| 215 | + ProjectServer::createDatabase($project); | ||
| 216 | + //创建表 | ||
| 217 | + $this->initTable($project_id,$new_project_id); | ||
| 210 | //修改项目状态 | 218 | //修改项目状态 |
| 211 | $projectModel = new Project(); | 219 | $projectModel = new Project(); |
| 212 | $projectModel->edit(['delete_status'=>0],['id'=>$new_project_id]); | 220 | $projectModel->edit(['delete_status'=>0],['id'=>$new_project_id]); |
| 213 | } | 221 | } |
| 214 | 222 | ||
| 215 | /** | 223 | /** |
| 224 | + * @remark :创建数据库 | ||
| 225 | + * @name :initTable | ||
| 226 | + * @author :lyh | ||
| 227 | + * @method :post | ||
| 228 | + * @time :2023/12/11 10:09 | ||
| 229 | + */ | ||
| 230 | + public function initTable($project_id, $news_project_id) | ||
| 231 | + { | ||
| 232 | + // 设置源数据库 | ||
| 233 | + config(['database.connections.custom_tmp_mysql_copy.database' => 'gl_data_' . $project_id]); | ||
| 234 | + $database_name = DB::connection('custom_tmp_mysql_copy')->getDatabaseName(); | ||
| 235 | + // 获取源数据库的所有表 | ||
| 236 | + $tables = Schema::connection('custom_tmp_mysql_copy')->getAllTables(); | ||
| 237 | + $tables = array_column($tables, 'Tables_in_' . $database_name); | ||
| 238 | + foreach ($tables as $table) { | ||
| 239 | + // 1. 删除目标数据库中的表 | ||
| 240 | + DB::connection('custom_mysql')->statement("DROP TABLE IF EXISTS {$table}"); | ||
| 241 | + // 2. 重新创建表 | ||
| 242 | + $sql = DB::connection('custom_tmp_mysql_copy')->select("SHOW CREATE TABLE {$table}"); | ||
| 243 | + DB::connection('custom_mysql')->statement(get_object_vars($sql[0])['Create Table']); | ||
| 244 | + // 3. 跳过指定的表 | ||
| 245 | + if (in_array($table, ['gl_customer_visit', 'gl_customer_visit_item', 'gl_inquiry_other', 'gl_inquiry_form_data', 'gl_inquiry_form'])) { | ||
| 246 | + continue; | ||
| 247 | + } | ||
| 248 | + try { | ||
| 249 | + // 4. 重新插入数据 | ||
| 250 | + DB::connection('custom_mysql')->table($table)->insertUsing( | ||
| 251 | + [], // 插入所有列 | ||
| 252 | + function ($query) use ($table, $project_id) { | ||
| 253 | + $name = 'gl_data_' . $project_id . '.' . $table; | ||
| 254 | + $query->select('*')->from("{$name}"); | ||
| 255 | + } | ||
| 256 | + ); | ||
| 257 | + }catch (\Exception $e){ | ||
| 258 | + continue; | ||
| 259 | + } | ||
| 260 | + // 5. 更新 project_id(如果存在) | ||
| 261 | + if (Schema::connection('custom_mysql')->hasColumn($table, 'project_id')) { | ||
| 262 | + DB::connection('custom_mysql')->table($table)->update(['project_id' => $news_project_id]); | ||
| 263 | + } | ||
| 264 | + } | ||
| 265 | + return true; | ||
| 266 | + } | ||
| 267 | + /** | ||
| 216 | * @param $message | 268 | * @param $message |
| 217 | * @return bool | 269 | * @return bool |
| 218 | */ | 270 | */ |
| @@ -207,7 +207,7 @@ class SyncProject extends Command | @@ -207,7 +207,7 @@ class SyncProject extends Command | ||
| 207 | $data = [ | 207 | $data = [ |
| 208 | 'project'=>[ | 208 | 'project'=>[ |
| 209 | 'title' => $title, | 209 | 'title' => $title, |
| 210 | - 'company' => $param['company_name'], | 210 | + 'company' => preg_replace('/【.*?】/', '', $param['company_name']), |
| 211 | 'lead_name' => $param['principal_name'], | 211 | 'lead_name' => $param['principal_name'], |
| 212 | 'mobile' => $param['principal_mobile'], | 212 | 'mobile' => $param['principal_mobile'], |
| 213 | 'mysql_id'=>Project::MYSQL_ID, | 213 | 'mysql_id'=>Project::MYSQL_ID, |
| @@ -185,6 +185,9 @@ class KeywordController extends BaseController | @@ -185,6 +185,9 @@ class KeywordController extends BaseController | ||
| 185 | */ | 185 | */ |
| 186 | public function batchKeywordFiled(){ | 186 | public function batchKeywordFiled(){ |
| 187 | $param = []; | 187 | $param = []; |
| 188 | + if(isset($this->param['seo_title'])){ | ||
| 189 | + $param['seo_title'] = null; | ||
| 190 | + } | ||
| 188 | if(isset($this->param['keyword'])){ | 191 | if(isset($this->param['keyword'])){ |
| 189 | $param['seo_keywords'] = null; | 192 | $param['seo_keywords'] = null; |
| 190 | } | 193 | } |
| @@ -444,7 +444,7 @@ class InquiryForwardLogic extends BaseLogic | @@ -444,7 +444,7 @@ class InquiryForwardLogic extends BaseLogic | ||
| 444 | } | 444 | } |
| 445 | 445 | ||
| 446 | //统计数据赋值 | 446 | //统计数据赋值 |
| 447 | - $result = $this->model->list(['inquiry_date' => ['between', [$start_date, $end_date]]], 'id', ['status', 'inquiry_date'], 'asc'); | 447 | + $result = $this->model->list(['inquiry_date' => ['between', [$start_date . ' 00:00:00', $end_date . ' 23:59:59']]], 'id', ['status', 'inquiry_date'], 'asc'); |
| 448 | foreach ($result as $value) { | 448 | foreach ($result as $value) { |
| 449 | $inquiry_date = substr($value['inquiry_date'], 0, 10); | 449 | $inquiry_date = substr($value['inquiry_date'], 0, 10); |
| 450 | $data[$inquiry_date]['total'] += 1; | 450 | $data[$inquiry_date]['total'] += 1; |
| @@ -159,13 +159,17 @@ class ProjectLogic extends BaseLogic | @@ -159,13 +159,17 @@ class ProjectLogic extends BaseLogic | ||
| 159 | * @param :1->建站中 2->优化中 3->建站完成 6-》错误单 | 159 | * @param :1->建站中 2->优化中 3->建站完成 6-》错误单 |
| 160 | */ | 160 | */ |
| 161 | public function projectSave(){ | 161 | public function projectSave(){ |
| 162 | - $this->saveSeoPlan($this->param['id'],$this->param['type'],$this->param['deploy_build']['plan'],$this->param['deploy_build']['seo_plan'],$this->param['deploy_optimize']['optimist_mid'] ?? 0,$this->param['deploy_optimize']['quality_mid'] ?? 0); | ||
| 163 | - $this->checkAiBlog($this->param['main_lang_id'],$this->param['is_ai_blog'],$this->param['company'],$this->param['deploy_optimize']['company_en_name'] ?? '',$this->param['deploy_optimize']['company_en_description'] ?? ''); | ||
| 164 | - DB::beginTransaction(); | ||
| 165 | - try { | ||
| 166 | - if($this->param['type'] == Project::TYPE_SEVEN){ | ||
| 167 | - $this->setTypeSevenEdit($this->param); | ||
| 168 | - }else{ | 162 | + if($this->param['type'] == Project::TYPE_SEVEN){ |
| 163 | + $this->setTypeSevenEdit($this->param); | ||
| 164 | + }else{ | ||
| 165 | + //优化设置默认关闭 | ||
| 166 | + $this->param['is_ai_blog'] = 0; | ||
| 167 | + $this->param['deploy_optimize']['is_ai_blog_send'] = 0; | ||
| 168 | + $this->param['deploy_optimize']['is_auto_keywords'] = 0; | ||
| 169 | + $this->saveSeoPlan($this->param['id'],$this->param['type'],$this->param['deploy_build']['plan'],$this->param['deploy_build']['seo_plan'],$this->param['deploy_optimize']['optimist_mid'] ?? 0,$this->param['deploy_optimize']['quality_mid'] ?? 0); | ||
| 170 | + $this->checkAiBlog($this->param['main_lang_id'],$this->param['is_ai_blog'],$this->param['company'],$this->param['deploy_optimize']['company_en_name'] ?? '',$this->param['deploy_optimize']['company_en_description'] ?? ''); | ||
| 171 | + DB::beginTransaction(); | ||
| 172 | + try { | ||
| 169 | //初始化项目 | 173 | //初始化项目 |
| 170 | $this->param = $this->createProjectData($this->param); | 174 | $this->param = $this->createProjectData($this->param); |
| 171 | //双向绑定服务器,需放到保存项目的上方 | 175 | //双向绑定服务器,需放到保存项目的上方 |
| @@ -191,11 +195,11 @@ class ProjectLogic extends BaseLogic | @@ -191,11 +195,11 @@ class ProjectLogic extends BaseLogic | ||
| 191 | $this->syncImageFile($this->param['project_location'],$this->param['id']); | 195 | $this->syncImageFile($this->param['project_location'],$this->param['id']); |
| 192 | //同步信息表 | 196 | //同步信息表 |
| 193 | (new SyncService())->projectAcceptAddress($this->param['id']); | 197 | (new SyncService())->projectAcceptAddress($this->param['id']); |
| 198 | + DB::commit(); | ||
| 199 | + }catch (\Exception $e){ | ||
| 200 | + DB::rollBack(); | ||
| 201 | + $this->fail('保存失败,请联系管理员'); | ||
| 194 | } | 202 | } |
| 195 | - DB::commit(); | ||
| 196 | - }catch (\Exception $e){ | ||
| 197 | - DB::rollBack(); | ||
| 198 | - $this->fail('保存失败,请联系管理员'); | ||
| 199 | } | 203 | } |
| 200 | return $this->success(); | 204 | return $this->success(); |
| 201 | } | 205 | } |
| @@ -30,12 +30,12 @@ class InquiryProjectRoute extends Base | @@ -30,12 +30,12 @@ class InquiryProjectRoute extends Base | ||
| 30 | */ | 30 | */ |
| 31 | public static function saveProjectRoute($project_id, $title, $route, $date) | 31 | public static function saveProjectRoute($project_id, $title, $route, $date) |
| 32 | { | 32 | { |
| 33 | - $log = self::where(compact('project_id', 'title'))->first(); | ||
| 34 | - if ($log) { | ||
| 35 | - $log->date = $date; | ||
| 36 | - $log->save(); | ||
| 37 | - return $log; | ||
| 38 | - } | 33 | +// $log = self::where(compact('project_id', 'title'))->first(); |
| 34 | +// if ($log) { | ||
| 35 | +// $log->date = $date; | ||
| 36 | +// $log->save(); | ||
| 37 | +// return $log; | ||
| 38 | +// } | ||
| 39 | 39 | ||
| 40 | $self = new self(); | 40 | $self = new self(); |
| 41 | $self->project_id = $project_id; | 41 | $self->project_id = $project_id; |
| 1 | -<?php | ||
| 2 | -/** | ||
| 3 | - * @remark : | ||
| 4 | - * @name :RequestUrlLog.php | ||
| 5 | - * @author :lyh | ||
| 6 | - * @method :post | ||
| 7 | - * @time :2025/2/21 9:38 | ||
| 8 | - */ | ||
| 9 | - | ||
| 10 | -namespace App\Models\RequestUrlLog; | ||
| 11 | - | ||
| 12 | -use App\Models\Base; | ||
| 13 | - | ||
| 14 | -/** | ||
| 15 | - * @remark :url请求日志 | ||
| 16 | - * @name :RequestUrlLog | ||
| 17 | - * @author :lyh | ||
| 18 | - * @method :post | ||
| 19 | - * @time :2025/2/21 9:48 | ||
| 20 | - */ | ||
| 21 | -class RequestUrlLog extends Base | ||
| 22 | -{ | ||
| 23 | - protected $table = 'gl_request_url_log'; | ||
| 24 | -} |
| @@ -84,7 +84,7 @@ class RouteMap extends Base | @@ -84,7 +84,7 @@ class RouteMap extends Base | ||
| 84 | } | 84 | } |
| 85 | $i=1;//路由重复时拼接 | 85 | $i=1;//路由重复时拼接 |
| 86 | $route = $sign.$suffix; | 86 | $route = $sign.$suffix; |
| 87 | - while(self::isExist($route, $source_id, $project_id)){ | 87 | + while(self::isExist($route, $source_id, $project_id,$source)){ |
| 88 | $route = $sign .'-'.$i.$suffix; | 88 | $route = $sign .'-'.$i.$suffix; |
| 89 | $i++; | 89 | $i++; |
| 90 | } | 90 | } |
| @@ -99,7 +99,7 @@ class RouteMap extends Base | @@ -99,7 +99,7 @@ class RouteMap extends Base | ||
| 99 | * @time :2025/3/12 9:51 | 99 | * @time :2025/3/12 9:51 |
| 100 | * @param :route:路由 source:模块类型 source_id:对应数据id | 100 | * @param :route:路由 source:模块类型 source_id:对应数据id |
| 101 | */ | 101 | */ |
| 102 | - protected static function isExist($route, $source_id, $project_id){ | 102 | + protected static function isExist($route, $source_id, $project_id,$source){ |
| 103 | $fixed = ['api']; //固定的路由 | 103 | $fixed = ['api']; //固定的路由 |
| 104 | if(in_array($route, $fixed)){ | 104 | if(in_array($route, $fixed)){ |
| 105 | return true; | 105 | return true; |
| @@ -109,8 +109,13 @@ class RouteMap extends Base | @@ -109,8 +109,13 @@ class RouteMap extends Base | ||
| 109 | ]; | 109 | ]; |
| 110 | $route = self::where($where)->first(); | 110 | $route = self::where($where)->first(); |
| 111 | if($route){ | 111 | if($route){ |
| 112 | - if($route->source_id != $source_id){ | 112 | + if(($route->source_id != $source_id)){ |
| 113 | return true; | 113 | return true; |
| 114 | + }else{ | ||
| 115 | + if($source != $route->source){ | ||
| 116 | + //source_id想同,source不相同,继续循环 | ||
| 117 | + return true; | ||
| 118 | + } | ||
| 114 | } | 119 | } |
| 115 | } | 120 | } |
| 116 | return false; | 121 | return false; |
-
请 注册 或 登录 后发表评论