Сервер: вер. 7.0.1404 / 07.08.2018 19:50:33
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_144
inet: вер. 7.0.928 / 07.08.2018 19:50:48
Пробую новый тарифный узел "Диапазон трафика из справочника".
Завёл в справочнике 1 диапазон "Тест" с объёмом 10МБ
Завёл тариф, договор, пересчитал трафик - всё ок.
В базе:
Код:
mysql> select * from inet_tariff_traffic_range_spec_28;
+----+----------------------+----------------------+------+------+----------------+-----------+---------------+------------------------+---------+
| id | title | titleForCustomer | mode | type | tariffOptionId | maxAmount | maxAmountType | tariffOptionDeactivate | comment |
+----+----------------------+----------------------+------+------+----------------+-----------+---------------+------------------------+---------+
| 1 | Тест | Тест | 2 | 2 | 0 | 10 | 2 | 0 | |
+----+----------------------+----------------------+------+------+----------------+-----------+---------------+------------------------+---------+
1 row in set (0.00 sec)
mysql> select * from inet_tariff_traffic_range_28 where contractid=223699;
+------------+------------+--------------------+----------+---------+-----------+------+----+
| contractId | treeNodeId | rangeKey | amount | counter | maxAmount | yy | mm |
+------------+------------+--------------------+----------+---------+-----------+------+----+
| 223699 | 1 | 144115188208173059 | 10485760 | 4 | 10485760 | 2019 | 4 |
+------------+------------+--------------------+----------+---------+-----------+------+----+
1 row in set (0.00 sec)
mysql> select * from mtree_node where id=291771;
+--------+-------------+----------+------------------+----------------------+-----+
| id | parent_node | mtree_id | type | data | pos |
+--------+-------------+----------+------------------+----------------------+-----+
| 291771 | 291757 | 22132 | trafficRangeSpec | trafficRangeSpecId&1 | 2 |
+--------+-------------+----------+------------------+----------------------+-----+
1 row in set (0.00 sec)
Вот что возвращает WS InetSessionService при запросе из нового ЛК:
Запрос:
Код:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.common.api.inet.modules.bgbilling.bitel.ru/">
<soapenv:Header/>
<soapenv:Body>
<ser:inetSessionTrafficRange>
<contractId>223699</contractId>
<tariffOptionId>0</tariffOptionId>
<!--Optional:-->
<dateFrom>2019-04-01T00:00:00+08:00</dateFrom>
<!--Optional:-->
<dateTo>2019-04-30T00:00:00+08:00</dateTo>
<unit>1048576</unit>
</ser:inetSessionTrafficRange>
</soapenv:Body>
</soapenv:Envelope>
Ответ:
Код:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns5:inetSessionTrafficRangeResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:common="http://common.bitel.ru" xmlns:ns5="http://service.common.api.inet.modules.bgbilling.bitel.ru/">
<return maxAmount="10485760" mode="2" tariffOptionId="0" title="Тест" treeNodeId="32134945600443" type="2"/>
</ns5:inetSessionTrafficRangeResponse>
</S:Body>
</S:Envelope>
Видим, что в ответе веб-сервиса нет блока detailValueList, хотя записи в inet_tariff_traffic_range_28 есть.
Судя по коду, при поиске в inet_tariff_traffic_range_28 веб-сервис выбирает записи с treeNodeId=32134945600443 (из ответа веб-сервиса), а в таблице inet_tariff_traffic_range_28 treeNodeId=1.
Полагаю, это осталось от прошлой схемы диапазонов в ЛК через метки и конфиг модуля Inet?
В новом ЛК при этом показывается "Нет данных" + пустой div для списка трафиков. Покопался в коде trafficsRange.xhtml, там ещё один небольшой баг:
Код:
<ui:fragment rendered="#{inetTrafficBean.trafficRangeDetailReportList ne null and empty trafficRangeDetailReportList}">
<div class="panel panel-default ">
<div class="panel-body">
Нет данных.
</div>
</div>
</ui:fragment>
Должно быть не "and empty trafficRangeDetailReportList", а "and empty inetTrafficBean.trafficRangeDetailReportList"
Итого:
1. Нет документации по замечательному узлу "Диапазон трафика из справочника"
2. Небольшая недоработка в trafficsRange.xhtml
3. В веб-сервисе InetSessionService в методе inetSessionTrafficRange для узла "Диапазон трафика из справочника" не возвращаются данные о трафиках, т.к. неправильно определяется treeNodeId (?)