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

Главная категория => Разработка => Тема начата: Александр (AleksHr) от 14 Апреля 2011, 19:43:35



Название: Розсылка сообщения пользователям по адресах
Отправлено: Александр (AleksHr) от 14 Апреля 2011, 19:43:35
ТЗ:

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

Смысл: у моня модуль что заворачивает при отправки сообщения, что бы клиент мог прочитать. Так вот, например на улице такой то будут тех. работы - моментальное уведомление всех.

Интересуют строки и цена вопроса.


Название: Re: Розсылка сообщения пользователям по адресах
Отправлено: goletsa от 14 Апреля 2011, 22:43:28
У меня такое реализовано но оно рассчитано на работу с отдельной таблицей генерируемой по крону.
И не интегрировано напрямую в биллинг.


Название: Re: Розсылка сообщения пользователям по адресах
Отправлено: goletsa от 14 Апреля 2011, 22:43:52
И последний шаг.


Название: Re: Розсылка сообщения пользователям по адресах
Отправлено: garik24 от 23 Апреля 2011, 15:48:09
Использую следующий скрипт для рассылки сообщений юзерам с определенными тарифными пакетами и из определенных груп.
Изменить для рассылки исходя из номера дома и номера улицы, думаю, элементарно.


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

use strict;
use warnings;

use DBI;

#my ( $nquery );
#my @row;
my $debug = 1 ;

#NODENY host,login,password,database
my ( $nd_host, $nd_login, $nd_pass, $nd_db ) =
  ( "127.0.0.1", "****mysql_login****", "***password***", "****nodeny_database_name*****" );

my $nddb = DBI->connect( join( ":", "DBI", "mysql", $nd_db, $nd_host ),
    $nd_login, $nd_pass )
  or die $DBI::errstr;

#здесь указываем номера груп и пакетов
my $sql = "SELECT id FROM users WHERE grp IN (2) AND paket=30 OR paket=31 OR paket=32 OR paket=33 OR paket=12 OR paket=13 OR paket=14 OR paket=15 OR paket=20 OR paket=21 OR paket=2 OR paket=99;";

my      $sth = $nddb->prepare($sql);
        $sth->execute;
 while (my @row = $sth->fetchrow_array)
              {
    $sql = "INSERT INTO pays SET "
    . "mid= @row ,"
    . "cash=0,"
    . "time=UNIX_TIMESTAMP(now()),"
    . "admin_id=1,"
    . "admin_ip=0,"
    . "office = 0,"
    . "reason = '',"
    . "coment = ' *****Текст сообщения**** ',"
    . "bonus = '',"
    . "type = 30,"
    . "category ='490';";
my  $nquery = $nddb->prepare($sql);
    $nquery->execute;
    $nquery->finish;
#             print @row;
#             print "a";
      };
$sth->finish;
$nddb->disconnect();


Название: Re: Розсылка сообщения пользователям по адресах
Отправлено: SeMant от 19 Января 2013, 09:54:20
garik24 мне стало интересно попробовать Ваш скрипт. Я изменил логин пароль и имя БД, в выборке вместо paket написал street, но он мне выдает ошибку в 16 строке
Код:
DBI connect('nodeny:127.0.0.1','nodeny_kern',...) failed: Host '127.0.0.1' is not allowed to connect to this MySQL server at message.sh line 16.
Host '127.0.0.1' is not allowed to connect to this MySQL server at message.sh line 16
Подскажите пожалуйста, что Я делаю не так или что Я не сделал.


Название: Re: Розсылка сообщения пользователям по адресах
Отправлено: stix от 19 Января 2013, 09:59:21
замени 127.0.0.1 на localhost


Название: Re: Розсылка сообщения пользователям по адресах
Отправлено: SeMant от 19 Января 2013, 13:34:50
 За "localhost" спасибо.
 А вот как мне сделать выборку по номеру улицы и номеру дома, а то что-то, то ли образованности, то ли фантазии не хватает.