Внимание трабла с блокировками в 007

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

Внимание трабла с блокировками в 007

Сообщение Magnum72 »

В виду того что механизм блокировок был переделан и исправлен лично у меня наступил бардак...

Пути решения:
1) Первоначально в таблице blok_info оставить не более одной блокировки у каждого аккаунта, я оставлял самую позднюю
2) Исправить в таблице accounts типы блокировок у пользователей при выключенном биллинге:

1808 на 1792
784 на 768
272 на 256

+ вам возможно еще какие типы прийдется изменить, так как у меня принципиально не стоит в настройках карточки пользователя галочки ПАП и/или ППТП

3) Проверить нет ли расхождений между отсутствем записи о блокировки в accounts и наличием записей в block_info и наоборот наличием записи о блокировке в accounts и отсутствием записей в block_info

Код: Выделить всё

SELECT ac.*
FROM UTM5.blocks_info as bi, UTM5.accounts as ac
WHERE bi.account_id = ac.id
AND ac.is_blocked = 0
AND bi.is_deleted = '0'
AND ac.is_deleted = '0'
GROUP BY bi.account_id

Код: Выделить всё

SELECT ac.*
FROM UTM5.accounts as ac
LEFT JOIN UTM5.blocks_info as bi ON (bi.account_id = ac.id AND bi.is_deleted = '0')
WHERE ac.is_blocked <> 0
AND bi.id IS NULL
AND ac.is_deleted = '0'
4) Проверить что типы блокировок у пользователя в accounts совпадают с типами в таблице block_info

Код: Выделить всё

SELECT *
FROM accounts as ac, blocks_info as bi
WHERE ac.is_blocked = 256
AND ac.id = bi.account_id
AND bi.block_type = 2
AND &#40;bi.unabon <> 0 OR bi.unprepay <> 0&#41;
AND bi.is_deleted = '0'
AND ac.is_deleted = '0'

Код: Выделить всё

SELECT *
FROM accounts as ac, blocks_info as bi
WHERE ac.is_blocked = 768
AND ac.id = bi.account_id
AND bi.block_type = 2
AND &#40;bi.unabon <> 1 OR bi.unprepay <> 0&#41;
AND bi.is_deleted = '0'
AND ac.is_deleted = '0'

Код: Выделить всё

SELECT *
FROM accounts as ac, blocks_info as bi
WHERE ac.is_blocked = 1792
AND ac.id = bi.account_id
AND bi.block_type = 2
AND &#40;bi.unabon <> 1 OR bi.unprepay <> 1&#41;
AND bi.is_deleted = '0'
AND ac.is_deleted = '0'
В идеале после совершения вышеприведенных действий сумма заблокированных пользователей

Код: Выделить всё

SELECT COUNT&#40; * &#41; AS `Строки` , `is_blocked` 
FROM `accounts` 
WHERE `is_deleted` =0
GROUP BY `is_blocked` 
ORDER BY `is_blocked` ;
должна быть равна количеству непогашенных записей в таблице block_info

Код: Выделить всё

SELECT COUNT&#40; * &#41; AS `Строки` , `account_id` 
FROM `blocks_info` 
WHERE `is_deleted` =0
GROUP BY `account_id` 
ORDER BY `account_id` ;

Аватара пользователя
Lex
NetUP Team
Сообщения: 623
Зарегистрирован: Ср мар 09, 2005 12:12
Откуда: НетАП
Контактная информация:

Сообщение Lex »

Действительно, описанная проблема наблюдалась в релизе. Проблема исправлена в сборке 5.2.1-007-update1. Сборку можно получить по запросу. Через некоторое время она заменит релиз в личном кабинете.

Ответить