public function officeconvertuserdocumentfileAction() { $officeDirector = BASE_PATH . '/data/oneOfficeFiles'; list($adapter, $sql) = $this->createOfficeAdapter(); $select = $sql->select(['df' => 'document_files']); $select->join(['d' => 'documents'], 'd.ID=df.document_id', ['created_by_id']); $select->where(['d.folder' => 'USER', 'd.type' => 'FILE', 'd.is_deleted' => 'no']); $select->order(['ID ASC']); $query = $sql->buildSqlString($select); $rows = $adapter->query($query, $adapter::QUERY_MODE_EXECUTE); $documentMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentMapper'); $documentCategoryMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentCategoryMapper'); $documentFileMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentFileMapper'); $index = 0; $totalSize = 0; foreach ($rows->toArray() as $row) { $officeUri = $officeDirector . '/document/user/' . $row['created_by_id'] . '/' . $row['filename']; if (!file_exists($officeUri)) { echo '<b>File: </b>' . $officeUri . '<br/>'; echo '<b style="color:red;">File not found!!!</b>'; echo '<br/><br/>=============================================<br/>'; continue; } $document = new \Document\Model\Document(); $document->setOneofficeId($row['document_id']); // check nếu đã có bản ghi trong document thì coi nó là 1 file đính kèm của document if ($documentMapper->isExistedOneofficeCode($document)) { $documentFile = new \Document\Model\DocumentFile(); $documentFile->setDocumentId($document->getId()); $documentFile->setFileName($row['filename']); $documentFile->setCreatedDateTime($document->getCreatedDateTime()); $uri = Uri::getSavePath($documentFile); echo '<b>docfile: </b>' . $document->getName(); echo '<br/>'; echo $row['ID'] . ' --- ' . $row['document_id']; echo '<br/>'; echo '<b>Từ: </b>' . $officeUri; echo '<br/>'; echo '<b>Đến: </b>' . $uri . '/' . $documentFile->getFileName(); echo '<br/>'; if (is_file($officeUri)) { $filesize = filesize($officeUri); echo '<b>Filesize: </b>' . $filesize; $totalSize += $filesize; $documentFile->setFileSize($filesize); } $documentFile->setCreatedById($document->getCreatedById()); if (!$documentFileMapper->isExisted($documentFile)) { $documentFileMapper->save($documentFile); if (!file_exists($uri)) { $oldmask = umask(0); mkdir($uri, 0777, true); umask($oldmask); } @copy($officeUri, $uri . '/' . $documentFile->getFileName()); $index++; echo '<br/><span style="color:green">Đã chuyển</span>'; } echo '<br/><br/>=============================================<br/>'; } else { // nếu ko thì nghĩa laà file gắn với danh mục, tạo mới 1 document rồi gắn file với document đó // nhưng kiểm tra dữ liệu ko có case này nên ko viết $documentCategory = new \Document\Model\DocumentCategory(); $documentCategory->setOneofficeId($row['document_id']); if ($documentCategoryMapper->isExistedOneofficeCode($documentCategory)) { echo '<span style="color:blue;">Tạo mới theo dnah mục</span>'; echo '<br/><br/>=============================================<br/>'; } else { echo '<span style="color:red;">Ko dữ liệu </span>'; echo $row['ID'] . ' --- ' . $row['document_id']; echo '<br/><br/>=============================================<br/>'; } } } echo '<b>Tổng: </b>' . $index; echo '<br/><b>Tổng dung lượng: </b>' . $totalSize; die; }