Class LicenseManager
java.lang.Object
ru.bitel.bgbilling.modules.license.server.bean.LicenseManager
public class LicenseManager
extends java.lang.Object
Класс-менеджер для обработки экшэнов лицензии
-
Field Summary
Fields Modifier and Type Field Description protected java.sql.Connectionconprotected org.apache.logging.log4j.Loggerlogprotected java.lang.Stringmidprotected intmoduleIdprotected static java.lang.StringSQL_ALLprotected static java.lang.StringSQL_ANDprotected static java.lang.StringSQL_DELETEprotected static java.lang.StringSQL_DISTINCTprotected static java.lang.StringSQL_FROMprotected static java.lang.StringSQL_GROUP_BYprotected static java.lang.StringSQL_INprotected static java.lang.StringSQL_INSERTprotected static java.lang.StringSQL_JOINprotected static java.lang.StringSQL_LEFT_JOINprotected static java.lang.StringSQL_NOT_INprotected static java.lang.StringSQL_ONprotected static java.lang.StringSQL_ORDER_BYprotected static java.lang.StringSQL_SELECTprotected static java.lang.StringSQL_SETprotected static java.lang.StringSQL_UPDATEprotected static java.lang.StringSQL_WHERE -
Constructor Summary
Constructors Constructor Description LicenseManager(java.sql.Connection con, int moduleId) -
Method Summary
Modifier and Type Method Description booleancheckCopyItemStatus(int copyItemId)Проверяет, является ли статус для заказа данного компонента "выполнен" (если куплен) или "подтвержден" (если тестовый)booleancheckHaveNonSignAdditionalAgreement(int copyId)Проверка, есть ли не подписанный допик.protected voidcloseConnection(java.sql.Connection con)intcreateLicense(License lic)voidcreateTestCopiesForOrder(Order order, int term, int count)voiddeleteAdditionalAgreement(int idAdditionalAgreement)Удалит доп. соглашение из базеvoiddeleteComponent(int id)voiddeleteComponents(int productId)voiddeleteOrder(int orderId)voiddeleteProduct(int pid)java.util.List<ContractData>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=28AdditionalAgreementgetAdditionalAgreement(int id)Вернет допик по его идComponentgetComponent(int id)ComponentgetComponent(java.lang.String name)java.util.List<Component>getComponentList()Получает список всех компонентов.java.util.List<Component>getComponentList(int copyId, boolean showHidden, java.lang.Boolean availableOnWeb)Получает список всех компонентов для заданной копии продукта.java.util.List<Component>getComponentsForProduct(int productId)java.util.List<Contract>getContractByTitlePart(java.lang.String titlePart)Возвращает договоры, номера которых начинаются с заданной подстроки.java.lang.StringgetContractComment(int contractId)CopygetCopy(int copyId)java.util.Map<java.lang.Integer,int[]>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)java.util.List<ConfirmedOrder>getCopyItems(int copyId, int filter)Получает список экземпляров компонентов для указанной копии продукта.java.util.List<ConfirmedOrder>getCopyItemsFromPackage(int packageId)java.util.List<Copy>getCopyList(int contractId)Получает список копий продукта для заданного договора.LicensegetCurrentLicense(int copyId)Получает текущую лицензию для заданной копии.java.math.BigDecimalgetDiscount(int contractId, int copyId)Вернет скидку(ну или ту сумму которую они уже оплатили и которую необходимо учитовать).intgetLastNumber(int contractId)Вернет максимальный номер допика для соответсвующего контракта.LicensegetLicenseById(int licenseId)Получает текущую лицензию для заданной копии.java.util.List<ConfirmedOrder>getLicenseItems(int licenseId, boolean testDateForNow)java.util.List<License>getLicenses(int copyId)Получает список лицензий для заданной копии продуктаjava.lang.StringgetLicenseText(int licenseId)java.util.List<AdditionalAgreement>getListAdditionalAgreement(int contractId, int copyId)OrdergetOrder(int orderId)intgetOrderIdFromConfirmedId(int condirmedOrderId)возращает код заказа для потвержденного заказаjava.util.List<Order>getOrders(int copyId)java.util.List<Order>getOrders(int copyId, java.lang.String filterPermanentStatus, java.lang.String filterTestStatus, int filterComponentItemId)Если все 3 фильтра незначимые (filterPermanentStatus=null ,filterTestStatus=null ,filterComponentItemId=-1 ), то выведит все заказы.java.util.List<Order>getOrders(int copyId, OrderType filterType, int filterStatus, int filterComponentItemId)intgetOrdersCountOnComponent(int componentId)intgetOrdersCountOnProduct(int productId)intgetOrderStatus(int id)intgetOrderType(int id)java.lang.StringgetOrganizationTitle(int contractId, int fullOrganizationNameParamId)Получает наименование организации.java.lang.StringgetOriginalLicenseText(int licenseId)ProductgetProduct(int pid)java.util.List<Product>getProducts()java.util.List<Product>getProductsWithComponent(int componentId)java.util.List<SpecificationTitle>getSpecificationOfAdditionalAgreement(int id)Вернет список всех компонентов соответсвующего допика.ConfirmedOrdergroupCopyItems(int productItemId, int copyId, int[] orderStatuses)Получает информацию заказанных компонентах ( id компонента, название компонента, количество) по заданному id компонента, группируя все заказы на данный компонентprotected intlastInsertId(java.sql.PreparedStatement ps)voidlinkComponentToProduct(int productId, int componentId)voidresetCopyDiscount(int contractId, int productCopyId)voidsetAdditionalAgreement(AdditionalAgreement title, int contractId)Сохранит доп. соглашение в базеvoidsetCharge(int id, int chargeId)Установит ид расхода у допика.voidsetDiscount(java.math.BigDecimal discount, int contractId, int copyId)Установим скидку для конткретного договора и продукта.voidsetInvoice(int id, int invoiceId)voidsetStatusSigned(int id)Установит статус "Подписано"voidunlinkComponentFromProduct(int productId, int componentId)voidupdateComponent(Component component)voidupdateCopy(Copy copy)voidupdateCopyItem(ConfirmedOrder copyItem)Создает записи о компонентах, входящих в состав заданной копии продукта.voidupdateCopyItemOrder(Order order)Создает или обновляет заказvoidupdateCopyItemOrder(Order order, boolean updateConfirmed)Создает или обновляет заказvoidupdateCopyItemOrder(Order order, java.util.Date copyItemToDate)voidupdateLicenseData(License lic)voidupdateProduct(Product product)Создает или обновляет запись о продукте.voidupdateTestComponentDateTo(int orderId, java.util.Date dateTo)Обновляет дату окончания действия лицензии на тестовый компонент.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
SQL_SELECT
protected static final java.lang.String SQL_SELECT- See Also:
- Constant Field Values
-
SQL_INSERT
protected static final java.lang.String SQL_INSERT- See Also:
- Constant Field Values
-
SQL_UPDATE
protected static final java.lang.String SQL_UPDATE- See Also:
- Constant Field Values
-
SQL_DELETE
protected static final java.lang.String SQL_DELETE- See Also:
- Constant Field Values
-
SQL_FROM
protected static final java.lang.String SQL_FROM- See Also:
- Constant Field Values
-
SQL_ALL
protected static final java.lang.String SQL_ALL- See Also:
- Constant Field Values
-
SQL_WHERE
protected static final java.lang.String SQL_WHERE- See Also:
- Constant Field Values
-
SQL_ORDER_BY
protected static final java.lang.String SQL_ORDER_BY- See Also:
- Constant Field Values
-
SQL_LEFT_JOIN
protected static final java.lang.String SQL_LEFT_JOIN- See Also:
- Constant Field Values
-
SQL_JOIN
protected static final java.lang.String SQL_JOIN- See Also:
- Constant Field Values
-
SQL_GROUP_BY
protected static final java.lang.String SQL_GROUP_BY- See Also:
- Constant Field Values
-
SQL_SET
protected static final java.lang.String SQL_SET- See Also:
- Constant Field Values
-
SQL_AND
protected static final java.lang.String SQL_AND- See Also:
- Constant Field Values
-
SQL_IN
protected static final java.lang.String SQL_IN- See Also:
- Constant Field Values
-
SQL_NOT_IN
protected static final java.lang.String SQL_NOT_IN- See Also:
- Constant Field Values
-
SQL_DISTINCT
protected static final java.lang.String SQL_DISTINCT- See Also:
- Constant Field Values
-
SQL_ON
protected static final java.lang.String SQL_ON- See Also:
- Constant Field Values
-
log
protected org.apache.logging.log4j.Logger log -
con
protected java.sql.Connection con -
mid
protected java.lang.String mid -
moduleId
protected int moduleId
-
-
Constructor Details
-
LicenseManager
public LicenseManager(java.sql.Connection con, int moduleId)
-
-
Method Details
-
updateProduct
Создает или обновляет запись о продукте. -
deleteProduct
public void deleteProduct(int pid) -
getProduct
-
getOrdersCountOnProduct
public int getOrdersCountOnProduct(int productId) -
getProductsWithComponent
public java.util.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
public java.util.List<Component> getComponentList(int copyId, boolean showHidden, java.lang.Boolean availableOnWeb)Получает список всех компонентов для заданной копии продукта.- 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
-
updateCopyItem
Создает записи о компонентах, входящих в состав заданной копии продукта. -
updateCopyItemOrder
Создает или обновляет заказ- Throws:
ru.bitel.bgbilling.common.BGMessageException- - если кол-во общих заказов привысит unlim
-
updateCopyItemOrder
public void updateCopyItemOrder(Order order, boolean updateConfirmed) throws ru.bitel.bgbilling.common.BGMessageExceptionСоздает или обновляет заказ- Throws:
ru.bitel.bgbilling.common.BGMessageException- - если кол-во общих заказов привысит unlim
-
updateCopyItemOrder
public void updateCopyItemOrder(Order order, java.util.Date copyItemToDate) throws ru.bitel.bgbilling.common.BGMessageException- Throws:
ru.bitel.bgbilling.common.BGMessageException
-
getOrderStatus
public int getOrderStatus(int id) -
getOrderType
public int getOrderType(int id) -
getOrders
-
getOrders
public java.util.List<Order> getOrders(int copyId, java.lang.String filterPermanentStatus, java.lang.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.BGMessageException- Throws:
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:
java.sql.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 java.util.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 java.util.List<Contract> getContractByTitlePart(java.lang.String titlePart) throws ru.bitel.bgbilling.common.BGExceptionВозвращает договоры, номера которых начинаются с заданной подстроки. Позволяет искать договор по номеру без указания года.- Parameters:
title- номер договора- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
updateTestComponentDateTo
public void updateTestComponentDateTo(int orderId, java.util.Date dateTo)Обновляет дату окончания действия лицензии на тестовый компонент. Обновляются только те компоненты, для которых новая дата позже текущей даты окончания лицензии.- Parameters:
orderId- - код заказа, для которого продливается тестовая лицензия.dateTo- - новая дата окончания действия лицензии.
-
getCopyItemsFromPackage
-
getOrganizationTitle
public java.lang.String getOrganizationTitle(int contractId, int fullOrganizationNameParamId)Получает наименование организации.- Parameters:
contractId- - id договораfullOrganizationNameParamId- - id параметра, содержащего полное наименование организации- Returns:
- наименование организации
-
getContractComment
public java.lang.String getContractComment(int contractId) -
getLicenseText
public java.lang.String getLicenseText(int licenseId) -
getOriginalLicenseText
public java.lang.String getOriginalLicenseText(int licenseId) -
lastInsertId
protected int lastInsertId(java.sql.PreparedStatement ps) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
closeConnection
protected void closeConnection(java.sql.Connection con) -
getListAdditionalAgreement
public java.util.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 java.util.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 java.math.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(java.math.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
public java.util.Map<java.lang.Integer,int[]> 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_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:
-