作者 lyh

gx

@@ -31,8 +31,13 @@ class NavController extends BaseController @@ -31,8 +31,13 @@ class NavController extends BaseController
31 public function index(BNav $nav,BNavGroup $navGroup){ 31 public function index(BNav $nav,BNavGroup $navGroup){
32 $this->map['project_id'] = $this->user['project_id']; 32 $this->map['project_id'] = $this->user['project_id'];
33 $lists = $nav->list($this->map,$this->order = ['sort','id']); 33 $lists = $nav->list($this->map,$this->order = ['sort','id']);
34 - $data = array();  
35 - if(!empty($lists)){ 34 + //获取菜单组排序字段
  35 + $groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);
  36 + if(!empty($groupInfo['sort_list'])){
  37 + $sort_list = json_decode($groupInfo['sort_list']);
  38 + $data = $this->findDetailsList($sort_list,$lists);
  39 + }else{
  40 + $data = array();
36 foreach ($lists as $v){ 41 foreach ($lists as $v){
37 $v = (array)$v; 42 $v = (array)$v;
38 if ($v['pid'] == 0) { 43 if ($v['pid'] == 0) {
@@ -40,13 +45,6 @@ class NavController extends BaseController @@ -40,13 +45,6 @@ class NavController extends BaseController
40 $data[] = $v; 45 $data[] = $v;
41 } 46 }
42 } 47 }
43 - //获取菜单组排序字段  
44 - $groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);  
45 - if(!empty($groupInfo['sort_list'])){  
46 - $sort_list = json_decode($groupInfo['sort_list']);  
47 - $detailsList = $this->getIdDetailsList($data);  
48 - $data = $this->findDetailsLists($sort_list,$detailsList);  
49 - }  
50 } 48 }
51 $this->response('success',Code::SUCCESS,$data); 49 $this->response('success',Code::SUCCESS,$data);
52 } 50 }
@@ -58,53 +56,24 @@ class NavController extends BaseController @@ -58,53 +56,24 @@ class NavController extends BaseController
58 * @method :post 56 * @method :post
59 * @time :2023/12/18 14:54 57 * @time :2023/12/18 14:54
60 */ 58 */
61 - public function findDetailsLists($sort_list, $detailsList)  
62 - { 59 + public function findDetailsList($sort_list,$detailsList) {
63 $result = []; 60 $result = [];
64 - foreach ($sort_list as $val) {  
65 - $val = (array)$val;  
66 - if (!empty($val['sub'])){  
67 - $this->findDetailsLists($val['sub'], $detailsList[$val['id']]['sub']);  
68 - }  
69 - if (empty($detailsList[$val['id']])){  
70 - continue; 61 + foreach ($sort_list as $item) {
  62 + $items = $item = (array)$item;
  63 + $id = $item['id'];
  64 + // 在给定的详情列表中查找匹配的id
  65 + $matchingDetail = array_filter($detailsList, function ($detail) use ($id) {
  66 + return $detail['id'] == $id;
  67 + });
  68 + if (!empty($matchingDetail)) {
  69 + $items = reset($matchingDetail);
71 } 70 }
72 - @file_put_contents(storage_path('logs/lyh_error.log'), var_export($detailsList[$val['id']], true) . PHP_EOL, FILE_APPEND);  
73 - $result[] = $detailsList[$val['id']];  
74 - unset($detailsList[$val['id']]);  
75 - }  
76 -// $result = array_merge($result, $detailsList);  
77 - return $this->success($result);  
78 - }  
79 -  
80 - public function getSortList($result){  
81 - foreach ($result as $k => $v){  
82 - if(!empty($v['sub'])){  
83 - $this->getSortList($v['sub']);  
84 - }else{  
85 - $v = array_values($v);  
86 - $result[$k] = $v;  
87 - }  
88 - }  
89 - return $this->success($result);  
90 - }  
91 -  
92 - /**  
93 - * @remark :根据id组装数据  
94 - * @name :getDetailsList  
95 - * @author :lyh  
96 - * @method :post  
97 - * @time :2023/12/20 18:52  
98 - */  
99 - public function getIdDetailsList($data){  
100 - $detailsList = [];  
101 - foreach ($data as $v) {  
102 - if (!empty($v['sub'])){  
103 - $v['sub'] = $this->getIdDetailsList($v['sub']); 71 + if (!empty($item['sub'])) {
  72 + $items['sub'] = $this->findDetailsList((array)$item['sub'], $detailsList);
104 } 73 }
105 - $detailsList[$v['id']] = $v; 74 + $result[] = $items;
106 } 75 }
107 - return $this->success($detailsList); 76 + return $result;
108 } 77 }
109 78
110 /** 79 /**