refactor: 修改导航按语言区分查询

This commit is contained in:
2025-03-26 14:03:58 +08:00
parent a452c6f3e0
commit b5a633aaee

View File

@@ -20,28 +20,40 @@ class NavigationItem
'created_at' 'created_at'
]); ]);
$navigations = SysNavigationItemModel::field([ $navigations = SysNavigationItemModel::alias('item')
'id', ->field([
'pid', 'item.id',
'nav_id', 'item.pid',
'name', 'item.name',
'sort', 'item.sort',
'blank', 'item.blank',
'status', 'item.status',
'created_at' 'item.created_at',
'nav.name' => 'nav_name'
]) ])
->with(['navigation' => function ($query) { ->join('sys_navigation nav', 'nav.id = item.nav_id')
$query->field(['id', 'name' => 'nav_name']); ->where('nav.language_id', '=', request()->lang_id)
}]) ->where(function($query) use($param) {
->withSearch(['name', 'created_at'], [ if (!empty($param['nav_id'])) {
'name' => $param['name']??null, $query->where('item.nav_id', '=', $param['nav_id']);
'created_at' => !empty($param['created_at'])? explode(',', $param['created_at']) : null }
]) if (!empty($param['name'])) {
->navId($param['nav_id']??null) $query->where('item.name', 'like', "%{$param['name']}%");
->order(['sort' => 'asc', 'id' => 'asc']) }
->select() if (!empty($param['created_at'])) {
->bindAttr('navigation', ['nav_name']) $value = explode(',', $param['created_at']);
->hidden(['nav_id', 'navigation']); if (count($value) > 1) {
if ($value[1] == $value[0]) {
$value[1] = date('Y-m-d 23:59:59', strtotime($value[1]));
}
$query->whereBetweenTime('item.created_at', $value[0], $value[1]);
} else {
$query->whereTime('item.created_at', '>=', $value[0]);
}
}
})
->order(['item.sort' => 'asc', 'item.id' => 'asc'])
->select();
return success('获取成功', array_to_tree($navigations->toArray(), 0, 'pid')); return success('获取成功', array_to_tree($navigations->toArray(), 0, 'pid'));
} }