Биллинговая система Nodeny
23 Ноября 2024, 01:58:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: Проблема с пользователями "Всегда онлайн" и тарифом "Заблокирован".  (Прочитано 9543 раз)
Sork
NoDeny
Пользователь
*

Карма: 3
Offline Offline

Сообщений: 29

Nodeny 50.32.


Просмотр профиля
« : 14 Июня 2011, 09:43:25 »

Обнаружилась постоянно приветствующая проблема - не отключается интернет для пользователей в следующих условиях:

Если в текущем месяце у пользователя есть действующий тарифный план и состояние авторизации "Всегда онлайн", то при установке на следующий месяц тарифного плана "Заблокирован" с активным пунктом "доступ должен быть заблокирован всегда" при наступлении следующего месяца биллинг его не отключает, пункт Доступ: остается в состоянии Разрешен.

Конечно действие "Операции" - "Проверка" таких пользователей выявляет, но хотелось бы чтобы поправили поведение биллинга для пользователей "Всегда онлайн".
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #1 : 14 Июня 2011, 10:19:36 »

он и будет разрешен всегда.
"доступ заблокирован всегда" дает напоминание о таких юзерах
Записан
Sork
NoDeny
Пользователь
*

Карма: 3
Offline Offline

Сообщений: 29

Nodeny 50.32.


Просмотр профиля
« Ответ #2 : 14 Июня 2011, 10:28:02 »

он и будет разрешен всегда.
"доступ заблокирован всегда" дает напоминание о таких юзерах

не совсем логичное поведение.

данный пункт (состояние авторизации) подразумевает необходимо ли авторизировать пользователя или нет, но никак не подразумевает что его необходимо перестать обрабатывать в биллинге (включать/отключать).
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #3 : 14 Июня 2011, 10:30:28 »

Да когда же вы ... научитесь искать по форуму!? Это же просто ... за этот мес. ты уже ТРЕТИЙ кто с этим "Заблокирован" удивляется...
Записан
Sork
NoDeny
Пользователь
*

Карма: 3
Offline Offline

Сообщений: 29

Nodeny 50.32.


Просмотр профиля
« Ответ #4 : 14 Июня 2011, 11:34:25 »

Да когда же вы ... научитесь искать по форуму!? Это же просто ... за этот мес. ты уже ТРЕТИЙ кто с этим "Заблокирован" удивляется...

из тонны споров выковыряно решение-костыль от автора:

http://forum.nodeny.com.ua/index.php?topic=426.msg4353#msg4353
Записан
Sork
NoDeny
Пользователь
*

Карма: 3
Offline Offline

Сообщений: 29

Nodeny 50.32.


Просмотр профиля
« Ответ #5 : 14 Июня 2011, 11:55:27 »

Костыль но на Perl`e

Код:
#!/usr/bin/perl 

$VER=50.32;

use DBI;

$Main_config='/usr/local/nodeny/nodeny.cfg.pl';
$call_pl='/usr/local/nodeny/web/calls.pl';

require $Main_config;
require $call_pl;

$DSN="DBI:mysql:database=$db_name;host=$db_server;mysql_connect_timeout=10";
$dbh=DBI->connect($DSN,$user,$pw,{PrintError=>1});
$dbh->do("SET character_set_client=cp1251");
$dbh->do("SET character_set_connection=cp1251");
$dbh->do("SET character_set_results=cp1251");


$sth=$dbh->prepare("update users set state='off' where state='on' AND paket in (select id from plans2 where flags REGEXP ('k'))");
$sth->execute;
$sth=$dbh->prepare("INSERT INTO pays SET admin_id=0, admin_ip=0, office=0 ,mid=0,cash=0,type=50,category=410,reason='',coment='Пользователи в заблокированных тарифах отключены',time=UNIX_TIMESTAMP()");
$sth->execute;
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #6 : 14 Июня 2011, 12:56:15 »

Я так понимаю, что сочинять костыли это мода такая? Сделайте же себе ТРИГГЕР и не ипите мозг... Это ж надо на два запроса колотить скрипт, потом его куда-то вешать.
Записан
Sork
NoDeny
Пользователь
*

Карма: 3
Offline Offline

Сообщений: 29

Nodeny 50.32.


Просмотр профиля
« Ответ #7 : 14 Июня 2011, 13:09:00 »

Я так понимаю, что сочинять костыли это мода такая? Сделайте же себе ТРИГГЕР и не ипите мозг... Это ж надо на два запроса колотить скрипт, потом его куда-то вешать.

это форум, где люди обмениваются информацией а не только возмущаются - выкладывайте свое решение?
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #8 : 14 Июня 2011, 13:19:58 »

Код:
mysql> help create trigger;
Там все написано.
Записан
Sork
NoDeny
Пользователь
*

Карма: 3
Offline Offline

Сообщений: 29

Nodeny 50.32.


Просмотр профиля
« Ответ #9 : 14 Июня 2011, 14:35:27 »

и зачем лезть в тему если нет желания помочь ...

решение через триггер:
Код:
DROP TRIGGER IF EXISTS `SetStateOff`;
DELIMITER |
CREATE TRIGGER SetStateOff BEFORE UPDATE ON users
  FOR EACH ROW BEGIN
  IF (NEW.paket in (select id from plans2 where flags REGEXP ('k')) )
   THEN
       SET NEW.state = 'off';
  END IF;

  END
|
DELIMITER ;
« Последнее редактирование: 14 Июня 2011, 14:41:14 от Sork » Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #10 : 14 Июня 2011, 14:49:50 »

Критика -- верный способ заставить человека ДУМАТЬ! Я послал в правильном направлении?
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #11 : 15 Июня 2011, 08:30:42 »

отличное решение триггером.
плюсик в репу
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #12 : 15 Июня 2011, 09:17:40 »

Да тут половину "проблем" можно решить триггерами. У меня многое на них "висит".
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #13 : 05 Июля 2011, 14:23:52 »

подскажите как сделать наоборот?
Код:
select id from plans2 where flags REGEXP ('k'))
чтобы  выборка была без флага k
! не катит.
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #14 : 05 Июля 2011, 16:22:09 »

Код:
select id from plans2 where flags NOT REGEXP ('k')
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!