get('page', 1)); $pageSize = intval($request->get('pageSize', 10)); $keyword = format_string($request->get('keyword', '')); $rows = SysRole::select('*') ->when($keyword != '', function ($query) use ($keyword) { $query->where('role_name', 'like', '%' . $keyword . '%'); }) ->orderBy('role_addtimes', 'DESC') ->forPage($page, $pageSize) ->get() ->toArray(); $total = SysRole::when($keyword != '', function ($query) use ($keyword) { $query->where('role_name', 'like', '%' . $keyword . '%'); })->count(); foreach ($rows as &$row) { if (!empty($row['role_permission']) && is_json($row['role_permission'])) { $row['role_permission'] = json_decode($row['role_permission']); } } return json_success('', compact('rows', 'page', 'pageSize', 'total')); } /** * @Desc 角色详情 * @Author Gorden * @Date 2024/2/20 16:37 * * @param $id * @return \support\Response */ public static function roleInfo($id) { $role = SysRole::find($id); if (!$role) { return json_fail('角色不存在'); } $role = $role->toArray(); return json_success('', $role); } /** * @Desc 添加角色 * @Author Gorden * @Date 2024/2/20 16:02 * * @param $params * @return \support\Response */ public static function insertRole($params) { try { $data = [ 'role_status' => $params['role_status'], 'role_category' => $params['role_category'], 'role_name' => $params['role_name'], 'role_remark' => $params['role_remark'] ? format_string($params['role_remark']) : null, 'role_extend_json' => $params['role_extend_json'] ?? null, 'role_permission'=>'[]', 'role_addtimes' => time() ]; // 入库 if (!SysRole::insert($data)) { throw new \Exception('角色添加失败'); } } catch (\Exception $e) { return json_fail('角色添加失败'); } return json_success('角色添加成功'); } /** * @Desc 修改角色 * @Author Gorden * @Date 2024/2/20 16:02 * * @param $id * @param $params * @return \support\Response */ public static function updateRole($id, $params) { $role = SysRole::find($id); if (!$role) { return json_fail('角色不存在'); } try { $data = [ 'role_status' => $params['role_status'], 'role_category' => $params['role_category'], 'role_name' => $params['role_name'], 'role_remark' => $params['role_remark'] ? format_string($params['role_remark']) : null, 'role_extend_json' => $params['role_extend_json'] ?? '{}', ]; if (!SysRole::where('role_id', $id)->update($data)) { throw new \Exception('角色修改失败'); } } catch (\Exception $e) { return json_fail($e->getMessage()); } return json_success('角色修改成功'); } public static function updatePermission($id, $params) { $role = SysRole::find($id); if (!$role) { return json_fail('角色不存在'); } try { $data = [ 'role_permission' => $params['role_permission'], ]; if (!SysRole::where('role_id', $id)->update($data)) { throw new \Exception('角色修改失败'); } } catch (\Exception $e) { return json_fail($e->getMessage()); } return json_success('角色修改成功'); } /** * @Desc 删除角色 * @Author Gorden * @Date 2024/2/20 16:40 * * @param $id * @return \support\Response */ public static function delRole($params) { try { if (!SysRole::whereIn('role_id', $params)->delete()) { throw new \Exception('角色删除失败'); } } catch (\Exception $e) { return json_fail('角色删除失败'); } return json_success('角色删除成功'); } /** * @Desc 修改角色状态 * @Author Gorden * @Date 2024/2/20 16:50 * * @param $id * @param $roleStatus * @return \support\Response */ public static function updateStatus($id, $roleStatus) { try { if (!SysRole::where('role_id', $id)->update(['role_status' => $roleStatus])) { throw new \Exception('角色状态修改失败'); } } catch (\Exception $e) { return json_fail('角色状态修改失败'); } return json_success('角色状态修改成功'); } /** * @Desc 检查角色是否存在 * @Author Gorden * @Date 2024/2/21 13:36 * * @param $roleId * @return bool */ public static function checkRoleExist($roleId) { return SysRole::where('role_id', $roleId)->exists(); } }