From: fomichev Date: Wed, 5 Feb 2025 13:48:00 +0000 (+0300) Subject: Правки по кешбеку X-Git-Tag: 1.7~14^2 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=55a8f1aa932dc6efb1ffb870f5b26811d33bd6b2;p=erp24_rep%2Fyii-erp24%2F.git Правки по кешбеку --- diff --git a/erp24/api2/controllers/BonusController.php b/erp24/api2/controllers/BonusController.php index 30f9429a..8b8094a1 100644 --- a/erp24/api2/controllers/BonusController.php +++ b/erp24/api2/controllers/BonusController.php @@ -79,6 +79,18 @@ class BonusController extends BaseController $check_amount = intval($result['check_amount'] ?? 0); + $user = Users::find()->where(['phone' => $result['phone']])->andWhere(['phone_true' => '1'])->one(); + $bonusLevels = BonusLevels::find()->where(['active' => 1])->indexBy('alias')->asArray()->all(); + $bonusLevel = $user->bonus_level ?? "silver"; + + $bonus_rate = isset($bonusLevels[$bonusLevel]['bonus_rate']) + ? $bonusLevels[$bonusLevel]['bonus_rate'] / 100 + : self::$FIRST_SALE_PROCENT; + + $cashback_rate = isset($bonusLevels[$bonusLevel]['cashback_rate']) + ? $bonusLevels[$bonusLevel]['cashback_rate'] / 100 + : self::$FIRST_SALE_PROCENT; + $mess = []; file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); // массив с id товарыми не участвующих в бонусной @@ -110,8 +122,9 @@ class BonusController extends BaseController $check_amount = $check_amount - $summa_no; file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); - $cnt = intval(Sales::find()->where(['phone' => $result['phone'], 'operation' => Sales::OPERATION_SALE])->count()); - $max_procent = $cnt == 0 ? self::$FIRST_SALE_PROCENT : ($cnt == 1 ? self::$SECOND_SALE_PROCENT : self::$MAX_PROCENT); + //$cnt = intval(Sales::find()->where(['phone' => $result['phone'], 'operation' => Sales::OPERATION_SALE])->count()); + //$max_procent = $cnt == 0 ? self::$FIRST_SALE_PROCENT : ($cnt == 1 ? self::$SECOND_SALE_PROCENT : self::$MAX_PROCENT); + $max_procent = $bonus_rate; file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); $percent = ($result['phone'] == "79049031399") ? 0.9 : $max_procent; file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); @@ -124,7 +137,7 @@ class BonusController extends BaseController ->andWhere(['>=', 'date', $userFound->telegram_created_at])->count()); } file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); - $credit_procent = $userFound && $userFound->source > 0 && $salesCount == 0 ? self::$CREDIT_HIGH_PROCENT : self::$CREDIT_PROCENT; + $credit_procent = $userFound && $userFound->source > 0 && $salesCount == 0 ? self::$CREDIT_HIGH_PROCENT : $cashback_rate; $will_be_credited_bonuses = $credit_procent * $baza; $will_be_credited_bonuses = round($will_be_credited_bonuses); @@ -694,7 +707,6 @@ class BonusController extends BaseController $store_id = $result["store_id"]; $seller_id = $result["seller_id"]; - $phone = $result["phone"]; $check_amount = $result["check_amount"]; $check_id = $result["check_id"]; $check_name = $result["check_name"]; @@ -702,26 +714,16 @@ class BonusController extends BaseController $auth_code = $result['auth_code'] ?? 0; $write_off_bonuses = intval($result["write_off_bonuses"] ?? 0); // только при продаже - $userBonusLevel = UsersBonusLevels::find()->where(['phone' => $phone])->andWhere(['active' => 1])->one(); + $user = Users::find()->where(['phone' => $result['phone']])->andWhere(['phone_true' => '1'])->one(); $bonusLevels = BonusLevels::find()->where(['active' => 1])->indexBy('alias')->asArray()->all(); - $bonusLevel = null; - if ($userBonusLevel) { - $bonusLevel = $userBonusLevel->bonus_level; - } else { - foreach ($bonusLevels as $bonusLevelArr) { - if ($bonusLevelArr['threshold'] == 0) { - $bonusLevel = $bonusLevelArr['alias']; - } - } - } - + $bonusLevel = $user->bonus_level ?? "silver"; $cashback_rate = isset($bonusLevels[$bonusLevel]['cashback_rate']) ? $bonusLevels[$bonusLevel]['cashback_rate'] / 100 : self::$FIRST_SALE_PROCENT; - $referal_rate = isset($bonusLevels[$bonusLevel]['referal_rate']) - ? $bonusLevels[$bonusLevel]['referal_rate'] / 100 - : self::$CREDIT_HIGH_PROCENT; +// $referal_rate = isset($bonusLevels[$bonusLevel]['referal_rate']) +// ? $bonusLevels[$bonusLevel]['referal_rate'] / 100 +// : self::$CREDIT_HIGH_PROCENT; $bonus_rate = isset($bonusLevels[$bonusLevel]['bonus_rate']) ? $bonusLevels[$bonusLevel]['bonus_rate'] / 100 @@ -769,7 +771,7 @@ class BonusController extends BaseController $mess = []; file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); - $user = Users::find()->where(['phone' => $result['phone']])->andWhere(['phone_true' => '1'])->one(); + /** @var $user Users */ if (!$user) { @@ -904,8 +906,8 @@ class BonusController extends BaseController file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); } - // $credit_procent_index = $userFound && $userFound->source > 0 && $salesCount == 0 ? 1 : 0; - $credit_procent_index = 0; + $credit_procent_index = $userFound && $userFound->source > 0 && $salesCount == 0 ? 1 : 0; + $back1 = $back = round($baza_back * $cashback_rate); $nm = "Возврат с покупки " . (100 * $cashback_rate) . "% $check_name сумма чека $check_amount"; @@ -955,20 +957,21 @@ class BonusController extends BaseController } file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); - file_put_contents(self::$USERS_AUTH_CALL_LOG2, + file_put_contents( + self::$USERS_AUTH_CALL_LOG2, "" . date("d.m.Y H:i:s", time()) . " PLUS bonus=" . $back . "\n", - FILE_APPEND | LOCK_EX); + FILE_APPEND | LOCK_EX + ); file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); if ($credit_procent_index) { - file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND); - $back = round($baza_back * $cashback_rate); - $nm = "Возврат с покупки " . (100 * $cashback_rate) . "% $check_name сумма чека $check_amount"; + $back = round($baza_back * self::$CREDIT_HIGH_PROCENT_PART20); + $nm = "Возврат с покупки " . (100 * self::$CREDIT_HIGH_PROCENT_PART20) . "% $check_name сумма чека $check_amount"; $user_balans_new += $back; - $userBonus2 = new UsersBonus; + $userBonus2 = new UsersBonus(); $userBonus2->tip = 'plus'; $userBonus2->tip_sale = 'sale'; $userBonus2->date = date('Y-m-d H:i:s');