作者 刘锟

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

@@ -54,157 +54,28 @@ class UpdateRoute extends Command @@ -54,157 +54,28 @@ class UpdateRoute extends Command
54 */ 54 */
55 public function handle(){ 55 public function handle(){
56 $projectModel = new Project(); 56 $projectModel = new Project();
57 - $lists = $projectModel->list(['is_upgrade'=>0,'id'=>['>',167],'type'=>['!=',0]]); 57 + $lists = $projectModel->list(['is_upgrade'=>0,'type'=>['!=',0]]);
58 foreach ($lists as $k => $v){ 58 foreach ($lists as $k => $v){
59 - echo date('Y-m-d H:i:s') . ' start: 项目id为' . $v['id'] . PHP_EOL;  
60 ProjectServer::useProject($v['id']); 59 ProjectServer::useProject($v['id']);
61 -// $this->setProductRoute($v['id']);  
62 - $this->setProductKeywordRoute($v['id']);  
63 -// $this->setBlogRoute($v['id']);  
64 -// $this->setNewsRoute($v['id']);  
65 -// $this->setBlogCateRoute($v['id']);  
66 -// $this->setNewsCateRoute($v['id']); 60 + $this->getProductKeyword($v['id']);
67 DB::disconnect('custom_mysql'); 61 DB::disconnect('custom_mysql');
68 } 62 }
69 echo date('Y-m-d H:i:s') . ' end: 项目id为' . $v['id'] . PHP_EOL; 63 echo date('Y-m-d H:i:s') . ' end: 项目id为' . $v['id'] . PHP_EOL;
70 } 64 }
71 65
72 /** 66 /**
73 - * @remark :设置路由  
74 - * @name :setRoute 67 + * @remark :产品关键字
  68 + * @name :getProductKeyword
75 * @author :lyh 69 * @author :lyh
76 * @method :post 70 * @method :post
77 - * @time :2023/11/20 15:30 71 + * @time :2023/12/8 11:13
78 */ 72 */
79 - public function setProductRoute($project_id){  
80 - $productModel = new Product();  
81 - $productList = $productModel->list(['status'=>['!=',2]],'id',['id','route']);  
82 - foreach ($productList as $v){  
83 - $route = preg_replace('/-2-1-product.*/', '', $v['route']);  
84 - $route = preg_replace('/-1-1-product.*/', '', $route);  
85 - $route = preg_replace('/-2-product.*/', '', $route);  
86 - $route = preg_replace('/-1-product.*/', '', $route);  
87 - $route = preg_replace('/-product.*/', '', $route);  
88 - $i = 0;  
89 - $routes = $this->productRoute($route,$v['id'],$i);  
90 - $route = RouteMap::setRoute($routes, RouteMap::SOURCE_PRODUCT, $v['id'], $project_id);  
91 - echo date('Y-m-d H:i:s') . ' 路由表返回的route:' . $route . PHP_EOL;  
92 - $productModel->edit(['route'=>$route],['id'=>$v['id']]);  
93 - }  
94 - return true;  
95 - }  
96 -  
97 - /**  
98 - * @remark :产品新增单独处理路由  
99 - * @name :setProductRoute  
100 - * @author :lyh  
101 - * @method :post  
102 - * @time :2023/11/21 18:48  
103 - */  
104 - public function productRoute($route,$id,$i){  
105 - echo date('Y-m-d H:i:s') . ' 打印$i:' . $i . PHP_EOL;  
106 - if($i == 0){  
107 - $routes = $route.'-product';  
108 - }else{  
109 - $routes = $route.'-'.$i.'-product';  
110 - }  
111 - $routeMapModel = new RouteMap();  
112 - $routeInfo = $routeMapModel->read(['route'=>$routes,'source'=>'product','source_id'=>['!=',$id]]);  
113 - if($routeInfo == false){  
114 - echo date('Y-m-d H:i:s') . ' route:' . $routes . PHP_EOL;  
115 - return $routes;  
116 - }else{  
117 - echo date('Y-m-d H:i:s') . ' 数据:' . $routeInfo['id'] . PHP_EOL;  
118 - $i = $i + 1;  
119 - return $this->productRoute($route,$id,$i);  
120 - }  
121 - }  
122 -  
123 - /**  
124 - * @remark :设置路由  
125 - * @name :setRoute  
126 - * @author :lyh  
127 - * @method :post  
128 - * @time :2023/11/20 15:30  
129 - */  
130 - public function setNewsRoute($project_id){  
131 - $newsModel = new News();  
132 - $newsList = $newsModel->list(['status'=>['!=',2]],'id',['id','url']);  
133 - foreach ($newsList as $v){  
134 - RouteMap::setRoute($v['url'], RouteMap::SOURCE_NEWS, $v['id'], $project_id);  
135 - }  
136 - return true;  
137 - }  
138 -  
139 - /**  
140 - * @remark :设置路由  
141 - * @name :setRoute  
142 - * @author :lyh  
143 - * @method :post  
144 - * @time :2023/11/20 15:30  
145 - */  
146 - public function setNewsCateRoute($project_id){  
147 - $newsCateModel = new NewsCategory();  
148 - $newsList = $newsCateModel->list([],'id',['id','alias']);  
149 - foreach ($newsList as $v){  
150 - RouteMap::setRoute($v['alias'], RouteMap::SOURCE_NEWS_CATE, $v['id'], $project_id);  
151 - }  
152 - return true;  
153 - }  
154 -  
155 - /**  
156 - * @remark :设置路由  
157 - * @name :setRoute  
158 - * @author :lyh  
159 - * @method :post  
160 - * @time :2023/11/20 15:30  
161 - */  
162 - public function setBlogRoute($project_id){  
163 - $blogModel = new Blog();  
164 - $blogList = $blogModel->list(['status'=>['!=',2]],'id',['id','url']);  
165 - foreach ($blogList as $v){  
166 - RouteMap::setRoute($v['url'], RouteMap::SOURCE_BLOG, $v['id'], $project_id);  
167 - }  
168 - return true;  
169 - }  
170 -  
171 - /**  
172 - * @remark :设置路由  
173 - * @name :setRoute  
174 - * @author :lyh  
175 - * @method :post  
176 - * @time :2023/11/20 15:30  
177 - */  
178 - public function setBlogCateRoute($project_id){  
179 - $blogCateModel = new BlogCategory();  
180 - $blogList = $blogCateModel->list([],'id',['id','alias']);  
181 - foreach ($blogList as $v){  
182 - RouteMap::setRoute($v['alias'], RouteMap::SOURCE_BLOG_CATE, $v['id'], $project_id);  
183 - }  
184 - return true;  
185 - }  
186 -  
187 - /**  
188 - * @remark :设置路由  
189 - * @name :setRoute  
190 - * @author :lyh  
191 - * @method :post  
192 - * @time :2023/11/20 15:30  
193 - */  
194 - public function setProductKeywordRoute($project_id){ 73 + public function getProductKeyword($id){
195 $keywordModel = new Keyword(); 74 $keywordModel = new Keyword();
196 - $keywordList = $keywordModel->list([],'id',['id','route']);  
197 - if(!empty($keywordList)){  
198 - foreach ($keywordList as $v){  
199 -// if(!ends_with($v['route'],'-tag')){  
200 -// $route = $v['route'].'-tag';  
201 -// $keywordModel->edit(['route'=>$route],['id'=>$v['id']]);  
202 -// }  
203 - $routeMapModel = new RouteMap();  
204 - $routeMapModel->edit(['route'=>$v['route']],['source_id'=>$v['id'],'source'=>RouteMap::SOURCE_PRODUCT_KEYWORD]);  
205 - RouteMap::setRoute($v['route'], RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $project_id);  
206 - } 75 + $lists = $keywordModel->list(['route'=>['like','%-1-2-%']]);
  76 + if(!empty($lists)){
  77 + echo date('Y-m-d H:i:s') . ' 错误id:' . $id . PHP_EOL;
207 } 78 }
208 - return true;  
209 } 79 }
  80 +
210 } 81 }
@@ -60,9 +60,16 @@ class RouteMap extends Base @@ -60,9 +60,16 @@ class RouteMap extends Base
60 } 60 }
61 $i=1; 61 $i=1;
62 $sign = generateRoute($title); 62 $sign = generateRoute($title);
63 - $route = $sign; 63 + $suffix = '';
  64 + if($source == self::SOURCE_PRODUCT_KEYWORD){
  65 + $suffix = '-tag';
  66 + }
  67 + if($source == self::SOURCE_PRODUCT){
  68 + $suffix = '-product';
  69 + }
  70 + $route = $sign.$suffix;
64 while(self::isExist($route, $source, $source_id, $project_id)){ 71 while(self::isExist($route, $source, $source_id, $project_id)){
65 - $route = $sign .'-'.$i; 72 + $route = $sign .'-'.$i.$suffix;
66 $i++; 73 $i++;
67 } 74 }
68 return $route; 75 return $route;
@@ -83,17 +90,8 @@ class RouteMap extends Base @@ -83,17 +90,8 @@ class RouteMap extends Base
83 if(in_array($route, $fixed)){ 90 if(in_array($route, $fixed)){
84 return true; 91 return true;
85 } 92 }
86 - $path = '';  
87 - if($source == self::SOURCE_NEWS){  
88 - $path = self::SOURCE_NEWS;  
89 - }elseif ($source == self::SOURCE_BLOG){  
90 - $path = self::SOURCE_BLOG.'s';  
91 - }  
92 -  
93 $where = [ 93 $where = [
94 - 'project_id' => $project_id,  
95 - 'route' => $route,  
96 - 'path' => $path, 94 + 'project_id' => $project_id, 'route' => $route,
97 ]; 95 ];
98 $route = self::where($where)->first(); 96 $route = self::where($where)->first();
99 if($route){ 97 if($route){
@@ -122,25 +120,11 @@ class RouteMap extends Base @@ -122,25 +120,11 @@ class RouteMap extends Base
122 } 120 }
123 try { 121 try {
124 $route_map = self::where('project_id', $project_id)->where('source_id', $source_id)->where('source', $source)->first(); 122 $route_map = self::where('project_id', $project_id)->where('source_id', $source_id)->where('source', $source)->first();
125 - //上线项目 不能修改链接了  
126 -// if($route_map){  
127 -// $project = ProjectLogic::instance()->getInfo($project_id);  
128 -// if($project['type'] !== Project::STATUS_ONE){  
129 -// return $route_map->route;  
130 -// }  
131 -// }  
132 if(!$route_map){ 123 if(!$route_map){
133 $route_map = new self(); 124 $route_map = new self();
134 $route_map->source = $source; 125 $route_map->source = $source;
135 $route_map->source_id = $source_id; 126 $route_map->source_id = $source_id;
136 $route_map->project_id = $project_id; 127 $route_map->project_id = $project_id;
137 - if ($source == self::SOURCE_PRODUCT_KEYWORD){  
138 - $route = self::setKeywordRoute($route);  
139 - //查看当前路由是否存在  
140 - }elseif ($source == self::SOURCE_PRODUCT){  
141 - //产品单独处理路由  
142 - $route = self::setProductRoute($route);  
143 - }  
144 } 128 }
145 if($source == self::SOURCE_NEWS){ 129 if($source == self::SOURCE_NEWS){
146 $route_map->path = self::SOURCE_NEWS; 130 $route_map->path = self::SOURCE_NEWS;