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.Connection
con
protected org.apache.logging.log4j.Logger
log
protected java.lang.String
mid
protected int
moduleId
protected static java.lang.String
SQL_ALL
protected static java.lang.String
SQL_AND
protected static java.lang.String
SQL_DELETE
protected static java.lang.String
SQL_DISTINCT
protected static java.lang.String
SQL_FROM
protected static java.lang.String
SQL_GROUP_BY
protected static java.lang.String
SQL_IN
protected static java.lang.String
SQL_INSERT
protected static java.lang.String
SQL_JOIN
protected static java.lang.String
SQL_LEFT_JOIN
protected static java.lang.String
SQL_NOT_IN
protected static java.lang.String
SQL_ON
protected static java.lang.String
SQL_ORDER_BY
protected static java.lang.String
SQL_SELECT
protected static java.lang.String
SQL_SET
protected static java.lang.String
SQL_UPDATE
protected static java.lang.String
SQL_WHERE
-
Constructor Summary
Constructors Constructor Description LicenseManager(java.sql.Connection con, int moduleId)
-
Method Summary
Modifier and Type Method Description boolean
checkCopyItemStatus(int copyItemId)
Проверяет, является ли статус для заказа данного компонента "выполнен" (если куплен) или "подтвержден" (если тестовый)boolean
checkHaveNonSignAdditionalAgreement(int copyId)
Проверка, есть ли не подписанный допик.protected void
closeConnection(java.sql.Connection con)
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)
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=28AdditionalAgreement
getAdditionalAgreement(int id)
Вернет допик по его идComponent
getComponent(int id)
Component
getComponent(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.String
getContractComment(int contractId)
Copy
getCopy(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)
Получает список копий продукта для заданного договора.License
getCurrentLicense(int copyId)
Получает текущую лицензию для заданной копии.java.math.BigDecimal
getDiscount(int contractId, int copyId)
Вернет скидку(ну или ту сумму которую они уже оплатили и которую необходимо учитовать).int
getLastNumber(int contractId)
Вернет максимальный номер допика для соответсвующего контракта.License
getLicenseById(int licenseId)
Получает текущую лицензию для заданной копии.java.util.List<ConfirmedOrder>
getLicenseItems(int licenseId, boolean testDateForNow)
java.util.List<License>
getLicenses(int copyId)
Получает список лицензий для заданной копии продуктаjava.lang.String
getLicenseText(int licenseId)
java.util.List<AdditionalAgreement>
getListAdditionalAgreement(int contractId, int copyId)
Order
getOrder(int orderId)
int
getOrderIdFromConfirmedId(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)
int
getOrdersCountOnComponent(int componentId)
int
getOrdersCountOnProduct(int productId)
int
getOrderStatus(int id)
int
getOrderType(int id)
java.lang.String
getOrganizationTitle(int contractId, int fullOrganizationNameParamId)
Получает наименование организации.java.lang.String
getOriginalLicenseText(int licenseId)
Product
getProduct(int pid)
java.util.List<Product>
getProducts()
java.util.List<Product>
getProductsWithComponent(int componentId)
java.util.List<SpecificationTitle>
getSpecificationOfAdditionalAgreement(int id)
Вернет список всех компонентов соответсвующего допика.ConfirmedOrder
groupCopyItems(int productItemId, int copyId, int[] orderStatuses)
Получает информацию заказанных компонентах ( id компонента, название компонента, количество) по заданному id компонента, группируя все заказы на данный компонентprotected int
lastInsertId(java.sql.PreparedStatement ps)
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(java.math.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, java.util.Date copyItemToDate)
void
updateLicenseData(License lic)
void
updateProduct(Product product)
Создает или обновляет запись о продукте.void
updateTestComponentDateTo(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:
-