все работает, но деньги не считает

Установка, настройка, поддержка
Ответить
DeNiS
Сообщения: 12
Зарегистрирован: Пт ноя 16, 2007 5:05 pm

все работает, но деньги не считает

Сообщение DeNiS »

Под linux поставил abills 0.37b. долго промучался но вроде связка freeradius+ppp+pptpd заработала.
Создал пользователя, создал тариф,добавил NAS сервер ,ип пул к нему (192.168.10.10 на 128 адресов), привязал пользователя к тарифу, к тарифу добавил разрешенный NAS.Тариф создал, указал название и направление траффика (входящий) зашел в интевалы добавил интервал на все дни от 00:00 до 24:00. зашел в траффик, указал цену на трафик допустим 5 едениц за 1 метр входящего. Создал пользователя с депозитом 10 едениц.
Пользователь конектится авторизация проходит, все ок. В мониторе отображается мегабайты считает все ок. НО !! когда пользователь завершает сессию, в базу попадает кол-во принятых, переданных мегабайт, НО сумма остается равно 0 ( . пробывал в настройках тарифа указывать для каких подсетей (192.168.0.0/24;192.168.10.0.24 ) где 0 это сама локалка а 10 это те что раздаютъся vpn клиентам, не помогло. ( Провел дальше эксперемент создал тариф с почасов оплатой, тут все ок и трафик и время и сумма снимается.
И самое интересное допустим цена за метр 5 р. на дипозите 15 р. пользователь подключается, и когда входящего 3 метра, пользователя отрубает, но сумма 0 и дипозит по прежнему тот же, т.е. траффик на сессию расчитываетъся !!!!
Бьюсь над проблемой 4 день, не чего не могу сделать, кто что может подскажите.
Зарание благодарен.

fu7ur3
Сообщения: 12
Зарегистрирован: Пт ноя 16, 2007 3:13 pm

Сообщение fu7ur3 »

И самое интересное допустим цена за метр 5 р. на дипозите 15 р. пользователь подключается, и когда входящего 3 метра, пользователя отрубает, но сумма 0 и дипозит по прежнему тот же
А что тебя смущает ? так и должно быть..

DeNiS
Сообщения: 12
Зарегистрирован: Пт ноя 16, 2007 5:05 pm

Сообщение DeNiS »

fu7ur3 писал(а):
И самое интересное допустим цена за метр 5 р. на дипозите 15 р. пользователь подключается, и когда входящего 3 метра, пользователя отрубает, но сумма 0 и дипозит по прежнему тот же
А что тебя смущает ? так и должно быть..
Смущает то что, деньги должны были с счета пользователя списаться, и за текущую сессию, в колонке сумма, должен быть не 0, а какая то сумма, т.е. допустим в данном пример 15 р. за сессию, и со счета пользователя должно списаться 15 р.

DeNiS
Сообщения: 12
Зарегистрирован: Пт ноя 16, 2007 5:05 pm

Сообщение DeNiS »

долго разбирался в чем проблема, вышел к следующему sql запросу
SELECT i.day, TIME_TO_SEC(i.begin),
TIME_TO_SEC(i.end),
i.tarif,
if(sum(tt.in_price+tt.out_price) IS NULL || sum(tt.in_price+tt.out_price)=0, 0, sum(tt.in_price+tt.out_price)),
i.id
FROM (intervals i)
LEFT JOIN trafic_tarifs tt ON (tt.interval_id=i.id)
WHERE i.tp_id='$TP_ID'
GROUP BY i.id
ORDER BY 1;

почему у меня условие if(sum(tt.in_price+tt.out_price) IS NULL || sum(tt.in_price+tt.out_price)=0, 0, sum(tt.in_price+tt.out_price)), возврашает 0, в место sum(tt.in_price+tt.out_price) ,
хотя in_price out_price имеют отличные от 0 значения, и их сумма если модефицировать sql запрос то возрашается правильной.

Куда копать ?????????

инфа о mysql из myphpadmin
back log 50
basedir /usr/
bdb cache size 8388600
bdb log buffer size 32768
bdb home /var/lib/mysql/
bdb max lock 10000
bdb logdir
bdb shared data OFF
bdb tmpdir /tmp/
bdb version Sleepycat Software: Berkeley DB 3.2.9a: (August 14, 2002)
binlog cache size 32768
character set latin1
character sets latin1 big5 utf8 cp1257 croat czech danish dec8 dos estonia euc_kr gb2312 gbk german1 greek hebrew hp8 hungarian koi8_ru koi8_ukr latin2 latin5 swe7 usa7 win1250 win1251 win1251ukr ujis sjis tis620
concurrent insert ON
connect timeout 5
datadir /var/lib/mysql/
delay key write ON
delayed insert limit 100
delayed insert timeout 300
delayed queue size 1000
flush OFF
flush time 0
have bdb YES
have gemini NO
have innodb DISABLED
have isam YES
have raid NO
have openssl NO
init file
innodb additional mem pool size 1048576
innodb buffer pool size 8388608
innodb data file path
innodb data home dir
innodb file io threads 4
innodb force recovery 0
innodb thread concurrency 8
innodb flush log at trx commit 16777216
innodb fast shutdown ON
innodb flush method
innodb lock wait timeout 50
innodb log arch dir
innodb log archive OFF
innodb log buffer size 1048576
innodb log file size 5242880
innodb log files in group 2
innodb log group home dir
innodb mirrored log groups 1
interactive timeout 28800
join buffer size 131072
key buffer size 8388600
language /usr/share/mysql/english/
large files support ON
locked in memory OFF
log OFF
log update OFF
log bin OFF
log slave updates OFF
log long queries OFF
long query time 10
low priority updates OFF
lower case table names 0
max allowed packet 1048576
max binlog cache size 4294967295
max binlog size 1073741824
max connections 100
max connect errors 10
max delayed threads 20
max heap table size 16777216
max join size 4294967295
max sort length 1024
max user connections 0
max tmp tables 32
max write lock count 4294967295
myisam max extra sort file size 256
myisam max sort file size 2047
myisam recover options 0
myisam sort buffer size 8388608
net buffer length 16384
net read timeout 30
net retry count 10
net write timeout 60
open files limit 0
pid file /var/run/mysqld/mysqld.pid
port 3306
protocol version 10
record buffer 131072
record rnd buffer 131072
query buffer size 0
safe show database OFF
server id 0
slave net timeout 3600
skip locking ON
skip networking OFF
skip show database OFF
slow launch time 2
socket /var/lib/mysql/mysql.sock
sort buffer 2097144
sql mode 0
table cache 64
table type MYISAM
thread cache size 0
thread stack 65536
transaction isolation READ-COMMITTED
timezone MSK
tmp table size 33554432
tmpdir /tmp/
version 3.23.52
wait timeout 28800
Последний раз редактировалось DeNiS Вт ноя 20, 2007 12:43 am, всего редактировалось 1 раз.

DeNiS
Сообщения: 12
Зарегистрирован: Пт ноя 16, 2007 5:05 pm

Сообщение DeNiS »

как выяснилось дальше mysql игнорирует || т.е. по отдельности
if(sum(tt.in_price+tt.out_price) IS NULL 0, sum(tt.in_price+tt.out_price)
if(sum(tt.in_price+tt.out_price)=0, 0, sum(tt.in_price+tt.out_price)
срабатывают верно !!

Ответить