Користувальницькькі налаштування

Налаштування сайту


onepunch

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Наступна ревізія
Попередня ревізія
onepunch [2022/09/24 14:39]
127.0.0.1 зовнішнє редагування
onepunch [2023/03/27 12:45] (поточний)
nightfly
Рядок 3: Рядок 3:
 {{ :saitama.png?direct&|}} {{ :saitama.png?direct&|}}
  
-Позволяют вам <del>немного побыть Сайтамой</del> сохранять свои заготовки кода, для отладки в консоли разработчика или последующего вызова из [[remoteapi|RemoteAPI]].+Дозволяють вам <del>трішки побути Сайтамою</del> зберігати свої шматочки коду, для відлагодження в консолі розробника чи подальшого виклику їх з [[remoteapi|RemoteAPI]] за для розширення функціоналу вашого біллінгу, чи використання їх у ролі звітів "Майстра звітів". Загалом, це все разом являє собою неймовірно гнучку та зручну систему розширення бізнес-логіки ваших рішень.
  
-Вполне себе очевидно, что управлять ими вы можете в "Консоли разработчика" а именно в "PHP консоли". Также вы можете при желании импортировать ваши старые шаблоны кода, если они у вас были. Важно: после импорта шаблоны кода удаляются из базы. Да, при создании и редактировании скриптов все поля являются обязательными. Поле alias должно быть уникальным и содержать только латиницу и цифрыИмя вы пишете только для себячтобы понимать что это за кусок кода+Доволі очевидно, що керувати ними ви можете з "Консолі розробника". А саме в "PHP консолі". Такпри створенні та редагуванні скриптів усі поля є обов'язковими. Поле alias має бути унікальним і містити тільки латиницю чи цифриІм'я ви пишете тільки для себещоб розуміти, що це за шматок коду
- +За допомогою One-Punch скриптів можна робити практично все, що могли б робити за допомогою якого-небудь модуля. Наприклад, ресет якогось користувача що хвилин.
-При помощи One-Punch скриптов вы можете делать практически все, что могли бы делать при помощи любого модуля. Например ресет какогоо юзера раз в минут :)+
  
 {{:onepunch1.png?500|}} {{:onepunch1.png?500|}}
  
-Собственно вот так мы это вызываем при помощи crontab -e+Власне так ми викликатимемо це за допомогою нашого crontab
  
 <code bash> <code bash>
Рядок 17: Рядок 16:
 </code> </code>
  
-А какие практические кейсы вы можете реализоватьДа какие угдно, для реализации нужной вам бизнес-логки. Например на их базе вы можете сделать свое собственное REST API.+А які більш практичні кейси ви можете реалізувати One-Punch скриптамиТа які завгодно, для реалізації потрібної вам бізнес логіки. Наприклад, на їх базі ви можете зробити своє власне REST API.
  
 {{:onepunch2.png?500|}} {{:onepunch2.png?500|}}
  
-и получать данные о нужных вам полях пользователяиз ваших внешних приложений при помощи соответствующего URL. Для мобилки например так:+і отримувати дані про потрібні вам поля користувача, з ваших зовнішніх програм за допомогою відповідного URL. Для мобілки наприклад так:
 <code> <code>
-?module=remoteapi&key=ВАШ_СЕРИЙНИК&action=onepunch&param=getuserfield&login=sometestuser&field=mobile+?module=remoteapi&key=ВАШ_СЕРІЙНИК&action=onepunch&param=getuserfield&login=sometestuser&field=mobile
 </code> </code>
  
-===== Полезные примеры ===== +===== Корисні приклади =====
- +
-==== Ежедневный отчет о деятельности ====+
  
-А можно делать что-то более понятное? Ну да. Вот вам например ежедневная нотификация в [[ubillingtelegram|Телеграм]] о произошедших за день штуках:+==== Щоденний звіт що до діяльності ====
  
 +А чи можна робити щось ще зрозуміліше? Ну так. Ось вам наприклад щоденна нотифікація у [[ubillingtelegram|Телеграм]] про штуки, які відбулись протягом доби.
 <code php> <code php>
 $telegramChatIds = array('11111111', '22222222'); $telegramChatIds = array('11111111', '22222222');
Рядок 115: Рядок 113:
 </code> </code>
  
-И соответственно ее ежедневный вызов:+Та відповідно щоденний виклик:
  
 <code bash> <code bash>
Рядок 121: Рядок 119:
 </code> </code>
  
-==== Ежегодное начисление АП по какому-то тегу ====+==== Щорічне нарахування АП згідно якогось тегу ====
  
 <code php> <code php>
Рядок 176: Рядок 174:
 </code> </code>
  
-Ну и вызов этогоможет выглядеть как ежемесячное+Ну і виклик цього може виглядати як щомісячне  
 <code bash> <code bash>
 50 1 1 * *      /bin/ubapi "onepunch&param=yearcharge" 50 1 1 * *      /bin/ubapi "onepunch&param=yearcharge"
