. */ namespace SP\Mgmt\Files; use SP\DataModel\ItemSearchData; use SP\Mgmt\ItemSearchInterface; use SP\Storage\DbWrapper; use SP\Storage\QueryData; use SP\DataModel\FileExtData; /** * Class FileSearch * * @package SP\Mgmt\Files */ class FileSearch extends FileBase implements ItemSearchInterface { /** * @param ItemSearchData $SearchData * @return mixed */ public function getMgmtSearch(ItemSearchData $SearchData) { $Data = new QueryData(); $Data->setMapClassName(FileExtData::class); $Data->setSelect('accfile_id, accfile_name, CONCAT(ROUND(accfile_size/1000, 2), "KB") AS accfile_size, accfile_thumb, accfile_type, account_name, name'); $Data->setFrom('accFiles JOIN accounts ON account_id = accfile_accountId JOIN customers ON id = account_customerId'); $Data->setOrder('accfile_name'); if ($SearchData->getSeachString() !== '') { $Data->setWhere('accfile_name LIKE ? OR accfile_type LIKE ? OR account_name LIKE ? OR name LIKE ?'); $search = '%' . $SearchData->getSeachString() . '%'; $Data->addParam($search); $Data->addParam($search); $Data->addParam($search); $Data->addParam($search); } $Data->setLimit('?,?'); $Data->addParam($SearchData->getLimitStart()); $Data->addParam($SearchData->getLimitCount()); DbWrapper::setFullRowCount(); $queryRes = DbWrapper::getResultsArray($Data); $queryRes['count'] = $Data->getQueryNumRows(); return $queryRes; } }