GNR 0 Posted 2005-07-17 22:24:29 Share Posted 2005-07-17 22:24:29 Привет. Можно ли в stargazer как то сделать, если суммы у пользователя на счёте не достаточно для абон платы то она не снималась а пользователь замораживался и а бонка в следующих месяцах тоже не снималась? Link to post Share on other sites
Max 0 Posted 2005-07-18 04:14:17 Share Posted 2005-07-18 04:14:17 Нет средствами стг это сделать незя, тут тока скриптами! Link to post Share on other sites
XoRe 0 Posted 2005-07-18 13:06:40 Share Posted 2005-07-18 13:06:40 Скриптом, использующим консольный конфигуратор. Link to post Share on other sites
GNR 0 Posted 2005-07-19 10:40:11 Author Share Posted 2005-07-19 10:40:11 Конфигуратор который можно скачать на сайте может делать только 4 вещи 1. Дбавить деньги пользователю 2. Установить кредит пользователю 3. Выбрать тарифный план пользователю 4. Послать сообщение пользователю Или я что то не так понял? Просветите плиз. Link to post Share on other sites
XoRe 0 Posted 2005-07-20 06:07:35 Share Posted 2005-07-20 06:07:35 Скриптом, использующим консольный конфигуратор. Т.е. пишешь скрипт, который с помощью консольного конфигуратора снимает абонплату при каком-то условии. Если условие - достаточное количество денег на счету клиента, то скрипт смотрит значение параметра Cash в файле stat в папке пользователя. Получается так: скрипт обрабатывает файлы stat и conf в папке пользователя. И в соответствии с полученными значениями запускает sgconf или не запускает. Таким образом можно сделать очень гибкую систему снятия абонплаты. Например можно сделать так, чтобы велась статистика, сколько снято денег за конкретный месяц. Link to post Share on other sites
napTu 4 Posted 2010-09-06 11:20:06 Share Posted 2010-09-06 11:20:06 Вот перл скрипт ежедневного снятия абонки. Запускается из крона getdayfee.txt Link to post Share on other sites
yKpon 8 Posted 2010-09-06 19:09:21 Share Posted 2010-09-06 19:09:21 у меня должник более одной абоплаты автоматически замораживается и приколачивается по маку, всё делается в скрипте OnChange Link to post Share on other sites
madf 279 Posted 2010-09-07 07:01:16 Share Posted 2010-09-07 07:01:16 Ого какую древность откопали! Link to post Share on other sites
Небесный 26 Posted 2010-09-07 07:12:28 Share Posted 2010-09-07 07:12:28 Привет. Можно ли в stargazer как то сделать, если суммы у пользователя на счёте не достаточно для абон платы то она не снималась а пользователь замораживался и а бонка в следующих месяцах тоже не снималась? Все можна сделать, нужно копать исходники стж. Просмотрите мою тему на подобную тему, там показано в каком месте нужно править исходники, только вот условие для проверки снятия абонки придумайте уже сами. А, ну естественно, поставить в конфиге чтобы при минусе не давал инэт, правда юзер будет уходить в минус, но это будет первый минус - дальше снимать абонплату не будет. Вот тема: STG & автоматическая заморозка Можна еще подумать, чтобы делать проверку на то, или есть достаточно денег для снятия абонки - если нету, тогда пнуть например самописный скрипт - на заморозку. Вариантов уйма. ЗЫ: неплохо было бы включить в следующую версию СТЖ - эту фичу. Link to post Share on other sites
Watson 0 Posted 2010-09-07 07:14:15 Share Posted 2010-09-07 07:14:15 у меня должник более одной абоплаты автоматически замораживается и приколачивается по маку, всё делается в скрипте OnChange Поделись скриптом. Link to post Share on other sites
yKpon 8 Posted 2010-09-07 07:32:47 Share Posted 2010-09-07 07:32:47 Поделись скриптом. база юзеров в чём? файлы или sql? Link to post Share on other sites
Watson 0 Posted 2010-09-07 07:56:51 Share Posted 2010-09-07 07:56:51 Поделись скриптом. база юзеров в чём? файлы или sql? файлы, стг-406. Link to post Share on other sites
yKpon 8 Posted 2010-09-07 08:53:05 Share Posted 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> это чтобы ничего не подвисло в случае одновременного выполнения команд конфигуратора Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now