add contraint , that everybody expect admin is limited to 3 days, Add card package

This commit is contained in:
2016-02-13 17:23:43 +01:00
parent 556bdc3066
commit 70f43468af
37 changed files with 1418 additions and 19 deletions

View File

@@ -0,0 +1,40 @@
<?php
namespace common\components;
use common\models\Card;
class FreeUniqueCardNumberGenerator extends \yii\base\Object {
public $count;
public $keyset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
public $length = 6;
public $cache = [ ];
public $prefix = "";
public function generate() {
if ($this->count == 0) {
return;
}
for($i = 0; $i < $this->count; $i ++) {
$unique = false;
$number = null;
while ( $unique == false ) {
$number = Helper::generateRandomString($this->length, $this->keyset);
$number = $this->prefix . $number;
$unique = $this->checkCacheUnique ( $number ) && $this->checkDBUniqu ( $number );
}
$this->cache [] = $number;
}
}
protected function checkDBUniqu($number) {
$query = Card::find ();
Card::addCardNumberCondition ( $query, $number );
$found = $query->all ();
$result = count ( $found ) == 0;
return $result;
}
protected function checkCacheUnique($number) {
return array_search ( $number, $this->cache ) === false;
}
}