Рядок 182: Рядок 181:
  
  
-==== Принудительное снятие полной АП со всех абонентов ====+==== Примусове зняття повної АП зі всіх абонентів ====
 <code php> <code php>
-set_time_limit(0); +    set_time_limit(0); 
-$tariffPrices = zb_TariffGetPricesAll(); +    $tariffPrices = zb_TariffGetPricesAll(); 
-$users = new nya_users(); +    $users = new nya_users(); 
-$users->where('Passive', '=', 0); +    $users->where('Passive', '=', 0); 
-$all = $users->getAll(); +    $all = $users->getAll(); 
-$i = 0; +    $i = 0; 
-if (!empty($all)) { +    if (!empty($all)) { 
-    foreach ($all as $io => $each) { +        foreach ($all as $io => $each) { 
-        $userTariff = $each['Tariff']; +            $userTariff = $each['Tariff']; 
-        if (isset($tariffPrices[$userTariff])) { +            if (isset($tariffPrices[$userTariff])) { 
-            $userFee = $tariffPrices[$userTariff]; +                $userFee = $tariffPrices[$userTariff]; 
-            if ($userFee > 0) { +                if ($userFee > 0) { 
-                $feeCharge = '-' . $userFee; +                    $feeCharge = '-' . $userFee; 
-                $billing->addcash($each['login'], $feeCharge); +                    // use following method to avoid payments log recording 
-                log_register('CHANGE FixStargazerFee (' . $each['login'] . ') ON ' . $feeCharge);+                    // $billing->addcash($each['login'], $feeCharge); 
 +                    // charging some cash as payment correction 
 +                    zb_CashAdd($each['login'], $feeCharge, 'correct', 1, 'FEE'); 
 +                    log_register('CHANGE FixStargazerFee (' . $each['login'] . ') ON ' . $feeCharge); 
 +                } 
 +            } else { 
 +                show_warning(__('Skipping') . ' ' . $each['login']);
             }             }
-        } else { +            $i++;
-            show_warning(__('Skipping') . ' ' . $each['login']);+
         }         }
-        $i++;+        show_info(__('users processed') . ': ' . $i); 
 +    } else { 
 +        show_error(__('No') . ' ' . __('Users'));
     }     }
-    show_info(__('users processed''$i); +</code> 
-} else { + 
-    show_error(__('No') . ' ' . __('Users'));+ 
 +==== Кредит всім абонентам з якимись умовами ==== 
 + 
 +<code php> 
 +set_time_limit (0); 
 + 
 +$credit = 9000; 
 +$creditexpire='2023-01-06'; 
 +$cashlimit=5; 
 + 
 +$users = new nya_users(); 
 +$users->where('Down','=','0'); 
 +$users->where('Passive','=','0')
 +$users->where('Credit','<','10'); 
 +$users->where('Cash','<',$cashlimit); 
 + 
 + 
 + 
 +$allUsers = $users->getAll('login'); 
 + 
 +foreach ($allUsers as $io => $userData){ 
 +  $billing->setcredit($userData['login'], $credit)
 +  log_register('CHANGE FixCredit ('.$userData['login'].') ON '.$credit); 
 +  $billing->setcreditexpire($userData['login'],$creditexpire)
 +  log_register('CHANGE CreditExpire ('.$userData['login'].') ON '.$creditexpire);
 } }
 +</code>
 +
 +==== Примусове зняття АП поденних тарифів за скількись днів ====
 +
 +<code php>
 +    set_time_limit(0);
 +    $chargeDays = 5;
 +    $tariffsDb = new NyanORM('tariffs');
 +    $tariffsDb->where('period', '=', 'day');
 +    $allDailyTariffs = $tariffsDb->getAll('name');
 +    $allUsers = zb_UserGetAllData();
 +    if (!empty($allUsers) AND ! empty($allDailyTariffs)) {
 +        foreach ($allUsers as $io => $eachUser) {
 +            if (isset($allDailyTariffs[$eachUser['Tariff']]) AND $eachUser['Passive'] == 0) {
 +                $tariffFee = $allDailyTariffs[$eachUser['Tariff']]['Fee'];
 +                $chargeFix = '-' . $tariffFee * $chargeDays;
 +                zb_CashAdd($eachUser['login'], $chargeFix, 'correct', 1, 'FEE');
 +                log_register('CHANGE FixStargazerFee (' . $eachUser['login'] . ') ON ' . $chargeFix);
 +                show_warning('Fixing fee for (' . $eachUser['login'] . ') Tariff ' . $eachUser['Tariff'] . ' ON ' . $tariffFee . '*' . $chargeDays . '=' . $chargeFix);
 +            }
 +        }
 +    }
 </code> </code>
onepunch.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1