Господа!
На скриншоте представлен договор, по которому мы временно понизили лимит.
При попытке авторизоваться текущий остаток на счете почему то сравнивается с лимитом до понижения
Код:
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetApplication - inetServ[id=3685] balance is out of limit: -240.97 [-200.00]
И отработал механизм RejectToAcept
Код:
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - Return code=0
И выдался IP из подсети 10.254.X.X !!!
Код:
Framed-IP-Address=10.254.31.54
У нас для договоров с нормальным балансом выдается из подсети 10.0.X.X
а должникам посредством RejectToAcept из подсети 10.254.X.X
Код:
Packet type: Access-Request
Identifier: 7
Authenticator: {0D CF A2 3E 91 A8 D4 04 57 37 94 12 2C DB 4C B3}
Attributes:
User-Name=0006001fce109dc5:000e00bf000801515445431403043903
NAS-Port-Id=3/3 vlan-id 191 clips 378593
NAS-Identifier=RedBack
User-Password=Redback
NAS-IP-Address=172.16.98.7
NAS-Port=50528256
Service-Type=5
Calling-Station-Id=d4ca6d84fb75
NAS-Port-Type=5
Platform-Type=6
Medium-Type=11
Agent-Remote-Id={00 06 00 1F CE 10 9D C5}
UNKNOWN[2352-202]={3D 3D 07 01 D4 CA 6D 84 FB 75}
UNKNOWN[2352-202]={0C 0C 09 46 6F 78 32 30 31 31 54 53}
Agent-Circuit-Id={00 0E 00 BF 00 08 01 51 54 45 43 14 03 04 39 03}
OS-Version=12.1.1.10
Mac-Addr=d4-ca-6d-84-fb-75
NAS-Real-Port=855638207
UNKNOWN[3561--1]={02 0A 00 06 00 1F CE 10 9D C5}
UNKNOWN[3561--1]={01 12 00 0E 00 BF 00 08 01 51 54 45 43 14 03 04 39 03}
Common options: {agentRemoteId=14030439, interfaceId=3, deviceState=1}
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetNas - Found agentDevice:474
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetNas - Search serv on deviceId=474; interfaceId=3
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - [username=0006001fce109dc5:000e00bf000801515445431403043903] Authenticated as inetServId:3685
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetApplication - TariffOptionMap: {}
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetApplication - inetServ[id=3685] balance is out of limit: -240.97 [-200.00]
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - Write new waiting connection to DB
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - New connection id=765165
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - Return code=0
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetConnectionKeyMap - Put auth accept 10.254.31.54
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetDhcpHelperProcessor - Put auth accept 2:474:3:D4CA6D84FB75 10.254.31.54
07-30/16:53:19 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS:
Packet type: Access-Accept
Identifier: 7
Authenticator: {}
Attributes:
Reply-Message=12
Framed-IP-Address=10.254.31.54
DHCP-Max-Leases=1
Service-Name:1=RSE-SVC-EXT
Service-Options:1=1
Service-Parameter:1=Rate=1000 Burst=250000
IP-Interface-Name=dhcpclients
Process time auth: 959
Лимит понижался вызовом вот этой функции по SOAP
Код:
public String my_setLimitPeriod(int cid, BigDecimal limit, int period)
{
try
{
Connection conn = getConnection();
ContractManager cm = new ContractManager(conn);
Contract c = cm.getContractById(cid);
BigDecimal current_limit = c.getBalanceLimit();
BigDecimal new_limit = current_limit.add(limit);
LimitManager limitManager = new LimitManager(conn);
limitManager.updateContractLimit(0, new_limit, cid, "Понижение лимита (обещанный платеж)", String.valueOf(period)); //меняем лимит:
//добавляем задание на возвращение лимита:
Calendar calendar = java.util.Calendar.getInstance(java.util.TimeZone.getDefault(), java.util.Locale.getDefault());
Date closeDate = calendar.getTime();
calendar.add(6, period);
LimitChangeTask task = new LimitChangeTask();
task.setContractId(cid);
task.setDate(calendar);
task.setUserId(0);
task.setSubSumm(limit);
limitManager.addMoveTask(task);
Payment fakePayment = new Payment();//гененрируем событие изменения лимита:
fakePayment.setContractID(cid);
fakePayment.setPaymentTypeID(-1);
fakePayment.setDate(new Date());
fakePayment.setUserID(-1);
EventProcessor.getInstance().publish( new PaymentEvent(0, fakePayment));
ContractStatus status = new ContractStatus();
status.setContractId( cid );
status.setStatus(KernelConst.CONTRACT_STATUS_ACTIVE);
status.setDateFrom( closeDate );
status.setComment( "Установлено принудительно при понижении лимита (обещанный платеж)" );
ContractStatusManager statusManager = new ContractStatusManager( conn );
statusManager.changeStatus( status.clone(), User.USER_SERVER );
return "Ok!";
}
catch (Exception ex)
{
ex.printStackTrace();
String errorStr = "Error! "+ ex.toString();
return errorStr;
}
}
Код:
bill вер. 6.0 сборка 353 от 11.06.2015 16:20:02
card вер. 6.0 сборка 230 от 09.02.2015 18:40:44
inet вер. 6.0 сборка 1504 от 12.06.2015 13:31:25