作者 lyh

gx

@@ -29,15 +29,27 @@ class NavController extends BaseController @@ -29,15 +29,27 @@ class NavController extends BaseController
29 * @time :2023/12/4 15:00 29 * @time :2023/12/4 15:00
30 */ 30 */
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'];
  33 +// $lists = $nav->list($this->map,$this->order = ['sort','id']);
  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();
  41 +// foreach ($lists as $v){
  42 +// $v = (array)$v;
  43 +// if ($v['pid'] == 0) {
  44 +// $v['sub'] = _get_child($v['id'], $lists);
  45 +// $data[] = $v;
  46 +// }
  47 +// }
  48 +// }
32 $this->map['project_id'] = $this->user['project_id']; 49 $this->map['project_id'] = $this->user['project_id'];
33 $lists = $nav->list($this->map,$this->order = ['sort','id']); 50 $lists = $nav->list($this->map,$this->order = ['sort','id']);
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(); 51 $data = array();
  52 + if(!empty($lists)){
41 foreach ($lists as $v){ 53 foreach ($lists as $v){
42 $v = (array)$v; 54 $v = (array)$v;
43 if ($v['pid'] == 0) { 55 if ($v['pid'] == 0) {
@@ -45,10 +57,57 @@ class NavController extends BaseController @@ -45,10 +57,57 @@ class NavController extends BaseController
45 $data[] = $v; 57 $data[] = $v;
46 } 58 }
47 } 59 }
  60 + //获取菜单组排序字段
  61 + $groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);
  62 + if(!empty($groupInfo['sort_list'])){
  63 + $sort_list = json_decode($groupInfo['sort_list']);
  64 + $detailsList = $this->getIdDetailsList($data);
  65 + $data = $this->findDetailsLists($sort_list,$detailsList);
  66 + }
48 } 67 }
49 $this->response('success',Code::SUCCESS,$data); 68 $this->response('success',Code::SUCCESS,$data);
50 } 69 }
51 70
  71 + public function findDetailsLists($sort_list, $detailsList)
  72 + {
  73 + $result = [];
  74 + foreach ($sort_list as $val) {
  75 + $val = (array)$val;
  76 + if (!empty($val['sub'])){
  77 + $this->findDetailsLists($val['sub'], $detailsList[$val['id']]['sub']);
  78 + }
  79 + if (empty($detailsList[$val['id']])){
  80 + continue;
  81 + }
  82 + $result[] = $detailsList[$val['id']];
  83 + unset($detailsList[$val['id']]);
  84 + }
  85 + @file_put_contents(storage_path('logs/lyh_error.log'), var_export($detailsList, true) . PHP_EOL, FILE_APPEND);
  86 + $result = array_merge($result, $detailsList);
  87 +
  88 + return $this->success($result);
  89 + }
  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']);
  104 + }
  105 + $detailsList[$v['id']] = $v;
  106 + }
  107 + return $this->success($detailsList);
  108 + }
  109 +
  110 +
52 /** 111 /**
53 * @remark :根据固定的数组排序 112 * @remark :根据固定的数组排序
54 * @name :findDetailsInList 113 * @name :findDetailsInList