1. 需求概述
1.1. 背景
ERP目前门槛比较高,适用于中大型跨境电商企业,公司为拓展中小型跨境企业市场,特推出ERP1.0充值版,主要是通过购买订单量的方式来引入小型电商公司使用我们ERP。
1.2. 目标
推出ERP1.0充值版,为公司拓展市场份额。
2. 功能设计
2.1. 流程图
2.3. 对接外部接口
2.3.1 判断是否按单收费
select b.*,a.CustomerID,b.RenewalMethod as '续费方式:1:按单续费,2按时续费' from RB_VersionType_Customer a with(nolock) inner join RB_VersionType b with(nolock)
on a.VersionTypeID=b.ID where a.CustomerID=1
这个是产品3部杨文胜组提供的sql,其中续费方式为‘1:按单续费’,代表是按单收费,需要调用赛盒钱包;否则无需调用钱包接口,按照原逻辑下载或者添加订单
2.3.2 赛盒钱包接口
a)客户单量查询接口
协议名称:GetFeeItemList,服务ID:13
b)客户单量扣减接口
协议名称:UpdatePaymentNumber,服务ID:13
c)前往充值跳转地址协议名称:钱包购买跳转接口,服务ID:13
注:客户单量服务ID:13。赛盒钱包对外接口文档见附件!

2.3. 客户订单
2.3.1 需求说明
1、订单下载
在下载前,先判断‘是否按单收费’:
如果不是,则无需调用钱包接口,直接下载订单;
如果是,则调用钱包客户单量查询接口,存在单量则进行下载,否则直接停止下载。
注:如果客户超过7天再充值,那么系统自动同步3天内订单;如果再7天内充值,则接着上次队列继续下载。
2、订单映射
映射前,先判断‘是否按单收费’:
如果不是,则无需调用钱包接口,直接下载订单;
如果是,则调用钱包客户单量扣减接口,扣减成功之后将订单映射客户订单业务表,否则停止映射。
3、手工建单
保存订单的时候,先判断‘是否按单收费’:
如果不是,则无需调用钱包接口,直接保存订单;
如果是,则调用钱包客户单量扣减接口,扣减成功则保存订单成功,否则保存失败并将接口返回错误信息提示给用户。
涉及功能:新建、复制、批量复制、无API导入、赛盒对接API接口
4、客户订单
打开页面,先判断‘是否按单收费’:
如果不是,则无需调用钱包接口,正常显示订单;
如果是,则调用钱包客户单量查询接口,存在单量则页面提示‘当前剩余X单量,预计还可使用Y天;否则页面提示:您当前单量不足,为不影响您订单下载,请及时前往充值!
-----说明-----
a)预计可使用Y天:当前单量X/近7天内平均日单量,如存在小数则向上取整!
b)用户点击蓝色字体【前往充值】则跳转钱包系统地址。
2.3.2 原型页面

- #43398 [10703]不开启单量限制时,订单下载到ERP不受限制
- #43399 [10703]不开启单量限制时,手工新建订单不受限制
- #43400 [10703]不开启单量限制时,复制创建订单不受限制
- #43401 [10703]不开启单量限制时,批量复制订单不受限制
- #43402 [10703]不开启单量限制时,无API导入订单不受限制
- #43403 [10703]不开启单量限制时,赛盒对外接口创建订单不受限制
- #43404 [10703]不开启单量限制时,拆分创建订单不受限制
- #43405 [10703]开启单量限制时,单量充足,订单下载到ERP不受限制
- #43406 [10703]开启单量限制时,单量充足,手工新建订单不受限制
- #43407 [10703]开启单量限制时,单量充足,复制创建订单不受限制
- #43408 [10703]开启单量限制时,单量充足,批量复制订单不受限制
- #43409 [10703]开启单量限制时,单量充足,无API导入订单不受限制
- #43410 [10703]开启单量限制时,单量充足,赛盒对外接口创建订单不受限制
- #43411 [10703]开启单量限制时,单量充足,拆分创建订单不受限制
- #43412 [10703]开启单量限制时,单量不足,订单下载到ERP受限制
- #43413 [10703]开启单量限制时,单量不足,手工新建订单受限制
- #43414 [10703]开启单量限制时,单量不足,复制创建订单受限制
- #43415 [10703]开启单量限制时,单量不足,批量复制订单受限制
- #43416 [10703]开启单量限制时,单量不足,无API导入订单受限制
- #43417 [10703]开启单量限制时,单量不足,赛盒对外接口创建订单受限制
- #43418 [10703]开启单量限制时,单量不足,拆分创建订单受限制
- #43419 [10703]客户订单页面新增提示单量提示

检测是否按单消费逻辑sql,当字段RenewalMethod=1表示为按单续费(不是1或为空或者根本没配置表无数据表示按时,则不进行校验),才进行调用钱包接口获取钱包单量(RemaindNumber)
共享库
select b.*,a.CustomerID,b.RenewalMethod as '续费方式:1:按单续费,2按时续费' from RB_VersionType_Customer a with(nolock) inner join RB_VersionType b with(nolock)
on a.VersionTypeID=b.ID where a.CustomerID= 商户号
注意验证单个商户、多个商户渠道队列下载情况,其中单商户或多商户都未配置RB_VersionType_Customer和RB_VersionType相关数据,多商户只配置其中的商户,多商户全部配置,单商户钱包单量不够,多商户其中部分商户钱包单量不够,多商户钱包单量都不够和单量都足够等情况。
-------------------------------
订单表新增字段,用于下载回来的新增订单消费后的批次号(自定义单号),
------------------------------------
业务处理逻辑 (分多商户场景)
需要验证什么都没配置的场景,即以前商户数据,一上线可以运行正常,后面再测试根据实际客户配置进行处理逻辑。
ERP中间表 + 新销售平台中间表
执行订单映射策略。分单个商户和多个商户等数据,其中分多次测试:如该中间表映射全部都是新增订单,该中间表映射全部都是修改订单,该中间表含新增和修改的订单。其中如果是新增订单,在执行策略之前,手动创建了订单,需要过滤自建单逻辑(逻辑不变 代码有做细微调整)。
如果是按时消费(或者没配置,该功能上线)还是按原先逻辑执行,多少个订单就执行正常执行,且中间表ispross=1;
如果是按单消费,如果之前已经同步回来,后面检测到更新,则属于修改订单,正常执行保存。 如果是新增订单,判断钱包单量是否大于0,如果不大于0 ,该中间表待处理订单isprocess还是为0,直到用户操作续费充值后,系统再次获取待处理订单进行保存;如果大于0,则根据钱包单量进行消费处理。即:
如果中间表新增订单数量100个,钱包接口有大于100个,则中间表100个订单正常执行并且isprocess=1,扣减钱包消费单量;如果钱包接口单量小于100,则从中间表100个获取前(接口钱包单量)个数进行正常执行保存并且isprocess=0,扣减本次新增的单量钱包接口。剩下的订单中间表isprocess还是为0等充值再处理。
如果新增订单,在执行之前创建了订单,中间表该订单isprocess=1(排除自建单冒烟测试)