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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Розсылка сообщения пользователям по адресах  (Прочитано 7009 раз)
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« : 14 Апреля 2011, 19:43:35 »

ТЗ:

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

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

Интересуют строки и цена вопроса.
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #1 : 14 Апреля 2011, 22:43:28 »

У меня такое реализовано но оно рассчитано на работу с отдельной таблицей генерируемой по крону.
И не интегрировано напрямую в биллинг.
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #2 : 14 Апреля 2011, 22:43:52 »

И последний шаг.
Записан
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« Ответ #3 : 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();
Записан
SeMant
NoDeny
Старожил
*

Карма: 4
Offline Offline

Сообщений: 266



Просмотр профиля Email
« Ответ #4 : 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
Подскажите пожалуйста, что Я делаю не так или что Я не сделал.
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #5 : 19 Января 2013, 09:59:21 »

замени 127.0.0.1 на localhost
Записан
SeMant
NoDeny
Старожил
*

Карма: 4
Offline Offline

Сообщений: 266



Просмотр профиля Email
« Ответ #6 : 19 Января 2013, 13:34:50 »

 За "localhost" спасибо.
 А вот как мне сделать выборку по номеру улицы и номеру дома, а то что-то, то ли образованности, то ли фантазии не хватает.
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

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