|
|
@@ -32,10 +32,15 @@ class LoginService extends Service
|
|
|
list($status, $jwtToken) = TokenService::getToken($employee);
|
|
|
if(! $status) return [false, $jwtToken];
|
|
|
|
|
|
+ //获取人员所有的所有的顶级菜单
|
|
|
+ $sysMenu = $this->getPersonRoleForSysMenuList($employee['id']);
|
|
|
+ if(empty($sysMenu)) return [false, '账户未设置菜单功能'];
|
|
|
+
|
|
|
return [true, [
|
|
|
'token' => $jwtToken,
|
|
|
'employee_id' => $employee['id'],
|
|
|
'title' => $employee['title'],
|
|
|
+ 'sys_menu' => $sysMenu,
|
|
|
]];
|
|
|
}
|
|
|
|
|
|
@@ -65,6 +70,29 @@ class LoginService extends Service
|
|
|
]];
|
|
|
}
|
|
|
|
|
|
+ private function getPersonRoleForSysMenuList($employee_id) {
|
|
|
+ $sysMenu = SysMenu::where('del_time',0)
|
|
|
+ ->where('type', SysMenu::type_zero)
|
|
|
+ ->where('parent_id', 0)
|
|
|
+ ->select('id','title', 'tree_type')
|
|
|
+ ->get()->toArray();
|
|
|
+
|
|
|
+ $role_menu_id = EmployeeRole::from('employee_role as a')
|
|
|
+ ->join('role_menu as b', 'b.role_id', '=', 'a.role_id')
|
|
|
+ ->where('a.del_time', 0)
|
|
|
+ ->where('b.del_time', 0)
|
|
|
+ ->whereIn('b.menu_id', array_column($sysMenu,'id'))
|
|
|
+ ->where('a.employee_id',$employee_id)
|
|
|
+ ->pluck('b.menu_id')
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ foreach ($sysMenu as $key => $value){
|
|
|
+ if(! in_array($value['id'], $role_menu_id)) unset($sysMenu[$key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return array_values($sysMenu);
|
|
|
+ }
|
|
|
+
|
|
|
public static function checkUser($employee){
|
|
|
if(empty($employee['employee_id'])) return [false, 'token错误'];
|
|
|
if(! isset($employee['p_version'])) return [false, 'token错误'];
|
|
|
@@ -150,15 +178,9 @@ class LoginService extends Service
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
- $role_ids = EmployeeRole::from('employee_role as a')
|
|
|
- ->join('role as b', 'b.id', '=', 'a.role_id')
|
|
|
- ->where('a.del_time', 0)
|
|
|
- ->where('b.top_depart_id', $employee['top_depart_id'])
|
|
|
- ->where('a.employee_id', $employee['id'])
|
|
|
- ->pluck('a.role_id')
|
|
|
- ->unique()
|
|
|
- ->sort()
|
|
|
- ->values()
|
|
|
+ $role_ids = EmployeeRole::where('del_time', 0)
|
|
|
+ ->where('employee_id', $employee['id'])
|
|
|
+ ->pluck('role_id')
|
|
|
->toArray();
|
|
|
|
|
|
if (empty($role_ids)) return $result;
|