Значение поля is_blocked в таблице accounts

Технические вопросы по UTM 5.0
Ответить
petrovs
Сообщения: 286
Зарегистрирован: Вт мар 15, 2005 16:54
Контактная информация:

Значение поля is_blocked в таблице accounts

Сообщение petrovs »

Как определить по значению поля is_blocked в таблице accounts какие параметры блокировки присутствуют у пользователя?

Скорее всего это вопрос к разработчикам UTM5.

Хотелось бы увидеть, что означают все значения этого поля...

Аватара пользователя
Prot
Сообщения: 14
Зарегистрирован: Пн дек 10, 2007 18:44
Откуда: СаратOFF

Сообщение Prot »

Ууу, тема не на высоте. Меня тоже интересует этот же вопрос...
Пишу скрипт для выборки из базы параметров пользователя.
Уважаемые разработчики, напишите таблицу флагов для поля is_blocked.

prx
Сообщения: 139
Зарегистрирован: Чт дек 01, 2005 18:44

Сообщение prx »

а как насчет методом научного тыка? :)

Скорее всего разработчики вам этого не напишут - так как "Любые изменения, вносимые в базу могут нарушить нормальную работу UTM"

hammer
Сообщения: 286
Зарегистрирован: Сб янв 20, 2007 22:58
Контактная информация:

Сообщение hammer »

Это не изменения... это просмотрт - но не ответят вам в любом случае - ибо структура базы - это большой большой секрет.. в какойто ветке форума этот вопрос уже обсуждался и ответили на него именно так.
Советую просто поколупать остальные таблички посмотреть где ещё всчтречаются схожие индексы - нарисовать схемки, прикинуть как могут быть свзяаны таблицы - ещё раз посмотреть что к чему и добавивить метод научного тыка - возможно будет результат - мне все это в 99% случаев и поиск по форуму помогали решить все возникающие вопросы по базе.

Instruktor
Сообщения: 131
Зарегистрирован: Ср авг 10, 2005 21:32
Откуда: Москва

Сообщение Instruktor »

Когда-то в хотлайне на этот безобидный вопрос ответили, что пояснение структуры БД не входит в состав услуги "техподдержка".

В общем копаться в БД это грех.

Аватара пользователя
Prot
Сообщения: 14
Зарегистрирован: Пн дек 10, 2007 18:44
Откуда: СаратOFF

Сообщение Prot »

Instruktor, значит я очень грешный, но я и дальше буду пытаться копать эту БД.

Вообщем методом научного тыка нашёл некую закономерность..
Итак, значения is_blocked в БД и значение поля "Заблокирован" в Java UTM:
0 = Нет
16 = Да (не админ) [т.е. авто блокировка]
256 = Да
768 = Да (не списывать аб. плату)
768+16 = Да (не списывать аб. плату) [Авто блокировка]
1280 = Да (уменьшать пред. трафик)
1280+16 = Да (уменьшать пред. трафик) [Авто блокировка]
1792 = Да (не списывать аб. плату, уменьшать пред. трафик)
1792+16 = Да (не списывать аб. плату, уменьшать пред. трафик) [Авто блокировка]

Написал скрипт который выдёргивает это всё из базы и рисует html-таблицу, всё бы ничего, совпало где-то 98% данных, НО!!
Когда я увидел флаг 80 или 1840, то я вообще не понял куда их отнести!!
Флаг 80 совпал как "16 = Да (не админ) [т.е. авто блокировка]",
а флаг 1840 совпал как "1792 = Да (не списывать аб. плату, уменьшать пред. трафик)"

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

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

Prot писал(а):Instruktor, значит я очень грешный, но я и дальше буду пытаться копать эту БД.

Вообщем методом научного тыка нашёл некую закономерность..
Итак, значения is_blocked в БД и значение поля "Заблокирован" в Java UTM:
0 = Нет
16 = Да (не админ) [т.е. авто блокировка]
256 = Да
768 = Да (не списывать аб. плату)
768+16 = Да (не списывать аб. плату) [Авто блокировка]
1280 = Да (уменьшать пред. трафик)
1280+16 = Да (уменьшать пред. трафик) [Авто блокировка]
1792 = Да (не списывать аб. плату, уменьшать пред. трафик)
1792+16 = Да (не списывать аб. плату, уменьшать пред. трафик) [Авто блокировка]

Написал скрипт который выдёргивает это всё из базы и рисует html-таблицу, всё бы ничего, совпало где-то 98% данных, НО!!
Когда я увидел флаг 80 или 1840, то я вообще не понял куда их отнести!!
Флаг 80 совпал как "16 = Да (не админ) [т.е. авто блокировка]",
а флаг 1840 совпал как "1792 = Да (не списывать аб. плату, уменьшать пред. трафик)"

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

Аватара пользователя
Prot
Сообщения: 14
Зарегистрирован: Пн дек 10, 2007 18:44
Откуда: СаратOFF

Сообщение Prot »

уменьшать пред. трафик содержиться в accounts.block_recalc_prepaid и тупо ставиться значение 1 или 0
Так же и accounts.block_recalc_abon (не списывать абон.плату).

Пока копаю в слепую, может что нарою, и похоже разработчики тут не помогут, т.к. что-то молчат.

Аватара пользователя
XoRe
Сообщения: 458
Зарегистрирован: Ср янв 10, 2007 16:04

Сообщение XoRe »

2Prot:
Вы бы все эти числа представили бы в двоичном виде.
За какой-то флаг отвечает какой-то один бит.
В результате получаются такие цифры.
Надо просто узнать, какой бит за что отвечает и все.

Аватара пользователя
Prot
Сообщения: 14
Зарегистрирован: Пн дек 10, 2007 18:44
Откуда: СаратOFF

Сообщение Prot »

Да вот самое главное и узнать какой бит за что отвечает.
В бинарном виде, я совсем сбился с толку, во первых получилась 11-битная система(почему бы разработчикам не взять 8-мибитную как по стандарту?!). Вот что получилось:
Заблокирован
00000000000 = Нет
00100000000 = Да
00000010000 = Да (не админ)
00000110000 = Да (не админ) ???
00001010000 = Да (не админ) ???
01100000000 = Да (не списывать аб. плату)
01100010000 = Да (не списывать аб. плату)
11100000000 = Да (не списывать аб. плату, уменьшать пред. трафик)
11100010000 = Да (не списывать аб. плату, уменьшать пред. трафик)
11100110000 = Да (не списывать аб. плату, уменьшать пред. трафик) ???
---
Первые 2-а бита это без вопросов, тут всё понятно, это условия.
Как я понял по счёту 3-ий бит отвечает за блокировку в целом, однако блокированный автоматикой 3-й бит заменяется 7-мым, но в блокировке с условиями они вообще в некоторых местах идут вместе.
Я сначала думал что число +16 (или 7-ой бит) это означает что заблокирован автоматикой(как описал в 1-ом посту), но ведь блин не совпадает с админкой UTM!! Показывает разные статусы блокировки (автомат и админ).
Так же пытался отследить за что отвечает 6-ой бит, который встречается из 300 пользователей у одного или двоих, и то редко.
(играл в игру "найди различия").

Я так понял, никто подробно этим не занимался =( А скрипт то оч. нужен, но понять структуру базы не очень удаётся.

atdp03
Сообщения: 100
Зарегистрирован: Ср апр 26, 2006 09:24

Сообщение atdp03 »

Кусок хотлайна, может поможет:
поле is_blocked - это битовая маска

0x0010 - присутствует ли системная блокировка
0x0020 - если системная, то не снимать абон плату
0x0040 - если системная, то перерасчитывать трафик
0x0100 - присутствует ли администраторская блокировка
0x0200 - если админская, то не снимать абон плату
0x0400 - если админская, то перерасчитывать трафик

администраторская блокировка имеет более высокий приоритет чем системная

эти блокировки могут ставиться независимо по этому при снятии администраторской блокировки, если была системная,
начнут действовать установки для перерасчётов от системной блокировки

TEPbEP
Сообщения: 12
Зарегистрирован: Пт май 27, 2005 12:31

Сообщение TEPbEP »

вчера выянил, что... :idea:

если accounts.is_blocked > 0
то тип блокировки (системная или админская) нужно смотреть в таблице blocks_info:
blocks_info.block_type
1 - системная блокировка
2 - админская блокировка

Аватара пользователя
XoRe
Сообщения: 458
Зарегистрирован: Ср янв 10, 2007 16:04

Сообщение XoRe »

Так.
Видать тут сделано в стиле "Идеологически правильно так, но мы сделаем по другому".
Так что эмпирически или через хотлайн - лучший способ.

Ответить