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]客户订单页面新增提示单量提示

客户订单页面
打开页面,先判断‘是否按单收费’:
如果不是,则无需调用钱包接口,正常显示订单;如果是,则调用钱包客户单量查询接口,存在单量则页面提示‘当前剩余X单量,预计还可使用Y天;否则页面提示:您当前单量不足,为不影响您订单下载,请及时前往充值!
-----说明-----
a)预计可使用Y天:当前单量X/近7天内平均日单量,如存在小数则向上取整!
b)用户点击蓝色字体【前往充值】则跳转钱包系统地址。
----------------------------------------------------------
检测按单消费逻辑:
检测是否按单消费逻辑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相关数据,有配置分别是按单或不是按单消费配置,按单钱包单量不够和钱包单量大于0等情况。
计算过程中遇0计算场景,验证最近7天内单量为0,列表搜索添加时间是最近7天的全部订单数量 除以 7 保留2小数进行计算
也可以执行脚本获取7天日均单量
SELECT Cast(Count(1) / 7.00 AS DECIMAL(18, 2)) AS avgCount
FROM RB_OrderInfo (nolock)
WHERE CustomerID = 商户号
AND IsStockOrder = 0
AND AddTime >= Dateadd(DAY, -7, Getdate())
----------------------------------------------------------
业务逻辑:(每次查询后的文字显示存入缓存,缓存时间60分钟)
需要验证什么都没配置的场景,即以前商户数据,一上线可以运行正常,后面再测试根据实际客户配置进行处理逻辑。
a.判断如果是按单消费,则判断缓存是否为空,不为空显示1小时之前存储的缓存数据,为空则进行调用钱包接口。如果单量大于0
{
判断7天日均单量是否大于0,
{大于0则用钱包单量除以7天日均单量计算,显示:当前剩余xxx单量,预计还可使用yyy(向上取整)天;}
否则显示 {当前剩余 xxx单量,预计还可使用xxx天}
否则显示 {您当前单量不足,为不影响您订单下载,请及时前往充值 }。
----------------------------------------------------------
自测部分截图