Class LicenseManager
java.lang.Object
ru.bitel.bgbilling.modules.license.server.bean.LicenseManager
Класс-менеджер для обработки экшэнов лицензии
-
Field Summary
Modifier and TypeFieldDescriptionprotected Connection
protected org.apache.logging.log4j.Logger
protected String
protected int
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
checkCopyItemStatus
(int copyItemId) Проверяет, является ли статус для заказа данного компонента "выполнен" (если куплен) или "подтвержден" (если тестовый)boolean
checkHaveNonSignAdditionalAgreement
(int copyId) Проверка, есть ли не подписанный допик.protected void
int
createLicense
(License lic) void
createTestCopiesForOrder
(Order order, int term, int count) void
deleteAdditionalAgreement
(int idAdditionalAgreement) Удалит доп. соглашение из базеvoid
deleteComponent
(int id) void
deleteComponents
(int productId) void
deleteOrder
(int orderId) void
deleteProduct
(int pid) doContractData
(int productId, int componentId) select distinct c.id, title, c.comment from lic_order_154 as a left join lic_copy_154 as b on a.copy_id=b.id and product_id=20 left join contract as c on c.id=contract_id where component_id=28getAdditionalAgreement
(int id) Вернет допик по его идgetComponent
(int id) getComponent
(String name) Получает список всех компонентов.getComponentList
(int copyId, boolean showHidden, Boolean availableOnWeb) Получает список всех компонентов для заданной копии продукта.getComponentsForProduct
(int productId) getContractByTitlePart
(String titlePart) Возвращает договоры, номера которых начинаются с заданной подстроки.getContractComment
(int contractId) getCopy
(int copyId) getCopyCountForComponentByProductMap
(int productId) находим в скольких копиях продукта встречается компонент select component_id, count(copy_id) from lic_order_16 where type=0 and status=2 and copy_id in (select id from lic_copy_16 where product_id=3) group by component_id unlimited select component_id, count(copy_id) from lic_order_16 where type=1 and status=2 and count=0 and copy_id in (select id from lic_copy_16 where product_id=3) group by component_id SELECT component_id, SUM(count) FROM lic_order_16 WHERE type=1 AND status=2 AND count=0 AND copy_id IN ( SELECT id FROM lic_copy_16 WHERE product_id=3 ) AND concat(copy_id,' ',component_id) NOT IN ( SELECT concat(copy_id,' ',component_id) FROM lic_order_16 WHERE count=0 AND type=1 AND status=2 ) GROUP BY component_idint[]
getCopyItemIds
(int copyId) getCopyItems
(int copyId, int filter) Получает список экземпляров компонентов для указанной копии продукта.getCopyItemsFromPackage
(int packageId) getCopyList
(int contractId) Получает список копий продукта для заданного договора.getCurrentLicense
(int copyId) Получает текущую лицензию для заданной копии.getDiscount
(int contractId, int copyId) Вернет скидку(ну или ту сумму которую они уже оплатили и которую необходимо учитовать).int
getLastNumber
(int contractId) Вернет максимальный номер допика для соответсвующего контракта.getLicenseById
(int licenseId) Получает текущую лицензию для заданной копии.getLicenseItems
(int licenseId, boolean testDateForNow) getLicenses
(int copyId) Получает список лицензий для заданной копии продуктаgetLicenseText
(int licenseId) getListAdditionalAgreement
(int contractId, int copyId) getOrder
(int orderId) int
getOrderIdFromConfirmedId
(int condirmedOrderId) возращает код заказа для потвержденного заказаgetOrders
(int copyId) getOrders
(int copyId, String filterPermanentStatus, String filterTestStatus, int filterComponentItemId) Если все 3 фильтра незначимые (filterPermanentStatus=null ,filterTestStatus=null ,filterComponentItemId=-1 ), то выведит все заказы.getOrders
(int copyId, List<OrderType> filterTypes, List<Integer> statusIds, int filterComponentItemId) int
getOrdersCountOnComponent
(int componentId) int
getOrdersCountOnProduct
(int productId) int
getOrderStatus
(int id) int
getOrderType
(int id) getOrganizationTitle
(int contractId, int fullOrganizationNameParamId) Получает наименование организации.getOriginalLicenseText
(int licenseId) getProduct
(int pid) getProductsWithComponent
(int componentId) Вернет список всех компонентов соответсвующего допика.groupCopyItems
(int productItemId, int copyId, int[] orderStatuses) Получает информацию заказанных компонентах ( id компонента, название компонента, количество) по заданному id компонента, группируя все заказы на данный компонентprotected int
void
linkComponentToProduct
(int productId, int componentId) void
resetCopyDiscount
(int contractId, int productCopyId) void
setAdditionalAgreement
(AdditionalAgreement title, int contractId) Сохранит доп. соглашение в базеvoid
setCharge
(int id, int chargeId) Установит ид расхода у допика.void
setDiscount
(BigDecimal discount, int contractId, int copyId) Установим скидку для конткретного договора и продукта.void
setInvoice
(int id, int invoiceId) void
setStatusSigned
(int id) Установит статус "Подписано"void
unlinkComponentFromProduct
(int productId, int componentId) void
updateComponent
(Component component) void
updateCopy
(Copy copy) void
updateCopyItem
(ConfirmedOrder copyItem) Создает записи о компонентах, входящих в состав заданной копии продукта.void
updateCopyItemOrder
(Order order) Создает или обновляет заказvoid
updateCopyItemOrder
(Order order, boolean updateConfirmed) Создает или обновляет заказvoid
updateCopyItemOrder
(Order order, Date copyItemToDate) void
updateLicenseData
(License lic) void
updateProduct
(Product product) Создает или обновляет запись о продукте.void
updateTestComponentDateTo
(int orderId, Date dateTo) Обновляет дату окончания действия лицензии на тестовый компонент.
-
Field Details
-
SQL_SELECT
- See Also:
-
SQL_INSERT
- See Also:
-
SQL_UPDATE
- See Also:
-
SQL_DELETE
- See Also:
-
SQL_FROM
- See Also:
-
SQL_ALL
- See Also:
-
SQL_WHERE
- See Also:
-
SQL_ORDER_BY
- See Also:
-
SQL_LEFT_JOIN
- See Also:
-
SQL_JOIN
- See Also:
-
SQL_GROUP_BY
- See Also:
-
SQL_SET
- See Also:
-
SQL_AND
- See Also:
-
SQL_IN
- See Also:
-
SQL_NOT_IN
- See Also:
-
SQL_DISTINCT
- See Also:
-
SQL_ON
- See Also:
-
log
protected org.apache.logging.log4j.Logger log -
con
-
mid
-
moduleId
protected int moduleId
-
-
Constructor Details
-
LicenseManager
-
-
Method Details
-
updateProduct
Создает или обновляет запись о продукте.- Throws:
ru.bitel.bgbilling.common.BGException
-
deleteProduct
public void deleteProduct(int pid) -
getProduct
-
getOrdersCountOnProduct
public int getOrdersCountOnProduct(int productId) -
getProductsWithComponent
public List<Product> getProductsWithComponent(int componentId) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
updateComponent
- Throws:
ru.bitel.bgbilling.common.BGException
-
deleteComponent
public void deleteComponent(int id) -
deleteComponents
public void deleteComponents(int productId) -
getComponent
-
getComponent
-
getComponentList
Получает список всех компонентов. -
getComponentList
Получает список всех компонентов для заданной копии продукта.- Parameters:
copyId
- - код копииshowHidden
- - если true, то в список будут включены компоненты, отмеченные как 'скрытые'- Returns:
-
getOrdersCountOnComponent
public int getOrdersCountOnComponent(int componentId) -
getComponentsForProduct
-
linkComponentToProduct
public void linkComponentToProduct(int productId, int componentId) -
unlinkComponentFromProduct
public void unlinkComponentFromProduct(int productId, int componentId) -
updateCopy
-
getCopy
- Throws:
ru.bitel.bgbilling.common.BGException
-
updateCopyItem
Создает записи о компонентах, входящих в состав заданной копии продукта. -
updateCopyItemOrder
public void updateCopyItemOrder(Order order) throws ru.bitel.bgbilling.common.BGException, ru.bitel.bgbilling.common.BGMessageException Создает или обновляет заказ- Throws:
ru.bitel.bgbilling.common.BGMessageException
- - если кол-во общих заказов привысит unlimru.bitel.bgbilling.common.BGException
-
updateCopyItemOrder
public void updateCopyItemOrder(Order order, boolean updateConfirmed) throws ru.bitel.bgbilling.common.BGException, ru.bitel.bgbilling.common.BGMessageException Создает или обновляет заказ- Throws:
ru.bitel.bgbilling.common.BGMessageException
- - если кол-во общих заказов привысит unlimru.bitel.bgbilling.common.BGException
-
updateCopyItemOrder
public void updateCopyItemOrder(Order order, Date copyItemToDate) throws ru.bitel.bgbilling.common.BGException, ru.bitel.bgbilling.common.BGMessageException - Throws:
ru.bitel.bgbilling.common.BGException
ru.bitel.bgbilling.common.BGMessageException
-
getOrderStatus
public int getOrderStatus(int id) -
getOrderType
public int getOrderType(int id) -
getOrders
-
getOrders
public List<Order> getOrders(int copyId, String filterPermanentStatus, String filterTestStatus, int filterComponentItemId) Если все 3 фильтра незначимые (filterPermanentStatus=null ,filterTestStatus=null ,filterComponentItemId=-1 ), то выведит все заказы.- Parameters:
copyId
-filterPermanentStatus
- - фильтр для "постоянных" заказов в виде 0,1,2 или 2,1 или 0 , где в скобках соответсвующий id (0-новый , 1-отказано, 2 -выполнен). Если передать null или пустую строку, фильтр не будет выводить "постоянные" заказы.filterTestStatus
- - фильтр для "тестовых" заказов в виде 0,1,3 или 3,1 или 0 , где в скобках соответсвующий id (0-новый , 1-отказано, 3 -подтвержден). Если передать null или пустую строку, фильтр не будет выводить "тестовые" заказы.filterComponentItemId
- - id компонента, фильтр по компоненту ну там id email или id ipn или id npay ну и т.д. или -1 если фильтр по нему не нужен.- Returns:
- - отфильтрованный лист заказов
-
getOrders
-
getOrder
-
createTestCopiesForOrder
public void createTestCopiesForOrder(Order order, int term, int count) throws ru.bitel.bgbilling.common.BGException, ru.bitel.bgbilling.common.BGMessageException - Throws:
ru.bitel.bgbilling.common.BGException
ru.bitel.bgbilling.common.BGMessageException
-
deleteOrder
public void deleteOrder(int orderId) -
checkCopyItemStatus
public boolean checkCopyItemStatus(int copyItemId) Проверяет, является ли статус для заказа данного компонента "выполнен" (если куплен) или "подтвержден" (если тестовый)- Parameters:
copyItemId
-- Returns:
-
checkHaveNonSignAdditionalAgreement
public boolean checkHaveNonSignAdditionalAgreement(int copyId) throws ru.bitel.bgbilling.common.BGException Проверка, есть ли не подписанный допик.- Parameters:
copyId
- - ид копии продукта.- Returns:
- - true, если есть не подписанный.
- Throws:
ru.bitel.bgbilling.common.BGException
-
createLicense
-
updateLicenseData
-
groupCopyItems
Получает информацию заказанных компонентах ( id компонента, название компонента, количество) по заданному id компонента, группируя все заказы на данный компонент- Parameters:
productItemId
-- Returns:
- Throws:
SQLException
-
getLicenses
Получает список лицензий для заданной копии продукта- Parameters:
copyId
- - id копии продукта- Returns:
- - список пакетов
-
getCurrentLicense
Получает текущую лицензию для заданной копии. Текущей лицензией является последняя сгенерированная пользователем лицензия, то есть при наличии нескольких лицензий выбирается та, у которой дата создания самая поздняя.- Parameters:
copyId
- - id копии продукта.- Returns:
- - текущая лицензия
-
getLicenseById
Получает текущую лицензию для заданной копии. Текущей лицензией является последняя сгенерированная пользователем лицензия, то есть при наличии нескольких лицензий выбирается та, у которой дата создания самая поздняя.- Parameters:
copyId
- - id копии продукта.- Returns:
- - текущая лицензия
-
getLicenseItems
- Parameters:
licenseId
-testDate
- - если true, то не будут выведены тестовые дата завершения которых меньше текущей даты.- Returns:
-
getCopyList
Получает список копий продукта для заданного договора.- Parameters:
contractId
- - id договора- Returns:
- - список копий
-
getCopyItems
public List<ConfirmedOrder> getCopyItems(int copyId, int filter) throws ru.bitel.bgbilling.common.BGException Получает список экземпляров компонентов для указанной копии продукта.- Parameters:
copyId
- - id копии продуктаfilter
- - если 0, то в список попадают только компоненты с наибольшим количеством если 1 - только купленные компоненты если 2 - все компоненты- Returns:
- - список экземпляров модулей
- Throws:
ru.bitel.bgbilling.common.BGException
-
getCopyItemIds
public int[] getCopyItemIds(int copyId) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
getProducts
- Throws:
ru.bitel.bgbilling.common.BGException
-
getContractByTitlePart
public List<Contract> getContractByTitlePart(String titlePart) throws ru.bitel.bgbilling.common.BGException Возвращает договоры, номера которых начинаются с заданной подстроки. Позволяет искать договор по номеру без указания года.- Parameters:
title
- номер договора- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
updateTestComponentDateTo
Обновляет дату окончания действия лицензии на тестовый компонент. Обновляются только те компоненты, для которых новая дата позже текущей даты окончания лицензии.- Parameters:
orderId
- - код заказа, для которого продливается тестовая лицензия.dateTo
- - новая дата окончания действия лицензии.
-
getCopyItemsFromPackage
-
getOrganizationTitle
Получает наименование организации.- Parameters:
contractId
- - id договораfullOrganizationNameParamId
- - id параметра, содержащего полное наименование организации- Returns:
- наименование организации
-
getContractComment
-
getLicenseText
-
getOriginalLicenseText
-
lastInsertId
- Throws:
SQLException
-
closeConnection
-
getListAdditionalAgreement
public List<AdditionalAgreement> getListAdditionalAgreement(int contractId, int copyId) throws ru.bitel.bgbilling.common.BGException - Parameters:
cid
- - id договора- Returns:
- Список всех доп.соглошений для соответсвующего договора.
- Throws:
ru.bitel.bgbilling.common.BGException
-
getAdditionalAgreement
public AdditionalAgreement getAdditionalAgreement(int id) throws ru.bitel.bgbilling.common.BGException Вернет допик по его ид- Parameters:
id
-- Returns:
- допик
- Throws:
ru.bitel.bgbilling.common.BGException
-
setAdditionalAgreement
public void setAdditionalAgreement(AdditionalAgreement title, int contractId) throws ru.bitel.bgbilling.common.BGException Сохранит доп. соглашение в базе- Parameters:
title
- - доп. соглашение которое было созданоcontractId
- - номер договора к которому приписываем д.с.- Throws:
ru.bitel.bgbilling.common.BGException
-
deleteAdditionalAgreement
public void deleteAdditionalAgreement(int idAdditionalAgreement) throws ru.bitel.bgbilling.common.BGException Удалит доп. соглашение из базе- Parameters:
idAdditionalAgreement
- - ид. удаляемого допика- Throws:
ru.bitel.bgbilling.common.BGException
-
resetCopyDiscount
public void resetCopyDiscount(int contractId, int productCopyId) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
getSpecificationOfAdditionalAgreement
public List<SpecificationTitle> getSpecificationOfAdditionalAgreement(int id) throws ru.bitel.bgbilling.common.BGException Вернет список всех компонентов соответсвующего допика.- Parameters:
id
- ид допика, у которого будет взят SpecificationTitle- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
getLastNumber
public int getLastNumber(int contractId) throws ru.bitel.bgbilling.common.BGException Вернет максимальный номер допика для соответсвующего контракта. Если номера еще нет то вернет -1- Parameters:
contractId
-- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
getDiscount
public BigDecimal getDiscount(int contractId, int copyId) throws ru.bitel.bgbilling.common.BGException Вернет скидку(ну или ту сумму которую они уже оплатили и которую необходимо учитовать). Она необхадима для вывода суммы при создание первого доп.согл. и для информирования в дальнейшем.- Parameters:
contractId
-copyId
-- Throws:
ru.bitel.bgbilling.common.BGException
-
setDiscount
public void setDiscount(BigDecimal discount, int contractId, int copyId) throws ru.bitel.bgbilling.common.BGException Установим скидку для конткретного договора и продукта.- Parameters:
discount
- - скидкаcontractId
- - номер договороcopyId
- - код копии продукта- Throws:
ru.bitel.bgbilling.common.BGException
-
setStatusSigned
public void setStatusSigned(int id) throws ru.bitel.bgbilling.common.BGException Установит статус "Подписано"- Parameters:
id
- - ид доп. соглошения- Throws:
ru.bitel.bgbilling.common.BGException
-
setCharge
public void setCharge(int id, int chargeId) throws ru.bitel.bgbilling.common.BGException Установит ид расхода у допика.- Parameters:
id
- - ид допика.chargeId
- - ид расхода.- Throws:
ru.bitel.bgbilling.common.BGException
-
setInvoice
public void setInvoice(int id, int invoiceId) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
getOrderIdFromConfirmedId
public int getOrderIdFromConfirmedId(int condirmedOrderId) возращает код заказа для потвержденного заказа -
getCopyCountForComponentByProductMap
находим в скольких копиях продукта встречается компонент select component_id, count(copy_id) from lic_order_16 where type=0 and status=2 and copy_id in (select id from lic_copy_16 where product_id=3) group by component_id unlimited select component_id, count(copy_id) from lic_order_16 where type=1 and status=2 and count=0 and copy_id in (select id from lic_copy_16 where product_id=3) group by component_id SELECT component_id, SUM(count) FROM lic_order_16 WHERE type=1 AND status=2 AND count=0 AND copy_id IN ( SELECT id FROM lic_copy_16 WHERE product_id=3 ) AND concat(copy_id,' ',component_id) NOT IN ( SELECT concat(copy_id,' ',component_id) FROM lic_order_16 WHERE count=0 AND type=1 AND status=2 ) GROUP BY component_id -
doContractData
select distinct c.id, title, c.comment from lic_order_154 as a left join lic_copy_154 as b on a.copy_id=b.id and product_id=20 left join contract as c on c.id=contract_id where component_id=28- Parameters:
productId
-componentId
-- Returns:
-