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 boolean
checkCardPackets(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, т.е. чтобы сам с собой не обнаружил пересечение (например есть в БД а мы редактируем его же)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)
void
deleteCardPacket(int cardPacketId)
Удаление кардпакета по его id.void
deleteCardPackets(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)
Получение картапакетов, существующих в определенный период времени для определенных договоров, сортировка по коду карты.CardPacket
getCardPacket(int usercardId, int packetId, java.util.Date date)
Получение указанного пакета на указанной карте на нужную дату (дата - точка внутри открытого).CardPacket
getCardPacketById(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)
Список определённого статуса картпакетов договора на конкретную датуboolean
haveCardPackets(int userCardId)
Возвращает привязаны ли к карте пакеты.protected static boolean
isEqualSubscribe(java.util.List<CardPacket> list1, java.util.List<CardPacket> list2)
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)
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)
void
replaceCardPackets(int cid, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose)
Замена текущей подписки на новую.void
replaceCardPacketsUserCard(UserCard uc, java.util.Date dateFrom, java.util.Set<java.lang.Integer> newPacketIds, java.lang.String commentOpen, java.lang.String commentClose)
Замена текущей подписки на новую.void
synchronizeCardPacketFromTo(int uidSrc, int uidDest, java.util.Set<java.lang.Integer> ignorePackets, java.util.Date newDateFrom)
Клонирование всей подписки с одной карты на другую.void
truncatePacketsToCard(UserCard uc)
Костыль.void
updateCardPacket(CardPacket cardPacket)
Обновление/добавление кардпакета.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)
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.SQLException
ru.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
-