Exemplo n.º 1
0
 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';
     }
 }
Exemplo n.º 2
0
 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]);
 }
Exemplo n.º 3
0
 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';
 }
Exemplo n.º 4
0
 /**
  * @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]);
     }
 }