refactor: 修改导航按语言区分查询
This commit is contained in:
@@ -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'));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user