作者 赵彬吉
@@ -42,7 +42,7 @@ class Count extends Command @@ -42,7 +42,7 @@ class Count extends Command
42 public function handle() 42 public function handle()
43 { 43 {
44 $list = DB::table('gl_project')->where('gl_project.extend_type','=',0) 44 $list = DB::table('gl_project')->where('gl_project.extend_type','=',0)
45 - ->where('gl_project.type','!=',0)->where('gl_project.delete_status',0) 45 + ->where('gl_project.type','!=',0)
46 ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id') 46 ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id')
47 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') 47 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
48 ->select($this->selectParam())->get(); 48 ->select($this->selectParam())->get();
@@ -38,7 +38,7 @@ class InquiryMonthlyCount extends Command @@ -38,7 +38,7 @@ class InquiryMonthlyCount extends Command
38 */ 38 */
39 public function handle(){ 39 public function handle(){
40 $list = DB::table('gl_project')->where('gl_project.extend_type','=',0) 40 $list = DB::table('gl_project')->where('gl_project.extend_type','=',0)
41 - ->where('gl_project.type','!=',0)->where('gl_project.delete_status',0) 41 + ->where('gl_project.type','!=',0)
42 ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id') 42 ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id')
43 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') 43 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
44 ->select($this->selectParam())->get()->toArray(); 44 ->select($this->selectParam())->get()->toArray();
@@ -50,7 +50,7 @@ class UpdateProductCategory extends Command @@ -50,7 +50,7 @@ class UpdateProductCategory extends Command
50 public function handle(){ 50 public function handle(){
51 //获取所有项目 51 //获取所有项目
52 $projectModel = new Project(); 52 $projectModel = new Project();
53 - $list = $projectModel->list(['id'=>['in',[218]]],'id',['id']); 53 + $list = $projectModel->list(['id'=>['in',[475]]],'id',['id']);
54 echo date('Y-m-d H:i:s') . ' start: ' . json_encode($list) . PHP_EOL; 54 echo date('Y-m-d H:i:s') . ' start: ' . json_encode($list) . PHP_EOL;
55 try { 55 try {
56 foreach ($list as $v) { 56 foreach ($list as $v) {
@@ -60,14 +60,7 @@ class UpdateRoute extends Command @@ -60,14 +60,7 @@ class UpdateRoute extends Command
60 foreach ($list as $v){ 60 foreach ($list as $v){
61 echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL; 61 echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
62 ProjectServer::useProject($v['id']); 62 ProjectServer::useProject($v['id']);
63 -// $this->delProductKeyword();  
64 -// $this->checkProduct($data,$v['id']);  
65 -// $this->getProduct();  
66 $this->setProductKeyword(); 63 $this->setProductKeyword();
67 -// $this->getRouteMap();  
68 -// $this->getProductCategory();  
69 -// $this->delRouteMap();  
70 -// $this->setCustomRoute($v['id']);  
71 DB::disconnect('custom_mysql'); 64 DB::disconnect('custom_mysql');
72 } 65 }
73 echo date('Y-m-d H:i:s') . 'end' . PHP_EOL; 66 echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
@@ -114,19 +107,19 @@ class UpdateRoute extends Command @@ -114,19 +107,19 @@ class UpdateRoute extends Command
114 if(!empty($lists)){ 107 if(!empty($lists)){
115 foreach ($lists as $v){ 108 foreach ($lists as $v){
116 if(!empty($v['route'])){ 109 if(!empty($v['route'])){
117 -// $tag = "-tag";  
118 -// if ((substr($v['route'], -strlen($tag)) === $tag)) {  
119 -// echo date('Y-m-d H:i:s') . '拼接 :'.$v['id'] . PHP_EOL;  
120 -//// $route = Translate::tran($v['route'], 'en').$tag;  
121 -// // 如果不是以 '-tag' 结尾,则拼接上 '-tag'  
122 -// $route = trim($v['route'],'-tag');  
123 -// $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']);  
124 -// $keywordModel->edit(['route'=>$route],['id'=>$v['id']]);  
125 -// }else{  
126 -// $route = Translate::tran($v['title'], 'en').$tag;  
127 -// $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']);  
128 -// $keywordModel->edit(['route'=>$route],['id'=>$v['id']]);  
129 -// } 110 + $tag = "-tag";
  111 + if ((substr($v['route'], -strlen($tag)) === $tag)) {
  112 + echo date('Y-m-d H:i:s') . '拼接 :'.$v['id'] . PHP_EOL;
  113 +// $route = Translate::tran($v['route'], 'en').$tag;
  114 + // 如果不是以 '-tag' 结尾,则拼接上 '-tag'
  115 + $route = trim($v['route'],'-tag');
  116 + $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']);
  117 + $keywordModel->edit(['route'=>$route],['id'=>$v['id']]);
  118 + }else{
  119 + $route = Translate::tran($v['title'], 'en').$tag;
  120 + $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']);
  121 + $keywordModel->edit(['route'=>$route],['id'=>$v['id']]);
  122 + }
130 }else{ 123 }else{
131 echo date('Y-m-d H:i:s') . 'id :'.$v['id'] . PHP_EOL; 124 echo date('Y-m-d H:i:s') . 'id :'.$v['id'] . PHP_EOL;
132 $route = Translate::tran($v['title'], 'en'); 125 $route = Translate::tran($v['title'], 'en');
@@ -100,12 +100,17 @@ if (!function_exists('http_get')) { @@ -100,12 +100,17 @@ if (!function_exists('http_get')) {
100 curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); 100 curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
101 curl_setopt($ch1, CURLOPT_ENCODING, ''); 101 curl_setopt($ch1, CURLOPT_ENCODING, '');
102 curl_setopt($ch1, CURLOPT_MAXREDIRS, 10); 102 curl_setopt($ch1, CURLOPT_MAXREDIRS, 10);
  103 + curl_setopt($ch1, CURLOPT_TIMEOUT, 120);
103 curl_setopt($ch1, CURLOPT_HTTPHEADER, $header); 104 curl_setopt($ch1, CURLOPT_HTTPHEADER, $header);
104 curl_setopt($ch1, CURLOPT_CONNECTTIMEOUT, $timeout); 105 curl_setopt($ch1, CURLOPT_CONNECTTIMEOUT, $timeout);
105 curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true); 106 curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true);
106 curl_setopt($ch1, CURLOPT_CUSTOMREQUEST, 'GET'); 107 curl_setopt($ch1, CURLOPT_CUSTOMREQUEST, 'GET');
107 curl_setopt($ch1, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 108 curl_setopt($ch1, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
108 $access_txt = curl_exec($ch1); 109 $access_txt = curl_exec($ch1);
  110 + if (curl_errno($ch1)) {
  111 + $error_message = curl_error($ch1);
  112 + @file_put_contents(storage_path('logs/lyh_error.log'), var_export($error_message, true) . PHP_EOL, FILE_APPEND);
  113 + }
109 curl_close($ch1); 114 curl_close($ch1);
110 return json_decode($access_txt, true); 115 return json_decode($access_txt, true);
111 } 116 }
@@ -313,7 +313,7 @@ class NewsController extends BaseController @@ -313,7 +313,7 @@ class NewsController extends BaseController
313 ],[ 313 ],[
314 'keyword.required' => 'keyword不能为空', 314 'keyword.required' => 'keyword不能为空',
315 ]); 315 ]);
316 - $data = http_get('http://gnews.globalso.com/gnews_news.php?keyword='.$this->param['keyword']); 316 + $data = http_get('http://gnews.globalso.com/gnews_news.php?keyword='.$this->param['keyword'],['charset=utf-8']);
317 $this->response('success',Code::SUCCESS,$data); 317 $this->response('success',Code::SUCCESS,$data);
318 } 318 }
319 } 319 }
@@ -40,7 +40,7 @@ class CategoryController extends BaseController @@ -40,7 +40,7 @@ class CategoryController extends BaseController
40 $template_id = $this->getTemplateId(BTemplate::SOURCE_PRODUCT,BTemplate::IS_LIST);//获取模版id 40 $template_id = $this->getTemplateId(BTemplate::SOURCE_PRODUCT,BTemplate::IS_LIST);//获取模版id
41 foreach ($list as $k =>$v){ 41 foreach ($list as $k =>$v){
42 $v['url'] = $this->user['domain'] . $v['route'].'/'; 42 $v['url'] = $this->user['domain'] . $v['route'].'/';
43 - $v['product_num'] = Category::getProductNum($v['id']); 43 + $v['product_num'] = $category->getProductNum($v['id']);
44 $v['image_link'] = getImageUrl($v['image'],$this->user['storage_type'],$this->user['project_location']); 44 $v['image_link'] = getImageUrl($v['image'],$this->user['storage_type'],$this->user['project_location']);
45 $v['is_renovation'] = $this->getIsRenovation(BTemplate::SOURCE_PRODUCT,BTemplate::IS_LIST,$template_id,$v['id']); 45 $v['is_renovation'] = $this->getIsRenovation(BTemplate::SOURCE_PRODUCT,BTemplate::IS_LIST,$template_id,$v['id']);
46 $list[$k] = $v; 46 $list[$k] = $v;
@@ -111,14 +111,10 @@ class ProductController extends BaseController @@ -111,14 +111,10 @@ class ProductController extends BaseController
111 public function searchParam(&$query){ 111 public function searchParam(&$query){
112 $query = $query->where('project_id',$this->user['project_id']); 112 $query = $query->where('project_id',$this->user['project_id']);
113 if (isset($this->map['category_id']) && !empty($this->map['category_id'])) { 113 if (isset($this->map['category_id']) && !empty($this->map['category_id'])) {
114 - $str = [];  
115 $str[] = $this->map['category_id']; 114 $str[] = $this->map['category_id'];
116 - $this->getAllSub($this->map['category_id'],$str);  
117 - $query->where(function ($subQuery) use ($str) {  
118 - foreach ($str as $v) {  
119 - $subQuery->orWhereRaw("FIND_IN_SET(?, category_id) > 0", [$v]);  
120 - }  
121 - }); 115 + $str = $this->getAllSub($this->map['category_id'],$str);
  116 + $productArr = CategoryRelated::whereIn('cate_id',$str)->pluck('product_id')->toArray();
  117 + $query->whereIn('id',$productArr);
122 } 118 }
123 if(isset($this->map['title']) && !empty($this->map['title'])){ 119 if(isset($this->map['title']) && !empty($this->map['title'])){
124 $query = $query->where('title','like','%'.$this->map['title'].'%'); 120 $query = $query->where('title','like','%'.$this->map['title'].'%');
@@ -55,9 +55,9 @@ class UserLogic extends BaseLogic @@ -55,9 +55,9 @@ class UserLogic extends BaseLogic
55 $this->param = $this->editPassword($this->param); 55 $this->param = $this->editPassword($this->param);
56 $rs = $this->model->edit($this->param, ['id' => $this->param['id']]); 56 $rs = $this->model->edit($this->param, ['id' => $this->param['id']]);
57 } else { 57 } else {
58 - $mobileModel = new Mobile();  
59 - //查看当前手机号码是否存在于手机号码库  
60 - $mobileInfo = $mobileModel->read(['mobile'=>$this->param['mobile']]); 58 +// $mobileModel = new Mobile();
  59 +// //查看当前手机号码是否存在于手机号码库
  60 +// $mobileInfo = $mobileModel->read(['mobile'=>$this->param['mobile']]);
61 $this->param['password'] = base64_encode(md5($this->param['password'])); 61 $this->param['password'] = base64_encode(md5($this->param['password']));
62 $rs = $this->model->add($this->param); 62 $rs = $this->model->add($this->param);
63 } 63 }
@@ -46,7 +46,7 @@ class ProductLogic extends BaseLogic @@ -46,7 +46,7 @@ class ProductLogic extends BaseLogic
46 $this->param = $this->handleSaveParam($this->param); 46 $this->param = $this->handleSaveParam($this->param);
47 try { 47 try {
48 if(isset($this->param['id']) && !empty($this->param['id'])){ 48 if(isset($this->param['id']) && !empty($this->param['id'])){
49 - $this->param['route'] = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_PRODUCT, $this->param['id'], $this->user['project_id']); 49 + $this->param['route'] = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_PRODUCT, $this->param['id'], $this->user['project_id'],$this->param['six_read'] ?? 1);
50 $route = $this->param['route']; 50 $route = $this->param['route'];
51 $this->model->edit($this->param,['id'=>$this->param['id']]); 51 $this->model->edit($this->param,['id'=>$this->param['id']]);
52 $id = $this->param['id']; 52 $id = $this->param['id'];
@@ -41,7 +41,23 @@ class Category extends Base @@ -41,7 +41,23 @@ class Category extends Base
41 return $ids; 41 return $ids;
42 } 42 }
43 43
44 - 44 + /**
  45 + * @remark :获取当前id下所有子集
  46 + * @name :getAllSub
  47 + * @author :lyh
  48 + * @method :post
  49 + * @time :2023/10/18 15:10
  50 + */
  51 + public function getAllSub($id,&$str = []){
  52 + $list = $this->list(['pid'=>$id,'status'=>1],['id','pid']);
  53 + if(!empty($list)){
  54 + foreach ($list as $v){
  55 + $str[] = $v['id'];
  56 + $this->getAllSub($v['id'],$str);
  57 + }
  58 + }
  59 + return $str;
  60 + }
45 61
46 /** 62 /**
47 * 关联产品数量 63 * 关联产品数量
@@ -50,10 +66,11 @@ class Category extends Base @@ -50,10 +66,11 @@ class Category extends Base
50 * @author zbj 66 * @author zbj
51 * @date 2023/4/28 67 * @date 2023/4/28
52 */ 68 */
53 - public static function getProductNum($cate_id){  
54 - $cate_ids = self::getChildIdsArr($cate_id);  
55 - $count = CategoryRelated::whereIn('cate_id',$cate_ids)->count();  
56 -// $str = 0; 69 + public function getProductNum($cate_id){
  70 + $str[] = $cate_id;
  71 + $cate_ids = $this->getAllSub($cate_id,$str);
  72 + $productArr = CategoryRelated::whereIn('cate_id',$cate_ids)->pluck('product_id')->unique()->toArray();
  73 + $count = count($productArr);
57 return $count; 74 return $count;
58 } 75 }
59 } 76 }
@@ -111,7 +111,10 @@ class RouteMap extends Base @@ -111,7 +111,10 @@ class RouteMap extends Base
111 * @author zbj 111 * @author zbj
112 * @date 2023/4/17 112 * @date 2023/4/17
113 */ 113 */
114 - public static function setRoute($title, $source, $source_id, $project_id = 0){ 114 + public static function setRoute($title, $source, $source_id, $project_id = 0,$is_upgrade = 0){
  115 + if($is_upgrade != 0){//5.0数据编辑路由时,直接返回路由
  116 + return $title;
  117 + }
115 $route = self::generateRoute($title, $source, $source_id, $project_id); 118 $route = self::generateRoute($title, $source, $source_id, $project_id);
116 if(!$route){ 119 if(!$route){
117 throw new \Exception('路由生成失败'); 120 throw new \Exception('路由生成失败');