Class CardPacketManager
java.lang.Object
ru.bitel.bgbilling.modules.cerbercrypt.server.bean.CardPacketManager
public class CardPacketManager
extends java.lang.Object
Менеджер картпакетов.
-
Constructor Summary
Constructors Constructor Description CardPacketManager(java.sql.Connection con, int mid)CardPacketManager(java.sql.Connection con, int mid, int userId) -
Method Summary
Modifier and Type Method Description booleancheckCardPackets(UserCard card)Проверка выпадения картапакетов (уже существующих в БД) из интервала активности карты.java.util.List<CardPacket>checkConflictSamePackets(java.lang.Integer userCardId, java.lang.Integer packetId, java.util.Date dateFrom, java.util.Date dateTo, java.lang.Integer selfCardPacketId)проверяет картпакет на конфликты с таким же пакетом существующим на какую-то из дат периода возвращает найденные конфликтующие картпакеты, или пустой список, null быть не может точно такой же исключается, если указан selfCardPacketId, т.е. чтобы сам с собой не обнаружил пересечение (например есть в БД а мы редактируем его же)voidcloseCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> close, java.util.Date closeDate, java.util.Calendar now, boolean check)voiddeleteCardPacket(int cardPacketId)Удаление кардпакета по его id.voiddeleteCardPackets(int usercardId)Удаление всех кардпакетов юзеркарты по id юзеркарты.java.util.List<CardPacket>getActiveCardPacketList(java.util.Calendar date, java.lang.Integer userCardId)Список активных картапакетовjava.util.List<CardPacket>getActiveCardPacketList(java.util.Calendar date, java.util.Collection<java.lang.Integer> userCardIds)Список активных (по дате и статусу) картпакетов для нескольких карт.java.util.List<CardPacket>getCalculateCardPacketList(java.util.Date fromDate, java.util.Date toDate, java.lang.String cids, java.lang.String ucids, java.lang.String pids)Получение картапакетов, существующих в определенный период времени для определенных договоров, сортировка по коду карты.CardPacketgetCardPacket(int usercardId, int packetId, java.util.Date date)Получение указанного пакета на указанной карте на нужную дату (дата - точка внутри открытого).CardPacketgetCardPacketById(int cardPacketId)Кардпакет по его id.java.util.List<CardPacket>getCardPacketList(int userCardId)Список всех картпакетов что привязаны к указанной юзеркарте.java.util.List<CardPacket>getCardPacketList(int cid, int usercardId, int objectId, java.util.Date date, boolean virtualCinema)java.util.List<CardPacket>getCardPacketList(int cid, int usercardId, java.util.Date date, boolean virtualCinema)java.util.List<CardPacket>getCardPacketList(int cid, java.util.Date date)Список картпакетов договораjava.util.List<CardPacket>getCardPacketList(java.util.Calendar date)Получение картапакетов существующих в определенную дату.java.util.List<CardPacket>getCardPacketListByPacketId(int packetId)Возвращает все картпакеты, использующие указанный пакет.java.util.List<CardPacket>getContractActiveCardPacketList(java.util.Calendar date, int cid)Deprecated.getStatusedCardPacketList( date, cid, CardPacket.STATUS_ACTIVE )java.util.List<CardPacket>getFutureCardPacketList(int cid, int usercardId, java.util.Date date)Получение всех будущих (дата начала больше указанной) кардпакетов юзеркарты по id юзеркарты и cid.java.util.List<CardPacket>getStatusedCardPacketList(java.util.Calendar date, int cid, int cardPacketStatus)Список определённого статуса картпакетов договора на конкретную датуbooleanhaveCardPackets(int userCardId)Возвращает привязаны ли к карте пакеты.protected static booleanisEqualSubscribe(java.util.List<CardPacket> list1, java.util.List<CardPacket> list2)voidopenCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,Packet> packetMap, int cid, int usercardId, java.util.List<CardPacket> add, java.util.Calendar now, boolean check)voidremoveCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> remove, java.util.Calendar now, boolean check)voidreplaceCardPackets(int cid, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose)Замена текущей подписки на новую.voidreplaceCardPacketsUserCard(UserCard uc, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose)Замена текущей подписки на новую.voidsynchronizeCardPacketFromTo(int uidSrc, int uidDest, java.util.Set<java.lang.Integer> ignorePackets, java.util.Date newDateFrom)Клонирование всей подписки с одной карты на другую.voidtruncatePacketsToCard(UserCard uc)Костыль.voidupdateCardPacket(CardPacket cardPacket)Обновление/добавление кардпакета.voidupdateCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> update, java.util.Calendar now, boolean check)Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
CardPacketManager
public CardPacketManager(java.sql.Connection con, int mid) -
CardPacketManager
public CardPacketManager(java.sql.Connection con, int mid, int userId)
-
-
Method Details
-
updateCardPacket
Обновление/добавление кардпакета.- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketById
Кардпакет по его id.- Throws:
ru.bitel.bgbilling.common.BGException
-
deleteCardPacket
public void deleteCardPacket(int cardPacketId) throws ru.bitel.bgbilling.common.BGExceptionУдаление кардпакета по его id.- Throws:
ru.bitel.bgbilling.common.BGException
-
deleteCardPackets
public void deleteCardPackets(int usercardId) throws ru.bitel.bgbilling.common.BGExceptionУдаление всех кардпакетов юзеркарты по id юзеркарты.- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketList
public java.util.List<CardPacket> getCardPacketList(int cid, int usercardId, java.util.Date date, boolean virtualCinema) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketList
public java.util.List<CardPacket> getCardPacketList(int cid, int usercardId, int objectId, java.util.Date date, boolean virtualCinema) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
getFutureCardPacketList
public java.util.List<CardPacket> getFutureCardPacketList(int cid, int usercardId, java.util.Date date) throws ru.bitel.bgbilling.common.BGExceptionПолучение всех будущих (дата начала больше указанной) кардпакетов юзеркарты по id юзеркарты и cid.- Throws:
ru.bitel.bgbilling.common.BGException
-
haveCardPackets
public boolean haveCardPackets(int userCardId) throws ru.bitel.bgbilling.common.BGExceptionВозвращает привязаны ли к карте пакеты.- Parameters:
userCardId- ид юзеркарты.- Returns:
- true - привязаны.
- Throws:
ru.bitel.bgbilling.common.BGException
-
checkCardPackets
Проверка выпадения картапакетов (уже существующих в БД) из интервала активности карты.- Parameters:
card- юзеркарта- Returns:
- - true если все выпадает хоть один
- Throws:
ru.bitel.bgbilling.common.BGException
-
getCalculateCardPacketList
public java.util.List<CardPacket> getCalculateCardPacketList(java.util.Date fromDate, java.util.Date toDate, java.lang.String cids, java.lang.String ucids, java.lang.String pids) throws ru.bitel.bgbilling.common.BGExceptionПолучение картапакетов, существующих в определенный период времени для определенных договоров, сортировка по коду карты. Если cids null/пустой, то не учитывается, по всем договорам. Внимание: не учитываются статусы, зависимости, привязки подчинённых к "основным" итд, только период действия учитываются и список договоров. ВНУТРИ: сортировка по коду карты ОБЯЗАТЕЛЬНА!, на это завязан алгоритм обсчета.- Parameters:
fromDate- начало периода, если null то не проверяется (бесконечно)toDate- окончание периода, если null то не проверяется (бесконечно)cids- список кодов договоров через запятую, если нет - то игнорируются.ucids- список юзеркарт через запятую, доп.фильтр, если нет - то игнорируются (все карты договора берутся).pids- список кодов пакетов через запятую, если нет - игнорируются (все пакеты), добавлено для проверки на пересечение с конфликтными- Returns:
- Лист картапакетов, не null.
- Throws:
java.sql.SQLExceptionru.bitel.bgbilling.common.BGException
-
getCardPacketList
public java.util.List<CardPacket> getCardPacketList(java.util.Calendar date) throws ru.bitel.bgbilling.common.BGExceptionПолучение картапакетов существующих в определенную дату.- Parameters:
date- дата- Returns:
- Лист картапакетов.
- Throws:
ru.bitel.bgbilling.common.BGException
-
getActiveCardPacketList
public java.util.List<CardPacket> getActiveCardPacketList(java.util.Calendar date, java.lang.Integer userCardId) throws ru.bitel.bgbilling.common.BGExceptionСписок активных картапакетов- Parameters:
userCardId- ид юзер_карты, если null - фильтр не используетсяdate- дата- Returns:
- список
- Throws:
ru.bitel.bgbilling.common.BGException
-
getActiveCardPacketList
public java.util.List<CardPacket> getActiveCardPacketList(java.util.Calendar date, java.util.Collection<java.lang.Integer> userCardIds) throws ru.bitel.bgbilling.common.BGExceptionСписок активных (по дате и статусу) картпакетов для нескольких карт.- Parameters:
userCardIds- ид юзер_карт, если null - фильтр не используетсяdate- дата- Returns:
- список
- Throws:
ru.bitel.bgbilling.common.BGException
-
getStatusedCardPacketList
public java.util.List<CardPacket> getStatusedCardPacketList(java.util.Calendar date, int cid, int cardPacketStatus) throws ru.bitel.bgbilling.common.BGExceptionСписок определённого статуса картпакетов договора на конкретную дату- Parameters:
date- датаcid- код договораcardPacketStatus- статус картпакета(!)- Returns:
- список картпакетов.
- Throws:
ru.bitel.bgbilling.common.BGException
-
getContractActiveCardPacketList
@Deprecated public java.util.List<CardPacket> getContractActiveCardPacketList(java.util.Calendar date, int cid) throws ru.bitel.bgbilling.common.BGExceptionDeprecated.getStatusedCardPacketList( date, cid, CardPacket.STATUS_ACTIVE )- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacket
public CardPacket getCardPacket(int usercardId, int packetId, java.util.Date date) throws ru.bitel.bgbilling.common.BGExceptionПолучение указанного пакета на указанной карте на нужную дату (дата - точка внутри открытого). Подразумевается, что не больше одного (иначе берётся первый попавшийся). Для пакетов обычных дата округляется до дня, для virtual_cinema не округляется.- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketList
public java.util.List<CardPacket> getCardPacketList(int cid, java.util.Date date) throws ru.bitel.bgbilling.common.BGExceptionСписок картпакетов договора- Parameters:
cid- договорdate- дата на которую должен быть периодом, или null если не учитывать- Returns:
- список картпакетов
- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketList
public java.util.List<CardPacket> getCardPacketList(int userCardId) throws ru.bitel.bgbilling.common.BGExceptionСписок всех картпакетов что привязаны к указанной юзеркарте.- Parameters:
userCardId- id юзеркарты, должно быть задано.- Returns:
- список всех картпакетов.
- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketListByPacketId
public java.util.List<CardPacket> getCardPacketListByPacketId(int packetId) throws ru.bitel.bgbilling.common.BGExceptionВозвращает все картпакеты, использующие указанный пакет.- Parameters:
packetId- пакетИд- Returns:
- список картпакетов
- Throws:
ru.bitel.bgbilling.common.BGException
-
openCardPackets
public void openCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,Packet> packetMap, int cid, int usercardId, java.util.List<CardPacket> add, java.util.Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
removeCardPackets
public void removeCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> remove, java.util.Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
closeCardPackets
public void closeCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> close, java.util.Date closeDate, java.util.Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
updateCardPackets
public void updateCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, java.util.Map<java.lang.Integer,Packet> packetMap, int cid, int cardId, java.util.List<CardPacket> update, java.util.Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
synchronizeCardPacketFromTo
public void synchronizeCardPacketFromTo(int uidSrc, int uidDest, java.util.Set<java.lang.Integer> ignorePackets, java.util.Date newDateFrom) throws ru.bitel.bgbilling.common.BGExceptionКлонирование всей подписки с одной карты на другую. Используется в мультируме, например. Делаться старается умно и подразумевается что многократный вызов делать лишнего не будет. Делаем все, не только активные.- Parameters:
uidSrc- ид юзер_карты откуда копироватьuidDest- ид юзер_карты куда копироватьignorePackets- ид пакетов которые игнорировать при переносеnewDateFrom- дата, которую ставить как dateFrom для создаваемых пакетов, если null то оставлять как на оригинальной карте- Throws:
ru.bitel.bgbilling.common.BGException
-
isEqualSubscribe
protected static boolean isEqualSubscribe(java.util.List<CardPacket> list1, java.util.List<CardPacket> list2) -
truncatePacketsToCard
Костыль. Предназначние: "обрезка пакетов карты под её период". Выполняется изначально при закрытии "update" зависимой карты, ибо иначе ругается, что пакеты выходят за пределы. На будущее подумать: 1) вынести такой вопрос при закрытии и на обычные карты, т.е. при закрытии если с периодами беда спросить "подрезать пакеты" 2) отказаться от этого и просто не проверять пакеты для зависимых карт при закрытии.- Throws:
ru.bitel.bgbilling.common.BGException
-
replaceCardPackets
public void replaceCardPackets(int cid, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose) throws ru.bitel.bgbilling.common.BGExceptionЗамена текущей подписки на новую. Закрытие текущей (если есть), удаление будущей (если есть), и открытие указанной. Для автодействий.- Parameters:
cid- На всех картах договора.dateFrom- От указанной даты. [!] Предполагается, что дата должна быть как минимум "сегодня".newPacketIds- новые пакеты для открытия.commentOpen- комментарий новой подписки - каждого пакета.commentClose- комментарий закрытой подписки - каждого пакета.- Throws:
ru.bitel.bgbilling.common.BGException
-
replaceCardPacketsUserCard
public void replaceCardPacketsUserCard(UserCard uc, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose) throws ru.bitel.bgbilling.common.BGExceptionЗамена текущей подписки на новую. Закрытие текущей (если есть), удаление будущей (если есть), и открытие указанной. Для автодействий. Для отдельной юзеркарты.- Throws:
ru.bitel.bgbilling.common.BGException
-
checkConflictSamePackets
public java.util.List<CardPacket> checkConflictSamePackets(java.lang.Integer userCardId, java.lang.Integer packetId, java.util.Date dateFrom, java.util.Date dateTo, java.lang.Integer selfCardPacketId) throws ru.bitel.bgbilling.common.BGExceptionпроверяет картпакет на конфликты с таким же пакетом существующим на какую-то из дат периода возвращает найденные конфликтующие картпакеты, или пустой список, null быть не может точно такой же исключается, если указан selfCardPacketId, т.е. чтобы сам с собой не обнаружил пересечение (например есть в БД а мы редактируем его же)- Throws:
ru.bitel.bgbilling.common.BGException
-