CN114896081A - 一种下单校验效率的提高方法 - Google Patents
一种下单校验效率的提高方法 Download PDFInfo
- Publication number
- CN114896081A CN114896081A CN202210206532.5A CN202210206532A CN114896081A CN 114896081 A CN114896081 A CN 114896081A CN 202210206532 A CN202210206532 A CN 202210206532A CN 114896081 A CN114896081 A CN 114896081A
- Authority
- CN
- China
- Prior art keywords
- scene
- user
- rule engine
- order
- ordering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/542—Intercept
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供的一种下单校验效率的提高方法包括:乘客登陆成功后,发送登陆成功事件推送给平台,与服务器建立长链接每30秒请求一次;订单接收到登陆事件,整合下单所需要的校验参数;在用户登陆时刻进行整合数据,并存入redis中;创建场景,写入规则引擎场景表;创建公共下单校验场景;创建拦截策略,写入规则引擎策略表;创建即时用车场景,预约用车场景,接机用车场景;根据需要不同服务类型创建拦截策略;采用规则引擎表达式语法写入规则引擎规则表。通过接入订单规则引擎,降低实际下单过程中对平台内部的接口调用,通过场景配置,将公共场景校验提取出来,不需要重复编码,校验的顺序灵活配置。
Description
技术领域
本发明涉及网约车领域,尤其涉及一种下单校验效率的提高方法。
背景技术
在当前网约车背景下,用户在下单过程中,会有大量的下单拦截校验,如黑名单校验,手机号规则校验,预定时间校验,进行中订单校验等,同时针对每一个下单场景校验逻辑会不同,如个人用户和企业用户,或者不同的服务类型,每次下单都会调用不同的校验接口。
现有技术方案:在下单过程中,进行订单拦截校验,针对每个下单场景一次进行校验,如以下顺序:针对不同服务类型场景:即时用车,预约用车,接机用车,送机用车等;请求用户中心,用户是否黑名单;用户手机号是否正确;请求订单查询,用户是否存在进行中订单;请求风控系统,用户是否为风险用户;等等校验拦截逻辑,如果命中其中一条则拦截下单。
随着校验逻辑越来越多,在下单过程中通过接口请求的方式,会使主流程下单越来越复杂,会存在一定的性能瓶颈,导致下单性能降低。
针对不同的下单场景,同样的校验逻辑代码需要反复编写,代码不易维护。
校验规则的顺序一旦需要调整,只能修改代码,灵活性不够。
发明内容
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种下单校验效率的提高方法。
根据本发明的一个方面,提供了一种下单校验效率的提高方法包括:
乘客在乘客端登陆;
乘客登陆成功后,发送登陆成功事件推送给平台,与服务器建立长链接每30秒请求一次;
订单接收到登陆事件,整合下单所需要的校验参数;
在用户登陆时刻进行整合数据,并存入redis中,所述redis的key为用户ID,过期时间设置为3分钟;
创建场景,写入规则引擎场景表,规则引擎场景表中的场景密钥可随机生成唯一字符串插入;
创建公共下单校验场景;
创建拦截策略,写入规则引擎策略表;
创建即时用车场景,预约用车场景,接机用车场景,送机用车场景;
根据需要不同服务类型创建拦截策略,写入规则引擎策略表;
采用规则引擎表达式语法写入规则引擎规则表。
可选的,所述提高方法还包括:
乘客在所述乘客端登陆,整合校验参数;
下单请求,平台代理层组装下单请求的参数;
在订单系统,下单校验;
从所述redis中获取用户下单校验参数值;
判断用户是否命中公共下单拦截校验按照优先级降序依次校验黑名单,进行中订单;
根据服务类型确定走对应的场景;
下单成功。
可选的,所述整合下单所需要的校验参数具体包括:
请求用户中心获取乘客余额和黑名单信息;
请求订单是否已存在进行中订单或者待支付订单;
请求风控获取该用户是否风险用户;
用户为个人用户还是企业用户;
行程录音是否授权;是否授权健康码。
可选的,所述创建拦截策略具体包括:
黑名单策略,规则引擎表达式:isBlack==1优先级priority=1000;
进行中订单策略,规则引擎表达式:isExitGoOrder==1优先级priority=1001;
风险用户策略,规则引擎表达式:isRiskUser==1优先级priority=1002;
行程录音策略,规则引擎表达式:type==1&&.isRecord=1优先级priority=1003;
健康宝策略,规则引擎表达式:type==1&&isHealthCode=1优先级priority=1004。
可选的,所述根据需要不同服务类型创建拦截策略,写入规则引擎策略表具体包括:
接机必传参数策略,按照priority优先级降序依次校验,
接机服务类型,航班号不能为空,规则引擎表达式:serviceTypeId==5&&airline_no==null优先级priority=1005;
接机服务类型,航班到达时间不能为空,规则引擎表达式:serviceTypeId==5&&airline_arr_date==null优先级priority=1006;
预约用车场景校验:预约服务场景,预约时间不能为空,规则引擎表达式:serviceTypeId==3&&bookingDate==null优先级priority=1008。
可选的,所述从所述redis中获取用户下单校验参数值具体包括:
如果否,通过接口的形式,依次请求;请求用户中心、用户是否黑名单用户、手机号是否正确;
如果是,走订单规则引擎,公共下单场景校验。
可选的,所述判断用户是否命中公共下单拦截校验按照优先级降序依次校验黑名单,进行中订单具体包括:
如果是,返回命中拦截的策略;
如果否,根据服务类型判断走对应的场景。
可选的,所述根据服务类型确定走对应的场景具体包括:
判断接机场景下判断航班号是否为空;如果是,返回命中拦截的策略接机订单,航班号不能为空;如果否,判断接机场景下判断航班到达日期是否为空;如果是,返回命中拦截的策略接机订单,航班到达时间不能为空;如果否,下单校验通过;
判断预约场景下判断预约时间是否为空;如果是,则返回命中拦截的策略预约时间为空;如果否,下单校验通过。
本发明提供的一种下单校验效率的提高方法包括:乘客登陆成功后,发送登陆成功事件推送给平台,与服务器建立长链接每30秒请求一次;订单接收到登陆事件,整合下单所需要的校验参数;在用户登陆时刻进行整合数据,并存入redis中,所述redis的key为用户ID,过期时间设置为3分钟;创建场景,写入规则引擎场景表,规则引擎场景表中的场景密钥可随机生成唯一字符串插入;创建公共下单校验场景;创建拦截策略,写入规则引擎策略表;创建即时用车场景,预约用车场景,接机用车场景,送机用车场景;根据需要不同服务类型创建拦截策略,写入规则引擎策略表;采用规则引擎表达式语法写入规则引擎规则表。通过接入订单规则引擎,降低实际下单过程中对平台内部的接口调用,通过场景配置,将公共场景校验提取出来,不需要重复编码,校验的顺序灵活配置。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的整合下单校验参数流程图;
图2为本发明实施例提供的规则引擎创建流程图;
图3为本发明实施例提供的下单拦截校验流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
订单系统简介:
数据库:1个
1.规则引擎场景表:rules_scene_config
表结构:列举部分字段
场景ID | 场景名称 | 场景密钥 | 创建时间 | 更新时间 |
Id | scene_name | scene_key | create_date | update_time |
2.规则引擎策略表:rules_policy_config
表结构:列举部分字段
3.规则引擎规则表:rules_rule_config
策略id | 场景id | 策略名称 | 创建时间 | 优先级 |
Id | scene_id | policy_name | create_date | priority |
表结构:列举部分字段
规则id | 策略id | 基础规则 | 规则表达式 | 优先级 |
Id | policy_id | base_on_rule | param_config | priority |
2》订单规则引擎关键点:
1.本方案使用的规则引擎开组件为:easy-rules版本:3.2.0
规则表达式语法为MVEL,是一种基于Java语法,但又有着显著不同的表达式语言。
每个规则场景可以配置多个策略,多个策略可以配置多条规则,当命中其中一条拦截规则就会被拦截下单,策略ID与场景ID关联,规则ID与策略ID关联。
流程图中枚举值说明:
serviceTypeId=1 即时用车;
serviceTypeId=3 预约用车;
serviceTypeId=5 接机用车;
serviceTypeId=6 送机用车。
4》操作步骤如下:
乘客端步骤:
乘客在乘客端登陆;
乘客登陆成功后,发送登陆成功事件push给平台,与服务器建立长链接每30s请求一次;
订单接收到登陆事件,整合下单所需校验参数;
请求用户中心获取乘客余额和黑名单信息;
请求订单是否已存在进行中订单或者待支付订单;
请求风控获取该用户是否风险用户;
用户为个人用户还是企业用户;
行程录音是否授权;
是否授权健康码;
在用户登录时刻进行整合数据,存入redis中,redis的key为用户ID,过期时间设置为3分钟
isBlack 枚举值说明:1为黑名单,0为正常用户;
balance 枚举值说明:用户余额;
isExitGoOrder 枚举值说明:1为存在0为不存在;
isRiskUser 枚举值说明:1为风险用户0为正常用户;
type 枚举值说明:1为个人用户2为企业用户;
isRecord 枚举值说明:1为已授权2为未授权;
isHealthCode 枚举值说明:1为已授权2为未授权。
订单规则引擎步骤:
创建场景,写入规则引擎场景表,规则引擎场景表中的场景密钥可随机生成唯一字符串插入
创建公共下单校验场景
创建拦截策略,写入规则引擎策略表
1》黑名单策略,规则引擎表达式:isBlack==1优先级priority=1000;
2》进行中订单策略,规则引擎表达式:isExitGoOrder==1优先级priority=1001;
3》风险用户策略,规则引擎表达式:isRiskUser==1优先级priority=1002;
4》行程录音策略,规则引擎表达式:type==1&&.isRecord=1优先级priority=1003;
5》健康宝策略,规则引擎表达式:type==1&&isHealthCode=1优先级priority=1004;
创建即时用车场景,预约用车场景,接机用车场景,送机用车场景。
根据需要不同服务类型创建创建拦截策略,写入规则引擎策略表接机必传参数策略,按照priority优先级降序依次校验,
接机服务类型,航班号不能为空,规则引擎表达式:serviceTypeId==5&&airline_no==null优先级priority=1005
接机服务类型,航班到达时间不能为空,规则引擎表达式:serviceTypeId==5&&airline_arr_date==null优先级priority=1006
预约用车场景校验
预约服务场景,预约时间不能为空,规则引擎表达式:serviceTypeId==3&&bookingDate==null优先级priority=1008
规则引擎表达式语法为MVEL语法,写入规则引擎规则表。
下单流程校验:乘客在乘客端登陆,整合下打电脑校验参数;下单请求,平台代理层组装下单参数;订单系统,下单校验;从redis中获取用户下单校验参数值。
否,则通过接口的形式,依次请求;请求用户中心,用户是否黑名单用户,手机号是否正确。
是,则走订单规则引擎,公共下单场景校验。
6.判断用户是否命中公共下单拦截校验按照优先级降序依次校验黑名单,进行中订单;
是,返回命中拦截的策略如:用户为黑名单不能下单;否,根据服务类型判断走对应的场景。
根据服务类型判断走对应的场景,判断接机场景下判断航班号是否为空,如果是,返回命中拦截的策略接机订单,航班号不能为空;否,接机场景下判断航班到达日期是否为空;
是,返回命中拦截的策略接机订单,航班到达时间不能为空;
否,下单校验通过;
判断预约场景下判断预约时间是否为空,如果是,返回命中拦截的策略预约时间为空;否则,下单校验通过;
下单成功。
有益效果:通过接入订单规则引擎,能够降低实际下单过程中对平台内部的接口调用,通过场景配置,能够将公共场景校验提取出来,不需要重复编码,校验的顺序也可以灵活配置;通过规则表达式来校验拦截规则,不需要实时通过的接口来判断,只用进行简单值的判断就能够进行拦截,下单性能也随之变高。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种下单校验效率的提高方法,其特征在于,所述提高方法包括:
乘客在乘客端登陆;
乘客登陆成功后,发送登陆成功事件推送给平台,与服务器建立长链接每30秒请求一次;
订单接收到登陆事件,整合下单所需要的校验参数;
在用户登陆时刻进行整合数据,并存入redis中,所述redis的key为用户ID,过期时间设置为3分钟;
创建场景,写入规则引擎场景表,规则引擎场景表中的场景密钥可随机生成唯一字符串插入;
创建公共下单校验场景;
创建拦截策略,写入规则引擎策略表;
创建即时用车场景,预约用车场景,接机用车场景,送机用车场景;
根据需要不同服务类型创建拦截策略,写入规则引擎策略表;
采用规则引擎表达式语法写入规则引擎规则表。
2.根据权利要求1所述的一种下单校验效率的提高方法,其特征在于,所述提高方法还包括:
乘客在所述乘客端登陆,整合校验参数;
下单请求,平台代理层组装下单请求的参数;
在订单系统,下单校验;
从所述redis中获取用户下单校验参数值;
判断用户是否命中公共下单拦截校验按照优先级降序依次校验黑名单,进行中订单;
根据服务类型确定走对应的场景;
下单成功。
3.根据权利要求1所述的一种下单校验效率的提高方法,其特征在于,所述整合下单所需要的校验参数具体包括:
请求用户中心获取乘客余额和黑名单信息;
请求订单是否已存在进行中订单或者待支付订单;
请求风控获取该用户是否风险用户;
用户为个人用户还是企业用户;
行程录音是否授权;是否授权健康码。
4.根据权利要求1所述的一种下单校验效率的提高方法,其特征在于,所述创建拦截策略具体包括:
黑名单策略,规则引擎表达式:isBlack==1优先级priority=1000;
进行中订单策略,规则引擎表达式:isExitGoOrder==1优先级priority=1001;
风险用户策略,规则引擎表达式:isRiskUser==1优先级priority=1002;
行程录音策略,规则引擎表达式:type==1&&.isRecord=1优先级priority=1003;
健康宝策略,规则引擎表达式:type==1&&isHealthCode=1优先级priority=1004。
5.根据权利要求1所述的一种下单校验效率的提高方法,其特征在于,所述根据需要不同服务类型创建拦截策略,写入规则引擎策略表具体包括:
接机必传参数策略,按照priority优先级降序依次校验,
接机服务类型,航班号不能为空,规则引擎表达式:serviceTypeId==5&&airline_no==null优先级priority=1005;
接机服务类型,航班到达时间不能为空,规则引擎表达式:serviceTypeId==5&&airline_arr_date==null优先级priority=1006;
预约用车场景校验:预约服务场景,预约时间不能为空,规则引擎表达式:serviceTypeId==3&&bookingDate==null优先级priority=1008。
6.根据权利要求2所述的一种下单校验效率的提高方法,其特征在于,所述从所述redis中获取用户下单校验参数值具体包括:
如果否,通过接口的形式,依次请求;请求用户中心、用户是否黑名单用户、手机号是否正确;
如果是,走订单规则引擎,公共下单场景校验。
7.根据权利要求2所述的一种下单校验效率的提高方法,其特征在于,所述判断用户是否命中公共下单拦截校验按照优先级降序依次校验黑名单,进行中订单具体包括:
如果是,返回命中拦截的策略;
如果否,根据服务类型判断走对应的场景。
8.根据权利要求1所述的一种下单校验效率的提高方法,其特征在于,所述根据服务类型确定走对应的场景具体包括:
判断接机场景下判断航班号是否为空;如果是,返回命中拦截的策略接机订单,航班号不能为空;如果否,判断接机场景下判断航班到达日期是否为空;如果是,返回命中拦截的策略接机订单,航班到达时间不能为空;如果否,下单校验通过;
判断预约场景下判断预约时间是否为空;如果是,则返回命中拦截的策略预约时间为空;如果否,下单校验通过。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210206532.5A CN114896081A (zh) | 2022-03-03 | 2022-03-03 | 一种下单校验效率的提高方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210206532.5A CN114896081A (zh) | 2022-03-03 | 2022-03-03 | 一种下单校验效率的提高方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114896081A true CN114896081A (zh) | 2022-08-12 |
Family
ID=82715844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210206532.5A Pending CN114896081A (zh) | 2022-03-03 | 2022-03-03 | 一种下单校验效率的提高方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114896081A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185616A (zh) * | 2022-09-14 | 2022-10-14 | 深圳依时货拉拉科技有限公司 | 业务规则引擎及业务规则引擎的处理方法 |
-
2022
- 2022-03-03 CN CN202210206532.5A patent/CN114896081A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185616A (zh) * | 2022-09-14 | 2022-10-14 | 深圳依时货拉拉科技有限公司 | 业务规则引擎及业务规则引擎的处理方法 |
CN115185616B (zh) * | 2022-09-14 | 2022-12-13 | 深圳依时货拉拉科技有限公司 | 业务规则引擎装置及业务规则引擎的处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109829621B (zh) | 一种网约车派单方法及装置 | |
CN1258141C (zh) | 处理应用程序的方法和系统和执行应用程序无线装置 | |
CN102054204A (zh) | 一种自动订购客票的方法、系统和装置 | |
US20080243561A1 (en) | Electronic mail based travel document check-in system | |
CN108257226A (zh) | 扫码检票方法、系统、装置、计算机设备和存储介质 | |
NZ531130A (en) | System and method for temporary application component deletion and reload on a wireless device | |
CN106600020A (zh) | 用于调度接送站服务的系统和方法 | |
CN105760990A (zh) | 一种客票变更系统和方法 | |
CN110389765A (zh) | 一种参数校验方法和参数校验系统 | |
KR20020084152A (ko) | 글로벌 컴퓨터 네트워크를 사용하는 원격 탑승 체크인방법 및시스템 | |
CN106940643A (zh) | 警民通app系统 | |
CN114896081A (zh) | 一种下单校验效率的提高方法 | |
CN111510908A (zh) | 开卡方法、装置、设备及介质 | |
CN108305081A (zh) | 提供航空公司会员增值服务的装置、方法及系统 | |
CN111258832A (zh) | 一种接口参数校验方法、装置、设备及介质 | |
CN111045725A (zh) | 代码管理系统的控制方法、装置及存储介质 | |
CN107362537A (zh) | 一种限定角色账号登录服务器的方法及装置 | |
US20070050511A1 (en) | Maintaining personal records | |
CN111739350A (zh) | 一种机位分配系统及方法 | |
CN111539717A (zh) | 车辆支付电子标签的处理方法 | |
CN111327661A (zh) | 推送方法、推送装置、服务器和计算机可读存储介质 | |
CN109684026A (zh) | App皮肤更换方法、装置、电子设备及存储介质 | |
CN111835730B (zh) | 服务账号处理方法、装置、电子设备及可读存储介质 | |
CN107295078A (zh) | 一种补丁分发跟踪及控制系统及方法 | |
CN115174575A (zh) | 一种服务控制方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |