Merge remote-tracking branch 'origin/master' into akun
正在显示
7 个修改的文件
包含
113 行增加
和
54 行删除
| @@ -53,41 +53,73 @@ class UpdateRoute extends Command | @@ -53,41 +53,73 @@ class UpdateRoute extends Command | ||
| 53 | * @time :2023/11/20 15:13 | 53 | * @time :2023/11/20 15:13 |
| 54 | */ | 54 | */ |
| 55 | public function handle(){ | 55 | public function handle(){ |
| 56 | -// $projectModel = new Project(); | ||
| 57 | -// $list = $projectModel->list(['type'=>['in',[1,2,3,4]]]); | ||
| 58 | -// foreach ($list as $v){ | ||
| 59 | - ProjectServer::useProject(197); | 56 | + $projectModel = new Project(); |
| 57 | + $list = $projectModel->list(['id'=>['in',[518,241]],'is_upgrade'=>0]); | ||
| 58 | + foreach ($list as $v){ | ||
| 59 | + echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL; | ||
| 60 | + ProjectServer::useProject($v['id']); | ||
| 60 | $this->getProduct(); | 61 | $this->getProduct(); |
| 62 | + $this->setProductKeyword(); | ||
| 61 | DB::disconnect('custom_mysql'); | 63 | DB::disconnect('custom_mysql'); |
| 62 | -// } | 64 | + } |
| 63 | echo date('Y-m-d H:i:s') . 'end' . PHP_EOL; | 65 | echo date('Y-m-d H:i:s') . 'end' . PHP_EOL; |
| 64 | } | 66 | } |
| 65 | 67 | ||
| 66 | /** | 68 | /** |
| 67 | - * @remark :产品关键字 | 69 | + * @remark :写入 |
| 68 | * @name :getProductKeyword | 70 | * @name :getProductKeyword |
| 69 | * @author :lyh | 71 | * @author :lyh |
| 70 | * @method :post | 72 | * @method :post |
| 71 | - * @time :2023/12/8 11:13 | 73 | + * @time :2023/12/21 14:37 |
| 72 | */ | 74 | */ |
| 73 | - public function getProductKeyword(){ | 75 | + public function setProductKeyword(){ |
| 74 | $keywordModel = new Keyword(); | 76 | $keywordModel = new Keyword(); |
| 75 | - $lists = $keywordModel->list(['status'=>1,'route'=>'']); | 77 | + $lists = $keywordModel->list(); |
| 76 | if(!empty($lists)){ | 78 | if(!empty($lists)){ |
| 77 | foreach ($lists as $v){ | 79 | foreach ($lists as $v){ |
| 80 | + if(!empty($v['route'])){ | ||
| 78 | $tag = "-tag"; | 81 | $tag = "-tag"; |
| 79 | if (!(substr($v['route'], -strlen($tag)) === $tag)) { | 82 | if (!(substr($v['route'], -strlen($tag)) === $tag)) { |
| 80 | - echo date('Y-m-d H:i:s') . '拼接'.$tag . PHP_EOL; | ||
| 81 | $route = $v['route'].$tag; | 83 | $route = $v['route'].$tag; |
| 82 | // 如果不是以 '-tag' 结尾,则拼接上 '-tag' | 84 | // 如果不是以 '-tag' 结尾,则拼接上 '-tag' |
| 83 | - $routeModel = new RouteMap(); | ||
| 84 | - $routeModel->edit(['route'=>$route],['source'=>RouteMap::SOURCE_PRODUCT_KEYWORD,'source_id'=>$v['id']]); | 85 | + $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']); |
| 85 | $keywordModel->edit(['route'=>$route],['id'=>$v['id']]); | 86 | $keywordModel->edit(['route'=>$route],['id'=>$v['id']]); |
| 86 | - echo date('Y-m-d H:i:s') . 'end'.$v['id'] . PHP_EOL; | ||
| 87 | } | 87 | } |
| 88 | + }else{ | ||
| 89 | + echo date('Y-m-d H:i:s') . 'id :'.$v['id'] . PHP_EOL; | ||
| 90 | + $route = RouteMap::setRoute($v['title'], RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']); | ||
| 91 | + $keywordModel->edit(['route'=>$route],['id'=>$v['id']]); | ||
| 88 | } | 92 | } |
| 93 | + echo date('Y-m-d H:i:s') . 'end :' . PHP_EOL; | ||
| 89 | } | 94 | } |
| 90 | } | 95 | } |
| 96 | + } | ||
| 97 | + | ||
| 98 | + /** | ||
| 99 | + * @remark :产品关键字 | ||
| 100 | + * @name :getProductKeyword | ||
| 101 | + * @author :lyh | ||
| 102 | + * @method :post | ||
| 103 | + * @time :2023/12/8 11:13 | ||
| 104 | + */ | ||
| 105 | +// public function getProductKeyword(){ | ||
| 106 | +// $keywordModel = new Keyword(); | ||
| 107 | +// $lists = $keywordModel->list(['status'=>1,'route'=>'']); | ||
| 108 | +// if(!empty($lists)){ | ||
| 109 | +// foreach ($lists as $v){ | ||
| 110 | +// $tag = "-tag"; | ||
| 111 | +// if (!(substr($v['route'], -strlen($tag)) === $tag)) { | ||
| 112 | +// echo date('Y-m-d H:i:s') . '拼接'.$tag . PHP_EOL; | ||
| 113 | +// $route = $v['route'].$tag; | ||
| 114 | +// // 如果不是以 '-tag' 结尾,则拼接上 '-tag' | ||
| 115 | +// $routeModel = new RouteMap(); | ||
| 116 | +// $routeModel->edit(['route'=>$route],['source'=>RouteMap::SOURCE_PRODUCT_KEYWORD,'source_id'=>$v['id']]); | ||
| 117 | +// $keywordModel->edit(['route'=>$route],['id'=>$v['id']]); | ||
| 118 | +// echo date('Y-m-d H:i:s') . 'end'.$v['id'] . PHP_EOL; | ||
| 119 | +// } | ||
| 120 | +// } | ||
| 121 | +// } | ||
| 122 | +// } | ||
| 91 | 123 | ||
| 92 | public function getProduct(){ | 124 | public function getProduct(){ |
| 93 | $productModel = new Product(); | 125 | $productModel = new Product(); |
| @@ -106,35 +138,7 @@ class UpdateRoute extends Command | @@ -106,35 +138,7 @@ class UpdateRoute extends Command | ||
| 106 | } | 138 | } |
| 107 | } | 139 | } |
| 108 | 140 | ||
| 109 | - /** | ||
| 110 | - * @remark :写入 | ||
| 111 | - * @name :getProductKeyword | ||
| 112 | - * @author :lyh | ||
| 113 | - * @method :post | ||
| 114 | - * @time :2023/12/21 14:37 | ||
| 115 | - */ | ||
| 116 | - public function setProductKeyword(){ | ||
| 117 | - $keywordModel = new Keyword(); | ||
| 118 | - $lists = $keywordModel->list(); | ||
| 119 | - if(!empty($lists)){ | ||
| 120 | - foreach ($lists as $v){ | ||
| 121 | - if(!empty($v['route'])){ | ||
| 122 | - $tag = "-tag"; | ||
| 123 | - if (!(substr($v['route'], -strlen($tag)) === $tag)) { | ||
| 124 | - $route = $v['route'].$tag; | ||
| 125 | - // 如果不是以 '-tag' 结尾,则拼接上 '-tag' | ||
| 126 | - $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']); | ||
| 127 | - $keywordModel->edit(['route'=>$route],['id'=>$v['id']]); | ||
| 128 | - } | ||
| 129 | - }else{ | ||
| 130 | - echo date('Y-m-d H:i:s') . 'id :'.$v['id'] . PHP_EOL; | ||
| 131 | - $route = RouteMap::setRoute($v['title'], RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']); | ||
| 132 | - $keywordModel->edit(['route'=>$route],['id'=>$v['id']]); | ||
| 133 | - } | ||
| 134 | - echo date('Y-m-d H:i:s') . 'end :'.$route . PHP_EOL; | ||
| 135 | - } | ||
| 136 | - } | ||
| 137 | - } | 141 | + |
| 138 | 142 | ||
| 139 | /** | 143 | /** |
| 140 | * @remark :删除路由通知C端 | 144 | * @remark :删除路由通知C端 |
| @@ -102,12 +102,12 @@ class MailController extends BaseController | @@ -102,12 +102,12 @@ class MailController extends BaseController | ||
| 102 | $arr[] = $v['mail_id']; | 102 | $arr[] = $v['mail_id']; |
| 103 | } | 103 | } |
| 104 | $mailModel = new MailModel(); | 104 | $mailModel = new MailModel(); |
| 105 | - $mail_list = $mailModel->list(['id'=>['not in',$arr],'user_list'=>['like',','.$this->user['id'].',']]); | 105 | + $mail_list = $mailModel->list(['id'=>['not in',$arr],'user_list'=>['like','%,'.$this->user['id'].',%']]); |
| 106 | $data = []; | 106 | $data = []; |
| 107 | - foreach ($mail_list as $k => $v){ | 107 | + foreach ($mail_list as $k1 => $v1){ |
| 108 | $data[] = [ | 108 | $data[] = [ |
| 109 | 'user_id'=>$this->user['id'], | 109 | 'user_id'=>$this->user['id'], |
| 110 | - 'mail_id'=>$v['id'], | 110 | + 'mail_id'=>$v1['id'], |
| 111 | 'created_at'=>date('Y-m-d H:i:s'), | 111 | 'created_at'=>date('Y-m-d H:i:s'), |
| 112 | 'updated_at'=>date('Y-m-d H:i:s'), | 112 | 'updated_at'=>date('Y-m-d H:i:s'), |
| 113 | ]; | 113 | ]; |
| @@ -69,6 +69,9 @@ class NavController extends BaseController | @@ -69,6 +69,9 @@ class NavController extends BaseController | ||
| 69 | if (empty($detailsList[$val['id']])){ | 69 | if (empty($detailsList[$val['id']])){ |
| 70 | continue; | 70 | continue; |
| 71 | } | 71 | } |
| 72 | + if(!empty($detailsList[$val['id']]['sub']) && is_array($detailsList[$val['id']]['sub'])){ | ||
| 73 | + $detailsList[$val['id']]['sub'] = $this->handleDetailsSub($detailsList[$val['id']]['sub']); | ||
| 74 | + } | ||
| 72 | $result[] = $detailsList[$val['id']]; | 75 | $result[] = $detailsList[$val['id']]; |
| 73 | unset($detailsList[$val['id']]); | 76 | unset($detailsList[$val['id']]); |
| 74 | } | 77 | } |
| @@ -76,6 +79,19 @@ class NavController extends BaseController | @@ -76,6 +79,19 @@ class NavController extends BaseController | ||
| 76 | return $this->success($result); | 79 | return $this->success($result); |
| 77 | } | 80 | } |
| 78 | 81 | ||
| 82 | + /** | ||
| 83 | + * @remark :处理子集 | ||
| 84 | + * @name :handleDetailsSub | ||
| 85 | + * @author :lyh | ||
| 86 | + * @method :post | ||
| 87 | + * @time :2023/12/21 16:36 | ||
| 88 | + */ | ||
| 89 | + public function handleDetailsSub($detailsList){ | ||
| 90 | + if(!empty($detailsList['sub']) && is_array($detailsList['sub'])){ | ||
| 91 | + $detailsList['sub'] = $this->handleDetailsSub($detailsList['sub']); | ||
| 92 | + } | ||
| 93 | + return array_merge($detailsList); | ||
| 94 | + } | ||
| 79 | 95 | ||
| 80 | /** | 96 | /** |
| 81 | * @remark :根据id组装数据 | 97 | * @remark :根据id组装数据 |
| @@ -32,11 +32,8 @@ class KeywordController extends BaseController | @@ -32,11 +32,8 @@ class KeywordController extends BaseController | ||
| 32 | */ | 32 | */ |
| 33 | public function index(Keyword $keyword) | 33 | public function index(Keyword $keyword) |
| 34 | { | 34 | { |
| 35 | - if(!empty($this->map['title'])){ | ||
| 36 | - $this->map['title'] = ['like','%'.$this->map['title'].'%']; | ||
| 37 | - } | ||
| 38 | - $this->map['project_id'] = $this->user['project_id']; | ||
| 39 | - $filed = ['id', 'project_id', 'title', 'seo_title', 'seo_keywords', 'seo_description', 'status', 'created_at','route']; | 35 | + $this->map = $this->searchParam($this->map); |
| 36 | + $filed = ['id', 'project_id', 'title', 'seo_title', 'seo_keywords', 'seo_description', 'status', 'created_at','route','keyword_title']; | ||
| 40 | $data = $keyword->lists($this->map,$this->page,$this->row,$this->order,$filed); | 37 | $data = $keyword->lists($this->map,$this->page,$this->row,$this->order,$filed); |
| 41 | if(!empty($data)){ | 38 | if(!empty($data)){ |
| 42 | foreach ($data['list'] as &$v){ | 39 | foreach ($data['list'] as &$v){ |
| @@ -53,6 +50,24 @@ class KeywordController extends BaseController | @@ -53,6 +50,24 @@ class KeywordController extends BaseController | ||
| 53 | } | 50 | } |
| 54 | 51 | ||
| 55 | /** | 52 | /** |
| 53 | + * @remark :搜索 | ||
| 54 | + * @name :searchParam | ||
| 55 | + * @author :lyh | ||
| 56 | + * @method :post | ||
| 57 | + * @time :2023/12/21 17:40 | ||
| 58 | + */ | ||
| 59 | + public function searchParam($map){ | ||
| 60 | + if(!empty($map['title'])){ | ||
| 61 | + $map['title'] = ['like','%'.$map['title'].'%']; | ||
| 62 | + } | ||
| 63 | + if(!empty($map['keyword_title'])){ | ||
| 64 | + $map['keyword_title'] = ['like','%'.$map['keyword_title'].'%']; | ||
| 65 | + } | ||
| 66 | + $map['project_id'] = $this->user['project_id']; | ||
| 67 | + return $this->success($map); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + /** | ||
| 56 | * @remark :获取数据详情 | 71 | * @remark :获取数据详情 |
| 57 | * @name :info | 72 | * @name :info |
| 58 | * @author :lyh | 73 | * @author :lyh |
| @@ -5,6 +5,7 @@ namespace App\Http\Logic\Bside\BTemplate; | @@ -5,6 +5,7 @@ namespace App\Http\Logic\Bside\BTemplate; | ||
| 5 | use App\Http\Logic\Bside\BaseLogic; | 5 | use App\Http\Logic\Bside\BaseLogic; |
| 6 | use App\Models\Blog\Blog; | 6 | use App\Models\Blog\Blog; |
| 7 | use App\Models\Blog\BlogCategory; | 7 | use App\Models\Blog\BlogCategory; |
| 8 | +use App\Models\CustomModule\CustomModule; | ||
| 8 | use App\Models\News\News; | 9 | use App\Models\News\News; |
| 9 | use App\Models\News\NewsCategory; | 10 | use App\Models\News\NewsCategory; |
| 10 | use App\Models\Product\Category; | 11 | use App\Models\Product\Category; |
| @@ -690,10 +691,26 @@ class BTemplateLogic extends BaseLogic | @@ -690,10 +691,26 @@ class BTemplateLogic extends BaseLogic | ||
| 690 | if (!empty($blogCategory)){ | 691 | if (!empty($blogCategory)){ |
| 691 | foreach ($blogCategory as $item){$data["blogs"]["category"][] =$item;} | 692 | foreach ($blogCategory as $item){$data["blogs"]["category"][] =$item;} |
| 692 | } | 693 | } |
| 693 | - //返回 | ||
| 694 | return $this->success($data); | 694 | return $this->success($data); |
| 695 | } | 695 | } |
| 696 | 696 | ||
| 697 | + public function getModuleTypes(){ | ||
| 698 | + $data['module'] = ['默认','产品','新闻','博客','产品分类']; | ||
| 699 | + $data = [ | ||
| 700 | + ['id'=>'0',"name"=>'默认','category'=>[["id"=>"all", "title"=>"全部"], ["id"=>"hot", "title"=>"热销产品",], ["id"=>"recommend", "title"=>"推荐产品",]]], | ||
| 701 | + ['id'=>'1',"name"=>'产品','category'=>[]], | ||
| 702 | + ['id'=>'2',"name"=>'新闻','category'=>[]], | ||
| 703 | + ['id'=>'3',"name"=>'博客','category'=>[]], | ||
| 704 | + ['id'=>'4','name'=>'产品分类','category'=>[]], | ||
| 705 | + ]; | ||
| 706 | + //获取当前项目的扩展模块 | ||
| 707 | + $moduleModel = new CustomModule(); | ||
| 708 | + $moduleList = $moduleModel->list(['status'=>0]); | ||
| 709 | + foreach ($moduleList as $v){ | ||
| 710 | + $data[] = ['id'=>'custom-'.$v['id'],'name'=>$v['name'],'category'=>[]]; | ||
| 711 | + } | ||
| 712 | + } | ||
| 713 | + | ||
| 697 | /** | 714 | /** |
| 698 | * @remark :获取1级+2级 | 715 | * @remark :获取1级+2级 |
| 699 | * @name :getCategoryList | 716 | * @name :getCategoryList |
| @@ -5,6 +5,7 @@ namespace App\Http\Logic\Bside\Product; | @@ -5,6 +5,7 @@ namespace App\Http\Logic\Bside\Product; | ||
| 5 | use App\Exceptions\BsideGlobalException; | 5 | use App\Exceptions\BsideGlobalException; |
| 6 | use App\Helper\Arr; | 6 | use App\Helper\Arr; |
| 7 | use App\Helper\Common; | 7 | use App\Helper\Common; |
| 8 | +use App\Helper\Translate; | ||
| 8 | use App\Http\Logic\Bside\BaseLogic; | 9 | use App\Http\Logic\Bside\BaseLogic; |
| 9 | use App\Models\News\News; | 10 | use App\Models\News\News; |
| 10 | use App\Models\Product\Keyword; | 11 | use App\Models\Product\Keyword; |
| @@ -136,8 +137,12 @@ class KeywordLogic extends BaseLogic | @@ -136,8 +137,12 @@ class KeywordLogic extends BaseLogic | ||
| 136 | * @time :2023/8/28 14:03 | 137 | * @time :2023/8/28 14:03 |
| 137 | */ | 138 | */ |
| 138 | public function batchAdd(){ | 139 | public function batchAdd(){ |
| 140 | + $route_array = Translate::tran($this->param['title'], 'en'); | ||
| 141 | + if (empty($route_array)) { | ||
| 142 | + $this->fail('路由生成失败,请稍后重试!'); | ||
| 143 | + } | ||
| 139 | try { | 144 | try { |
| 140 | - foreach ($this->param['title'] as $v){ | 145 | + foreach ($this->param['title'] as $k=>$v){ |
| 141 | $this->model = new Keyword(); | 146 | $this->model = new Keyword(); |
| 142 | $info = $this->model->read(['title'=>$v]); | 147 | $info = $this->model->read(['title'=>$v]); |
| 143 | if($info === false){ | 148 | if($info === false){ |
| @@ -146,7 +151,7 @@ class KeywordLogic extends BaseLogic | @@ -146,7 +151,7 @@ class KeywordLogic extends BaseLogic | ||
| 146 | $param['updated_at'] = $param['created_at']; | 151 | $param['updated_at'] = $param['created_at']; |
| 147 | $param['title'] = $v; | 152 | $param['title'] = $v; |
| 148 | $id = $this->model->insertGetId($param); | 153 | $id = $this->model->insertGetId($param); |
| 149 | - $route = RouteMap::setRoute($v, RouteMap::SOURCE_PRODUCT_KEYWORD, $id, $this->user['project_id']); | 154 | + $route = RouteMap::setRoute($route_array[$k], RouteMap::SOURCE_PRODUCT_KEYWORD, $id, $this->user['project_id']); |
| 150 | // $this->curlDelRoute(['new_route'=>$route]); | 155 | // $this->curlDelRoute(['new_route'=>$route]); |
| 151 | $this->model->edit(['route'=>$route],['id'=>$id]); | 156 | $this->model->edit(['route'=>$route],['id'=>$id]); |
| 152 | } | 157 | } |
| @@ -54,7 +54,9 @@ class RouteMap extends Base | @@ -54,7 +54,9 @@ class RouteMap extends Base | ||
| 54 | * @date 2023/4/17 | 54 | * @date 2023/4/17 |
| 55 | */ | 55 | */ |
| 56 | public static function generateRoute($title, $source, $source_id, $project_id){ | 56 | public static function generateRoute($title, $source, $source_id, $project_id){ |
| 57 | + if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $title)){ | ||
| 57 | $title = Translate::tran($title, 'en'); | 58 | $title = Translate::tran($title, 'en'); |
| 59 | + } | ||
| 58 | $i=1; | 60 | $i=1; |
| 59 | $sign = generateRoute($title); | 61 | $sign = generateRoute($title); |
| 60 | $info = self::where(['project_id' => $project_id, 'source' => $source, 'source_id'=>$source_id])->first(); | 62 | $info = self::where(['project_id' => $project_id, 'source' => $source, 'source_id'=>$source_id])->first(); |
| @@ -116,7 +118,7 @@ class RouteMap extends Base | @@ -116,7 +118,7 @@ class RouteMap extends Base | ||
| 116 | public static function setRoute($title, $source, $source_id, $project_id = 0){ | 118 | public static function setRoute($title, $source, $source_id, $project_id = 0){ |
| 117 | $route = self::generateRoute($title, $source, $source_id, $project_id); | 119 | $route = self::generateRoute($title, $source, $source_id, $project_id); |
| 118 | if(!$route){ | 120 | if(!$route){ |
| 119 | - throw new \Exception('路由不能为空'); | 121 | + throw new \Exception('路由生成失败'); |
| 120 | } | 122 | } |
| 121 | try { | 123 | try { |
| 122 | $route_map = self::where('project_id', $project_id)->where('source_id', $source_id)->where('source', $source)->first(); | 124 | $route_map = self::where('project_id', $project_id)->where('source_id', $source_id)->where('source', $source)->first(); |
-
请 注册 或 登录 后发表评论