作者 lyh

gx

... ... @@ -13,6 +13,8 @@ use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\Setting\TranslateLogic;
use App\Models\Blog\Blog;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\CustomModule\CustomModuleContent;
use App\Models\News\News;
use App\Models\Product\Product;
use App\Models\Project\Project;
... ... @@ -95,45 +97,12 @@ class TranslateController extends BaseController
* @time :2024/1/12 14:34
*/
public function getUrl(){
$data = [];
$routeMapModel = new RouteMap();
$list = $routeMapModel->list();
foreach ($list as $k => $v){
//查看项目是5.0还是6.0
if($this->user['is_upgrade'] == Project::IS_UPGRADE_TRUE){//升级项目
if(!empty($v['path'])){
if($v['path'] == 'blog'){
$v['path'] = $v['path'].'s';
}
$route = $v['path'].'/'.$v['route'];
}else{
if($v['route'] == 'index'){
$v['route'] = '';
}
$route = $v['route'];
}
//
}else{
if(!empty($v['path'])){
if($v['path'] == 'blog'){
$v['path'] = $v['path'].'s';
}elseif ($v['path'] == RouteMap::PATH_NEWS_CATE){
$routeMapModel->edit(['path'=>''],['id'=>$v['id']]);
$v['path'] = '';
}elseif ($v['path'] == RouteMap::PATH_NEWS_CATE){
$routeMapModel->edit(['path'=>''],['id'=>$v['id']]);
$v['path'] = '';
}
$route = $v['path'].'/'.$v['route'];
}else{
if($v['route'] == 'index'){
$v['route'] = '';
}
$route = $v['route'];
}
}
//查看项目是5.0还是6.0
if($this->user['is_upgrade'] == Project::IS_UPGRADE_TRUE){//升级项目
$data = $this->getFiveUrl();
}else {
$data = $this->getSixUrl();
}
$data[] = $this->user['domain'].$route;
$this->response('success',Code::SUCCESS,$data);
}
... ... @@ -152,9 +121,9 @@ class TranslateController extends BaseController
switch ($v['source']){
case RouteMap::SOURCE_PAGE:
if($v['route'] == 'index'){
$data[] = $this->user['domain'];
$data[] = '/';
}else{
$data[] = $this->user['domain'].$v['route'];
$data[] = $v['route'].'/';
}
break;
case RouteMap::SOURCE_PRODUCT_CATE:
... ... @@ -164,26 +133,105 @@ class TranslateController extends BaseController
$this->pageList($data,$count,$v,1,15);
break;
case RouteMap::SOURCE_BLOG:
$data[] = $v['path'].'/'.$v['route'];
case RouteMap::SOURCE_NEWS:
$data[] = $v['path'].'/'.$v['route'].'/';
break;
case RouteMap::SOURCE_BLOG_CATE:
$blogModel = new Blog();
$count = $blogModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
$this->pageList($data,$count,$v,2,10);
break;
case RouteMap::SOURCE_NEWS_CATE:
$newsModel = new News();
$count = $newsModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
$this->pageList($data,$count,$v,3,10);
break;
case RouteMap::SOURCE_MODULE:
$customModel = new CustomModuleContent();
$contentInfo = $customModel->read(['id'=>$v['source_id']]);
if(!empty($contentInfo) && !empty(trim($contentInfo['category_id'],','))){
$categoryIdArr = explode(',',trim($contentInfo['category_id'],','));
$cate_id = (int)array_shift($categoryIdArr);
$routeInfo = $routeMapModel->read(['source'=>RouteMap::SOURCE_MODULE_CATE,'source_id'=>$cate_id]);
$v['path'] = $routeInfo['route'] ?? '';
}
$data[] = $v['path'].'/'.$v['route'].'/';
break;
case RouteMap::SOURCE_MODULE_CATE:
$customModel = new CustomModuleCategory();
$count = $customModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
$this->pageSixList($data,$count,$v,3,10);
break;
default:
$data[] = $v['route'].'/';
break;
}
}
return $this->success($data);
}
/**
* @remark :获取6.0的url
* @name :getSixUrl
* @author :lyh
* @method :post
* @time :2024/1/17 15:04
*/
public function getSixUrl(){
$data = [];
$routeMapModel = new RouteMap();
$list = $routeMapModel->list();
foreach ($list as $k => $v){
switch ($v['source']){
case RouteMap::SOURCE_PAGE:
if($v['route'] == 'index'){
$data[] = '/';//首页
}else{
$data[] = $v['route'].'/';
}
break;
case RouteMap::SOURCE_PRODUCT_CATE:
//获取当前产品分类关联多少产品
$productModel = new Product();
$count = $productModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
$this->pageSixList($data,$count,$v,1,15);
break;
case RouteMap::SOURCE_BLOG:
case RouteMap::SOURCE_NEWS:
$data[] = $v['path'].'/'.$v['route'];
$data[] = $v['path'].'/'.$v['route'].'/';
break;
case RouteMap::SOURCE_BLOG_CATE:
$blogModel = new Blog();
$count = $blogModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
$this->pageSixList($data,$count,$v,2,10);
break;
case RouteMap::SOURCE_NEWS_CATE:
$newsModel = new News();
$count = $newsModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
$this->pageList($data,$count,$v,3,10);
$this->pageSixList($data,$count,$v,3,10);
break;
case RouteMap::SOURCE_MODULE:
$customModel = new CustomModuleContent();
$contentInfo = $customModel->read(['id'=>$v['source_id']]);
if(!empty($contentInfo) && !empty(trim($contentInfo['category_id'],','))){
$categoryIdArr = explode(',',trim($contentInfo['category_id'],','));
$cate_id = (int)array_shift($categoryIdArr);
$routeInfo = $routeMapModel->read(['source'=>RouteMap::SOURCE_MODULE_CATE,'source_id'=>$cate_id]);
$v['path'] = $routeInfo['route'] ?? '';
}
$data[] = $v['path'].'/'.$v['route'].'/';
break;
case RouteMap::SOURCE_MODULE_CATE:
$customModel = new CustomModuleCategory();
$count = $customModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
$this->pageSixList($data,$count,$v,3,10);
break;
default:
$data[] = $v['route'];
$data[] = $v['route'].'/';
break;
}
}
return $this->success($data);
}
/**
... ... @@ -215,4 +263,34 @@ class TranslateController extends BaseController
}
return true;
}
/**
* @remark :
* @name :pageList
* @author :lyh
* @method :post
* @time :2024/1/17 14:15
*/
public function pageSixList(&$data,$count,$v,$type = 1,$pageNum = 15){
$page = 1;
if($count != 0){
//获取默认条数
$settingNumModel = new SettingNum();
$numInfo = $settingNumModel->read(['type'=>$type],['num']);
if(!empty($numInfo)){
$pageNum = $numInfo['num'];
}else{
$pageNum = $pageNum;
}
$page = ceil($count / $pageNum);//向上取整
}
for ($i = 1;$i <= $page;$i++){
if($i == 1){
$data[] = $v['route'].'/';
}else{
$data[] = $v['route'].'/'.$i.'/';
}
}
return true;
}
}
... ...