|
...
|
...
|
@@ -23,6 +23,7 @@ use App\Models\RouteMap\RouteMap; |
|
|
|
use App\Models\WebSetting\SettingNum;
|
|
|
|
use App\Models\WebSetting\Translate;
|
|
|
|
use App\Models\WebSetting\TranslateKey;
|
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
|
|
|
|
class TranslateController extends BaseController
|
|
|
|
{
|
|
...
|
...
|
@@ -351,7 +352,13 @@ class TranslateController extends BaseController |
|
|
|
if($v['route'] == 'products'){
|
|
|
|
$count = $productModel->formatQuery(['status'=>1])->count();
|
|
|
|
}else{
|
|
|
|
$count = $productModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%'],'status'=>1])->count();
|
|
|
|
$catelists = Cache::get('product_category_trans');
|
|
|
|
if(!$catelists){
|
|
|
|
$catelists = $productModel->list(['status'=>1],'id',['id','pid']);
|
|
|
|
Cache::put('product_category_trans',$catelists,3600 * 24);
|
|
|
|
}
|
|
|
|
$count = $this->getCategoryWithChildrenCountIterative($catelists,$v['source_id']);
|
|
|
|
// $count = $productModel->formatQuery(['category_id'=>['like','%,'.$v['source_id'].',%'],'status'=>1])->count();
|
|
|
|
}
|
|
|
|
$this->pageSixList($data,$count,$v,1,15);
|
|
|
|
break;
|
|
...
|
...
|
@@ -474,4 +481,31 @@ class TranslateController extends BaseController |
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 迭代方式获取分类及所有子分类的总数
|
|
|
|
* @param array $categories 所有分类数据
|
|
|
|
* @param int $categoryId 分类ID
|
|
|
|
* @return int 分类总数
|
|
|
|
*/
|
|
|
|
function getCategoryWithChildrenCountIterative($categories, $categoryId) {
|
|
|
|
$count = 0;
|
|
|
|
$queue = [$categoryId]; // 待处理的ID队列
|
|
|
|
while (!empty($queue)) {
|
|
|
|
$currentId = array_shift($queue);
|
|
|
|
// 如果是第一个ID,计数自身
|
|
|
|
if ($currentId == $categoryId) {
|
|
|
|
$count++;
|
|
|
|
}
|
|
|
|
// 查找并计数所有子分类
|
|
|
|
foreach ($categories as $category) {
|
|
|
|
if (isset($category['pid']) && $category['pid'] == $currentId) {
|
|
|
|
$count++;
|
|
|
|
$queue[] = $category['id']; // 将子分类ID加入队列
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $count;
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|