forum.bitel.ru http://forum.bitel.ru/ |
|
Сломался после обновления переписаный ActionContractLimit http://forum.bitel.ru/viewtopic.php?f=19&t=12561 |
Страница 1 из 1 |
Автор: | skyb [ 29 июл 2017, 05:47 ] |
Заголовок сообщения: | Сломался после обновления переписаный ActionContractLimit |
Код: package ru.skyb.scripts.action; import java.math.BigDecimal; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Map; import bitel.billing.server.contract.bean.BalanceUtils; import bitel.billing.server.ActionResultContentType; import bitel.billing.server.contract.bean.Contract; import bitel.billing.server.contract.bean.ContractManager; //import bitel.billing.server.contract.bean.LimitManager; //import ru.bitel.bgbilling.kernel.contract.api.common.bean. //import bitel.billing.server.contract.bean.LimitManager.ContractLimitParameters; import ru.bitel.bgbilling.kernel.contract.limit.common.bean.ContractLimitParameters; //import ru.bitel.bgbilling.kernel.contract.limit.server.bean.LimitManager.ContractLimitParameters; import ru.bitel.bgbilling.kernel.contract.limit.server.bean.LimitManager; //import bitel.billing.server.contract.bean.LimitManager; import ru.bitel.bgbilling.common.BGException; import ru.bitel.bgbilling.common.BGMessageException; import ru.bitel.bgbilling.kernel.event.events.ContractLimitUserLow; import ru.bitel.bgbilling.kernel.event.events.LimitChangedEvent; import ru.bitel.bgbilling.kernel.event.events.system.SystemLimitChangedEvent; import bitel.billing.common.TimeUtils; import ru.bitel.common.Utils; public class ActionContractLimit extends bitel.billing.server.contract.action.web.ActionContractLimit { private ContractLimitParameters clp = null; @Override public void doAction() throws SQLException, BGException { String action = request.getParameter("act"); request.setAttribute( "contentType", ActionResultContentType.jsp ); java.util.Date currentDate = new java.util.Date(); //BigDecimal summ = getBigDecimalParameter( "summ", BigDecimal.ZERO ); BigDecimal summ = new BigDecimal(1000); LimitManager lm = new LimitManager( con ); ContractManager cm = new ContractManager( con ); Contract contract = cm.getContractById( cid ); BalanceUtils bu = new BalanceUtils (con); String query = " SELECT date1 FROM contract WHERE id = " + cid; PreparedStatement contractPs = con.prepareStatement( query ); ResultSet contractRs = contractPs.executeQuery(); /* else if( contract.getBalanceLimit().subtract( summ ).compareTo( clp.minLimit ) < 0 ) { throw new BGMessageException( "Понижение лимита ниже " + Utils.formatBigDecimalSumm( clp.minLimit ) + " невозможно." ); } */ reloadClp( lm, contract ); //if( clp != null && summ.compareTo( BigDecimal.ZERO ) > 0 && contract.getBalanceMode() == Contract.DEBET_BALANCE_MODE ) if( clp != null && "Взять платеж".equals(action) && contract.getBalanceMode() == Contract.DEBET_BALANCE_MODE ) { while ( contractRs.next() ) { Date date = contractRs.getDate( 1 ); int mounth = TimeUtils.monthsDelta(date, currentDate); if (bu.getBalance(currentDate, cid).compareTo( new BigDecimal(0) ) >= 0) { if (mounth == 0) { System.out.println("While sql " + date + " mounth " + mounth + " currentDate " + currentDate); throw new BGMessageException( "Обещанный платеж можно брать только через месяц" ); } if (mounth >= 1 && mounth < 3) { lm.lowLimit( cid, summ, 1 ); contract = cm.getContractById( cid ); context.publishAfterCommit( new ContractLimitUserLow( userID, cid, summ, 1 ) ); context.publishAfterCommit( new SystemLimitChangedEvent( cid, contract.getBalanceLimit()) ); context.publishAfterCommit( new LimitChangedEvent( cid, contract.getBalanceLimit()) ); reloadClp( lm, contract ); System.out.println("While sql " + date + " mounth " + mounth + " currentDate " + currentDate); } if (mounth >= 3 && mounth < 6) { lm.lowLimit( cid, summ, 3 ); contract = cm.getContractById( cid ); context.publishAfterCommit( new ContractLimitUserLow( userID, cid, summ, 3 ) ); context.publishAfterCommit( new SystemLimitChangedEvent( cid, contract.getBalanceLimit()) ); context.publishAfterCommit( new LimitChangedEvent( cid, contract.getBalanceLimit()) ); reloadClp( lm, contract ); System.out.println("While sql " + date + " mounth " + mounth + " currentDate " + currentDate); } if (mounth >= 6) { lm.lowLimit( cid, summ, 5 ); contract = cm.getContractById( cid ); context.publishAfterCommit( new ContractLimitUserLow( userID, cid, summ, 5 ) ); context.publishAfterCommit( new SystemLimitChangedEvent( cid, contract.getBalanceLimit()) ); context.publishAfterCommit( new LimitChangedEvent( cid, contract.getBalanceLimit()) ); reloadClp( lm, contract ); System.out.println("While sql " + date + " mounth " + mounth + " currentDate " + currentDate); } } else { throw new BGMessageException( "Понижение лимита при отрицательном балансе невозможно." ); } } contractPs.close(); contractRs.close(); } super.doAction(); } private void reloadClp( LimitManager lm, Contract contract ) throws BGException { try { clp = null; clp = lm.getContractLimitParameters( setup, contract ); } catch( BGMessageException e ) { setMsg( e.getMessage() ); } } } ругается так Код: method does not override or implement a method from a supertype at /usr/local/BGBillingServer/dyn/ru/skyb/scripts/action/ActionContractLimit.java on 37:9
cannot find symbol symbol: variable request location: class ru.skyb.scripts.action.ActionContractLimit at /usr/local/BGBillingServer/dyn/ru/skyb/scripts/action/ActionContractLimit.java on 41:33 cannot find symbol symbol: variable request location: class ru.skyb.scripts.action.ActionContractLimit at /usr/local/BGBillingServer/dyn/ru/skyb/scripts/action/ActionContractLimit.java on 42:17 cannot find symbol symbol: variable userID location: class ru.skyb.scripts.action.ActionContractLimit at /usr/local/BGBillingServer/dyn/ru/skyb/scripts/action/ActionContractLimit.java on 88:91 cannot find symbol symbol: variable userID location: class ru.skyb.scripts.action.ActionContractLimit at /usr/local/BGBillingServer/dyn/ru/skyb/scripts/action/ActionContractLimit.java on 101:91 cannot find symbol symbol: variable userID location: class ru.skyb.scripts.action.ActionContractLimit at /usr/local/BGBillingServer/dyn/ru/skyb/scripts/action/ActionContractLimit.java on 114:91 cannot find symbol symbol: method doAction() at /usr/local/BGBillingServer/dyn/ru/skyb/scripts/action/ActionContractLimit.java on 133:22 cannot find symbol symbol: method setMsg(java.lang.String) location: class ru.skyb.scripts.action.ActionContractLimit at /usr/local/BGBillingServer/dyn/ru/skyb/scripts/action/ActionContractLimit.java on 147:19 |
Автор: | skn [ 31 июл 2017, 12:23 ] |
Заголовок сообщения: | Re: Сломался после обновления переписаный ActionContractLimi |
userID поменять на userId |
Автор: | skyb [ 31 июл 2017, 17:35 ] |
Заголовок сообщения: | Re: Сломался после обновления переписаный ActionContractLimi |
skn писал(а): userID поменять на userId с этим то понятно, остальное чего делать? |
Автор: | dimOn [ 31 июл 2017, 18:48 ] |
Заголовок сообщения: | Re: Сломался после обновления переписаный ActionContractLimi |
остальное - полностью переписать на AbstractAction, там нет doAction() но есть execute() |
Автор: | skyb [ 31 июл 2017, 19:14 ] |
Заголовок сообщения: | Re: Сломался после обновления переписаный ActionContractLimi |
dimOn писал(а): остальное - полностью переписать на AbstractAction, там нет doAction() но есть execute() я как всегда, дайте примеры, а то как переписать тО? |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |