Биллинговая система Nodeny

Главная категория => Nodeny Plus => Тема начата: tom от 10 Августа 2018, 12:02:35



Название: Заморожена послуга
Отправлено: tom от 10 Августа 2018, 12:02:35
Вітаю.
Може хтось підказати, де я міг протупити.
Послуга при достатньому балансі не розморожується. Може щось не запущено? Чи якесь налаштування?


Название: Re: Заморожена послуга
Отправлено: tom от 10 Августа 2018, 13:22:45
Щось не можу знайти де я читав, але вроді десь написано, що при видачі кредиту, списується вся вартість послуги, якщо за термін кредиту не було оплати, то видаляється тимчасовий платіж і пропорційно знімається за послугу, послуга знову стає в заморожену.
Чи це так? Чи це потрібно десь налаштовувати, чи це працює за дефолтом?


Название: Re: Заморожена послуга
Отправлено: Efendy от 10 Августа 2018, 15:42:17
Запусти perl nokernel.pl -v -m=services и покажи лог после строки: SELECT u.balance, u.discount, u.limit_balance, p.id, p.mid, p.reason ...


Название: Re: Заморожена послуга
Отправлено: tom от 11 Августа 2018, 03:24:23
SELECT u.balance, u.discount, u.limit_balance, p.id, p.mid, p.reason FROM pays p JOIN users u ON p.mid=u.id WHERE p.category=208
Строк: 5923. Время выполнения sql: 0.0176 сек

SELECT v.id, v.uid, s.module, s.title, IF(u.balance < u.limit_balance,1,0) AS neg FROM users_services v JOIN users u ON v.uid = u.id LEFT JOIN services s ON v.service_id = s.service_id WHERE (v.tm_end > 0 AND v.tm_end < UNIX_TIMESTAMP()) OR v.tags LIKE '%,end_now,%'
Строк: 598. Время выполнения sql: 0.0148 сек


Название: Re: Заморожена послуга
Отправлено: tom от 12 Августа 2018, 03:53:19
Ще, при переносі клієнта, якщо він вже є в білінгу і в нього послуга зморожена - то виходить така каша
[1092]Iv.Standart.25М.120   120 грн
01.07.2018 00:01 були припинені послуги:
[1092]Iv.Standart.25М.120

Будуть автоматично підключені коли баланс стане 120 грн

тобто і тариф працює, і пише що послуга припинена. Реально же вроді все норм, клієнт відпрацьовує доступ
mysql> SELECT * FROM users_services WHERE uid=12600;
+--------+-------+---------+------------+------------+------------+-----------------+---------------------------+-----------------------+
| id     | uid   | pay_id  | service_id | tm_start   | tm_end     | next_service_id | tags                      | radius_attr           |
+--------+-------+---------+------------+------------+------------+-----------------+---------------------------+-----------------------+
| 151455 | 12600 | 7320025 |         78 | 1534025942 | 1536617942 |              78 | ,inet,speed,start_traf=0, | Filter-Id=25000/25000 |

Переживати по цьому поводу? Воно само зникне? Чи тре файл переносу ще правити?


Название: Re: Заморожена послуга
Отправлено: Efendy от 13 Августа 2018, 14:05:12
Есть такой код:


Код:
        my $info = Debug->do_eval($p{reason}) or next;
        my $price = $p{discount}? $info->{price}*(100-$p{discount})/100 : $info->{price};
        ($p{balance} - $price) >= $p{limit_balance} or next;
        ref $info->{services} eq 'ARRAY' or next;

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


Код:
        debug('record:', \%p);
        my $info = Debug->do_eval($p{reason}) or next;
        debug('decoded info:', $info);
        my $price = $p{discount}? $info->{price}*(100-$p{discount})/100 : $info->{price};
        debug('check:', {
            'price' => $price,
            'balance - price' => ($p{balance} - $price),
            'limit_balance' => $p{limit_balance},
            'services ok?' => (ref $info->{services} eq 'ARRAY'),
        });
        ($p{balance} - $price) >= $p{limit_balance} or next;
        ref $info->{services} eq 'ARRAY' or next;


Название: Re: Заморожена послуга
Отправлено: tom от 14 Августа 2018, 00:34:12
А який час реагування на розморозку, після поповнення чи тимчасового платежу? Цей параметр десь вказується?


Название: Re: Заморожена послуга
Отправлено: Efendy от 14 Августа 2018, 10:14:05
каждую 61 секунду