Категории: Все - controller - configuration - service - cycle

по Tatlum Crane 8 лет назад

318

Autopayment Scheme

The document details the procedures and components involved in managing cycles and autopayments within a billing system. It outlines the roles of various controllers such as AutopaymentController and CycleController in handling tasks like inserting cycles, getting active autopayments, and updating cycles.

Autopayment Scheme

CycleController -> void insertCycle(Cycle)

Cycle -> Calendar getStart()

CycleController -> Cycle generateCycle(Autopayment a)

ConfigurationParser -> IDictionary getStagesData(int cycleConfigId)
CycleCalculator -> Calendar calculateCycleStartDay(Service, Contract)
ConfigurationParser -> String getCycleStartDay(int cycleConfigId)
ConfigurationParser -> IDictionary getBindings()
ServiceController -> Service getService(Contract c)

CycleController -> boolean existActiveCycle(Autopayment a)

AutopaymentController -> List getActiveAutopayments(AutopaymentMode mode)

ru.ufanet.bgbilling.dyn.module.sberbank OperationType

ru.ufanet.bgbilling.dyn.module.sberbank Operation

ru.bitel.bgbilling.common.bean Autopayment

? Service

Cycle.Stage

ru.ufanet.bgbilling.dyn.module.sberbank CycleCalculator

ru.ufanet.bgbilling.dyn.module.sberbank ConfigurationParser

? ServiceController

OperationController

BillingCalculator
PlaceholderController

stage 1: Fill Cycles

CycleController

CycleCalculator
ConfigurationParser
ServiceController

AutopaymentController

ru.ufanet.bgbilling.dyn.kernel CachingBillingCalculator

ru.ufanet.bgbilling.dyn.kernel PlaceholderController

ru.ufanet.bgbilling.dyn.module.sberbank OperationController

ru.ufanet.bgbilling.dyn.module.sberbank CycleController

ru.ufanet.bgbilling.dyn.module.sberbank AutopaymentController

ru.ufanet.bgbilling.dyn.module.sberbank Cycle

Table: recommended_sum_cashe

Table: sberbank_autopaument_cycles_{mid}

ru.bitel.bgbilling.common.bean AutopaymentMode

stage 2: Work With Cycles

CycleController -> updateCycle(Cycle)

Cycle -> void setStop(Calendar)

Cycle -> boolean nextStage()

OperationController -> bool doOperation(Operation o, Autopayment a)

AutopaymentController -> void doAutopayment(Contract c, int mode, BigDecimal sum)
CachingBillingCalculator -> BigDecimal getRecommendedSum(Contract c, bool fromCache, long freshTime)
Operation: autopayment
PlaceholderController -> String processString(String s, Contract c)
-> String replace_nextAutopaymentDate(Contract c)
-> String replace_prevAutopaymentDate(Contract c)
-> String replace_recommendedSum(Contract c)
-> String replace_contract(Contract c)
Autopayment -> int getContractId()
ConfigurationParser -> String getSmsText(int smsId)
Operation: sms
Operation -> int getId()
Operation -> OperationType getType()
bool isPossibleOperation(Operation o, Autopayment a)

AutopaymentController -> Autopayment getAutopayment(int autopaymentId)

Cycle -> int getAutopaymentId()

Stage -> Calendar getDate()

Cycle -> Stage getCurrentStage()

CycleController -> List getActiveCycles()

Autopayment