public function revertFiles($files, $userId) { $tran = \Yii::$app->db->beginTransaction(); try { foreach ($files as $recordId) { $fileRecord = FileRecord::findOne(['f_record_id' => $recordId]); $disk = Disk::findOne(['user_id' => $userId]); if ($disk->available_size < $fileRecord->file_size) { $tran->rollBack(); return '2'; //空间不足 } $fileRecord->state = '0'; $fileRecord->parent_id = $userId; if (!$fileRecord->save()) { $tran->rollBack(); return '1'; //还原错误 } $disk->available_size = $disk->available_size - $fileRecord->file_size; if (!$disk->save()) { $tran->rollBack(); return '1'; //还原错误 } $removeLog = RemoveLog::findOne(['f_record_id' => $fileRecord->f_record_id]); if (!$removeLog->delete()) { $tran->rollBack(); return '1'; //还原错误 } } $tran->commit(); return '0'; } catch (Exception $e) { $tran->rollBack(); return '1'; } }
public function actionPersonInfo() { $this->layout = 'person_info'; $userId = $_SESSION['user']['user_id']; $disk = Disk::findOne(['user_id' => $userId]); $fileService = new FileService(); $typeSize = $fileService->typeSize($userId); $logService = new LogService(); $logs = $logService->getLoginLog(); return $this->render('person_info', ['disk' => $disk, 'typeSize' => $typeSize, 'logs' => $logs]); }
public function setUserSize($userEmail, $size, $info) { $user = User::findOne(['user_email' => $userEmail]); $disk = Disk::findOne(['user_id' => $user->user_id]); $disk->capacity = $disk->capacity + $size * (1024 * 1024 * 1024); $disk->available_size = $disk->available_size + $size * (1024 * 1024 * 1024); $tran = \Yii::$app->db->beginTransaction(); if ($disk->save()) { $logService = new LogService(); if ($logService->setUserSize($user->user_id, $info) == 'success') { $tran->commit(); return 'success'; } } $tran->rollBack(); return 'error'; }
/** * @return string * 切换文件夹action */ public function actionCd() { $this->layout = "user"; if (Yii::$app->request->isGet) { $f_id = $_GET['f_id']; $fileService = new FileService(); $files = $fileService->getFileListByParentid($f_id); $current = FileRecord::findOne(['f_record_id' => $f_id, 'state' => '0']); if ($current == null) { return $this->redirect(Url::base() . '/index.php?r=user/index'); } unset($paths); $paths = array(); $tmp = $current; $index = 0; while ($tmp->parent_id != '0') { $paths[$index]['name'] = $tmp->file_name; $paths[$index++]['f_record_id'] = $tmp->f_record_id; $tmp = FileRecord::findOne(['f_record_id' => $tmp->parent_id, 'state' => '0']); } $paths[$index]['name'] = $tmp->file_name; $paths[$index++]['f_record_id'] = $tmp->f_record_id; /** if($f_id == $_SESSION['user']['user_id']){ $_SESSION['current_path'] = '我的网盘'; }else{ $_SESSION['current_path'] = $current->parent_path.'/'.$current->file_name; } */ $_SESSION['current_path'] = $paths; $_SESSION['current_id'] = $f_id; $_SESSION['parent_id'] = $current->parent_id; $_SESSION['li_option'] = 'index'; $disk = Disk::findOne(['user_id' => $_SESSION['user']['user_id']]); return $this->render('index', ['files' => $files, 'disk' => $disk]); } }