RecurrRefund
来源:互联网 发布:网络教育英语作文 编辑:程序博客网 时间:2024/06/05 23:00
Zsmart RecurrRefund
1.计算之前会判断该订户是否处于阻塞状态,【SUBS_MIGRATION】表中的记录就是用来判断阻塞用的。
SUBS_MIGRATION包含如下三种状态:
NORMAL_STATE = '0',//表示未有迁移消息,这种情况下一般没有记录,这里暂且这样定义;
READY_STATE = '1',//表示前台发来消息准备迁移,后台进行清理
FINISH_STATE = '2' //表示后台清理完毕,发消息给前台进行迁移
2.判断是否为如下5种租费补收算费类型:
OWE_FEE_REFUND_MODE = 1, //充值补收租费子场景
STATE_CHANGE_REFUND_MODE = 2, //用户状态变更补收租费子场景
NEW_ORDER_REFUND_MODE = 3, //新订购产品或资费计划收取租费子场景
BILLING_CYCLE_CHANGE_REFUND_MODE = 4, //帐期切换补收租费子场景(EBS项目会使用)
FIRST_CALL_REFUND_MODE = 5, //首次通话收取预收帐期租子场景
2.1充值补收租费子场景
zxtool send 108 58007 "aaaaaaaaaaaaaaaaaaaa1329=1,201=1009743,211=1009881,3=20160824,1598=0"
根据传入的消息体中包含的信息,去查询OWE_EVENT_CHARGE中的欠费记录;
判断是否需要过滤重复记录,做相应过滤;
处理欠费记录
获取订户信息
解析欠费记录中的attr_list字段
根据欠费记录的欠费类型字段,做相应处理
RE_RATE_AND_REPAIRE = 'A', //需要重新算费,余额够扣才补收
REPAIRE_BY_OWE_CHARGE = 'B', //根据欠费直接补收,余额够扣才补收,该类型目前已被屏蔽
RE_RATE_AND_REPAIRE_BY_OWE_CHARGE = 'C', //根据欠费补收费用,但是仍然通过走周期费分拣配置重新批价的方式,资费的PYTHON中直接根据欠费补收,重新批价的好处是可以通过周期费分拣来配置后续的动作,包括触发短信通知,触发ASYN_CALL等
REPAIR_BY_OWE_AND_ACTIVE_DEPEND_PROD= 'D' //ZMP902318补收费用,直接根据 OWE_EVENT_CHARGE 中的欠费进行补收,补收成功时需要激活依赖产品
A:
1.过滤后收类型租费事件
2.重算ReRateAndRepair
2.1获取帐期信息
2.2执行周期费事件生成与算费GenEventAndRating
先生称租费事件m_pRecurrEventGenEngine->DealOneOweEventCharge
再执行算费m_pRecurrEventDealEngine->DealOneSubs这两步跟正常算费类似;
C:
目前完全复用上面A逻辑
D:
RepairByOweChargeAndActive,直接补收欠费费用,然后激活依赖产品【项目化的定制函数】
根据欠费记录的balid,找到余额账本,然后判断是否够扣,够扣时就将该欠费值扣到该账本上。
然后触发激活依赖产品事件【插入ASYN_CALL中】
更新欠费记录OWE_EVENT_CHARGE中的状态为CHARGE_STATE = '1', //已经收取
2.2用户状态变更补收租费子场景
只支持:后付费用户,不收取日租费用
zxtool send 108 58007 "aaaaaaaaaaaaaaaaaaaa1329=2,201=1009743,975=1009743,969=X,3=20160825000000,1000=20"
DealStateChange
获取订户信息
获取帐期信息
补收预收类型的【月租】/【N周租】周期费产品和资费计划的租费GenEventAndRating
生成周期费事件m_pRecurrEventGenEngine->DealStateChange:DealOneSubs
执行周期费算费m_pRecurrEventDealEngine->DealOneSubs
2.3新订购产品或资费计划收取租费子场景
只支持:帐务周期预收,不定周期预收,不支持日租新装的补收
注意:新订购场景,订购资料可能并未实时传递到后台MDBCC中,需要通过前台发送的消息携带的参数来计算,但订户订购的资费套餐,这些参数类数据,肯定是已经存在于RuleCache中的。
zxtool send 108 58007 "aaaaaaaaaaaaaaaaaaaa1329=3,254=Y,201=1009743,211=1009881,1109=196625,1102=3,3=20160825000000,104=20160801000000,16=1,973=1,5=086,812=15261850367,1000=20,881=196625"
ExecuteForNewOrder
对于三类租费【产品、商品、资费计划】
对于前台传入的参数:
1.要么iProdSpecId和iProdId同时大于零,
2.要么iSubsGoodsInstId和iGoodsProdSpecId同时大于零,这两种情况下,需要sSubsPricePlanList也大于零。
3.要么iSubsUppInstId和iPricePlanId大于零
GenEventAndRating
生成周期费事件m_pRecurrEventGenEngine->DealNewOrder,根据传入的新装产品类型,生成相应的租费事件;
执行周期费算费m_pRecurrEventDealEngine->DealOneSubs
2.4帐期切换补收租费子场景(EBS项目会使用)
帐期末切换补收租费:1329=4,201=xxx,973=xxx,986=xxx,921=2,3=xxx,1000=xxx 帐期末切换需要携带订户信息
实时切换补收租费:1329=4,211=xxx,973=xxx,986=xxx,921=1,3=xxx,1000=xxx实时切换时需要携带账户信息
月末帐期类型切换:DealBillingCycleChangeOnEndTime
获取订户信息
根据切换后帐期类型ID和切换时间获取切换后帐期ID
注意:此时只补收周期类型租费,不计算不定周期和日租租费
GenEventAndRating: DealBillingCycleChangeSubs: DealOneSubs
实时帐期类型切换:
产生帐期切换文件
2.5首次通话收取预收帐期租子场景
注意:只能收取帐务周期预收类租费
1329=5,201=xxx,3=xxx
DealFirstCall
获取订户信息
获取帐期信息
TRecurrEventGenEngine::DealOneSubs跟正常处理逻辑一致
m_pRecurrEventDealEngine->DealOneSubs
3.数据库提交相关操作
1.计算之前会判断该订户是否处于阻塞状态,【SUBS_MIGRATION】表中的记录就是用来判断阻塞用的。
SUBS_MIGRATION包含如下三种状态:
NORMAL_STATE = '0',//表示未有迁移消息,这种情况下一般没有记录,这里暂且这样定义;
READY_STATE = '1',//表示前台发来消息准备迁移,后台进行清理
FINISH_STATE = '2' //表示后台清理完毕,发消息给前台进行迁移
2.判断是否为如下5种租费补收算费类型:
OWE_FEE_REFUND_MODE = 1, //充值补收租费子场景
STATE_CHANGE_REFUND_MODE = 2, //用户状态变更补收租费子场景
NEW_ORDER_REFUND_MODE = 3, //新订购产品或资费计划收取租费子场景
BILLING_CYCLE_CHANGE_REFUND_MODE = 4, //帐期切换补收租费子场景(EBS项目会使用)
FIRST_CALL_REFUND_MODE = 5, //首次通话收取预收帐期租子场景
2.1充值补收租费子场景
zxtool send 108 58007 "aaaaaaaaaaaaaaaaaaaa1329=1,201=1009743,211=1009881,3=20160824,1598=0"
根据传入的消息体中包含的信息,去查询OWE_EVENT_CHARGE中的欠费记录;
判断是否需要过滤重复记录,做相应过滤;
处理欠费记录
获取订户信息
解析欠费记录中的attr_list字段
根据欠费记录的欠费类型字段,做相应处理
RE_RATE_AND_REPAIRE = 'A', //需要重新算费,余额够扣才补收
REPAIRE_BY_OWE_CHARGE = 'B', //根据欠费直接补收,余额够扣才补收,该类型目前已被屏蔽
RE_RATE_AND_REPAIRE_BY_OWE_CHARGE = 'C', //根据欠费补收费用,但是仍然通过走周期费分拣配置重新批价的方式,资费的PYTHON中直接根据欠费补收,重新批价的好处是可以通过周期费分拣来配置后续的动作,包括触发短信通知,触发ASYN_CALL等
REPAIR_BY_OWE_AND_ACTIVE_DEPEND_PROD= 'D' //ZMP902318补收费用,直接根据 OWE_EVENT_CHARGE 中的欠费进行补收,补收成功时需要激活依赖产品
A:
1.过滤后收类型租费事件
2.重算ReRateAndRepair
2.1获取帐期信息
2.2执行周期费事件生成与算费GenEventAndRating
先生称租费事件m_pRecurrEventGenEngine->DealOneOweEventCharge
再执行算费m_pRecurrEventDealEngine->DealOneSubs这两步跟正常算费类似;
C:
目前完全复用上面A逻辑
D:
RepairByOweChargeAndActive,直接补收欠费费用,然后激活依赖产品【项目化的定制函数】
根据欠费记录的balid,找到余额账本,然后判断是否够扣,够扣时就将该欠费值扣到该账本上。
然后触发激活依赖产品事件【插入ASYN_CALL中】
更新欠费记录OWE_EVENT_CHARGE中的状态为CHARGE_STATE = '1', //已经收取
2.2用户状态变更补收租费子场景
只支持:后付费用户,不收取日租费用
zxtool send 108 58007 "aaaaaaaaaaaaaaaaaaaa1329=2,201=1009743,975=1009743,969=X,3=20160825000000,1000=20"
DealStateChange
获取订户信息
获取帐期信息
补收预收类型的【月租】/【N周租】周期费产品和资费计划的租费GenEventAndRating
生成周期费事件m_pRecurrEventGenEngine->DealStateChange:DealOneSubs
执行周期费算费m_pRecurrEventDealEngine->DealOneSubs
2.3新订购产品或资费计划收取租费子场景
只支持:帐务周期预收,不定周期预收,不支持日租新装的补收
注意:新订购场景,订购资料可能并未实时传递到后台MDBCC中,需要通过前台发送的消息携带的参数来计算,但订户订购的资费套餐,这些参数类数据,肯定是已经存在于RuleCache中的。
zxtool send 108 58007 "aaaaaaaaaaaaaaaaaaaa1329=3,254=Y,201=1009743,211=1009881,1109=196625,1102=3,3=20160825000000,104=20160801000000,16=1,973=1,5=086,812=15261850367,1000=20,881=196625"
ExecuteForNewOrder
对于三类租费【产品、商品、资费计划】
对于前台传入的参数:
1.要么iProdSpecId和iProdId同时大于零,
2.要么iSubsGoodsInstId和iGoodsProdSpecId同时大于零,这两种情况下,需要sSubsPricePlanList也大于零。
3.要么iSubsUppInstId和iPricePlanId大于零
GenEventAndRating
生成周期费事件m_pRecurrEventGenEngine->DealNewOrder,根据传入的新装产品类型,生成相应的租费事件;
执行周期费算费m_pRecurrEventDealEngine->DealOneSubs
2.4帐期切换补收租费子场景(EBS项目会使用)
帐期末切换补收租费:1329=4,201=xxx,973=xxx,986=xxx,921=2,3=xxx,1000=xxx 帐期末切换需要携带订户信息
实时切换补收租费:1329=4,211=xxx,973=xxx,986=xxx,921=1,3=xxx,1000=xxx实时切换时需要携带账户信息
月末帐期类型切换:DealBillingCycleChangeOnEndTime
获取订户信息
根据切换后帐期类型ID和切换时间获取切换后帐期ID
注意:此时只补收周期类型租费,不计算不定周期和日租租费
GenEventAndRating: DealBillingCycleChangeSubs: DealOneSubs
实时帐期类型切换:
产生帐期切换文件
2.5首次通话收取预收帐期租子场景
注意:只能收取帐务周期预收类租费
1329=5,201=xxx,3=xxx
DealFirstCall
获取订户信息
获取帐期信息
TRecurrEventGenEngine::DealOneSubs跟正常处理逻辑一致
m_pRecurrEventDealEngine->DealOneSubs
3.数据库提交相关操作
0 0