作者 张关杰

Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into bate

@@ -12,8 +12,14 @@ namespace App\Http\Controllers\Bside\Setting; @@ -12,8 +12,14 @@ namespace App\Http\Controllers\Bside\Setting;
12 use App\Enums\Common\Code; 12 use App\Enums\Common\Code;
13 use App\Http\Controllers\Bside\BaseController; 13 use App\Http\Controllers\Bside\BaseController;
14 use App\Http\Logic\Bside\Setting\TranslateLogic; 14 use App\Http\Logic\Bside\Setting\TranslateLogic;
  15 +use App\Models\Blog\Blog;
  16 +use App\Models\CustomModule\CustomModuleCategory;
  17 +use App\Models\CustomModule\CustomModuleContent;
  18 +use App\Models\News\News;
  19 +use App\Models\Product\Product;
15 use App\Models\Project\Project; 20 use App\Models\Project\Project;
16 use App\Models\RouteMap\RouteMap; 21 use App\Models\RouteMap\RouteMap;
  22 +use App\Models\WebSetting\SettingNum;
17 use App\Models\WebSetting\WebLanguage; 23 use App\Models\WebSetting\WebLanguage;
18 24
19 class TranslateController extends BaseController 25 class TranslateController extends BaseController
@@ -91,44 +97,200 @@ class TranslateController extends BaseController @@ -91,44 +97,200 @@ class TranslateController extends BaseController
91 * @time :2024/1/12 14:34 97 * @time :2024/1/12 14:34
92 */ 98 */
93 public function getUrl(){ 99 public function getUrl(){
  100 + //查看项目是5.0还是6.0
  101 + if($this->user['is_upgrade'] == Project::IS_UPGRADE_TRUE){//升级项目
  102 + $data = $this->getFiveUrl();
  103 + }else {
  104 + $data = $this->getSixUrl();
  105 + }
  106 + $this->response('success',Code::SUCCESS,$data);
  107 + }
  108 +
  109 + /**
  110 + * @remark :获取5.0的所有路由
  111 + * @name :getFiveUrl
  112 + * @author :lyh
  113 + * @method :post
  114 + * @time :2024/1/17 11:09
  115 + */
  116 + public function getFiveUrl(){
94 $data = []; 117 $data = [];
95 $routeMapModel = new RouteMap(); 118 $routeMapModel = new RouteMap();
96 $list = $routeMapModel->list(); 119 $list = $routeMapModel->list();
97 foreach ($list as $k => $v){ 120 foreach ($list as $k => $v){
98 - //查看项目是5.0还是6.0  
99 - if($this->user['is_upgrade'] == Project::IS_UPGRADE_TRUE){//升级项目  
100 - if(!empty($v['path'])){  
101 - if($v['path'] == 'blog'){  
102 - $v['path'] = $v['path'].'s';  
103 - }  
104 - $route = $v['path'].'/'.$v['route'];  
105 - }else{ 121 + switch ($v['source']){
  122 + case RouteMap::SOURCE_PAGE:
106 if($v['route'] == 'index'){ 123 if($v['route'] == 'index'){
107 - $v['route'] = ''; 124 + $data[] = '/';
  125 + }else{
  126 + $data[] = $v['route'].'/';
108 } 127 }
109 - $route = $v['route'];  
110 - }  
111 - }else{  
112 - if(!empty($v['path'])){  
113 - if($v['path'] == 'blog'){  
114 - $v['path'] = $v['path'].'s';  
115 - }elseif ($v['path'] == RouteMap::PATH_NEWS_CATE){  
116 - $routeMapModel->edit(['path'=>''],['id'=>$v['id']]);  
117 - $v['path'] = '';  
118 - }elseif ($v['path'] == RouteMap::PATH_NEWS_CATE){  
119 - $routeMapModel->edit(['path'=>''],['id'=>$v['id']]);  
120 - $v['path'] = ''; 128 + break;
  129 + case RouteMap::SOURCE_PRODUCT_CATE:
  130 + //获取当前产品分类关联多少产品
  131 + $productModel = new Product();
  132 + $count = $productModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  133 + $this->pageList($data,$count,$v,1,15);
  134 + break;
  135 + case RouteMap::SOURCE_BLOG:
  136 + case RouteMap::SOURCE_NEWS:
  137 + $data[] = $v['path'].'/'.$v['route'].'/';
  138 + break;
  139 + case RouteMap::SOURCE_BLOG_CATE:
  140 + $blogModel = new Blog();
  141 + $count = $blogModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  142 + $this->pageList($data,$count,$v,2,10);
  143 + break;
  144 + case RouteMap::SOURCE_NEWS_CATE:
  145 + $newsModel = new News();
  146 + $count = $newsModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  147 + $this->pageList($data,$count,$v,3,10);
  148 + break;
  149 + case RouteMap::SOURCE_MODULE:
  150 + $customModel = new CustomModuleContent();
  151 + $contentInfo = $customModel->read(['id'=>$v['source_id']]);
  152 + if(!empty($contentInfo) && !empty(trim($contentInfo['category_id'],','))){
  153 + $categoryIdArr = explode(',',trim($contentInfo['category_id'],','));
  154 + $cate_id = (int)array_shift($categoryIdArr);
  155 + $routeInfo = $routeMapModel->read(['source'=>RouteMap::SOURCE_MODULE_CATE,'source_id'=>$cate_id]);
  156 + $v['path'] = $routeInfo['route'] ?? '';
121 } 157 }
122 - $route = $v['path'].'/'.$v['route'];  
123 - }else{ 158 + $data[] = $v['path'].'/'.$v['route'].'/';
  159 + break;
  160 + case RouteMap::SOURCE_MODULE_CATE:
  161 + $customModel = new CustomModuleCategory();
  162 + $count = $customModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  163 + $this->pageSixList($data,$count,$v,3,10);
  164 + break;
  165 + default:
  166 + $data[] = $v['route'].'/';
  167 + break;
  168 + }
  169 + }
  170 + return $this->success($data);
  171 + }
  172 +
  173 + /**
  174 + * @remark :获取6.0的url
  175 + * @name :getSixUrl
  176 + * @author :lyh
  177 + * @method :post
  178 + * @time :2024/1/17 15:04
  179 + */
  180 + public function getSixUrl(){
  181 + $data = [];
  182 + $routeMapModel = new RouteMap();
  183 + $list = $routeMapModel->list();
  184 + foreach ($list as $k => $v){
  185 + switch ($v['source']){
  186 + case RouteMap::SOURCE_PAGE:
124 if($v['route'] == 'index'){ 187 if($v['route'] == 'index'){
125 - $v['route'] = ''; 188 + $data[] = '/';//首页
  189 + }else{
  190 + $data[] = $v['route'].'/';
  191 + }
  192 + break;
  193 + case RouteMap::SOURCE_PRODUCT_CATE:
  194 + //获取当前产品分类关联多少产品
  195 + $productModel = new Product();
  196 + $count = $productModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  197 + $this->pageSixList($data,$count,$v,1,15);
  198 + break;
  199 + case RouteMap::SOURCE_BLOG:
  200 + case RouteMap::SOURCE_NEWS:
  201 + $data[] = $v['path'].'/'.$v['route'].'/';
  202 + break;
  203 + case RouteMap::SOURCE_BLOG_CATE:
  204 + $blogModel = new Blog();
  205 + $count = $blogModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  206 + $this->pageSixList($data,$count,$v,2,10);
  207 + break;
  208 + case RouteMap::SOURCE_NEWS_CATE:
  209 + $newsModel = new News();
  210 + $count = $newsModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  211 + $this->pageSixList($data,$count,$v,3,10);
  212 + break;
  213 + case RouteMap::SOURCE_MODULE:
  214 + $customModel = new CustomModuleContent();
  215 + $contentInfo = $customModel->read(['id'=>$v['source_id']]);
  216 + if(!empty($contentInfo) && !empty(trim($contentInfo['category_id'],','))){
  217 + $categoryIdArr = explode(',',trim($contentInfo['category_id'],','));
  218 + $cate_id = (int)array_shift($categoryIdArr);
  219 + $routeInfo = $routeMapModel->read(['source'=>RouteMap::SOURCE_MODULE_CATE,'source_id'=>$cate_id]);
  220 + $v['path'] = $routeInfo['route'] ?? '';
126 } 221 }
127 - $route = $v['route'];  
128 - } 222 + $data[] = $v['path'].'/'.$v['route'].'/';
  223 + break;
  224 + case RouteMap::SOURCE_MODULE_CATE:
  225 + $customModel = new CustomModuleCategory();
  226 + $count = $customModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  227 + $this->pageSixList($data,$count,$v,3,10);
  228 + break;
  229 + default:
  230 + $data[] = $v['route'].'/';
  231 + break;
129 } 232 }
130 } 233 }
131 - $data[] = $this->user['domain'].$route;  
132 - $this->response('success',Code::SUCCESS,$data); 234 + return $this->success($data);
  235 + }
  236 +
  237 + /**
  238 + * @remark :
  239 + * @name :pageList
  240 + * @author :lyh
  241 + * @method :post
  242 + * @time :2024/1/17 14:15
  243 + */
  244 + public function pageList(&$data,$count,$v,$type = 1,$pageNum = 15){
  245 + $page = 1;
  246 + if($count != 0){
  247 + //获取默认条数
  248 + $settingNumModel = new SettingNum();
  249 + $numInfo = $settingNumModel->read(['type'=>$type],['num']);
  250 + if(!empty($numInfo)){
  251 + $pageNum = $numInfo['num'];
  252 + }else{
  253 + $pageNum = $pageNum;
  254 + }
  255 + $page = ceil($count / $pageNum);//向上取整
  256 + }
  257 + for ($i = 1;$i <= $page;$i++){
  258 + if($i == 1){
  259 + $data[] = $v['route'];
  260 + }else{
  261 + $data[] = $v['route'].'/page/'.$i.'/';
  262 + }
  263 + }
  264 + return true;
  265 + }
  266 +
  267 + /**
  268 + * @remark :
  269 + * @name :pageList
  270 + * @author :lyh
  271 + * @method :post
  272 + * @time :2024/1/17 14:15
  273 + */
  274 + public function pageSixList(&$data,$count,$v,$type = 1,$pageNum = 15){
  275 + $page = 1;
  276 + if($count != 0){
  277 + //获取默认条数
  278 + $settingNumModel = new SettingNum();
  279 + $numInfo = $settingNumModel->read(['type'=>$type],['num']);
  280 + if(!empty($numInfo)){
  281 + $pageNum = $numInfo['num'];
  282 + }else{
  283 + $pageNum = $pageNum;
  284 + }
  285 + $page = ceil($count / $pageNum);//向上取整
  286 + }
  287 + for ($i = 1;$i <= $page;$i++){
  288 + if($i == 1){
  289 + $data[] = $v['route'].'/';
  290 + }else{
  291 + $data[] = $v['route'].'/'.$i.'/';
  292 + }
  293 + }
  294 + return true;
133 } 295 }
134 } 296 }