get('org_id'); // 获取所有组织 $adminOrgModel = new AdminOrg(); $list = $adminOrgModel ->orderBy('sort', 'desc') ->where("status", "=", "1") ->get() ->toArray(); // 最终组织 $org = []; if (admin_id() != 1) { $adminOrgUserModel = new AdminOrgUser(); $adminUserModel = new AdminUser(); $userOrgIds = $adminOrgUserModel->where('user_id', '=', admin_id())->get()->toArray(); // 当前用户没有组织 if (empty($userOrgIds)) { return $response = view('common/403')->withStatus(403); } // 当前用户有组织 $parent_list = []; $child_list = []; foreach ($userOrgIds as $value) { $parent_list = array_merge($parent_list, getAllParent($list, $value['org_id'])); $child_list = array_merge($child_list, getAllChild($list, $value['org_id'])); } $parent_child_list = array_merge($parent_list, $child_list); $org = makeTree(assocUnique($parent_child_list)); // 保存当前组织所有子组织 session(['org_children' => assocUnique($child_list)]); if (empty($orgId)) { // 默认给第一个组织 $orgFirst = $adminOrgUserModel->select('*') ->where('user_id', admin_id()) ->first(); // 更新角色 if (!empty($orgFirst)) { $adminUserModel->updateById(['role_id' => $orgFirst['role_id']], admin_id()); $this->orgDefaultId = $orgFirst['org_id']; // 保存当前组织 session(['org_id' => $orgFirst['org_id']]); } } else { // 保存当前组织 session(['org_id' => $orgId]); // 当前组织 $orgCurrent = $adminOrgUserModel->select('role_id') ->where('org_id', $orgId) ->where('user_id', admin_id()) ->first(); // 更新角色 if (!empty($orgCurrent)) { $adminUserModel->updateById(['role_id' => $orgCurrent['role_id']], admin_id()); } else { // 当前组织为空,则顺延至最近上级组织 $nearParentRoleId = getNearParent(assocUnique($parent_child_list), $orgId, $userOrgIds); $adminUserModel->updateById(['role_id' => $nearParentRoleId], admin_id()); } } // 刷新用户 refresh_admin_session(true); $authMenu = makeTree((new MenuService())->getAdminNode()); } else { if (!empty($list)) { $org = makeTree($list); $this->orgDefaultId = $list[0]['id']; if (empty($orgId)) { // 保存当前组织 session(['org_id' => $list[0]['id']]); // 保存当前组织所有子组织 session(['org_children' => $list]); } else { session(['org_id' => $orgId]); // 保存当前组织所有子组织 session(['org_children' => getAllChild($list, $orgId)]); } } $authMenu = makeTree((new MenuService())->getSuperAdminNode()); } View::assign([ 'menu' => json_encode($authMenu), 'org' => json_encode($org), 'orgDefaultId' => json_encode($this->orgDefaultId) ]); return view('index/index'); } public function home(Request $request) { return view('message/home/index'); } public function password() { $param = request()->all(); unset($param['org_id']); // $admin = AdminUser::find(admin_id()); // 不需要判断旧密码 // if ($admin->password != Util::makePassword($param['old_pwd'], $admin->salt)) { // return sparkSuccess(dataReturn(-1, '原密码错误')); // } $param['password'] = makePassword($param['new_pwd']); $param['salt'] = config('shop.salt'); unset($param['new_pwd']); unset($param['new_two_pwd']); (new AdminUser)->updateById($param, admin_id()); return sparkSuccess(dataReturn(0, '修改成功')); } //同步session信息(待提取) public function syncSession() { $orgId = request()->get('org_id'); // 获取所有组织 $adminOrgModel = new AdminOrg(); $list = $adminOrgModel ->orderBy('sort', 'desc') ->where("status", "=", "1") ->get() ->toArray(); // 最终组织 $org = []; if (admin_id() != 1) { $adminOrgUserModel = new AdminOrgUser(); $adminUserModel = new AdminUser(); $userOrgIds = $adminOrgUserModel->where('user_id', '=', admin_id())->get()->toArray(); // 当前用户没有组织 if (empty($userOrgIds)) { return $response = view('common/403')->withStatus(403); } // 当前用户有组织 $parent_list = []; $child_list = []; foreach ($userOrgIds as $value) { $parent_list = array_merge($parent_list, getAllParent($list, $value['org_id'])); $child_list = array_merge($child_list, getAllChild($list, $value['org_id'])); } $parent_child_list = array_merge($parent_list, $child_list); $org = makeTree(assocUnique($parent_child_list)); // 保存当前组织所有子组织 session(['org_children' => assocUnique($child_list)]); if (empty($orgId)) { // 默认给第一个组织 $orgFirst = $adminOrgUserModel->select('*') ->where('user_id', admin_id()) ->first(); // 更新角色 if (!empty($orgFirst)) { $adminUserModel->updateById(['role_id' => $orgFirst['role_id']], admin_id()); $this->orgDefaultId = $orgFirst['org_id']; // 保存当前组织 session(['org_id' => $orgFirst['org_id']]); } } else { // 保存当前组织 session(['org_id' => $orgId]); // 当前组织 $orgCurrent = $adminOrgUserModel->select('role_id') ->where('org_id', $orgId) ->where('user_id', admin_id()) ->first(); // 更新角色 if (!empty($orgCurrent)) { $adminUserModel->updateById(['role_id' => $orgCurrent['role_id']], admin_id()); } else { // 当前组织为空,则顺延至最近上级组织 $nearParentRoleId = getNearParent(assocUnique($parent_child_list), $orgId, $userOrgIds); $adminUserModel->updateById(['role_id' => $nearParentRoleId], admin_id()); } } // 刷新用户 refresh_admin_session(true); $authMenu = makeTree((new MenuService())->getAdminNode()); } else { if (!empty($list)) { $org = makeTree($list); $this->orgDefaultId = $list[0]['id']; if (empty($orgId)) { // 保存当前组织 session(['org_id' => $list[0]['id']]); // 保存当前组织所有子组织 session(['org_children' => $list]); } else { session(['org_id' => $orgId]); // 保存当前组织所有子组织 session(['org_children' => getAllChild($list, $orgId)]); } } $authMenu = makeTree((new MenuService())->getSuperAdminNode()); } View::assign([ 'menu' => json_encode($authMenu), 'org' => json_encode($org), 'orgDefaultId' => json_encode($this->orgDefaultId) ]); return sparkSuccess(dataReturn(0, '刷新session')); } }