Exemplo n.º 1
0
 /**
  * @param $email
  * @param $userName
  * @param $password
  * @return array|int
  * 用户注册
  * 成功返回1
  * 错误返回错误信息数组
  */
 public function userRegister($email, $userName, $password)
 {
     $createDate = date('Y-m-d H:i:sa');
     $userId = md5($email . $createDate);
     $user = new User();
     $user->user_id = $userId;
     $user->user_email = $email;
     $user->user_password = md5($password);
     $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';
                 } else {
                     $tran->rollBack();
                     return $fileRecord->errors;
                 }
             } else {
                 $tran->rollBack();
                 return $disk->errors;
             }
         } else {
             $tran->rollBack();
             return $user->errors;
         }
     } catch (Exception $e) {
         $tran->rollBack();
         return $e->errors;
     }
 }