forum.bitel.ru http://forum.bitel.ru/ |
|
[6.0] Вопрос по рассылке http://forum.bitel.ru/viewtopic.php?f=54&t=8350 |
Страница 1 из 1 |
Автор: | Phricker [ 13 авг 2013, 18:57 ] |
Заголовок сообщения: | [6.0] Вопрос по рассылке |
Можно ли через этот плагин реализовать следующую рассылку по балансу. Есть тарифы "Авансом за месяц" (100 рублей авансом за месяц), "Плати каждый день" (100 рублей за месяц. Подневное списание). Абоненты подключают одну единственную рассылку по балансу. Есть 1ый абонент с тарифом "Авансом за месяц". У него на счету остаток 93 рубля. За этот месяц уже все списалось. В конце месяца должна придти смска в которой сообщается примерно следующее. "Уважаемый Абонент. Во избежание блокирования Вашего счета необходимо пополнить баланс по счету 1111111 на сумму 7 рублей до 01.09.2013г." Есть 2ой абонент с тарифом "Плати каждый день". Ему смска должна отправляться каждый раз когда биллинг видит, что через пару дней у абонента не будет хватать денег. Если я укажу жестко условие по балансу 0-99, то ему будет отправляться смска каждый раз как его баланс станет меньше 99 рублей. Укажу меньше - вполне возможно, что когда абонент перейдет на другой тариф в котором будет сниматься 100 рублей за 1 день - это условие тупо не отработает. Абонента заблокирует до отправки смс. При этом второй абонент может перейти на тариф "Авансом за месяц". Ну и наоборот. Как быть с такой рассылкой? |
Автор: | skyb [ 13 авг 2013, 19:24 ] |
Заголовок сообщения: | Re: [6.0] Вопрос по рассылке |
Код: import java.math.BigDecimal;
import java.sql.*; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.*; import bitel.billing.server.tariff.*; import bitel.billing.common.TimeUtils; import bitel.billing.server.util.*; import ru.bitel.bgbilling.server.util.DefaultServerSetup; import ru.bitel.bgbilling.server.util.ServerUtils; import bitel.billing.common.KernelConst; import bitel.billing.server.contract.bean.*; import com.logica.smpp.Data; import com.logica.smpp.Session; import com.logica.smpp.TCPIPConnection; import com.logica.smpp.pdu.BindRequest; import com.logica.smpp.pdu.BindTransmitter; import com.logica.smpp.pdu.Response; import com.logica.smpp.pdu.SubmitSM; public void main( setup, con, conSlave ) { String query = "SELECT c.id,c.title,c.comment, sum(REPLACE(data,'type&1%cost&','')) AS abon, (b.summa1+b.summa2-b.summa3-b.summa4) as bal, cpt.val" + " FROM contract c" + " LEFT JOIN contract_balance b on c.id=b.cid" + " LEFT JOIN contract_tariff AS t ON c.id=t.cid AND t.date2 IS NULL" + " LEFT JOIN tariff_plan AS p ON t.tpid=p.id" + " LEFT JOIN tariff_tree_link ON tariff_tree_link.tpid=p.id" + " LEFT JOIN module_tariff_tree ON module_tariff_tree.tree_id=tariff_tree_link.tree_id" + " LEFT JOIN mtree_node ON mtree_node.mtree_id=module_tariff_tree.id" + " LEFT JOIN contract_parameter_type_1 AS cpt ON c.id=cpt.cid" + " WHERE b.yy=YEAR(NOW()) AND b.mm=MONTH(NOW()) AND mtree_node.type='month_cost' AND cpt.pid=21 AND c.date2 IS NULL"+ " GROUP by c.id"; PreparedStatement contractPs = con.prepareStatement( query ); ResultSet contractRs = contractPs.executeQuery(); int id; String title; int sum; double bal; String val; int i = 0; String message; while ( contractRs.next() ) { id = contractRs.getInt( 1 ); title = contractRs.getString(2); sum = contractRs.getInt(4); bal = contractRs.getDouble(5); val = contractRs.getString(6); int diff = sum - bal; diff++; String message = "Необходимо пополнить баланс л/с " + title + " на сумму "+diff + " р. до 1-го числа."; if (sum > bal) { //отпровляй тут кому что нужно ;) } i++; } print("кол-во " +i ); contractRs.close(); contractPs.close(); } |
Автор: | Phricker [ 13 авг 2013, 19:26 ] |
Заголовок сообщения: | Re: [6.0] Вопрос по рассылке |
Цитата: Список форумов » BGBilling (компоненты системы) » Плагин Dispatch Я хочу чтобы абоненты сами подписывались если хотят. |
Автор: | skyb [ 13 авг 2013, 19:34 ] |
Заголовок сообщения: | Re: [6.0] Вопрос по рассылке |
Код: String nymber = contact1.getValue(); А так получать номер когда абоненты подпишутся Тоесть что я предлагаю, абонент подписывается сам, номер у тебя есть, ты на этот номер уже шлешь чего нада |
Автор: | Phricker [ 13 авг 2013, 19:51 ] |
Заголовок сообщения: | Re: [6.0] Вопрос по рассылке |
Ну вот это чего надо и реализуется плагином ![]() Ты можешь через плагин в договоре подсадить абонента на определенную рассылку. Можешь не подсаживать. Абонент указал номер 79031111111. И подписал себе рассылку новостей, баланса, анекдотов, ЖЖ админа биллинга и еще хрен знает что. Все будешь реализовывать через глобальные скрипты? ) И он хочет чтобы баланс приходил когда положено, а новости когда он сидит в туалете, а ЖЖшечку читать в маршрутке. Выставишь скрипт на выполнение каждую минуту? ) Т.е. у тебя плагин рассылок по факту не будет делать рассылки а будет только собирать информацию о них. |
Автор: | skn [ 13 авг 2013, 20:15 ] |
Заголовок сообщения: | Re: [6.0] Вопрос по рассылке |
что тоя не понял, что нужно... нужно новое условие для отправки? или умная рассылка", которая от того какой у клиента тариф, использовала разные условия определения когда и что слать? |
Автор: | skyb [ 13 авг 2013, 20:16 ] |
Заголовок сообщения: | Re: [6.0] Вопрос по рассылке |
аха, к сожалению так, просто когда я его запускал он хреновастенько работал, мне сами девлоперы сказали что чел который писал уволился и его переписывать нада, поэтому написал сам многие реализации того что есть в плагине, и нормально пользуюсь ![]() |
Автор: | skn [ 13 авг 2013, 20:19 ] |
Заголовок сообщения: | Re: [6.0] Вопрос по рассылке |
есть персональные расслки и есть режим отправки "по событию" делаете скрипт который раз в сутки выбирает клиентов у которых есть подписка типа "Уведовлять о нехватке средств" проверяете у них тариф и баланс и если нужно кидаете событие отправить сообщение... |
Автор: | Yagoda [ 25 ноя 2013, 10:51 ] |
Заголовок сообщения: | Re: [6.0] Вопрос по рассылке |
skn писал(а): и если нужно кидаете событие отправить сообщение... А подробнее можно? Как в скрипте можно инициировать отправку сообщения? |
Автор: | skn [ 25 ноя 2013, 14:21 ] |
Заголовок сообщения: | Re: [6.0] Вопрос по рассылке |
Yagoda писал(а): skn писал(а): и если нужно кидаете событие отправить сообщение... А подробнее можно? Как в скрипте можно инициировать отправку сообщения? а доки для кого? http://bgbilling.ru/v6.0/doc/ch39s03s07s01.html |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |