Jump to content

Recommended Posts

  • Replies 500
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Posted
В 04/01/2018 в 22:21, Andrei сказал:

... и упомянутая вами "кастомизация под требования местных органов" еще за дополнительные деньги?

На основании требований к оператору связи мы предоставляем оценку стоимости с учетом сделанных наработок (уже с учетом кастомизации). 

  • 1 month later...
Posted

При ревизии абон.базы ЛБ для выгрузок в СОРМ аыявил в accounts пустую запись:

> select a.uid, a.login, a.name, a.abonent_surname, a.abonent_name, a.abonent_patronymic,agr.number from accounts as a, agreements as agr where a.uid=agr.uid and a.uid=6 ;
+-----+-------+------+-----------------+--------------+--------------------+-------------+
| uid | login | name | abonent_surname | abonent_name | abonent_patronymic | number      |
+-----+-------+------+-----------------+--------------+--------------------+-------------+
|   6 | NULL  |      |                 |              |                    | 14-01/140_1 |
|   6 | NULL  |      |                 |              |                    | 14-02/140_2 |
|   6 | NULL  |      |                 |              |                    | number-248  |
+-----+-------+------+-----------------+--------------+--------------------+-------------+
3 rows in set (0.00 sec)

При том, что реальный абонент с договором номер  14-01/140 вот он:

 select a.uid, a.login, a.name, a.abonent_surname, a.abonent_name, a.abonent_patronymic,agr.number from accounts as a, agreements as agr where a.uid=agr.uid and agr.number="14-01/140";
+-----+-------+-------------------------------------------------------------------------------------+-----------------+--------------+--------------------+-----------+
| uid | login | name                                                                                | abonent_surname | abonent_name | abonent_patronymic | number    |
+-----+-------+-------------------------------------------------------------------------------------+-----------------+--------------+--------------------+-----------+
| 262 | bshu  | Баххххххх ххххххххххххххххххххххххххххххОАО                                         |                 |              |                    | 14-01/140 |
+-----+-------+-------------------------------------------------------------------------------------+-----------------+--------------+--------------------+-----------+
1 row in set (0.01 sec)

Думаю - подчищу базу, чтоб не отсвечивала пустая запись в выгрузках в СОРМ (там такое не допускается), однако ж

delete from accounts where uid=6;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails 
(`billing`.`card_set`, CONSTRAINT `card_set_ibfk_2` FOREIGN KEY (`acc_tpl`) REFERENCES `accounts` (`uid`))

Как я понимаю - связанные записи в других таблицах? Но не пойму где именно:

mysql> select * from card_set ;
+--------+----------------------------------------------------+------------+--------+---------+---------------+
| set_id | set_descr                                          | created_by | cur_id | acc_tpl | expire_period |
+--------+----------------------------------------------------+------------+--------+---------+---------------+
|      1 | Универсальная карта оплаты                         |          0 |      1 |       6 |             0 |
+--------+----------------------------------------------------+------------+--------+---------+---------------+
1 row in set (0.00 sec)

Кто сталкивался с таким или подобным? Карты оплаты не используем.

Posted

И попутно спрошу - в каком поле хранится параметр, указывающий к какому агенту относится учетка (скорее всего таблица vgroups)?

 describe vgroups;
+----------------+---------------------+------+-----+---------------------+----------------+
| Field          | Type                | Null | Key | Default             | Extra          |
+----------------+---------------------+------+-----+---------------------+----------------+
| vg_id          | int(11)             | NO   | PRI | NULL                | auto_increment |
| uid            | int(11)             | YES  | MUL | NULL                |                |
| cu_id          | int(11)             | YES  | MUL | NULL                |                |
| descr          | varchar(255)        | NO   |     |                     |                |
| login          | varchar(128)        | YES  | MUL | NULL                |                |
| pass           | varchar(128)        | YES  |     | NULL                |                |
| agrm_id        | int(11)             | YES  | MUL | NULL                |                |
| blk_req        | tinyint(4)          | NO   | MUL | 0                   |                |
| blocked        | tinyint(4)          | NO   | MUL | 0                   |                |
| changed        | tinyint(4)          | NO   | MUL | 0                   |                |
| tar_id         | int(11)             | YES  | MUL | NULL                |                |
| id             | int(11)             | NO   | MUL | 0                   |                |
| shape          | int(10) unsigned    | NO   |     | 0                   |                |
| c_date         | date                | NO   | MUL | 0000-00-00          |                |
| d_limit        | bigint(20) unsigned | NO   |     | 0                   |                |
| d_clear        | date                | YES  |     | NULL                |                |
| max_sessions   | int(11)             | NO   |     | 1                   |                |
| amount         | double              | NO   |     | 0                   |                |
| current_shape  | int(10) unsigned    | NO   |     | 0                   |                |
| ip_det         | tinyint(1)          | NO   |     | 0                   |                |
| port_det       | tinyint(1)          | NO   |     | 0                   |                |
| archive        | tinyint(1)          | NO   | MUL | 0                   |                |
| acc_ondate     | datetime            | NO   | MUL | 0000-00-00 00:00:00 |                |
| acc_offdate    | datetime            | NO   | MUL | 0000-00-00 00:00:00 |                |
| block_date     | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| creation_date  | timestamp           | NO   |     | CURRENT_TIMESTAMP   |                |
| template       | tinyint(1)          | NO   |     | 0                   |                |
| dirty          | tinyint(4)          | NO   |     | 0                   |                |
| connected_from | int(11)             | YES  |     | NULL                |                |
| parent_vg_id   | int(11)             | YES  | MUL | NULL                |                |
| port_id        | int(11)             | YES  | MUL | NULL                |                |
| user_packet_id | int(11)             | YES  | MUL | NULL                |                |
+----------------+---------------------+------+-----+---------------------+----------------+
32 rows in set (0.00 sec)

 

Posted

В первом случае uid=6, а во втором 262. Это разные абоненты с точки зрения БД.

Да и номера договоров различаются. 14-01/140_1 != 14-01/140
Думаю надо смотреть в поле archive, если оно 1 - то учетка/договор/абонент удалены (через веб-интерфейс не видно будет) и в СОРМ удаленных выгружать наверное не стоит.

 

ID агента - vgroups.id

Posted
mysql> select count(*) from accounts where login='';
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql> select count(*) from accounts where login=NULL;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql> select count(*) from accounts where login='NULL';
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql> select count(*) from accounts where login="NULL";
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

Вот и надо почистить их.

В вэб-интерфейсе ни пользователей, ни учеток с номерами договоров 14-01/140_1 или 14-01/140_2 или number-248 нет. 

И не архивные они:
 

 select a.uid, a.archive, a.login, a.name, a.abonent_surname, a.abonent_name, a.abonent_patronymic,agr.number from accounts as a, agreements as agr where a.uid=agr.uid and a.uid=6 ;
+-----+---------+-------+------+-----------------+--------------+--------------------+-------------+
| uid | archive | login | name | abonent_surname | abonent_name | abonent_patronymic | number      |
+-----+---------+-------+------+-----------------+--------------+--------------------+-------------+
|   6 |       0 | NULL  |      |                 |              |                    | 14-01/140_1 |
|   6 |       0 | NULL  |      |                 |              |                    | 14-02/140_2 |
|   6 |       0 | NULL  |      |                 |              |                    | number-248  |
+-----+---------+-------+------+-----------------+--------------+--------------------+-------------+
3 rows in set (0.00 sec)

 

Posted
10 минут назад, Andrei сказал:

select count(*) from accounts where login=NULL;

Так не правильно.
надо select count(*) from accounts where login is NULL;

Posted
mysql> select count(*) from accounts where login is NULL;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

mysql> select uid,name,login from accounts where login is NULL;
+-----+------+-------+
| uid | name | login |
+-----+------+-------+
|   6 |      | NULL  |
+-----+------+-------+
1 row in set (0.00 sec)

Чет я не пойму что к чему.

Posted

select archive from agreements where uid=6; 

 

1 минуту назад, Andrei сказал:

mysql> select count(*) from accounts where login is NULL;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

mysql> select uid,name,login from accounts where login is NULL;
+-----+------+-------+
| uid | name | login |
+-----+------+-------+
|   6 |      | NULL  |
+-----+------+-------+
1 row in set (0.00 sec)

Чет я не пойму что к чему.

1 Абонент и к нему 3 договора. Видимо так.

Posted
mysql> select archive,number from agreements where uid=6;
+---------+-------------+
| archive | number      |
+---------+-------------+
|       1 | 14-01/140_1 |
|       1 | 14-02/140_2 |
|       0 | number-248  |
+---------+-------------+
3 rows in set (0.00 sec)

Т.е. один-то должен быть виден. А нету

Posted
28 минут назад, mvelich сказал:

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

 select * from usergroups_staff where uid = 6;
+----------+-----+
| group_id | uid |
+----------+-----+
|        0 |   6 |
|        1 |   6 |
+----------+-----+
2 rows in set (0.00 sec)

а что за 1я группа еще видна?

Posted
7 minutes ago, Andrei said:

а что за 1я группа еще видна?

Ну... какая-то группа с id = 1

select * from usergroups where group_id = 1;

 

 

А этот абонент у Вас, случаем, не шаблон?

Покажите полную запись

 

select * from accounts where uid = 6\G

 

5 minutes ago, mvelich said:

А этот абонент у Вас, случаем, не шаблон?

Скорее всего, так и есть. При удалении ругается на связь с card_set (набор карт), как раз к набору карт и привязывается шаблон пользователя

Posted

Вот что видно:

mysql> select * from usergroups where group_id = 1;
+----------+------------------+------------------+---------------+-------------+-------------+--------------+--------------+---------------+--------------+--------------+-----------------------+-----------------------------+----------------+-------------------+
| group_id | name             | description      | promise_allow | promise_max | promise_min | promise_rent | promise_till | promise_limit | promise_curr | block_amount | block_duration_debtor | block_duration_denouncement | promise_ondays | promise_blockdays |
+----------+------------------+------------------+---------------+-------------+-------------+--------------+--------------+---------------+--------------+--------------+-----------------------+-----------------------------+----------------+-------------------+
|        1 | Абоненты         | Абоненты         |             1 |          50 |          10 |            0 |            3 |            30 |            0 |            0 |                     0 |                           0 |              0 |                10 |
+----------+------------------+------------------+---------------+-------------+-------------+--------------+--------------+---------------+--------------+--------------+-----------------------+-----------------------------+----------------+-------------------+
1 row in set (0.00 sec)

mysql> select * from accounts where uid = 6;
+-----+------+-------+------+----------+------+-------+------+-------+------+-------+---------------+----------+-----------+------------------+---------------+------------------+------+-------+------+------+------+------+------+-------+-----------+-----------+-------------+-------------+-------------+---------+----------------+---------------+-----------------+------------+------------+---------------------+--------------+---------------------+------+-------+----------+---------+--------+-----------+--------------+-----------------+--------------------+
| uid | uuid | login | pass | ipaccess | type | descr | name | phone | fax  | email | bill_delivery | category | bank_name | branch_bank_name | treasury_name | treasury_account | bik  | settl | corr | kpp  | inn  | ogrn | okpo | okved | gen_dir_u | gl_buhg_u | kont_person | act_on_what | pass_sernum | pass_no | pass_issuedate | pass_issuedep | pass_issueplace | birthdate  | birthplace | last_mod_date       | wrong_active | wrong_date          | oksm | okato | template | archive | mobile | ownership | abonent_name | abonent_surname | abonent_patronymic |
+-----+------+-------+------+----------+------+-------+------+-------+------+-------+---------------+----------+-----------+------------------+---------------+------------------+------+-------+------+------+------+------+------+-------+-----------+-----------+-------------+-------------+-------------+---------+----------------+---------------+-----------------+------------+------------+---------------------+--------------+---------------------+------+-------+----------+---------+--------+-----------+--------------+-----------------+--------------------+
|   6 | NULL | NULL  |      |        0 |    2 |       |      |       |      |       |             1 |        0 |           |                  |               |                  |      |       |      |      |      |      |      |       |           |           |             |             |             |         | NULL           |               |                 | 0000-00-00 |            | 2012-06-21 07:23:01 |            0 | 0000-00-00 00:00:00 |  643 |       |        1 |       0 | NULL   |      NULL |              |                 |                    |
+-----+------+-------+------+----------+------+-------+------+-------+------+-------+---------------+----------+-----------+------------------+---------------+------------------+------+-------+------+------+------+------+------+-------+-----------+-----------+-------------+-------------+-------------+---------+----------------+---------------+-----------------+------------+------------+---------------------+--------------+---------------------+------+-------+----------+---------+--------+-----------+--------------+-----------------+--------------------+
1 row in set (0.00 sec)

 

Posted
39 minutes ago, Andrei said:

Вот что видно:

Как и предполагалось, template = 1.

Можно или в том запросе, где вы получаете данные для сорма, отфильтровать "and template = 0" (best) или попробовать удалить набор карт. Возможная засада -- что он уже где-то был использован, пусть даже в тестовом режиме, и система не даст этого сделать.

Posted
14 hours ago, Andrei said:

update accounts template set 0 where uid = 6

Тоже вариант )

Можно тем же запросом проставить ей логин (чтобы удобнее было искать), а потом штатно через интф удалить

  • 4 months later...
Posted

После сильнейшей грозы почему-то стали отваливаться pppoe сессии. Запустил радиус-агента в режиме debug, в логе при разрыве сессии:

[RunAcctRequestInst:1802]       Acct STOP (Port-Error), Session-Id 0000198C, vg_id 1313
 [RunAcctRequestInst:1825]       Record with SessionID = '0000198C' found in cache
 [do_sql_query:354]      SELECT t.traff_type, t.dynamic_rent, c.cat_idx, c.includes, c.above, l.c_limit_in, l.c_limit_out FROM ....
 [PutIpBack:275] Put ip 172.21.43.250 back to pool
 [RunAcctRequestInst:1907]       Ip 172.21.43.250 released for session 0000198C (Acct-STOP)
 [do_sql_query:354]      DELETE FROM `sessionsradius` WHERE `session_id` = '0000198C' AND nas = '1474477830'
 [Close:1600]    Session '0000198C' removed from DB.

И такие Acct STOP (Port-Error) пролетают пачкой, штук 30-40. Потом эти роутеры поднимают сессии обратно,но через 4 минуты опять тоже самое.

В чем может быть причина?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...