作者 lyh

gx

@@ -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,55 +97,204 @@ class TranslateController extends BaseController @@ -91,55 +97,204 @@ 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($this->map);
  103 + }else {
  104 + $data = $this->getSixUrl($this->map);
  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 16:27
  115 + */
  116 + public function getFiveUrl($map){
94 $data = []; 117 $data = [];
95 $routeMapModel = new RouteMap(); 118 $routeMapModel = new RouteMap();
96 - $list = $routeMapModel->list(); 119 + $list = $routeMapModel->list($map);
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 + $data[] = 'blogs/'.$v['route'].'/';
  137 + break;
  138 + case RouteMap::SOURCE_NEWS:
  139 + $data[] = 'news/'.$v['route'].'/';
  140 + break;
  141 + case RouteMap::SOURCE_BLOG_CATE:
  142 + $blogModel = new Blog();
  143 + $count = $blogModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  144 + $this->pageList($data,$count,$v,2,10);
  145 + break;
  146 + case RouteMap::SOURCE_NEWS_CATE:
  147 + $newsModel = new News();
  148 + $count = $newsModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  149 + $this->pageList($data,$count,$v,3,10);
  150 + break;
  151 + case RouteMap::SOURCE_MODULE:
  152 + $customModel = new CustomModuleContent();
  153 + $contentInfo = $customModel->read(['id'=>$v['source_id']]);
  154 + if(!empty($contentInfo) && !empty($contentInfo['category_id'])){
  155 + $categoryIdArr = $contentInfo['category_id'];
  156 + $cate_id = (int)array_shift($categoryIdArr);
  157 + $routeInfo = $routeMapModel->read(['source'=>RouteMap::SOURCE_MODULE_CATE,'source_id'=>$cate_id]);
  158 + $v['path'] = ($routeInfo['route'] ?? '');
121 } 159 }
122 - $route = $v['path'].'/'.$v['route'];  
123 - }else{ 160 + $data[] = $v['path'].$v['route'].'/';
  161 + break;
  162 + case RouteMap::SOURCE_MODULE_CATE:
  163 + $customModel = new CustomModuleContent();
  164 + $count = $customModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  165 + $this->pageSixList($data,$count,$v,3,10);
  166 + break;
  167 + default:
  168 + $data[] = $v['route'].'/';
  169 + break;
  170 + }
  171 + }
  172 + return $this->success($data);
  173 + }
  174 +
  175 + /**
  176 + * @remark :获取6.0的url
  177 + * @name :getSixUrl
  178 + * @author :lyh
  179 + * @method :post
  180 + * @time :2024/1/17 15:04
  181 + */
  182 + public function getSixUrl($map){
  183 + $data = [];
  184 + $routeMapModel = new RouteMap();
  185 + $list = $routeMapModel->list($map);
  186 + foreach ($list as $k => $v){
  187 + switch ($v['source']){
  188 + case RouteMap::SOURCE_PAGE:
124 if($v['route'] == 'index'){ 189 if($v['route'] == 'index'){
125 - $v['route'] = ''; 190 + $data[] = '/';//首页
  191 + }else{
  192 + $data[] = $v['route'].'/';
  193 + }
  194 + break;
  195 + case RouteMap::SOURCE_PRODUCT_CATE:
  196 + //获取当前产品分类关联多少产品
  197 + $productModel = new Product();
  198 + $count = $productModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  199 + $this->pageSixList($data,$count,$v,1,15);
  200 + break;
  201 + case RouteMap::SOURCE_BLOG:
  202 + $data[] = 'blogs/'.$v['route'].'/';
  203 + break;
  204 + case RouteMap::SOURCE_NEWS:
  205 + $data[] = 'news/'.$v['route'].'/';
  206 + break;
  207 + case RouteMap::SOURCE_BLOG_CATE:
  208 + $blogModel = new Blog();
  209 + $count = $blogModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  210 + $this->pageSixList($data,$count,$v,2,10);
  211 + break;
  212 + case RouteMap::SOURCE_NEWS_CATE:
  213 + $newsModel = new News();
  214 + $count = $newsModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  215 + $this->pageSixList($data,$count,$v,3,10);
  216 + break;
  217 + case RouteMap::SOURCE_MODULE:
  218 + $customModel = new CustomModuleContent();
  219 + $contentInfo = $customModel->read(['id'=>$v['source_id']]);
  220 + if(!empty($contentInfo) && !empty($contentInfo['category_id'])){
  221 + $categoryIdArr = $contentInfo['category_id'];
  222 + $cate_id = (int)array_shift($categoryIdArr);
  223 + $routeInfo = $routeMapModel->read(['source'=>RouteMap::SOURCE_MODULE_CATE,'source_id'=>$cate_id]);
  224 + $v['path'] = ($routeInfo['route'] ?? '');
126 } 225 }
127 - $route = $v['route'];  
128 - } 226 + $data[] = $v['path'].$v['route'].'/';
  227 + break;
  228 + case RouteMap::SOURCE_MODULE_CATE:
  229 + $customModel = new CustomModuleContent();
  230 + $count = $customModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
  231 + $this->pageSixList($data,$count,$v,3,10);
  232 + break;
  233 + default:
  234 + $data[] = $v['route'].'/';
  235 + break;
129 } 236 }
130 } 237 }
131 - $data[] = $this->user['domain'].$route;  
132 - $this->response('success',Code::SUCCESS,$data); 238 + return $this->success($data);
133 } 239 }
134 240
135 /** 241 /**
136 - * @remark :获取路由表中没有的路由  
137 - * @name :getFiveUrl 242 + * @remark :
  243 + * @name :pageList
138 * @author :lyh 244 * @author :lyh
139 * @method :post 245 * @method :post
140 - * @time :2024/1/17 9:32 246 + * @time :2024/1/17 14:15
141 */ 247 */
142 - public function getFiveUrl($v){ 248 + public function pageList(&$data,$count,$v,$type = 1,$pageNum = 15){
  249 + $page = 1;
  250 + if($count != 0){
  251 + //获取默认条数
  252 + $settingNumModel = new SettingNum();
  253 + $numInfo = $settingNumModel->read(['type'=>$type],['num']);
  254 + if(!empty($numInfo)){
  255 + $pageNum = $numInfo['num'];
  256 + }else{
  257 + $pageNum = $pageNum;
  258 + }
  259 + $page = ceil($count / $pageNum);//向上取整
  260 + }
  261 + for ($i = 1;$i <= $page;$i++){
  262 + if($i == 1){
  263 + $data[] = $v['route'];
  264 + }else{
  265 + $data[] = $v['route'].'/page/'.$i.'/';
  266 + }
  267 + }
  268 + return true;
  269 + }
143 270
  271 + /**
  272 + * @remark :
  273 + * @name :pageList
  274 + * @author :lyh
  275 + * @method :post
  276 + * @time :2024/1/17 14:15
  277 + */
  278 + public function pageSixList(&$data,$count,$v,$type = 1,$pageNum = 15){
  279 + $page = 1;
  280 + if($count != 0){
  281 + //获取默认条数
  282 + $settingNumModel = new SettingNum();
  283 + $numInfo = $settingNumModel->read(['type'=>$type],['num']);
  284 + if(!empty($numInfo)){
  285 + $pageNum = $numInfo['num'];
  286 + }else{
  287 + $pageNum = $pageNum;
  288 + }
  289 + $page = ceil($count / $pageNum);//向上取整
  290 + }
  291 + for ($i = 1;$i <= $page;$i++){
  292 + if($i == 1){
  293 + $data[] = $v['route'].'/';
  294 + }else{
  295 + $data[] = $v['route'].'/'.$i.'/';
  296 + }
  297 + }
  298 + return true;
144 } 299 }
145 } 300 }
@@ -34,10 +34,12 @@ class TranslateLogic extends BaseLogic @@ -34,10 +34,12 @@ class TranslateLogic extends BaseLogic
34 * @time :2024/1/12 9:43 34 * @time :2024/1/12 9:43
35 */ 35 */
36 public function getTranslateList(){ 36 public function getTranslateList(){
  37 + $this->user['domain'] = 'https://demo.globalso.site/';
  38 + $url = $this->user['domain'].(($this->param['url'] != '/') ? $this->param['url'] : '');
37 $languageInfo = $this->getLanguage($this->param['language_id']); 39 $languageInfo = $this->getLanguage($this->param['language_id']);
38 $info = $this->model->read(['url'=>str_replace_url($this->param['url']),'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]); 40 $info = $this->model->read(['url'=>str_replace_url($this->param['url']),'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]);
39 //获取当前URl的所有文本内容 41 //获取当前URl的所有文本内容
40 - $new_key = $this->getUrlRead($this->param['url']); 42 + $new_key = $this->getUrlRead($url);
41 if($info === false){ 43 if($info === false){
42 $data = []; 44 $data = [];
43 $translate_list = Translate::tran($new_key, $languageInfo['short']); 45 $translate_list = Translate::tran($new_key, $languageInfo['short']);
@@ -73,10 +75,11 @@ class TranslateLogic extends BaseLogic @@ -73,10 +75,11 @@ class TranslateLogic extends BaseLogic
73 * @time :2023/11/23 17:29 75 * @time :2023/11/23 17:29
74 */ 76 */
75 public function getTranslateImageList(){ 77 public function getTranslateImageList(){
  78 + $url = $this->user['domain'].(($this->param['url'] != '/') ? $this->param['url'] : '');
76 $info = $this->model->read(['url'=>str_replace_url($this->param['url']),'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]); 79 $info = $this->model->read(['url'=>str_replace_url($this->param['url']),'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]);
77 $data = []; 80 $data = [];
78 if($info === false){ 81 if($info === false){
79 - $new_list = $this->getUrlImageRead($this->param['url']); 82 + $new_list = $this->getUrlImageRead($url);
80 foreach ($new_list as $v){ 83 foreach ($new_list as $v){
81 $data[] = [ 84 $data[] = [
82 $v=>$v, 85 $v=>$v,