|
...
|
...
|
@@ -12,8 +12,14 @@ namespace App\Http\Controllers\Bside\Setting; |
|
|
|
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;
|
|
|
|
use App\Models\RouteMap\RouteMap;
|
|
|
|
use App\Models\WebSetting\SettingNum;
|
|
|
|
use App\Models\WebSetting\WebLanguage;
|
|
|
|
|
|
|
|
class TranslateController extends BaseController
|
|
...
|
...
|
@@ -91,55 +97,210 @@ class TranslateController extends BaseController |
|
|
|
* @time :2024/1/12 14:34
|
|
|
|
*/
|
|
|
|
public function getUrl(){
|
|
|
|
//查看项目是5.0还是6.0
|
|
|
|
if($this->user['is_upgrade'] == Project::IS_UPGRADE_TRUE){//升级项目
|
|
|
|
$data = $this->getFiveUrl($this->map);
|
|
|
|
}else {
|
|
|
|
$data = $this->getSixUrl($this->map);
|
|
|
|
}
|
|
|
|
$this->response('success',Code::SUCCESS,$data);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :5.0路由
|
|
|
|
* @name :getFiveUrl
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/1/17 16:27
|
|
|
|
*/
|
|
|
|
public function getFiveUrl($map){
|
|
|
|
$data = [];
|
|
|
|
$routeMapModel = new RouteMap();
|
|
|
|
$list = $routeMapModel->list();
|
|
|
|
$list = $routeMapModel->list($map);
|
|
|
|
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{
|
|
|
|
switch ($v['source']){
|
|
|
|
case RouteMap::SOURCE_PAGE:
|
|
|
|
if($v['route'] == 'index'){
|
|
|
|
$v['route'] = '';
|
|
|
|
$data[] = '/';
|
|
|
|
}else{
|
|
|
|
$data[] = $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'] = '';
|
|
|
|
break;
|
|
|
|
case RouteMap::SOURCE_PRODUCT_CATE:
|
|
|
|
//获取当前产品分类关联多少产品
|
|
|
|
$productModel = new Product();
|
|
|
|
$count = $productModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
|
|
|
|
$this->pageList($data,$count,$v,1,15);
|
|
|
|
break;
|
|
|
|
case RouteMap::SOURCE_BLOG:
|
|
|
|
$data[] = 'blogs/'.$v['route'];
|
|
|
|
break;
|
|
|
|
case RouteMap::SOURCE_NEWS:
|
|
|
|
$data[] = 'news/'.$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($contentInfo['category_id'])){
|
|
|
|
$categoryIdArr = $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'] ?? '');
|
|
|
|
if(!empty($v['path'])){
|
|
|
|
$v['path'] = $v['path'].'/';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$route = $v['path'].'/'.$v['route'];
|
|
|
|
}else{
|
|
|
|
$data[] = $v['path'].$v['route'];
|
|
|
|
break;
|
|
|
|
case RouteMap::SOURCE_MODULE_CATE:
|
|
|
|
$customModel = new CustomModuleContent();
|
|
|
|
$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($map){
|
|
|
|
$data = [];
|
|
|
|
$routeMapModel = new RouteMap();
|
|
|
|
$list = $routeMapModel->list($map);
|
|
|
|
foreach ($list as $k => $v){
|
|
|
|
switch ($v['source']){
|
|
|
|
case RouteMap::SOURCE_PAGE:
|
|
|
|
if($v['route'] == 'index'){
|
|
|
|
$v['route'] = '';
|
|
|
|
$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:
|
|
|
|
$data[] = 'blogs/'.$v['route'];
|
|
|
|
break;
|
|
|
|
case RouteMap::SOURCE_NEWS:
|
|
|
|
$data[] = 'news/'.$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->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($contentInfo['category_id'])){
|
|
|
|
$categoryIdArr = $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'] ?? '');
|
|
|
|
if(!empty($v['path'])){
|
|
|
|
$v['path'] = $v['path'].'/';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$route = $v['route'];
|
|
|
|
}
|
|
|
|
$data[] = $v['path'].$v['route'];
|
|
|
|
break;
|
|
|
|
case RouteMap::SOURCE_MODULE_CATE:
|
|
|
|
$customModel = new CustomModuleContent();
|
|
|
|
$count = $customModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%']])->count();
|
|
|
|
$this->pageSixList($data,$count,$v,3,10);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
$data[] = $v['route'];
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$data[] = $this->user['domain'].$route;
|
|
|
|
$this->response('success',Code::SUCCESS,$data);
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :获取路由表中没有的路由
|
|
|
|
* @name :getFiveUrl
|
|
|
|
* @remark :
|
|
|
|
* @name :pageList
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/1/17 9:32
|
|
|
|
* @time :2024/1/17 14:15
|
|
|
|
*/
|
|
|
|
public function getFiveUrl($v){
|
|
|
|
public function pageList(&$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'].'/page/'.$i;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|