From e145ff2b335c9847f550eac4fe00367ccf2acaed Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Mon, 10 Jun 2024 12:45:22 +0300 Subject: [PATCH] add 3 nums instead of 2 chars at base to generate single use promocodes --- erp24/services/PromocodeService.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/erp24/services/PromocodeService.php b/erp24/services/PromocodeService.php index 55ec6190..fa37b02a 100644 --- a/erp24/services/PromocodeService.php +++ b/erp24/services/PromocodeService.php @@ -7,17 +7,18 @@ use yii_app\records\Promocode; class PromocodeService { - private static function generateTwoChars() { - $chars = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ"; - return mb_substr($chars, rand() % mb_strlen($chars), 1) . - mb_substr($chars, rand() % mb_strlen($chars), 1); + private static function generateThreeNums() { +// $chars = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ"; +// return mb_substr($chars, rand() % mb_strlen($chars), 1) . +// mb_substr($chars, rand() % mb_strlen($chars), 1); + return (rand() % 10) . (rand() % 10) . (rand() % 10); } public static function generateSingleUsePromocodes(Promocode $basePromocode) { foreach (range(1, $basePromocode->generatePromocodeCount) as $num) { - $word = self::generateTwoChars(); + $word = self::generateThreeNums(); while (Promocode::find()->where(['code' => $basePromocode->code . $word])->one()) { - $word = self::generateTwoChars(); + $word = self::generateThreeNums(); } $singleUsePromocode = new Promocode; $singleUsePromocode->code = mb_strtoupper($basePromocode->code . $word, 'UTF-8'); -- 2.39.5