decide storage unit automatically

This commit is contained in:
printempw 2016-08-25 13:26:53 +08:00
parent 4de91cc543
commit 889dfad9fa
3 changed files with 20 additions and 10 deletions

View File

@ -165,9 +165,9 @@ class User
if (is_null($this->storage_used)) {
$this->storage_used = 0;
// recalculate
$prefix = \Config::getDbConfig()['prefix'];
$sql = "SELECT SUM(`size`) AS total_size FROM `{$prefix}textures` WHERE uploader = {$this->uid}";
$this->storage_used = \DB::fetchArray($sql)['total_size'];
$sql = "SELECT SUM(`size`) AS total_size FROM `{table}` WHERE uploader = {$this->uid}";
$result = \DB::table('textures')->fetchArray($sql)['total_size'];
$this->storage_used = $result ?: 0;
}
return $this->storage_used;
}

View File

@ -46,14 +46,11 @@
</div>
</div>
<div class="info-box">
<span class="info-box-icon bg-green"><i class="fa fa-files-o"></i></span>
<div class="info-box-content">
<span class="info-box-text">上传材质总数</span>
<span class="info-box-number">{{ \Storage::getFileNum(BASE_DIR."/textures/") }}</span>
<span class="info-box-number">{{ \DB::table('textures')->getRecordNum() }}</span>
</div><!-- /.info-box-content -->
</div><!-- /.info-box -->
@ -61,7 +58,8 @@
<span class="info-box-icon bg-yellow"><i class="fa fa-hdd-o"></i></span>
<div class="info-box-content">
<span class="info-box-text">占用空间大小</span>
<span class="info-box-number">{{ floor(\Storage::getDirSize(BASE_DIR."/textures/")/1024)."KB" }}</span>
<?php $size = \DB::table('textures')->fetchArray("SELECT SUM(`size`) AS total_size FROM `{table}` WHERE 1")['total_size']; ?>
<span class="info-box-number">{{ $size > 1024 ? round($size / 1024, 1)."MB" : $size."KB" }}</span>
</div><!-- /.info-box-content -->
</div><!-- /.info-box -->
</div>

View File

@ -43,9 +43,21 @@
</div><!-- /.progress-group -->
<div class="progress-group">
<span class="progress-text">存储空间</span>
<span class="progress-number"><b>{{ $user->getStorageUsed() }}</b>/{{ $user->getStorageUsed() + $user->getScore() / Option::get('score_per_storage') }} KB</span>
<?php $rate = Option::get('score_per_storage'); ?>
@if ($user->getStorageUsed() > 1024)
<span class="progress-number">
<b>{{ round($user->getStorageUsed() / 1024, 1) }}</b>/
{{ round(($user->getStorageUsed() + $user->getScore() / $rate) / 1024, 1) }} MB
</span>
@else
<span class="progress-number">
<b>{{ $user->getStorageUsed() }}</b>/
{{ $user->getStorageUsed() + $user->getScore() / $rate }} KB
</span>
@endif
<div class="progress sm">
<div class="progress-bar progress-bar-yellow" style="width: {{ $user->getStorageUsed() / ($user->getStorageUsed() + $user->getScore() / Option::get('score_per_storage')) * 100 }}%"></div>
<div class="progress-bar progress-bar-yellow" style="width: {{ $user->getStorageUsed() / ($user->getStorageUsed() + $user->getScore() / $rate) * 100 }}%"></div>
</div>
</div><!-- /.progress-group -->
</div><!-- /.col -->