Class CardPacketManager
java.lang.Object
ru.bitel.bgbilling.modules.cerbercrypt.server.bean.CardPacketManager
Менеджер картпакетов.
-
Constructor Summary
ConstructorDescriptionCardPacketManager
(Connection con, int mid) CardPacketManager
(Connection con, int mid, int userId) -
Method Summary
Modifier and TypeMethodDescriptionboolean
checkCardPackets
(UserCard card) Проверка выпадения картапакетов (уже существующих в БД) из интервала активности карты.checkConflictSamePackets
(Integer userCardId, Integer packetId, Date dateFrom, Date dateTo, Integer selfCardPacketId) проверяет картпакет на конфликты с таким же пакетом существующим на какую-то из дат периода возвращает найденные конфликтующие картпакеты, или пустой список, null быть не может точно такой же исключается, если указан selfCardPacketId, т.е. чтобы сам с собой не обнаружил пересечение (например есть в БД а мы редактируем его же)void
closeCardPackets
(ParameterMap moduleSetup, CardPacketManager cpm, Map<Integer, Packet> packetMap, int cid, int cardId, List<CardPacket> close, Date closeDate, Calendar now, boolean check) void
deleteCardPacket
(int cardPacketId) Удаление кардпакета по его id.void
deleteCardPackets
(int usercardId) Удаление всех кардпакетов юзеркарты по id юзеркарты.getActiveCardPacketList
(Calendar date, Integer userCardId) Список активных картапакетовgetActiveCardPacketList
(Calendar date, Collection<Integer> userCardIds) Список активных (по дате и статусу) картпакетов для нескольких карт.Получение картапакетов, существующих в определенный период времени для определенных договоров, сортировка по коду карты.getCardPacket
(int usercardId, int packetId, Date date) Получение указанного пакета на указанной карте на нужную дату (дата - точка внутри открытого).getCardPacketById
(int cardPacketId) Кардпакет по его id.getCardPacketList
(int userCardId) Список всех картпакетов что привязаны к указанной юзеркарте.getCardPacketList
(int cid, int usercardId, int objectId, Date date, boolean virtualCinema) getCardPacketList
(int cid, int usercardId, Date date, boolean virtualCinema) getCardPacketList
(int cid, Date date) Список картпакетов договораgetCardPacketList
(Calendar date) Получение картапакетов существующих в определенную дату.getCardPacketListByPacketId
(int packetId) Возвращает все картпакеты, использующие указанный пакет.getContractActiveCardPacketList
(Calendar date, int cid) Deprecated.getStatusedCardPacketList( date, cid, CardPacket.STATUS_ACTIVE )getFutureCardPacketList
(int cid, int usercardId, Date date) Получение всех будущих (дата начала больше указанной) кардпакетов юзеркарты по id юзеркарты и cid.getStatusedCardPacketList
(Calendar date, int cid, int cardPacketStatus) Список определённого статуса картпакетов договора на конкретную датуboolean
haveCardPackets
(int userCardId) Возвращает привязаны ли к карте пакеты.protected static boolean
isEqualSubscribe
(List<CardPacket> list1, List<CardPacket> list2) void
openCardPackets
(ParameterMap moduleSetup, CardPacketManager cpm, Map<Integer, Packet> packetMap, int cid, int usercardId, List<CardPacket> add, Calendar now, boolean check) void
removeCardPackets
(ParameterMap moduleSetup, CardPacketManager cpm, Map<Integer, Packet> packetMap, int cid, int cardId, List<CardPacket> remove, Calendar now, boolean check) void
replaceCardPackets
(int cid, Date dateFrom, Set<Integer> newPacketIds, String commentOpen, String commentClose) Замена текущей подписки на новую.void
replaceCardPacketsUserCard
(UserCard uc, Date dateFrom, Set<Integer> newPacketIds, String commentOpen, String commentClose) Замена текущей подписки на новую.void
synchronizeCardPacketFromTo
(int uidSrc, int uidDest, Set<Integer> ignorePackets, Date newDateFrom) Клонирование всей подписки с одной карты на другую.void
Костыль.void
updateCardPacket
(CardPacket cardPacket) Обновление/добавление кардпакета.void
updateCardPackets
(ParameterMap moduleSetup, CardPacketManager cpm, Map<Integer, Packet> packetMap, int cid, int cardId, List<CardPacket> update, Calendar now, boolean check)
-
Constructor Details
-
CardPacketManager
-
CardPacketManager
-
-
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 List<CardPacket> getCardPacketList(int cid, int usercardId, Date date, boolean virtualCinema) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketList
public List<CardPacket> getCardPacketList(int cid, int usercardId, int objectId, Date date, boolean virtualCinema) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
getFutureCardPacketList
public List<CardPacket> getFutureCardPacketList(int cid, int usercardId, 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 List<CardPacket> getCalculateCardPacketList(Date fromDate, Date toDate, String cids, String ucids, String pids) throws ru.bitel.bgbilling.common.BGException Получение картапакетов, существующих в определенный период времени для определенных договоров, сортировка по коду карты. Если cids null/пустой, то не учитывается, по всем договорам. Внимание: не учитываются статусы, зависимости, привязки подчинённых к "основным" итд, только период действия учитываются и список договоров. ВНУТРИ: сортировка по коду карты ОБЯЗАТЕЛЬНА!, на это завязан алгоритм обсчета.- Parameters:
fromDate
- начало периода, если null то не проверяется (бесконечно)toDate
- окончание периода, если null то не проверяется (бесконечно)cids
- список кодов договоров через запятую, если нет - то игнорируются.ucids
- список юзеркарт через запятую, доп.фильтр, если нет - то игнорируются (все карты договора берутся).pids
- список кодов пакетов через запятую, если нет - игнорируются (все пакеты), добавлено для проверки на пересечение с конфликтными- Returns:
- Лист картапакетов, не null.
- Throws:
SQLException
ru.bitel.bgbilling.common.BGException
-
getCardPacketList
public List<CardPacket> getCardPacketList(Calendar date) throws ru.bitel.bgbilling.common.BGException Получение картапакетов существующих в определенную дату.- Parameters:
date
- дата- Returns:
- Лист картапакетов.
- Throws:
ru.bitel.bgbilling.common.BGException
-
getActiveCardPacketList
public List<CardPacket> getActiveCardPacketList(Calendar date, Integer userCardId) throws ru.bitel.bgbilling.common.BGException Список активных картапакетов- Parameters:
userCardId
- ид юзер_карты, если null - фильтр не используетсяdate
- дата- Returns:
- список
- Throws:
ru.bitel.bgbilling.common.BGException
-
getActiveCardPacketList
public List<CardPacket> getActiveCardPacketList(Calendar date, Collection<Integer> userCardIds) throws ru.bitel.bgbilling.common.BGException Список активных (по дате и статусу) картпакетов для нескольких карт.- Parameters:
userCardIds
- ид юзер_карт, если null - фильтр не используетсяdate
- дата- Returns:
- список
- Throws:
ru.bitel.bgbilling.common.BGException
-
getStatusedCardPacketList
public List<CardPacket> getStatusedCardPacketList(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 List<CardPacket> getContractActiveCardPacketList(Calendar date, int cid) throws ru.bitel.bgbilling.common.BGException Deprecated.getStatusedCardPacketList( date, cid, CardPacket.STATUS_ACTIVE )- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacket
public CardPacket getCardPacket(int usercardId, int packetId, Date date) throws ru.bitel.bgbilling.common.BGException Получение указанного пакета на указанной карте на нужную дату (дата - точка внутри открытого). Подразумевается, что не больше одного (иначе берётся первый попавшийся). Для пакетов обычных дата округляется до дня, для virtual_cinema не округляется.- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketList
public List<CardPacket> getCardPacketList(int cid, Date date) throws ru.bitel.bgbilling.common.BGException Список картпакетов договора- Parameters:
cid
- договорdate
- дата на которую должен быть периодом, или null если не учитывать- Returns:
- список картпакетов
- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketList
public List<CardPacket> getCardPacketList(int userCardId) throws ru.bitel.bgbilling.common.BGException Список всех картпакетов что привязаны к указанной юзеркарте.- Parameters:
userCardId
- id юзеркарты, должно быть задано.- Returns:
- список всех картпакетов.
- Throws:
ru.bitel.bgbilling.common.BGException
-
getCardPacketListByPacketId
public 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, Map<Integer, Packet> packetMap, int cid, int usercardId, List<CardPacket> add, Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
removeCardPackets
public void removeCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, Map<Integer, Packet> packetMap, int cid, int cardId, List<CardPacket> remove, Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
closeCardPackets
public void closeCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, Map<Integer, Packet> packetMap, int cid, int cardId, List<CardPacket> close, Date closeDate, Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
updateCardPackets
public void updateCardPackets(ParameterMap moduleSetup, CardPacketManager cpm, Map<Integer, Packet> packetMap, int cid, int cardId, List<CardPacket> update, Calendar now, boolean check) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
synchronizeCardPacketFromTo
public void synchronizeCardPacketFromTo(int uidSrc, int uidDest, Set<Integer> ignorePackets, Date newDateFrom) throws ru.bitel.bgbilling.common.BGException Клонирование всей подписки с одной карты на другую. Используется в мультируме, например. Делаться старается умно и подразумевается что многократный вызов делать лишнего не будет. Делаем все, не только активные.- Parameters:
uidSrc
- ид юзер_карты откуда копироватьuidDest
- ид юзер_карты куда копироватьignorePackets
- ид пакетов которые игнорировать при переносеnewDateFrom
- дата, которую ставить как dateFrom для создаваемых пакетов, если null то оставлять как на оригинальной карте- Throws:
ru.bitel.bgbilling.common.BGException
-
isEqualSubscribe
-
truncatePacketsToCard
Костыль. Предназначние: "обрезка пакетов карты под её период". Выполняется изначально при закрытии "update" зависимой карты, ибо иначе ругается, что пакеты выходят за пределы. На будущее подумать: 1) вынести такой вопрос при закрытии и на обычные карты, т.е. при закрытии если с периодами беда спросить "подрезать пакеты" 2) отказаться от этого и просто не проверять пакеты для зависимых карт при закрытии.- Throws:
ru.bitel.bgbilling.common.BGException
-
replaceCardPackets
public void replaceCardPackets(int cid, Date dateFrom, Set<Integer> newPacketIds, String commentOpen, 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, Date dateFrom, Set<Integer> newPacketIds, String commentOpen, String commentClose) throws ru.bitel.bgbilling.common.BGException Замена текущей подписки на новую. Закрытие текущей (если есть), удаление будущей (если есть), и открытие указанной. Для автодействий. Для отдельной юзеркарты.- Throws:
ru.bitel.bgbilling.common.BGException
-
checkConflictSamePackets
public List<CardPacket> checkConflictSamePackets(Integer userCardId, Integer packetId, Date dateFrom, Date dateTo, Integer selfCardPacketId) throws ru.bitel.bgbilling.common.BGException проверяет картпакет на конфликты с таким же пакетом существующим на какую-то из дат периода возвращает найденные конфликтующие картпакеты, или пустой список, null быть не может точно такой же исключается, если указан selfCardPacketId, т.е. чтобы сам с собой не обнаружил пересечение (например есть в БД а мы редактируем его же)- Throws:
ru.bitel.bgbilling.common.BGException
-