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(); } }
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 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'; }
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 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); } }
/** * 删除多个文件 */ 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); } } }