Exemple #1
0
 private function uploadDocumentFile()
 {
     $documentId = $this->getRequest()->getPost('documentId');
     if (!$documentId) {
         return $this->getJsonModel()->setVariables(array('code' => 0, 'messages' => ['Dữ liệu không hợp lệ']));
     }
     $document = new \Document\Model\Document();
     $document->setId($documentId);
     $documentMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentMapper');
     /* @var $documentMapper \Document\Model\DocumentMapper */
     if (!$documentMapper->get($document)) {
         return $this->getJsonModel()->setVariables(array('code' => 0, 'messages' => ['Dữ liệu không hợp lệ']));
     }
     $form = new \Home\Form\Media\DocumentFile($this->getServiceLocator(), ['id' => $document->getId()]);
     $dataPopulate = array_merge_recursive($this->getRequest()->getPost()->toArray(), $this->getRequest()->getQuery()->toArray(), $this->getRequest()->getFiles()->toArray());
     $dataPopulate['fileUpload']['name'] = Format::removeSigns($dataPopulate['fileUpload']['name']);
     $form->setData($dataPopulate);
     if ($form->isValid()) {
         $formData = $form->getData();
         $file = new \Document\Model\DocumentFile();
         $file->setFileName($formData['fileUpload']['name']);
         $file->setFileSize($formData['fileUpload']['size']);
         $file->setDocumentId($document->getId());
         $file->setCreatedById($this->user()->getIdentity());
         $file->setCreatedDateTime(DateBase::getCurrentDateTime());
         $fileMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentFileMapper');
         /* @var $fileMapper \Document\Model\DocumentFileMapper */
         $fileMapper->save($file);
         return $this->getJsonModel()->setVariables(array('code' => 1, 'messages' => $formData));
     } else {
         return $this->getJsonModel()->setVariables(array('code' => 0, 'messages' => $form->getErrorMessagesList()));
     }
 }
 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;
 }