示例#1
0
 public function userRegister($email, $userName)
 {
     $start_time = '2015-01-01 00:00:00';
     $end_time = '2016-03-04 00:00:00';
     $createDate = $this->rand_time($start_time, $end_time);
     $userId = md5($email . $createDate);
     $user = new User();
     $user->user_id = $userId;
     $user->user_email = $email;
     $user->user_password = md5('123456');
     $user->user_name = $userName;
     $user->create_date = $createDate;
     $tran = \Yii::$app->db->beginTransaction();
     try {
         if ($user->save()) {
             $disk = new Disk();
             $disk->disk_id = md5($userId . $createDate);
             //创建用户空间
             $disk->user_id = $userId;
             $disk->capacity = 21474836480;
             //20GB
             $disk->available_size = 21474836480;
             $disk->create_date = $createDate;
             if ($disk->save()) {
                 //初始化用户跟目录
                 $fileRecord = new FileRecord();
                 $fileRecord->f_record_id = $userId;
                 $fileRecord->f_record_type = '2';
                 //f_record_type:2,目录类型
                 $fileRecord->file_id = '0';
                 //目录类型文件id为0
                 $fileRecord->user_id = $userId;
                 $fileRecord->file_name = '我的网盘';
                 $fileRecord->extension = '';
                 $fileRecord->file_type = 'folder';
                 $fileRecord->file_size = 0;
                 $fileRecord->parent_id = '0';
                 //跟目录上级目录为0
                 $fileRecord->upload_date = $createDate;
                 $fileRecord->state = '0';
                 //记录状态0为正常
                 if ($fileRecord->save()) {
                     $tran->commit();
                     $_SESSION['user'] = $user;
                     return 'success';
                 }
             }
         }
     } catch (Exception $e) {
         $tran->rollBack();
     }
 }
示例#2
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';
     }
 }
示例#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';
 }
示例#4
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]);
 }
示例#5
0
 public function actionQueryUser()
 {
     if (Yii::$app->request->isPost) {
         $user_email = $_POST['user_email'];
         $user = User::find()->where(['user_email' => $user_email])->asArray()->one();
         if ($user == null) {
             $data['user'] = '******';
             return json_encode($data);
         }
         $data['user'] = $user;
         $disk = Disk::find()->where(['user_id' => $user['user_id']])->asArray()->one();
         $data['disk'] = $disk;
         $logService = new LogService();
         $data['um_logs'] = $logService->getUserManagerLog($user['user_id']);
         $data['admin'] = $_SESSION['admin']['admin_account'];
         return json_encode($data);
     }
 }
示例#6
0
 /**
  * 删除多个文件
  */
 public function actionDeleteFiles()
 {
     if (Yii::$app->request->isPost) {
         $userId = $_SESSION['user']['user_id'];
         $files = $_POST['files'];
         $files = array_unique($files);
         $files = array_merge($files);
         $fileService = new FileService();
         $msg = $fileService->deleteFiles($files, $userId);
         if ($msg == 'success') {
             $result['code'] = '0';
             $result['disk'] = Disk::find()->where(['user_id' => $userId])->asArray()->one();
             echo json_encode($result);
         } else {
             $result['code'] = '1';
             $result['msg'] = $msg;
             echo json_encode($result);
         }
     }
 }