forum.bitel.ru
http://forum.bitel.ru/

Web-кабинет клиента
http://forum.bitel.ru/viewtopic.php?f=66&t=9714
Страница 5 из 17

Автор:  Amir [ 10 фев 2016, 14:27 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Цитата:
Caused by: java.io.FileNotFoundException: http://x.x.x.x:8081/executer/ru.bitel.b ... rvice?wsdl
А биллинг точно по этому пути?
http://x.x.x.x:8081/executer
Может быть
http://x.x.x.x:8081/bgbilling/executer
?

Автор:  ikoctya [ 10 фев 2016, 14:30 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Точно, недоглядел. Только ошибка не в отстутствии /bgbilling/, а порт 8080. Пасибо, заработало

Автор:  Amir [ 02 мар 2016, 03:16 ]
Заголовок сообщения:  Re: Web-кабинет клиента

http://billing.bitel.ru/my/index.xhtml

Автор:  zavndw [ 02 мар 2016, 07:18 ]
Заголовок сообщения:  Re: Web-кабинет клиента

огогошеньки, официальный релиз?

Автор:  Amir [ 02 мар 2016, 19:24 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Не совсем, просто "если ты не используешь свой продукт сам, то ...".

Но много мелочей пофиксено и добавлено, например, для конфигурации mybgbilling-conf.groovy:
Код:
// параметры содержимого
content {

   kernel {
      // limit.xhtml
      limit {
         // возможность изменения лимита договора
         limitChange = true
      }
   
      // status.xhtml
      status {
         // возможность изменения статуса договора
         //statusChange = { contract -> return contractInGroup( contract, [1, 2, 3, 4, 20] ); }
         //statusChange = { contract -> contractInGroup( contract, [1, 2, 3, 4, 20] ) }
         statusChange = true
      }
      
      // отображение параметров договора
      parameters = true
   }
   
   bill {
      // возможность создания счета
      //billCreate = { contract -> return contractInGroup( contract, [1, 2, 3, 4, 20] ); }
      //billCreate = { contract -> contractInGroup( contract, [1, 2, 3, 4, 20] ) }
      billCreate = true;
      
      invoices = { contract -> contract.getPersonType() == 1 }
      
      invoicesTitle = 'bill.invoices' // 'bill.acts'
   }
   
   helpdesk {
      
      newTopic {
      
         titlePrefix = true
         titlePrefixTitle = 'Продукт'
         titlePrefixMessage = 'Выберите продукт...'
         titlePrefixItems = [ ['[6.2]','BGBilling 6.2'], ['[6.1]','BGBilling 6.1'], ['[6.0]','BGBilling 6.0'],
                        ['[5.2]','BGBilling 5.2'], ['[5.1]','BGBilling 5.1'], ['[5.0]','BGBilling 5.0'],
                         ['[4.6]','BGBilling 4.6'], ['[CRM]','BGCRM'] ]
      }
   
   }
}

Автор:  zavndw [ 07 мар 2016, 07:54 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Не знаю баг это или фича. Проверил системы оплаты перед открытием лк, нашел 2 проблемы:
1) Как теперь будет выглядеть url для перехода из того же paymaster обратно в лк?
2) При зачислении через paymaster в лк не изменяется баланс, пробовал обновить страницу и кэш чистил
Вложение:
Выделение_001.png
Выделение_001.png [ 36.06 КБ | Просмотров: 18581 ]

Вложение:
Выделение_002.png
Выделение_002.png [ 25.43 КБ | Просмотров: 18581 ]

После перезахода в лк баланс обновился

Автор:  Amir [ 07 мар 2016, 13:30 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Желательно чтобы возвращало на /payment.xhtml?success или payment.xhtml?failure или если URL только один в системе платежей задается, то просто /payment.xhtml
В тех, что в запросе можно передавать URL - он сам передает.

Тогда баланс должен обновиться. Добавим также, чтобы периодически обновлялся.

Автор:  zavndw [ 12 мар 2016, 16:07 ]
Заголовок сообщения:  Re: Web-кабинет клиента

в архиве лк с wildfly надо обновить лк, при чистой установке лезит баг с tv модулем а после обновления вылечивается. И я не пойму, когда только http то нормально можно убрать /my и перейти по /, в случае с https как будто где то вшито и всегда переходит в /my не смотря на измененный конфиг.

Автор:  Виктор [ 21 мар 2016, 15:02 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Добрый день, переодически проверяем на обновление, после последнего вылазит ошибка
Код:
./mybgbilling-update.sh
JAVA_HOME=/opt/java/jdk
MYBGBILLING_HOME=../standalone/deployments/MyBGBilling.war
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/opt/wildfly/standalone/deployments/MyBGBilling.war/WEB-INF/script/update.groovy: 41: unable to resolve class FTPClient
 @ line 41, column 11.
   FTPClient ftpClient = new FTPClient();
             ^

/opt/wildfly/standalone/deployments/MyBGBilling.war/WEB-INF/script/update.groovy: 41: unable to resolve class FTPClient
 @ line 41, column 23.
   FTPClient ftpClient = new FTPClient();
                         ^

2 errors

JAVA_HOME=/opt/java/jdk
MYBGBILLING_HOME=../standalone/deployments/MyBGBilling.war
Set MyBGBilling.war to (re)deploy

Автор:  Amir [ 21 мар 2016, 15:14 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Да, поломали сборку.
Нужно скачать текущий WAR
http://bgbilling.ru/v6.2/download/mybgb ... illing.war
Вытащить из него WEB-INF/lib/commons-net.jar и положить в standalone/deployments/MyBGBilling.war/WEB-INF/lib

Автор:  Amir [ 21 мар 2016, 15:16 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Цитата:
в архиве лк с wildfly надо обновить лк, при чистой установке лезит баг с tv модулем а после обновления вылечивается. И я не пойму, когда только http то нормально можно убрать /my и перейти по /, в случае с https как будто где то вшито и всегда переходит в /my не смотря на измененный конфиг.
Добавили обновление баланса. Пробовали менять /my на / - меняется и для https тоже. Менять надо в jboss-web.xml.

Автор:  Виктор [ 21 мар 2016, 15:19 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Сделал, работает, спасибо

Автор:  Jimson [ 01 апр 2016, 19:49 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Ошибки ползут
16:13:18,951 ERROR [org.jboss.weld.Bean] (default task-11) WELD-000019: Error destroying an instance ru.bitel.mybgbilling.kernel.common.MySessionBean@5676dbd2 of Managed Bean [class ru.bitel.mybgbilling.kernel.common.MySessionBean] with qualifiers [@Default @Any @Named]

И еще у меня не получилось переключиться на субдоговор, появляется окошко со списком субдоговоров, нажимаешь "перейти" и после этого попадаешь на логин.

А кому то пригодится такая логика переключения между субдоговорами? Даже если субдоговор на деле будет реальным юридическим договором, а супердоговор это "контрагент", то логично на супердоговоре видеть некую таблицу где по каждому субдоговору будет баланс, текущая наработка. Если же субдоговор это фикция (изоляция группы услуг и по наработке и/или балансу, либо необходимость в различных тарифах на однотипных услугах в рамках одного договора), то в ЛК вообще не должно быть видно никаких субдоворов. Ну это на мой взгляд, не претендую на правоту.

И еще вопрос, модули Voice/VoiceIP/Phone еще не реализовали в этом ЛК? В WEB-INF/classes/ru/bitel/mybgbilling/modules/ ничего по ним не видно.

Автор:  stark [ 01 апр 2016, 20:00 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Jimson писал(а):

А кому то пригодится такая логика переключения между субдоговорами? Даже если субдоговор на деле будет реальным юридическим договором, а супердоговор это "контрагент", то логично на супердоговоре видеть некую таблицу где по каждому субдоговору будет баланс, текущая наработка. Если же субдоговор это фикция (изоляция группы услуг и по наработке и/или балансу, либо необходимость в различных тарифах на однотипных услугах в рамках одного договора), то в ЛК вообще не должно быть видно никаких субдоворов. Ну это на мой взгляд, не претендую на правоту.


Так исторически сложилось по заказу одного крупного клиента, который давно уже не использует на личный кабинет и написал свой. Там основной договор это договор по трафику был, а суб-договор , это безлимит.

Автор:  Jimson [ 01 апр 2016, 20:49 ]
Заголовок сообщения:  Re: Web-кабинет клиента

stark писал(а):
Jimson писал(а):
Так исторически сложилось по заказу одного крупного клиента, который давно уже не использует на личный кабинет и написал свой. Там основной договор это договор по трафику был, а суб-договор , это безлимит.

Да, у всех свое понимание что должен видеть их клиент, тут не что всем, а даже меньшинству угодить проблема. Как вариант предлагать клиентам пример, в виде проекта intellij/eclipse/etc с кучкой xhtml, а ваше решение это будет библиотека поставщиков данных документированная, и пусть кого не устраивает example сидит и перерисовывает xhtml/js.

Автор:  Amir [ 27 апр 2016, 20:02 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Добавили Assist и Sberbank. Поправили отчет по превалирующим трафикам в Inet.
Добавили сборку для 7.0.

Добавили исходники Managment Beans, с которыми работают xhtml-файлы:
ftp://bgbilling.ru/pub/bgbilling/6.2/My ... ng-src.zip

Автор:  Jimson [ 27 апр 2016, 22:53 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Круто! Вот бы еще описание на все что там вокруг бинов и xhtml, было бы совсем замечательно.
Кстати, а почему было решено использовать JSF бины, а не CDI с их ConversationScoped?

Автор:  Amir [ 28 апр 2016, 14:38 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Что вокруг?

Там CDI везде, но ConversationScoped что-то не получилось нормально использовать вместе с одностраничным Ajax-приложением. Каждый раз при нажатии пункта меню создавался новый бин, а предыдущий оставался в памяти, пока его таймаут не выйдет. Думаю, решаемо, но попробовали по разному, да пока отложили.

Автор:  Jimson [ 28 апр 2016, 18:41 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Amir писал(а):
Что вокруг?

Ну кроме бинов там есть классы уровня бизнес-логики и модели (ws?), вот полезно было бы узнать архитектуру этого. Т.е. если нужны какие то дополнительные данные в ЛК, то надо понимать не только что надо дописывать, а и где инжектить уже написанные вами классы.

Amir писал(а):
Там CDI везде, но ConversationScoped что-то не получилось нормально использовать вместе с одностраничным Ajax-приложением.

Да, с CDI это я что то напутал, мне показалось что там @ManagedBean был, а сейчас еще раз проверил - везде @Named.

Автор:  Amir [ 28 апр 2016, 18:59 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Цитата:
Ну кроме бинов там есть классы уровня бизнес-логики и модели (ws?), вот полезно было бы узнать архитектуру этого. Т.е. если нужны какие то дополнительные данные в ЛК, то надо понимать не только что надо дописывать, а и где инжектить уже написанные вами классы.
В самом личном кабинете вся логика в этих бинах. Он обращается к серверу биллинга через web-сервисы, т.е. работает как клиент биллинга. А это уже API биллинга и его модели и данные:
https://bgbilling.ru/v7.0/javadoc/index.html
https://bgbilling.ru/v7.0/javadoc/ru/bi ... rvice.html


Как простой пример - страница "Уведомления":
Код:
package ru.bitel.mybgbilling.kernel.contract;

import java.util.List;

import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.kernel.contract.api.common.bean.ContractNotification;
import ru.bitel.bgbilling.kernel.contract.api.common.service.ContractNotificationService;
import ru.bitel.common.function.Async;
import ru.bitel.mybgbilling.kernel.common.AbstractBean;
import ru.bitel.mybgbilling.kernel.common.inject.BGInject;
import ru.bitel.mybgbilling.kernel.common.inject.BGInjection;

@Named
@RequestScoped
@BGInjection
public class NotificationBean
   extends AbstractBean
{
   private static final long serialVersionUID = -893744590855227814L;

   private static final Logger logger = LoggerFactory.getLogger( NotificationBean.class );

   @BGInject
   private ContractNotificationService contractNotificationService;

   private Async<List<ContractNotification>> contractNotificationList;

   @Override
   protected void init()
      throws BGException
   {
      super.init();

      populate();
   }

   public void populate()
      throws BGException
   {
      this.contractNotificationList = Async.of( () -> contractNotificationService.contractNotificationList( getContractId() ) );
   }

   public List<ContractNotification> getContractNotificationList()
      throws BGException
   {
      return contractNotificationList.get();
   }

   public void markRead( int id )
      throws BGException
   {
      contractNotificationService.contractNotificationMarkRead( getContractId(), id );
   }

   public void deleteContractNotification( int id )
      throws BGException
   {
      contractNotificationService.contractNotificationDelete( getContractId(), id );

      populate();
   }
}

Автор:  nik247 [ 29 апр 2016, 16:39 ]
Заголовок сообщения:  Re: Web-кабинет клиента

А возможно ли будет запустить несколько копий нового кабинета для одного биллинга?
- разный дизайн
- разные доменные имена (разные дилеры)
- по возможности ограничение (разделение) обслуживаемых клиентов по группам

Автор:  Jimson [ 29 апр 2016, 17:43 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Идеологически никаких препятствий нет, но механизма "кому куда можно логиниться" нет. Наверно можно прилепить "декоратор" к CustomerBean или LoginBean (не разбирался еще) и реализовать ограничения.

Автор:  Amir [ 29 апр 2016, 18:02 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Цитата:
Идеологически никаких препятствий нет, но механизма "кому куда можно логиниться" нет. Наверно можно прилепить "декоратор" к CustomerBean или LoginBean (не разбирался еще) и реализовать ограничения.
Можем просто в конфиг добавить, каким группам договоров можно логиниться.

Если просто дизайн менять (не сильно) - теоретически можно было бы в зависимости от домена выдавать разный, но если будут другие различия/усложнения, то наверно проще отдельной копией.

Автор:  nik247 [ 29 апр 2016, 18:20 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Amir писал(а):
Цитата:
Идеологически никаких препятствий нет, но механизма "кому куда можно логиниться" нет. Наверно можно прилепить "декоратор" к CustomerBean или LoginBean (не разбирался еще) и реализовать ограничения.
Можем просто в конфиг добавить, каким группам договоров можно логиниться.

Если просто дизайн менять (не сильно) - теоретически можно было бы в зависимости от домена выдавать разный, но если будут другие различия/усложнения, то наверно проще отдельной копией.

Спасибо за ответ, то насколько я понял:
1) несколько копий запускать можно будет.
2) разделение по группами, каким договоров можно логиниться, есть возможность и его можно указать в конфиге нового ЛК.
Правильно?

Тогда еще пару вопросов?
1) где в настройках нового ЛК указывается ограничение по группам? И какими правилами это прописывается?
2) зачем в настройках нового ЛК указывать login, password?
3) как лицензируется новый ЛК?

Автор:  Jimson [ 29 апр 2016, 19:07 ]
Заголовок сообщения:  Re: Web-кабинет клиента

nik247 писал(а):
2) зачем в настройках нового ЛК указывать login, password?

Это аккаунт под которым ЛК получает доступ к биллингу. Т.е. выполняя WS запросы к серверу он пользуется этим аккаунтом.
Этот вариант ЛК по сути обычный клиент, такой же как тот клиент которым вы пользуетесь для администрирования BGB, но логинятся в этот ЛК клиенты, а не пользователи BGB, следовательно ему нужен пользователь BGB чтобы получить доступ к данным.

Автор:  Jimson [ 29 апр 2016, 19:23 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Amir писал(а):
но если будут другие различия/усложнения, то наверно проще отдельной копией.

Я не занимался реверс-инженерингом MyBGBilling, могу наговорить чуши, но если я правильно понимаю есть некий набор POJO и бинов в составе war которые инжектятся в пользовательские бины, например WSClient, Pool, WSInjectManager, есть система аутентикации и бин "User", анатоции для всего этого и еще бог знает что. Вот может распространять это все в виде отдельного jar, который, желающие писать свой ЛК, могут использовать в своем проекте?
И еще, не очень понял зачем вы положили bootstrap и jquery. Ведь если кто то захочет разнообразить интерфейс, то правильнее будет добавить в war primefaces, например, и не внедрять в xhtml куски html с классами bootstrap? Или вы там уже добавили какую то хитрую библиотеку дополнительных компонентов JSF использующую bootstrap?

Автор:  Amir [ 29 апр 2016, 20:50 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Цитата:
1) где в настройках нового ЛК указывается ограничение по группам? И какими правилами это прописывается?
Такого еще нет, но скоро добавим.
.
Цитата:
3) как лицензируется новый ЛК?
Как и ядро - бесплатно, пойдет как замена старого ЛК.

Автор:  Amir [ 29 апр 2016, 21:03 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Цитата:
Я не занимался реверс-инженерингом MyBGBilling, могу наговорить чуши, но если я правильно понимаю есть некий набор POJO и бинов в составе war которые инжектятся в пользовательские бины, например WSClient, Pool, WSInjectManager, есть система аутентикации и бин "User", анатоции для всего этого и еще бог знает что. Вот может распространять это все в виде отдельного jar, который, желающие писать свой ЛК, могут использовать в своем проекте?
Просто собирать common/kernel- классы ЛК в отдельную JAR? Можем добавить.
Цитата:
И еще, не очень понял зачем вы положили bootstrap и jquery. Ведь если кто то захочет разнообразить интерфейс, то правильнее будет добавить в war primefaces, например, и не внедрять в xhtml куски html с классами bootstrap? Или вы там уже добавили какую то хитрую библиотеку дополнительных компонентов JSF использующую bootstrap?
В ЛК решили отказаться от prime/rich/ice-faces из-за их громоздкости (много javascript'а) и по большей части не сильной симпатичности. Чтобы ЛК не выглядел как админка. Т.е. используется чистый JSF + bootstrap как просто html/css-фреймворк, для ЛК пока было достаточно.

Автор:  Jimson [ 29 апр 2016, 22:02 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Amir писал(а):
Просто собирать common/kernel- классы ЛК в отдельную JAR? Можем добавить.

Мои познания очень поверхностные (читаю книжки), как правильно и как можно не знаю. Но хочется некий мини-комплект, ядро, по сути без ЛК вообще, возможно это jar с основными классами и анотациями (с описанием небольшим), а к нему example из странички логина и "hello world" при успешном логине.
Просто на сколько я понимаю невозможно писать свое приложение используя классы из другого war, т.е. придется в свое приложение закидывать классы вашего ЛК ручками, предварительно разбираясь что относится, к стажем так, default ЛК, а что уже реализованные классы модели (их так правильно назвать?).

Цитата:
В ЛК решили отказаться от prime/rich/ice-faces из-за их громоздкости (много javascript'а) и по большей части не сильной симпатичности. Чтобы ЛК не выглядел как админка. Т.е. используется чистый JSF + bootstrap как просто html/css-фреймворк, для ЛК пока было достаточно.

Ну что такое чистый JSF я не совсем понял, я так понял что есть как минимум mojarra, которую можно положить в wildfly вместо того что там лежит. А что там по умолчанию в wildfly я так и не понял, вроде rich это как раз JBOSS JSF, нет?
На счет того что красивость у prime/ice/etc так себе вынужден согласиться, оно какое то все недоработанное, но и то что в wildfly такое себе (mojarra не смотрел). Какой то немецкий парень пишет ButterFaces, выглядит уже заметно веселее, но он пока один пишет, а следовательно шансов что проект выживет очень мало. Я просто не очень понял пока, как можно использовать тот же Boootstrap (сам по себе) с JSF, ну можно панель сделать или меню, но что делать с input элементами, как "прилеплять" верификацию к нативным html элементам и не получится ли это убожество в плане читабельности xhtml? Я так понял что JSF для того и придумали, что бы никакого HTML/JS в "шаблонах" не было, только JSF элементы, стили, события/сообщения и указания для ajax где что обновлять.

P.S. я вот тут подумал что отчасти bootstrap можно "натянуть" на JSF просто добавляя классы стилей на элементы JSF, но везде ли этого будет достаточно?

Автор:  Jimson [ 30 апр 2016, 01:54 ]
Заголовок сообщения:  Re: Web-кабинет клиента

Amir писал(а):
Можем просто в конфиг добавить, каким группам договоров можно логиниться

А если просто ограничить права пользователя под которым данный портал будет работать, по идее этого же достаточно будет? Да и в принципе обрезать права везде где только можно для этой учетки крайне полезно.

Страница 5 из 17 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/