Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:manual:trix [2013/01/03 15:31] asmodeus [Автоматическое заполнение полей Номер контракта и Дата контракта] |
abills:docs:manual:trix [2017/07/20 17:33] (текущий) anton [Изменение секретного слова шифрования паролей] |
||
---|---|---|---|
Строка 209: | Строка 209: | ||
- | ====Изминение секретного слова шифрования паролей==== | + | ====Изменение секретного слова шифрования паролей==== |
Секретный ключ сохраняется в переменной **$conf{secretkey}** конфигурационного файла **config.pl** | Секретный ключ сохраняется в переменной **$conf{secretkey}** конфигурационного файла **config.pl** | ||
Строка 225: | Строка 225: | ||
UPDATE mail_boxes SET password=ENCODE(DECODE(password, 'OLD_SECRET_KEY'), 'NEW_SECRET_KEY'); | UPDATE mail_boxes SET password=ENCODE(DECODE(password, 'OLD_SECRET_KEY'), 'NEW_SECRET_KEY'); | ||
Карточная платформа: | Карточная платформа: | ||
- | UPDATE cards_users SET password=ENCODE(DECODE(password, 'OLD_SECRET_KEY'), 'NEW_SECRET_KEY'); | + | UPDATE cards_users SET pin=ENCODE(DECODE(pin, 'OLD_SECRET_KEY'), 'NEW_SECRET_KEY'); |
- | ====Изменении логина абонента==== | + | Если используется модуль sql для FreeRadius, нужно также поменять секретный ключ в конце файла **/usr/local/etc/raddb/sql.conf** |
+ | ====Изменение логина абонента==== | ||
update users set id='new_login' where id='old_Login' | update users set id='new_login' where id='old_Login' | ||
Строка 234: | Строка 235: | ||
====Автоматическое создание логинов и контрактов идентичным UID==== | ====Автоматическое создание логинов и контрактов идентичным UID==== | ||
в **config.pl** | в **config.pl** | ||
- | установеить переменную проверки логинов в | + | установить переменную проверки логинов в |
$conf{USERNAMEREGEXP}=".{0,20}"; | $conf{USERNAMEREGEXP}=".{0,20}"; | ||
+ | ** параметр `TABLE_SCHEMA`='abills' должен соответствовать названию базы в параметре $conf{dbname} ** | ||
- | MYSQL тригера | + | MYSQL тригер |
<code> | <code> | ||
Строка 245: | Строка 247: | ||
CREATE TRIGGER login_id BEFORE INSERT ON users | CREATE TRIGGER login_id BEFORE INSERT ON users | ||
FOR EACH ROW BEGIN | FOR EACH ROW BEGIN | ||
+ | DECLARE user_id INT; | ||
IF NEW.id = '' THEN | IF NEW.id = '' THEN | ||
- | SET NEW.id=(SELECT `AUTO_INCREMENT` FROM `information_schema`.TABLES WHERE `TABLE_SCHEMA`='abills' AND `TABLE_NAME`='users'); | + | SELECT `AUTO_INCREMENT` INTO user_id FROM `information_schema`.TABLES WHERE `TABLE_SCHEMA`='abills' AND `TABLE_NAME`='users'; |
+ | SET NEW.id=CONCAT(if(@login_prefix IS NOT NULL, @login_prefix, ''), user_id); | ||
END IF; | END IF; | ||
Строка 273: | Строка 277: | ||
+ | |||
+ | ====Удаление нуля как первого символа пин на карте пополнения ==== | ||
+ | |||
+ | проверка перекодировки | ||
+ | <code> | ||
+ | SELECT id, | ||
+ | serial, | ||
+ | number, | ||
+ | DECODE(pin, 'test12345678901234567890') as pin , | ||
+ | |||
+ | if (DECODE(pin, 'test12345678901234567890') REGEXP '^0' =1, | ||
+ | SUBSTRING(DECODE(pin, 'test12345678901234567890') FROM 2), | ||
+ | DECODE(pin, 'test12345678901234567890')) AS result, | ||
+ | |||
+ | ENCODE( if (DECODE(pin, 'test12345678901234567890') REGEXP '^0' =1, | ||
+ | SUBSTRING(DECODE(pin, 'test12345678901234567890') FROM 2), | ||
+ | DECODE(pin, 'test12345678901234567890')), | ||
+ | 'test12345678901234567890' | ||
+ | ) AS hex_result | ||
+ | |||
+ | FROM cards_users | ||
+ | |||
+ | WHERE serial = 'seria' | ||
+ | |||
+ | LIMIT 100; | ||
+ | |||
+ | </code> | ||
+ | |||
+ | если все нормально | ||
+ | |||
+ | перекодировка | ||
+ | |||
+ | <code> | ||
+ | UPDATE cards_users SET pin=ENCODE( if (DECODE(pin, 'test12345678901234567890') REGEXP '^0' =1, | ||
+ | SUBSTRING(DECODE(pin, 'test12345678901234567890') FROM 2), | ||
+ | DECODE(pin, 'test12345678901234567890')), | ||
+ | 'test12345678901234567890' | ||
+ | ) | ||
+ | WHERE serial = 'seria' | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ====Создание логинов с UID определённого диапазона=== | ||
+ | создание логинов в диапазоне ниже 100 000 Ghb при наличии свободных UID и существовании UID выше 100 000 | ||
+ | |||
+ | <code> | ||
+ | |||
+ | DELIMITER // | ||
+ | CREATE TRIGGER create_uid BEFORE INSERT ON users | ||
+ | FOR EACH ROW BEGIN | ||
+ | |||
+ | DECLARE new_uid INTEGER; | ||
+ | |||
+ | IF NEW.uid = '' THEN | ||
+ | SET new_uid=1; | ||
+ | | ||
+ | SELECT uid+1 INTO new_uid | ||
+ | FROM users WHERE uid < 100000 | ||
+ | ORDER BY uid DESC LIMIT 1; | ||
+ | SET NEW.uid=new_uid; | ||
+ | |||
+ | END IF; | ||
+ | END | ||
+ | // | ||
+ | DELIMITER ; | ||
+ | |||
+ | </code> | ||
+ | |||
+ | ====Изменение тарифного плана абонентам с определённой группой==== | ||
+ | |||
+ | UPDATE dv_main set tp_id=225 WHERE uid IN (SELECT uid from users WHERE gid=123); | ||
+ | | ||
+ | | ||
+ | ====Конвертация денежной единицы для абонентов (смена основной валюты или девальвация)==== | ||
+ | |||
+ | 1.Конвертация списку/группе абонентов депозита по указанному курсу. | ||
+ | для абонентов без компаний | ||
+ | <code> | ||
+ | UPDATE bills b, users u, companies c | ||
+ | SET b.deposit=b.deposit * [ курс ] | ||
+ | WHERE b.id=u.bill_id AND u.gid IN ([ группа ], [группа]) | ||
+ | </code> | ||
+ | |||
+ | для абонентов в компаниях | ||
+ | <code> | ||
+ | UPDATE bills b, users u, companies company | ||
+ | SET b.deposit=b.deposit * [ курс ] | ||
+ | WHERE | ||
+ | u.company_id=company.id | ||
+ | AND company.bill_id=b.id | ||
+ | AND u.gid IN ([ группа ]) | ||
+ | </code> | ||
+ | |||
+ | 2.Конвертация списку/группе абонентов кредита по указанному курсу. | ||
+ | |||
+ | <code> | ||
+ | UPDATE users u SET u.credit=u.credit * [ курс ] WHERE u.gid IN ([ номера групп ]) | ||
+ | </code> | ||
+ | |||
+ | 3. Определенному списку/группе тарифных планов. Конвертирует стоимость в тарифных планах (ежедневные и ежемесячные снятия, изменение ТП и т.п.) по указанному курсу. | ||
+ | |||
+ | для ТП | ||
+ | |||
+ | <code> | ||
+ | UPDATE tarif_plans tp | ||
+ | SET | ||
+ | tp.day_fee=tp.day_fee * [ курс ], | ||
+ | tp.month_fee=tp.month_fee * [ курс ], | ||
+ | tp.activate_price=tp.activate_price * [ курс ], | ||
+ | tp.change_price=tp.change_price * [ курс ] | ||
+ | WHERE | ||
+ | tp.id IN ([ номера тарифных планов ]) | ||
+ | </code> | ||
+ | |||
+ | Группы тарифных планов | ||
+ | <code> | ||
+ | UPDATE tarif_plans tp, tp_groups tp_g | ||
+ | SET | ||
+ | tp.day_fee=tp.day_fee * [ курс ], | ||
+ | tp.month_fee=tp.month_fee * [ курс ], | ||
+ | tp.activate_price=tp.activate_price * [ курс ], | ||
+ | tp.change_price=tp.change_price * [ курс ] | ||
+ | WHERE | ||
+ | tp.gid=tp_g.id AND tp_g.id IN ([ номера групп тарифных планов ]) | ||
+ | </code> | ||
====Объединение 2 ABillS систем==== | ====Объединение 2 ABillS систем==== | ||
Строка 302: | Строка 431: | ||
INSERT INTO admin_actions SELECT * from abills2.admin_actions; | INSERT INTO admin_actions SELECT * from abills2.admin_actions; | ||
+ | |||
+ | ====Приведение номеров телефонов к общему формату==== | ||
+ | |||
+ | перевести номера +38050xxxxxx в 050xxxxxx | ||
+ | |||
+ | <code> | ||
+ | UPDATE users_pi SET phone=REPLACE(phone, '+38050', '050') | ||
+ | WHERE phone like '+38050%' | ||
+ | </code> |