GNR 0 Опубликовано: 2005-07-17 22:24:29 Share Опубликовано: 2005-07-17 22:24:29 Привет. Можно ли в stargazer как то сделать, если суммы у пользователя на счёте не достаточно для абон платы то она не снималась а пользователь замораживался и а бонка в следующих месяцах тоже не снималась? Ссылка на сообщение Поделиться на других сайтах
Max 0 Опубліковано: 2005-07-18 04:14:17 Share Опубліковано: 2005-07-18 04:14:17 Нет средствами стг это сделать незя, тут тока скриптами! Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2005-07-18 13:06:40 Share Опубліковано: 2005-07-18 13:06:40 Скриптом, использующим консольный конфигуратор. Ссылка на сообщение Поделиться на других сайтах
GNR 0 Опубліковано: 2005-07-19 10:40:11 Автор Share Опубліковано: 2005-07-19 10:40:11 Конфигуратор который можно скачать на сайте может делать только 4 вещи 1. Дбавить деньги пользователю 2. Установить кредит пользователю 3. Выбрать тарифный план пользователю 4. Послать сообщение пользователю Или я что то не так понял? Просветите плиз. Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2005-07-20 06:07:35 Share Опубліковано: 2005-07-20 06:07:35 Скриптом, использующим консольный конфигуратор. Т.е. пишешь скрипт, который с помощью консольного конфигуратора снимает абонплату при каком-то условии. Если условие - достаточное количество денег на счету клиента, то скрипт смотрит значение параметра Cash в файле stat в папке пользователя. Получается так: скрипт обрабатывает файлы stat и conf в папке пользователя. И в соответствии с полученными значениями запускает sgconf или не запускает. Таким образом можно сделать очень гибкую систему снятия абонплаты. Например можно сделать так, чтобы велась статистика, сколько снято денег за конкретный месяц. Ссылка на сообщение Поделиться на других сайтах
napTu 4 Опубліковано: 2010-09-06 11:20:06 Share Опубліковано: 2010-09-06 11:20:06 Вот перл скрипт ежедневного снятия абонки. Запускается из крона getdayfee.txt Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2010-09-06 19:09:21 Share Опубліковано: 2010-09-06 19:09:21 у меня должник более одной абоплаты автоматически замораживается и приколачивается по маку, всё делается в скрипте OnChange Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2010-09-07 07:01:16 Share Опубліковано: 2010-09-07 07:01:16 Ого какую древность откопали! Ссылка на сообщение Поделиться на других сайтах
Небесный 26 Опубліковано: 2010-09-07 07:12:28 Share Опубліковано: 2010-09-07 07:12:28 Привет. Можно ли в stargazer как то сделать, если суммы у пользователя на счёте не достаточно для абон платы то она не снималась а пользователь замораживался и а бонка в следующих месяцах тоже не снималась? Все можна сделать, нужно копать исходники стж. Просмотрите мою тему на подобную тему, там показано в каком месте нужно править исходники, только вот условие для проверки снятия абонки придумайте уже сами. А, ну естественно, поставить в конфиге чтобы при минусе не давал инэт, правда юзер будет уходить в минус, но это будет первый минус - дальше снимать абонплату не будет. Вот тема: STG & автоматическая заморозка Можна еще подумать, чтобы делать проверку на то, или есть достаточно денег для снятия абонки - если нету, тогда пнуть например самописный скрипт - на заморозку. Вариантов уйма. ЗЫ: неплохо было бы включить в следующую версию СТЖ - эту фичу. Ссылка на сообщение Поделиться на других сайтах
Watson 0 Опубліковано: 2010-09-07 07:14:15 Share Опубліковано: 2010-09-07 07:14:15 у меня должник более одной абоплаты автоматически замораживается и приколачивается по маку, всё делается в скрипте OnChange Поделись скриптом. Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2010-09-07 07:32:47 Share Опубліковано: 2010-09-07 07:32:47 Поделись скриптом. база юзеров в чём? файлы или sql? Ссылка на сообщение Поделиться на других сайтах
Watson 0 Опубліковано: 2010-09-07 07:56:51 Share Опубліковано: 2010-09-07 07:56:51 Поделись скриптом. база юзеров в чём? файлы или sql? файлы, стг-406. Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2010-09-07 08:53:05 Share Опубліковано: 2010-09-07 08:53:05 есть только под mysql, но в принципе не сложно переделать под файлы MAC адреса хранятся у юзеров в поле UserData0 OnChange #!/bin/bash source /etc/stargazer/sql.conf login=$1 param=$2 oldValue=$3 newValue=$4 # ================== основные параметры ================== ip=`/usr/bin/mysql -h$DBHOST -u$DBUSER -p$ROOTDBPASS $DBNAME -e "SELECT IP FROM users WHERE login = '$login'" --skip-column-names --batch` credit=`/usr/bin/mysql -h$DBHOST -u$DBUSER -p$ROOTDBPASS $DBNAME -e "SELECT Credit FROM users WHERE login = '$login'" --skip-column-names --batch` tarif=`/usr/bin/mysql -h$DBHOST -u$DBUSER -p$ROOTDBPASS $DBNAME -e "SELECT Tariff FROM users WHERE login = '$login'" --skip-column-names --batch` abonRub=`/usr/bin/mysql -h$DBHOST -u$DBUSER -p$ROOTDBPASS $DBNAME -e "SELECT Fee FROM tariffs WHERE name = '$tarif'" --skip-column-names --batch` cash=`/usr/bin/mysql -h$DBHOST -u$DBUSER -p$ROOTDBPASS $DBNAME -e "SELECT Cash FROM users WHERE login = '$login'" --skip-column-names --batch` # ==================== параметр деньги =================== if [ $param = "cash" ] && [ $oldValue -ne $newValue ]; then newRub=`/bin/echo $newValue | cut -f 1 -d "."` # =============== если меняется баланс =============== iflock=`/usr/bin/mysql -h$DBHOST -u$DBUSER -p$ROOTDBPASS $DBNAME -e "SELECT Down FROM users WHERE login = '$login'" --skip-column-names --batch` limit=`/bin/echo "$abonRub*(-1)" | bc -s` if [ $credit -gt $abonRub ]; then limit=`/bin/echo "$credit*(-1)" | bc -s` fi # ================== выход из долга ================== if [ $newRub -ge $limit ] && [ $iflock -ne "0" ]; then /etc/stargazer/sgconf set -s 127.0.0.1 -p 4446 -a $STGADM -w $STGPASS -u $login -d 0 >> /dev/null /etc/stargazer/sgconf set -s 127.0.0.1 -p 4447 -a $STGADM -w $STGPASS -u $login -i 0 >> /dev/null fi # ==================================================== # ==================== вход в долг =================== if [ $newRub -lt $limit ] && [ $iflock -ne "1" ]; then /etc/stargazer/sgconf set -s 127.0.0.1 -p 4446 -a $STGADM -w $STGPASS -u $login -d 1 >> /dev/null /etc/stargazer/sgconf set -s 127.0.0.1 -p 4447 -a $STGADM -w $STGPASS -u $login -i 1 >> /dev/null fi # ==================================================== fi # ======================================================== # ======= отключён/включен - лочим/унлочим по маку ======= if [ $param = "disabled" ]; then ip=`/usr/bin/mysql -h$DBHOST -u$DBUSER -p$ROOTDBPASS $DBNAME -e "SELECT IP FROM users WHERE login = '$login'" --skip-column-names --batch` # ============================== лочим if [ $newValue = "1" ]; then /usr/sbin/arp -s $ip $firmmac else # ==================================== унлочим readmac=`/usr/bin/mysql -h$DBHOST -u$DBUSER -p$ROOTDBPASS $DBNAME -e "SELECT Userdata0 FROM users WHERE login = '$login'" --skip-column-names --batch` /usr/sbin/arp -d $ip /usr/sbin/arp -s $ip $readmac fi fi # ========================================================== # ================== смена мака вручную ==================== if [ $param = "userdata0" ]; then /usr/sbin/arp -d $ip /usr/sbin/arp -s $ip $newValue fi # ========================================================== # ===================== смена ip ======================= if [ $param = "IP" ]; then /usr/sbin/arp -s $oldValue $firmmac /usr/sbin/arp -d $newValue mac=`/usr/bin/mysql -h$DBHOST -u$DBUSER -p$ROOTDBPASS $DBNAME -e "SELECT Userdata0 FROM users WHERE login = '$login'" --skip-column-names --batch` /usr/sbin/arp -s $newValue $mac fi # ========================================================== # ===================== смена тарифа ======================= if [ $param = "tariff" ]; then if [ -z "`/bin/echo $newValue | grep U`" ]; then /etc/stargazer/sgconf set -s 127.0.0.1 -p 4446 -a $STGADM -w $STGPASS -u $login --disable-stat 0 >> /dev/null else /etc/stargazer/sgconf set -s 127.0.0.1 -p 4446 -a $STGADM -w $STGPASS -u $login --disable-stat 1 >> /dev/null fi fi # ========================================================== в /etc/stargazer/sql.conf к примеру firmmac=aa:bb:cc:dd:ee:ff DBNAME=stg DBHOST=localhost STGADM=sgconf STGPASS=adminpassword в /usr/lib/stg у меня mod_conf_sg.so mod_conf_sg1.so mod_conf_sg2.so и соответственно в stargazer.conf <Module conf_sg> Port = 4444 </Module> <Module conf_sg1> Port = 4446 </Module> <Module conf_sg2> Port = 4447 </Module> это чтобы ничего не подвисло в случае одновременного выполнения команд конфигуратора Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас