Jump to content

Придумал фичу


Recommended Posts

Доброе утро! 

Сидел я тут, болтался на стуле с чашкой в руке, и придумал - а что, если была бы возможность создавать события на события.

Щас поясню.

Все действия пишутся у нас в лог, который доступен в модуле "События".

К примеру, мне сейчас захотелось снимать с баланса юзера за ручное начисление кредита. 

Таким образом, вместо того, чтобы лезть в код и ковырять родные модули, можно было бы пойти в лог,

выбрать любимое часто повторяющееся действо и приклеить к нему что вздумается (в рамках API, конечно же)

 

Пока я не проснулся, и не подумал, что идея так себе, оставлю это здесь, вдруг она всё таки хорошая.

Всем хороших выходных!

Link to post
Share on other sites
8 часов назад, strushke сказав:

К примеру, мне сейчас захотелось снимать с баланса юзера за ручное начисление кредита. 

 

Ну вот, допустим, готовый One-Punch скрипт, нарисованный на коленке за 5 минут с перекурами, работающий без модификации биллинга в принципе, и реализующий ваш кейс, даже с настроечками и проверочками.

 

    $creditFeeSumm = 10; // price manual credit operation
    $yesterday = true; // today or yesterday credit events processing processing?

    $creditEvents = new nya_weblogs();
    $dateMask = ($yesterday) ? date("Y-m-d", strtotime('-1 day')) . '%' : curdate() . '%';
    $creditEvents->where('date', 'LIKE', $dateMask);
    $creditEvents->where('admin', '!=', 'external');
    $creditEvents->where('admin', '!=', 'guest');
    $creditEvents->where('event', 'LIKE', 'CHANGE Credit (%');

    $allCreditEvents = $creditEvents->getAll();

    if (!empty($allCreditEvents)) {
        $allUsersData = zb_UserGetAllDataCache();
        foreach ($allCreditEvents as $io => $eachEvent) {
            if (preg_match('!\((.*?)\)!si', $eachEvent['event'], $tmpLoginMatches)) {
                if (isset($tmpLoginMatches[1])) {
                    $loginExtracted = $tmpLoginMatches[1];
                    if (isset($allUsersData[$loginExtracted])) {
                        zb_CashAdd($loginExtracted, '-' . $creditFeeSumm, 'add', 1, 'SCFEE');
                    }
                }
            }
        }
    }

 

8 часов назад, strushke сказав:

Таким образом, вместо того, чтобы лезть в код и ковырять родные модули, можно было бы пойти в лог,

как видите выше, ничего "ковырять" не нужно и в лог сходить никто как-бы не запрещает.

 

8 часов назад, strushke сказав:

выбрать любимое часто повторяющееся действо и приклеить к нему что вздумается (в рамках API, конечно же)

смотря 10-ю сантиметрами выше, можете сказать, почему эта вот придуманная вами "система триггеров" не сделана еще вот как вы ее себе нафантазировали, с кнопочками и менюшечками? ;)

 

Link to post
Share on other sites

UPD: если догадаетесь "почему", заодно и узнаете, почему всякие системы "визуальные, программирования без программирования" валяются где-то на задворках, маргинальны и в целом мертвы, как скажем те же hiasm, inventor итд.

UPD2: не, ну типа можно пытаться, изобретать какую-то доморощенную помесь expect со switch-case конструкциями внутри... но оно реально того стоит?

Link to post
Share on other sites
  • 2 weeks later...
On 2/4/2023 at 5:29 PM, nightfly said:

UPD: если догадаетесь "почему", заодно и узнаете, почему всякие системы "визуальные, программирования без программирования" валяются где-то на задворках, маргинальны и в целом мертвы, как скажем те же hiasm, inventor итд.

UPD2: не, ну типа можно пытаться, изобретать какую-то доморощенную помесь expect со switch-case конструкциями внутри... но оно реально того стоит?

Всё, доходчиво и понятно) Действительно, так быстрее и удобнее. Да , кофе выпил много, на подъеме был

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By nightfly
      Ubilling 1.5.9 rev 9525 The Perfect Lock
       
      Зміни в структурі БД. alter.ini: нова опція GENERATORS_ENABLED, що вмикає модуль моніторингу генераторів. alter.ini: нова опція TB_GENERATORS_NOTIFY, що вмикає нотифікацію про запущені генератори в області сповіщень. alter.ini: нова опція PON_ONU_UNI_STATUS_COMPACT, що вмикає компактне відображення стану мідних портів на ONU. alter.ini: нова опція PONBOXES_MINIMAP, що дозволяє вмикати та вимикати міні-мапу, при редагування ПОН коробки. Новий модуль Єдинорожий телепорт: дозволяє просто та зручно переносити ваш робочий білінг на новий сервер. Модуль “Реєстрація користувачів”: виправлено проблеми сумісності з PHP 8.5. Модуль “Останні події”: викинуто дубову статку на мороз. Askozia PBX: інтеграція була давно непідтримуваною, викинуто на мороз, разом зі всіма опціями. Модуль Mapon: тепер використовує OmaeURL для взаємодії з API. Модуль “Мапа ONU”: в черговий раз покращення навігації між мапою та іншими модулями системи. Новий модуль Генератори: дозволяє моніторити стан генераторів, базово облікувати мотогодини, пальне та планувати ТО. Модуль ПОНізатор: тепер причини останньої дереєстрації ONU можуть визначатись також по серійнику ONU а не тільки за MAC. Модуль “ПОН Коробки”: покращено продуктивність відмальовки зв'язків коробок на мапах. Глобально: проведено чергову спробу зробити логування подій, що відбуваються навколо користувачів, якимось трішки більш притомним. RemoteAPI: новий виклик generators, що запускає скрипти обробки станів генераторів з автоматичним запуском. RemoteAPI: новий виклик gencontrol, для примусового запуску/зупинки генераторів за допомогою зовнішнього ПЗ. Бібліотека UbillingCache: виправлено проблеми сумісності з PHP 8.5. Бібліотека OmaeURL: виправлено проблеми сумісності з PHP 8.5. Бібліотека UbillingTelegram: вся робота з CURL перенесена до одного методу, покращено сумісність з PHP 8.5. Кабінет користувача: виправлено проблеми сумісності з PHP 8.5. UBinstaller: тепер при встановленні попередньо розгортає та конфігурує SphinxSearch. UBinstaller: Зібрано бінарні пакунки для FreeBSD 14.3 amd64 + PHP 8.5. UBinstaller: Зібрано бінарні пакунки для FreeBSD 15.0 amd64 + PHP 8.5.  
      Повний чейнджлог
      Оновлена демка
       
       

    • By maxkorn
      Доброго дня!
      На Mikrotik NAS, створив нову підмережу для клієнтів, все наче порядок, тільки помітив, що не створюються шейпери в Queues для клієнтів цієї підмережі.
      В логах Stargazer наступне:
      2025-12-29 09:05:57 - [Ubilling] - OnConnect started for user `xxasdb5rzm`:
      2025-12-29 09:05:57 - [Executer] - Success: Firewall entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Error: Queue entry can't be updated, missing
      2025-12-29 09:05:57 - [Executer] - Success: Queue_tree entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Success: DHCP entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Success: ARP entry was updated/created
      2025-12-29 09:05:57 - [Ubilling] - QC: 6, elapsed time: 0.064 sec.
       
      При чому, на тому ж мікротіку є ще кілька підмереж, в яких все проходить нормально:
       
      2025-12-29 08:30:17 - [Ubilling] - OnConnect started for user `22zxp7u58x`:
      2025-12-29 08:30:17 - [Executer] - Success: Firewall entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: Queue entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: Queue_tree entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: DHCP entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: ARP entry was updated/created
      2025-12-29 08:30:17 - [Ubilling] - QC: 6, elapsed time: 0.602 sec.
       
      Налаштування аналогічні, в чому може бути причина?
    • By ProstoName
      Змінювали мережеву карту. Здається все поправив. Працює. Але є невелика проблема - після внесення коштів (коли абонент був відключений), інет в нього не з'являється. Тільки після заміни тарифу на інший (і потім вернувши тариф) в абонента з'являється інет. 
    • By ppv
      Собака-посилака перестала відправляти повідомлення. Підкажіть де шукати.
      Можливо таке після пропадання світла, сервер ребутнувся, але я не впевнений. Візуально все працює, крон працює, а повідомлення висять в черзі, смс така ж картина.

    • By camchatix
      Привіт!
       
      Є багато запитів, щоб інтернет не виключався у північ, а скажімо в день (сигналізації, камери під охороною і тд)
      При щоденній абонплаті - як знімати гроші не у 12:00 у північ, а наприклад у 11 годин дня ?
×
×
  • Create New...