public function pasteFolder($record_id, $parent_id) { $file = FileRecord::findOne(['f_record_id' => $record_id, 'state' => '0']); $childs = FileRecord::findAll(['parent_id' => $record_id, 'state' => '0']); $date = date('Y-m-d H:i:s'); $newRecord = new FileRecord(); $newRecord->f_record_id = md5($file->f_record_id . $date); $newRecord->f_record_type = $file->f_record_type; $newRecord->file_id = $file->file_id; $newRecord->user_id = $file->user_id; $newRecord->file_name = $file->file_name; $newRecord->file_type = $file->file_type; $newRecord->extension = $file->extension; $newRecord->file_size = $file->file_size; $newRecord->parent_id = $parent_id; $newRecord->upload_date = $date; $newRecord->state = $file->state; if ($newRecord->save()) { foreach ($childs as $child) { if ($child->f_record_type == '2') { $this->pasteFolder($child->f_record_id, $newRecord->f_record_id); } if ($child->f_record_type == '1') { $this->pasteFile($child->f_record_id, $newRecord->f_record_id); } } } else { throw new Exception('FileRecord error'); } }
public function logManageFile($fileId, $info) { $tran = \Yii::$app->db->beginTransaction(); $records = FileRecord::findAll(['file_id' => $fileId]); $fileService = new FileService(); foreach ($records as $record) { if ($record->state == '0') { //$fileService->deleteFile($record->f_record_id,$record->user_id); } } $conn = \Yii::$app->db; $sql = 'update file_record set state="2" where file_id="' . $fileId . '"'; $command = $conn->createCommand($sql); if (!$command->execute()) { $tran->rollBack(); return 'error'; } $log = new FileManageLog(); $log->fm_log_id = md5($fileId . $_SESSION['admin']['admin_id'] . date('Y-m-d H:i:s')); $log->file_id = $fileId; $log->admin_id = $_SESSION['admin']['admin_id']; $log->fm_manage_type = '1'; //禁用文件 $log->fm_manage_info = $info; $log->create_date = date('Y-m-d H:i:s'); if ($log->save()) { $tran->commit(); return 'success'; } else { $tran->rollBack(); return $log->errors; } }