Название: Как разрешить подключать тариф только новым абонентам? Отправлено: garik24 от 19 Октября 2020, 19:02:40 Добрый день!
У нас есть Акции при подключении - n-месяцев со скидкой для новых абонентов (модуль "Длинные услуги"). Необходимо разрешить подключать тариф в личном кабинете только новым абонентам. Для этого, полагаю, необходимо задать условие в тарифе, в поле "Условия": дата договора=текущая дата Прошу помочь сформулировать условие на понятном Nodeny-plus/Nodeny-next "языке". contract_date = ? Либо подсказать альтернативное рабочее решение. P.S.: Состояние = "На подключении" (cstate = 1) не подходит, т.к. к моменту заказа тарифа состояние успевает смениться на "Всё ок" (cstate = 0). Спасибо Название: Re: Как разрешить подключать тариф только новым абонентам? Отправлено: Efendy от 19 Октября 2020, 20:09:34 Код: date(from_unixtime(contract_date))=date(now()) Название: Re: Как разрешить подключать тариф только новым абонентам? Отправлено: garik24 от 20 Октября 2020, 14:26:51 Код: date(from_unixtime(contract_date))=date(now()) Попробовал, но вылезла проблема. Подключенная услуга не завершается. Получается вечный акционный тариф, т.к. при изменении условий подключения тарифа абонплата уже не списывается. Как можно решить проблему? Название: Re: Как разрешить подключать тариф только новым абонентам? Отправлено: Efendy от 22 Октября 2020, 12:55:26 если я не ошибаюсь, при автоматическом переподключении услуги условия не применяются. Запусти perl nokernel.pl -m=services -v
Название: Re: Как разрешить подключать тариф только новым абонентам? Отправлено: garik24 от 22 Октября 2020, 17:00:16 если я не ошибаюсь, при автоматическом переподключении услуги условия не применяются. Запусти perl nokernel.pl -m=services -v для теста создал услугу длительностью 1 минуту, которая должна автоматически переподключаться 6 раз. Услугу подключил, потом сменил условия (поменял дату на новую). Прошло 10 минут. Услуга не отключается и не переподключается. Вывод -m=services -v прилагаю: Цитировать Завершение услуги с подключением следующей SELECT *, UNIX_TIMESTAMP() AS t FROM v_services WHERE id='36628' AND uid='298' LIMIT 1 Строк: 1. Время выполнения sql: 0.0007 сек SELECT 1 FROM services_log WHERE uid='298' AND token='509404051656' AND service_id='113' AND module='inet_unlim' Строк: 1. Время выполнения sql: 0.0013 сек SELECT * FROM pays WHERE id='575118' Строк: 1. Время выполнения sql: 0.0005 сек SELECT * FROM services WHERE service_id='113' LIMIT 1 Строк: 1. Время выполнения sql: 0.0004 сек SELECT id FROM v_services WHERE uid='298' AND service_id='113' AND id<>'36628' LIMIT 1 Строк: 0. Время выполнения sql: 0.0006 сек SELECT * FROM users u JOIN data0 d ON u.id=d.uid WHERE u.id='298' AND (date(from_unixtime(contract_date))=date(now())) LIMIT 1 Строк: 0. Время выполнения sql: 0.0006 сек SELECT * FROM user_grp ORDER BY grp_name Строк: 13. Время выполнения sql: 0.0012 сек UPDATE users_services SET tags = REPLACE(tags, ',count_delay=', ',nodelay') WHERE tags LIKE '%,count_delay%' AND uid IN (SELECT id FROM users WHERE balance>=limit_balance AND block_if_limit=1) Строк: 0. Время выполнения sql: 0.0044 сек Название: Re: Как разрешить подключать тариф только новым абонентам? Отправлено: Efendy от 22 Октября 2020, 19:26:16 Да, посмотрел я код, условие применяется всегда. Хотя в документации написано, что применяется только в момент подключения клиентом. Надо сделать фикс, только внимательно подумать не будет ли проблем у тех сетей, у которых и должно проверяться всегда
Название: Re: Как разрешить подключать тариф только новым абонентам? Отправлено: garik24 от 23 Октября 2020, 19:00:10 Да, посмотрел я код, условие применяется всегда. Хотя в документации написано, что применяется только в момент подключения клиентом. Надо сделать фикс, только внимательно подумать не будет ли проблем у тех сетей, у которых и должно проверяться всегда А возможно ли добавить опцию дабы в самом выражении можно было обозначить проверять условия разово/проверять всегда? В проверке уже подключенной услуги - кроется коварный момент. Услуга не соответствующая условиям не отключается и клиент может длительное время получать услугу не оплачивая ее. Имхо, было бы безопасней, если б при проверке не соответствующая условиям услуга отключалась, не подключаясь снова. Название: Re: Как разрешить подключать тариф только новым абонентам? Отправлено: Efendy от 23 Октября 2020, 22:33:09 я считаю, что проверять условие нужно только при поключении. Чтобы услуга не была переподключена повторно, нужно убрать галку автопродолжения
Название: Re: Как разрешить подключать тариф только новым абонентам? Отправлено: garik24 от 26 Октября 2020, 18:56:22 Согласен, проверка условия только при подключении - решит проблему.
Как это сделать? Название: Re: Как разрешить подключать тариф только новым абонентам? Отправлено: Efendy от 26 Октября 2020, 21:18:37 Внес исправления и в ветку next и в ветку plus
|