]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Правки по кешбеку
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 5 Feb 2025 13:48:00 +0000 (16:48 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 5 Feb 2025 13:48:00 +0000 (16:48 +0300)
erp24/api2/controllers/BonusController.php

index 30f9429ad1122122b9432481a4407091c49f7d52..8b8094a1a2a8a244d903ea69a5a4327877175d52 100644 (file)
@@ -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');