作者 lyh

gx

... ... @@ -8,6 +8,8 @@ use App\Helper\FormGlobalsoApi;
use App\Models\Domain\DomainInfo;
use App\Models\HomeCount\Count;
use App\Models\Inquiry\InquiryFormData;
use App\Models\Nav\BNav;
use App\Models\Nav\BNavGroup;
use App\Models\Project\Project;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
... ... @@ -52,6 +54,17 @@ class Test extends Command
*/
public function handle()
{
ProjectServer::useProject(1);
$group =BNavGroup::where(['id' => 1])->first();
$sort_list = json_decode($group->sort_list, true);
$nav = new BNav();
$map = [
'project_id' => 1,
'group_id' => 1
];
$list = $nav->list($map, ['sort','id']);
$ids = array_column($group, 'id');
dd($list, $sort_list);
$projects = Project::all();
foreach ($projects as $project){
echo "project " . $project->id;
... ...
... ... @@ -31,13 +31,8 @@ class NavController extends BaseController
public function index(BNav $nav,BNavGroup $navGroup){
$this->map['project_id'] = $this->user['project_id'];
$lists = $nav->list($this->map,$this->order = ['sort','id']);
//获取菜单组排序字段
$groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);
if(!empty($groupInfo['sort_list'])){
$sort_list = json_decode($groupInfo['sort_list']);
$data = $this->findDetailsList($sort_list,$lists);
}else{
$data = array();
$data = array();
if(!empty($lists)){
foreach ($lists as $v){
$v = (array)$v;
if ($v['pid'] == 0) {
... ... @@ -45,6 +40,12 @@ class NavController extends BaseController
$data[] = $v;
}
}
//获取菜单组排序字段
$groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);
if(!empty($groupInfo['sort_list'])){
$sort_list = json_decode($groupInfo['sort_list']);
$data = $this->findDetailsLists($sort_list,$data);
}
}
$this->response('success',Code::SUCCESS,$data);
}
... ... @@ -56,53 +57,28 @@ class NavController extends BaseController
* @method :post
* @time :2023/12/18 14:54
*/
public function findDetailsList($data, $detailsList) {
$result = [];
foreach ($data as $item) {
$items = $item = (array)$item;
$id = $item['id'];
// 在给定的详情列表中查找匹配的id
$matchingDetail = array_filter($detailsList, function ($detail) use ($id) {
return $detail['id'] == $id;
});
if (!empty($matchingDetail)) {
$items = reset($matchingDetail);
}
if (!empty($item['sub'])) {
$items['sub'] = $this->findDetailsList((array)$item['sub'], $detailsList);
public function findDetailsLists($sort_list, $data)
{
$detailsList = [];
foreach ($data as $v) {
if (!empty($v['sub'])){
$v['sub'] = $this->custom($v['sub']);
}
$result[] = $items;
$detailsList[$v['id']] = $v;
}
foreach ($detailsList as $v){
if($v['pid'] == 0){
$result[] = $v;
}else{//放到对应的上级下面
$this->addUnderParent($result,$v);
}
}
return $result;
}
/**
* Add the current item under its parent in the result array
*
* @param array $result
* @param array $item
*/
private function addUnderParent(&$result, $item) {
$parentId = $item['pid'];
foreach ($result as &$parent) {
if ($parent['id'] == $parentId) {
if (!isset($parent['sub'])) {
$parent['sub'] = [];
}
$parent['sub'][] = $item;
return;
$result = [];
foreach ($sort_list as $val) {
if (!empty($val['sub'])){
$this->customSort($val['sub'], $detailsList[$val['id']]['sub']);
}
if (!empty($parent['sub'])) {
$this->addUnderParent($parent['sub'], $item);
if (empty($detailsList[$val['id']])){
continue;
}
$result[] = $detailsList[$val['id']];
unset($detailsList[$val['id']]);
}
$result = array_merge($result, $detailsList);
return $this->success($result);
}
/**
... ...
... ... @@ -80,7 +80,7 @@ class CustomTemplateLogic extends BaseLogic
$this->model->edit(['url'=>$route],['id'=>$id]);
}
}catch (\Exception $e){
$this->fail('error');
$this->fail('保存失败,请联系管理员');
}
return $this->success();
}
... ...