CN111144982A - 订单状态转移方法、装置、电子设备和存储介质 - Google Patents
订单状态转移方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111144982A CN111144982A CN201911323510.1A CN201911323510A CN111144982A CN 111144982 A CN111144982 A CN 111144982A CN 201911323510 A CN201911323510 A CN 201911323510A CN 111144982 A CN111144982 A CN 111144982A
- Authority
- CN
- China
- Prior art keywords
- state
- event
- processing
- order
- module
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
本申请提出一种订单状态转移方法、装置、电子设备和存储介质,其中,方法包括:拦截模块从状态机获取目标订单的当前处理状态;拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机;映射关系表中包括处理状态和状态跳转事件之间的对应关系;在状态跳转事件为预设处理事件时,状态机基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务;状态机接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态。由此,解决需要通过业务处理模块根据执行结果发出对应事件完成状态转移的技术问题,实现状态机直接根据执行结果转移订单状态,提高订单状态转移效率和灵活性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种订单状态转移方法、装置、电子设备和存储介质。
背景技术
随着互联网技术和智能终端技术的不断发展,为了提高用户缴费的便利性,可以通过缴费应用程序、缴费云平台和缴费网页等进行缴费操作,实现足不出户缴纳水、电、和有线电视费等费用。
通常,上述缴费方式中,在进行缴费过程中对于服务平台需要进行多个订单操作,比如支付、销账和退款等各个操作,相关技术中,需要业务处理模块根据业务机构返回的处理结果发出对应事件引导状态机进入对应的状态,比如业务处理模块根据银行机构返回销账成功的处理结果发出销账成功事件,状态机才可以成功从支付状态转移到销账成功的状态。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请提出一种订单状态转移方法,解决了现有技术中无法自我驱动进行状态转移,需要通过业务处理模块根据业务机构返回的处理结果发出对应事件完成状态转移的技术问题,实现状态机根据执行结果自动转移订单状态,提高订单状态转移效率和灵活性。
本申请提出一种订单状态转移装置。
本申请提出一种电子设备。
本申请提出一种计算机可读存储介质。
本申请一方面实施例提出了一种订单状态转移方法,包括:
拦截模块从状态机获取目标订单的当前处理状态;
所述拦截模块根据所述当前处理状态和映射关系表,确定状态跳转事件并发送给所述状态机;其中,所述映射关系表中包括处理状态和状态跳转事件之间的对应关系;
在所述状态跳转事件为预设处理事件的情况下,所述状态机基于所述状态跳转事件调用业务处理模块,以使所述业务处理模块执行与所述状态跳转事件相对应的目标任务;所述状态机还接收所述业务处理模块对所述目标任务的执行结果,并基于所述执行结果修改所述目标订单的所述当前处理状态。
本申请另一方面实施例提出了一种订单状态转移装置,包括:
获取模块,用于拦截模块从状态机获取目标订单的当前处理状态;
确定模块,用于所述拦截模块根据所述当前处理状态和映射关系表,确定状态跳转事件并发送给所述状态机;其中,所述映射关系表中包括处理状态和状态跳转事件之间的对应关系;
调用模块,用于在所述状态跳转事件为预设处理事件的情况下,所述状态机基于所述状态跳转事件调用业务处理模块,以使所述业务处理模块执行与所述状态跳转事件相对应的目标任务;
接收模块,用于所述状态机还接收所述业务处理模块对所述目标任务的执行结果;
修改模块,用于基于所述执行结果修改所述目标订单的所述当前处理状态。
本申请又一方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如前述一方面实施例所述的订单状态转移方法。
本申请又一方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现前述方法实施例所述的订单状态转移方法。
本申请实施例所提供的技术方案可以包含如下的有益效果:
拦截模块从状态机获取目标订单的当前处理状态;拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机;其中,映射关系表中包括处理状态和状态跳转事件之间的对应关系;在状态跳转事件为预设处理事件的情况下,状态机基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务;状态机还接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态。由此,解决了现有技术中无法自我驱动进行状态转移,需要通过业务处理模块根据业务机构返回的处理结果发出对应事件完成状态转移的技术问题,实现状态机根据执行结果自动转移订单状态,提高订单状态转移效率和灵活性。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种订单状态转移方法的流程示意图;
图2为本申请实施例所提供的订单状态的示例图;
图3为本申请实施例所提供的另一种订单状态转移方法的流程示意图;
图4为本申请实施例所提供的一种订单状态转移方法的示例图;
图5为本申请实施例所提供的另一种订单状态转移方法的示例图;
图6为本申请实施例所提供的又一种订单状态转移方法的示例图;
图7为本申请实施例提供的一种订单状态转移装置的结构示意图;
图8为本申请实施例提供的另一种订单状态转移装置的结构示意图;
图9为本申请实施例提供的又一种订单状态转移装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的订单状态转移方法、装置、电子设备和存储介质。
具体地,为了解决现有技术中无法自我驱动进行状态转移,需要通过业务处理模块根据业务机构返回的处理结果发出对应事件完成状态转移的技术问题,本申请提出了一种订单状态转移方法,通过拦截模块从状态机获取目标订单的当前处理状态;拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机;其中,映射关系表中包括处理状态和状态跳转事件之间的对应关系;在状态跳转事件为预设处理事件的情况下,状态机基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务;状态机还接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态。实现状态机根据执行结果自动转移订单状态,提高订单状态转移效率和灵活性。
首先,为了本领域人员更加清楚本申请实施例描述的订单状态转移方法,针对涉及的拦截模块、状态机和业务处理模块进行解释说明如下:
拦截模块,指的是动态拦截方法调用的对象,提供一种机制可以使开发者定义在一个动作执行的前后执行的代码,也可以在一个动作执行前阻止其执行,同时也提供了一种可以提取动作中可重用部分的方式。比如拦截模块用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作,在本申请中,在状态机进入某一处理状态后,拦截模块可以根据当前处理状态机(比如销账状态),可以自动触发状态跳转事件。
状态机,指的是有限个数的订单处理状态以及在这些订单处理状态之间的转移和动作等行为的数学计算模型。
业务处理模块,指的是能够调用相关业务机构执行与事件(比如状态跳转事件)对应的目标任务,并将执行结果反馈给状态机。
图1为本申请实施例所提供的一种订单状态转移方法的流程示意图。
如图1所示,该方法包括以下步骤:
步骤101,拦截模块从状态机获取目标订单的当前处理状态。
步骤103,拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机;其中,映射关系表中包括处理状态和状态跳转事件之间的对应关系。
具体地,在通过缴费云平台等方式进行缴费的过程中会产生与缴费项目对应的订单,一笔缴费订单包括订单信息、支付信息、销账/缴费信息、退款信息等。
更具体地,一个缴费订单会存在多种状态,比如图2所示,一个缴费订单的状态可以分成订单状态、支付状态、销账/缴费状态、退款状态等多个子状态,状态多并且互相之间有关联,本申请提出的订单状态转移方法描述状态机如何自动驱动订单状态流转进入缴费订单的最终状态。
在实际应用中,不仅仅可以进行直接缴费生成新的订单,还可以查询之前已经生成的订单,本实施例描述的可以是进行直接缴费生成新的订单的状态如何转移,也可以是之前已经生成的订单的状态如何转移,继续以图2为例,本申请可以是在确定缴费方式为直缴(直接缴费)模式的处理,也可以查缴(查询缴费)模式,在查询到订单的处理。
因此,在确定目标订单后,可以通过拦截模块从状态机获取目标订单的当前处理状态(比如图2中的订单状态:已接单;支付状态:初始化;销账状态:初始化)。
进一步地,拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机,其中,映射关系表中包括处理状态和状态跳转事件之间的对应关系。
可以理解的是,映射关系表是预先设置的,表示的是某一个处理状态之后需要执行的状态跳转事件,作为一种可能实现方式,获取目标订单的各个处理状态,以及多个状态跳转事件,将各个处理状态和多个状态跳转事件按照预设关系进行存储,生成映射关系表。
举例而言,继续以图2为例,比如图2中的订单状态:已接单;支付状态:初始化;销账状态:初始化作为当前处理状态,该当前处理状态之后需要执行的状态跳转事件为支付事件,因此,可以建立当前处理状态,订单状态:已接单;支付状态:初始化;销账状态:初始化与支付事件的一一对应关系存储在关系映射表中。
步骤105,在状态跳转事件为预设处理事件的情况下,状态机基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务。
步骤107,状态机还接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态。
具体地,状态跳转事件有很多种,比如关单事件,这些事件执行结果只有一个,因此设置预设处理事件,再比如支付事件、销账事件和退款事件,这些事件执行结果都可能成功或者失败,因此不是预设处理事件。
进一步地,在状态跳转事件为预设处理事件的情况下,状态机直接基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务。
需要说明的是,在状态机跳转事件不是预设处理事件的情况下,状态机需要将目标订单的当前处理状态修改为与状态机跳转事件对应的中间处理状态,再接着基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务。
其中,状态机跳转事件有很多种,因此,状态机直接基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务的方式有很多种,作为一种可能实现方式,业务处理模块根据状态跳转事件确定业务机构、交易账户、交易金额和交易处理方式,向业务机构发送交易账户、交易金额和交易处理方式,以使业务机构通过交易处理方式对交易账户按照交易金额进行处理,生成执行结果。
举例而言,继续以图2为例进行说明,当前处理状态:已接单;支付状态:初始化;销账状态:初始化,根据映射关系表确定状态跳转事件为支付事件,支付事件不是预设处理事件的情况下,状态机需要将目标订单的当前处理状态修改为与状态机跳转事件对应的中间处理状态,订单状态:已接单;支付状态:支付中;销账状态:初始化,状态机基于支付事件调用业务处理模块,以使业务处理模块向支付机构发送交易账户、交易金额和扣款方式,以使支付机构对交易账户按照交易金额进行扣款,生成执行结果。
最后,状态机还接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态,比如上述例子,执行结果为扣款成功,将中间处理状态,订单状态:已接单;支付状态:支付中;销账状态:初始化,修改为订单状态:支付完成;支付状态:支付成功;销账状态:初始化。
本申请实施例的订单状态转移方法中,通过拦截模块从状态机获取目标订单的当前处理状态;拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机;其中,映射关系表中包括处理状态和状态跳转事件之间的对应关系;在状态跳转事件为预设处理事件的情况下,状态机基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务;状态机还接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态。由此,解决了现有技术中无法自我驱动进行状态转移,需要通过业务处理模块根据业务机构返回的处理结果发出对应事件完成状态转移的技术问题,实现状态机根据执行结果自动转移订单状态,提高订单状态转移效率和灵活性。
基于上述实施例的描述,可以理解的是,目标订单中一些状态跳转事件可以异步进行处理,因此可以根据处理器、存储器等具体情况,将销账处理等事件延后处理,因此,需要将状态机中目标订单的处理状态进行中止;还可以理解的是,在进行支付、或者销账中出现异常情况,比如宕机,重启等,状态机中目标订单的处理状态也会出现中止,针对上述情况,本申请可以在状态机启动时,执行恢复事件操作将目标订单的处理状态跳转到中止处理状态,具体结合图3进行详细说明。
本实施例提供了另一种订单状态转移方法,图3为本申请实施例所提供的另一种订单状态转移方法的流程示意图。
如图3所示,该方法可以包括以下步骤:
步骤201,状态机启动时,检测目标订单是否为未处理完成订单。
步骤203,若目标订单为未处理完成订单,状态机执行恢复事件操作将目标订单的处理状态跳转到中止处理状态。
具体地,目标订单进行处理的过程中,有一些操作可以异步处理,比如销账、退款等可以根据当前处理器、内存等具体情况进行处理,因此在支付完成状态后可以中止处理,以及在进行支付、或者销账中出现异常情况,比如宕机,重启等,状态机中目标订单的处理状态也会出现中止,因此在满足处理条件的情况下可以再次恢复处理。
因此,状态机启动时,可以检测目标订单为未处理完成订单,可以执行恢复事件操作将目标订单的处理状态跳转到中止处理状态。也就是说,针对未处理完成订单无法完成自动驱动进行流转的问题,增加了一个恢复事件,可以理解的是恢复事件只用于启动状态机,使之可以将目标订单的处理状态跳转到中止处理状态。
需要说明的是,只要目标订单为未处理完成订单,都可以执行恢复事件操作将目标订单的处理状态跳转到中止处理状态。
步骤205,拦截模块从状态机获取目标订单的当前处理状态,拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机;其中,映射关系表中包括处理状态和状态跳转事件之间的对应关系。
具体地,在确定目标订单后,可以通过拦截模块从状态机获取目标订单的当前处理状态(比如图2中的订单状态:已接单;支付状态:初始化;销账状态:初始化)。
进一步地,拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机,其中,映射关系表中包括处理状态和状态跳转事件之间的对应关系。
可以理解的是,映射关系表是预先设置的,表示的是某一个处理状态之后需要执行的状态跳转事件,作为一种可能实现方式,获取目标订单的各个处理状态,以及多个状态跳转事件,将各个处理状态和多个状态跳转事件按照预设关系进行存储,生成映射关系表。
举例而言,继续以图2为例,比如图2中的订单状态:已接单;支付状态:初始化;销账状态:初始化作为当前处理状态,该当前处理状态之后需要执行的状态跳转事件为支付事件,因此,可以建立当前处理状态,订单状态:已接单;支付状态:初始化;销账状态:初始化与支付事件的一一对应关系存储在关系映射表中。
步骤207,在状态机跳转事件不是预设处理事件的情况下,状态机将目标订单的当前处理状态修改为与状态机跳转事件对应的中间处理状态。
步骤209,状态机基于状态跳转事件调用业务处理模块,以使业务处理模块根据状态跳转事件确定业务机构、交易账户、交易金额和交易处理方式。
步骤211,向业务机构发送交易账户、交易金额和交易处理方式,以使业务机构通过交易处理方式对交易账户按照交易金额进行处理,生成执行结果。
步骤213,状态机还接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态。
具体地,状态跳转事件有很多种,比如关单事件,这些事件执行结果只有一个,因此设置预设处理事件,再比如支付事件、销账事件和退款事件,这些事件执行结果都可能成功或者失败,因此不是预设处理事件。
进一步地,在状态跳转事件为预设处理事件的情况下,状态机直接基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务。
需要说明的是,在状态机跳转事件不是预设处理事件的情况下,状态机需要将目标订单的当前处理状态修改为与状态机跳转事件对应的中间处理状态,再接着基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务。
具体地,根据状态跳转事件确定业务机构、交易账户、交易金额和交易处理方式,比如状态跳转事件为销账事件,可以确定业务机构为账户结构A,交易账户B,交易金额C和交易处理方式为扣款,因此,账户结构A对交易账户B按照交易金额C进行扣款生成执行结果,根据执行结果修改目标订单的当前处理状态。
需要说明的是,比如根据执行结果修改目标订单的当前处理状态,还可以接着判断目标订单是否为未处理完成订单,即当前处理状态是不是目标订单的最终状态,如果不是,接着基于当前处理状态确定状态机跳转事件,状态机基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务,以及状态机还接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态,具体流程与上述实施例一样。
本申请实施例的订单状态转移方法中,通过状态机启动时,检测目标订单是否为未处理完成订单,若目标订单为未处理完成订单,状态机执行恢复事件操作将目标订单的处理状态跳转到中止处理状态,拦截模块从状态机获取目标订单的当前处理状态,拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机;其中,映射关系表中包括处理状态和状态跳转事件之间的对应关系,在状态机跳转事件不是预设处理事件的情况下,状态机将目标订单的当前处理状态修改为与状态机跳转事件对应的中间处理状态,状态机基于状态跳转事件调用业务处理模块,以使业务处理模块根据状态跳转事件确定业务机构、交易账户、交易金额和交易处理方式,向业务机构发送所述交易账户、交易金额和交易处理方式,以使业务机构通过交易处理方式对所述交易账户按照交易金额进行处理,生成执行结果,状态机还接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态。由此,实现未处理完成订单恢复中止处理状态后,根据执行结果自动转移订单状态,提高订单状态转移效率和灵活性。
基于上述实施例的描述,继续以图2为例,比如从上图2的销账状态到销账成功状态需要状态机根据执行结果,通过业务处理模块主动发出一个销账成功的事件,状态机才可以成功转移到销账成功的状态,比如图4所示为业务处理模块与状态机流程图的局部示例,通过业务处理模块每次获取业务机构返回执行结果后主动发出事件推动状态机的流转,比如状态机流转完成后,可能会进入支付成功状态,也可能会进入支付失败状态,通过业务处理模块在收到完成状态转移结果后,需要根据状态转移结果的不同,进入不同的处理分支,并且再次根据不同的订单状态发出不同的事件。
本申请提出一种订单状态转移方法,具体地,通过拦截模块在目标订单对应的状态机进入某一状态后,根据状态机所处的当前处理状态,自动触发需要转移到下一个状态的状态跳转事件,将业务处理模块与状态机彻底解耦,业务处理模块无需根据状态机状态转移结果进入不同的处理流程,状态机直接根据业务处理模块对目标任务的执行结果进行状态转移,比如图5所示,业务处理模块完成了对状态机的解耦,状态机自动驱动完成状态的转移,调用业务处理模块完成目标任务,并根据业务结构返回执行结果进入不同的处理流程。
再者,针对非终态订单无法完成自动驱动进行流转的问题,增加了恢复事件,恢复事件只用于启动状态机,使之可以进入上述拦截模块中,进入拦截模块后,拦截模块便可以针对不同的处理状态进入不同的处理流程了,如图6所示,状态机首先发出恢复事件,比如恢复事件会使状态机进入已支付状态,进入已支付状态会触发拦截模块自动完成后续状态的转移。
由此,解决了状态机无法自我驱动进行状态转移,业务处理模块需要主动发出对应事件完成状态转移,增大了系统耦合度,以及未处理完成订单恢复后继续向后推进时,状态机无法自动驱动状态转移,需要业务处理模块主动触发,但是因为处在不同状态的订单恢复时需要进入不同的处理流程,如:已接单的订单需要进入支付流程,已支付成功的订单需要进入销账/缴费流程,存在业务处理模块需要耦合状态机状态来进入不同的流程的技术问题,本申请可以实现将业务处理模块与状态机解耦,业务处理模块只需要处理业务逻辑,无需关注状态转移,状态转移由状态机自动完成驱动,将目标订单推进到终态,以及非终态订单在恢复时,也会自动完成状态转移,无需业务处理模块主动触发,降低了系统耦合度。
为了实现上述实施例,本申请还提出一种订单状态转移装置
图7为本申请实施例提供的一种订单状态转移装置的结构示意图。
如图7所示,该装置包括:第一获取模块701、确定模块703、调用模块705、接收模块707和修改模块709。
第一获取模块701,用于拦截模块从状态机获取目标订单的当前处理状态。
确定模块703,用于所述拦截模块根据所述当前处理状态和映射关系表,确定状态跳转事件并发送给所述状态机;其中,所述映射关系表中包括处理状态和状态跳转事件之间的对应关系。
调用模块705,用于在所述状态跳转事件为预设处理事件的情况下,所述状态机基于所述状态跳转事件调用业务处理模块,以使所述业务处理模块执行与所述状态跳转事件相对应的目标任务。
接收模块707,用于所述状态机还接收所述业务处理模块对所述目标任务的执行结果。
修改模块709,用于基于所述执行结果修改所述目标订单的所述当前处理状态。
进一步地,在本申请实施例的一种可能的实现方式中,修改模块709,还用于在所述状态机跳转事件不是所述预设处理事件的情况下,所述状态机将所述目标订单的所述当前处理状态修改为与所述状态机跳转事件对应的中间处理状态。
进一步地,在本申请实施例的一种可能的实现方式中,如图8所示,还包括:检测模块711和执行模块713。
其中,检测模块711,用于所述状态机启动时,检测所述目标订单是否为未处理完成订单。
执行模块713,用于若所述目标订单为未处理完成订单,所述状态机执行恢复事件操作将所述目标订单的处理状态跳转到中止处理状态。
进一步地,在本申请实施例的一种可能的实现方式中,如图9所示,还包括:第二获取模块715和存储模块717。
第二获取模块715,用于获取所述目标订单的各个处理状态,以及多个状态跳转事件。
存储模块717,用于将所述各个处理状态和所述多个状态跳转事件按照预设关系进行存储,生成映射关系表。
所进一步地,在本申请实施例的一种可能的实现方式中,所述业务处理模块执行与所述状态跳转事件相对应的目标任务,包括:所述业务处理模块根据所述状态跳转事件确定业务机构、交易账户、交易金额和交易处理方式;向所述业务机构发送所述交易账户、所述交易金额和所述交易处理方式,以使所述业务机构通过所述交易处理方式对所述交易账户按照所述交易金额进行处理,生成所述执行结果。
需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。
本申请实施例的订单状态转移装置中,通过拦截模块从状态机获取目标订单的当前处理状态;拦截模块根据当前处理状态和映射关系表,确定状态跳转事件并发送给状态机;其中,映射关系表中包括处理状态和状态跳转事件之间的对应关系;在状态跳转事件为预设处理事件的情况下,状态机基于状态跳转事件调用业务处理模块,以使业务处理模块执行与状态跳转事件相对应的目标任务;状态机还接收业务处理模块对目标任务的执行结果,并基于执行结果修改目标订单的当前处理状态。由此,解决了现有技术中无法自我驱动进行状态转移,需要通过业务处理模块根据业务机构返回的处理结果发出对应事件完成状态转移的技术问题,实现状态机根据执行结果自动转移订单状态,提高订单状态转移效率和灵活性。
为了实现上述实施例,本申请实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如前述终端设备执行方法实施例所述的订单状态转移方法。
为了实现上述实施例,本申请实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现前述方法实施例所述的订单状态转移方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种订单状态转移方法,其特征在于,包括以下步骤:
拦截模块从状态机获取目标订单的当前处理状态;
所述拦截模块根据所述当前处理状态和映射关系表,确定状态跳转事件并发送给所述状态机;其中,所述映射关系表中包括处理状态和状态跳转事件之间的对应关系;
在所述状态跳转事件为预设处理事件的情况下,所述状态机基于所述状态跳转事件调用业务处理模块,以使所述业务处理模块执行与所述状态跳转事件相对应的目标任务;
所述状态机还接收所述业务处理模块对所述目标任务的执行结果,并基于所述执行结果修改所述目标订单的所述当前处理状态。
2.如权利要求1所述的方法,其特征在于,还包括:
在所述状态机跳转事件不是所述预设处理事件的情况下,所述状态机将所述目标订单的所述当前处理状态修改为与所述状态机跳转事件对应的中间处理状态。
3.如权利要求1所述的方法,其特征在于,在所述拦截模块从状态机获取目标订单的当前处理状态之前,还包括:
所述状态机启动时,检测所述目标订单是否为未处理完成订单;
若所述目标订单为未处理完成订单,所述状态机执行恢复事件操作将所述目标订单的处理状态跳转到中止处理状态。
4.如权利要求1所述的方法,其特征在于,所述拦截模块根据所述当前处理状态和映射关系表,确定状态跳转事件并发送给所述状态机之前,还包括:
获取所述目标订单的各个处理状态,以及多个状态跳转事件;
将所述各个处理状态和所述多个状态跳转事件按照预设关系进行存储,生成所述映射关系表。
5.如权利要求1所述的方法,其特征在于,所述业务处理模块执行与所述状态跳转事件相对应的目标任务,包括:
所述业务处理模块根据所述状态跳转事件确定业务机构、交易账户、交易金额和交易处理方式;
向所述业务机构发送所述交易账户、所述交易金额和所述交易处理方式,以使所述业务机构通过所述交易处理方式对所述交易账户按照所述交易金额进行处理,生成所述执行结果。
6.一种订单状态转移装置,其特征在于,包括:
获取模块,用于拦截模块从状态机获取目标订单的当前处理状态;
确定模块,用于所述拦截模块根据所述当前处理状态和映射关系表,确定状态跳转事件并发送给所述状态机;其中,所述映射关系表中包括处理状态和状态跳转事件之间的对应关系;
调用模块,用于在所述状态跳转事件为预设处理事件的情况下,所述状态机基于所述状态跳转事件调用业务处理模块,以使所述业务处理模块执行与所述状态跳转事件相对应的目标任务;
接收模块,用于所述状态机还接收所述业务处理模块对所述目标任务的执行结果;
修改模块,用于基于所述执行结果修改所述目标订单的所述当前处理状态。
7.如权利要求6所述的装置,其特征在于,还包括:
所述修改模块,还用于在所述状态机跳转事件不是所述预设处理事件的情况下,所述状态机将所述目标订单的所述当前处理状态修改为与所述状态机跳转事件对应的中间处理状态。
8.如权利要求6所述的装置,其特征在于,还包括:
检测模块,用于所述状态机启动时,检测所述目标订单是否为未处理完成订单;
执行模块,用于若所述目标订单为未处理完成订单,所述状态机执行恢复事件操作将所述目标订单的处理状态跳转到中止处理状态。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-5任一项所述的订单状态转移方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一项所述的订单状态转移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911323510.1A CN111144982B (zh) | 2019-12-20 | 2019-12-20 | 订单状态转移方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911323510.1A CN111144982B (zh) | 2019-12-20 | 2019-12-20 | 订单状态转移方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111144982A true CN111144982A (zh) | 2020-05-12 |
CN111144982B CN111144982B (zh) | 2022-02-11 |
Family
ID=70519076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911323510.1A Active CN111144982B (zh) | 2019-12-20 | 2019-12-20 | 订单状态转移方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111144982B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967628A (zh) * | 2020-07-23 | 2020-11-20 | 北京白龙马云行科技有限公司 | 订单服务方法及系统 |
CN112070585A (zh) * | 2020-09-09 | 2020-12-11 | 苏宁云计算有限公司 | 订单状态统一管理方法、装置、计算机设备和存储介质 |
CN112115120A (zh) * | 2020-09-01 | 2020-12-22 | 南京领行科技股份有限公司 | 一种业务数据存储方法和装置及设备 |
CN112330298A (zh) * | 2020-11-17 | 2021-02-05 | 中国平安财产保险股份有限公司 | 消费订单的流程管理方法、装置、计算机设备及存储介质 |
CN112948434A (zh) * | 2021-02-25 | 2021-06-11 | 平安壹钱包电子商务有限公司 | 基于业务事件的业务处理方法、装置、计算机设备及存储介质 |
CN113626209A (zh) * | 2021-06-23 | 2021-11-09 | 福建华通银行股份有限公司 | 一种应用于交易领域的基于状态机的事件驱动方法和系统 |
WO2022156696A1 (zh) * | 2021-01-25 | 2022-07-28 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备和可读存储介质 |
CN116186107A (zh) * | 2022-12-19 | 2023-05-30 | 中兴通讯股份有限公司 | 业务数据处理方法、装置、设备及存储介质 |
CN116186107B (zh) * | 2022-12-19 | 2024-06-11 | 中兴通讯股份有限公司 | 业务数据处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117086B1 (en) * | 2006-05-04 | 2012-02-14 | Rbs Lynk Incorporated | Order tracking system and method using trigger events |
CN107656824A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种业务流程的处理方法及相关装置和服务器 |
CN108764864A (zh) * | 2018-04-09 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 一种配置支付流程、执行支付流程的方法、装置及设备 |
CN110310170A (zh) * | 2019-05-24 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 订单处理方法、装置、电子设备及存储介质 |
-
2019
- 2019-12-20 CN CN201911323510.1A patent/CN111144982B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117086B1 (en) * | 2006-05-04 | 2012-02-14 | Rbs Lynk Incorporated | Order tracking system and method using trigger events |
CN107656824A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种业务流程的处理方法及相关装置和服务器 |
CN107656822A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种业务流程的处理方法及相关系统 |
CN108764864A (zh) * | 2018-04-09 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 一种配置支付流程、执行支付流程的方法、装置及设备 |
CN110310170A (zh) * | 2019-05-24 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 订单处理方法、装置、电子设备及存储介质 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967628A (zh) * | 2020-07-23 | 2020-11-20 | 北京白龙马云行科技有限公司 | 订单服务方法及系统 |
CN112115120A (zh) * | 2020-09-01 | 2020-12-22 | 南京领行科技股份有限公司 | 一种业务数据存储方法和装置及设备 |
CN112115120B (zh) * | 2020-09-01 | 2022-06-21 | 南京领行科技股份有限公司 | 一种业务数据存储方法和装置及设备 |
CN112070585A (zh) * | 2020-09-09 | 2020-12-11 | 苏宁云计算有限公司 | 订单状态统一管理方法、装置、计算机设备和存储介质 |
CN112330298A (zh) * | 2020-11-17 | 2021-02-05 | 中国平安财产保险股份有限公司 | 消费订单的流程管理方法、装置、计算机设备及存储介质 |
WO2022156696A1 (zh) * | 2021-01-25 | 2022-07-28 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备和可读存储介质 |
CN112948434A (zh) * | 2021-02-25 | 2021-06-11 | 平安壹钱包电子商务有限公司 | 基于业务事件的业务处理方法、装置、计算机设备及存储介质 |
CN112948434B (zh) * | 2021-02-25 | 2024-04-09 | 平安壹钱包电子商务有限公司 | 基于业务事件的业务处理方法、装置、计算机设备及存储介质 |
CN113626209A (zh) * | 2021-06-23 | 2021-11-09 | 福建华通银行股份有限公司 | 一种应用于交易领域的基于状态机的事件驱动方法和系统 |
CN113626209B (zh) * | 2021-06-23 | 2024-01-26 | 福建华通银行股份有限公司 | 一种应用于交易领域的基于状态机的事件驱动方法和系统 |
CN116186107A (zh) * | 2022-12-19 | 2023-05-30 | 中兴通讯股份有限公司 | 业务数据处理方法、装置、设备及存储介质 |
CN116186107B (zh) * | 2022-12-19 | 2024-06-11 | 中兴通讯股份有限公司 | 业务数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111144982B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111144982B (zh) | 订单状态转移方法、装置、电子设备和存储介质 | |
CN107436799B (zh) | 分布式事务一致性实现方法及装置 | |
CN109840837B (zh) | 财务数据的处理方法、装置、计算机可读介质及电子设备 | |
CN100511156C (zh) | 强制性地终止输入/输出操作阻止的线程的设备和方法 | |
CN111026367B (zh) | 微服务编排方法、装置、终端设备及存储介质 | |
CN112783568B (zh) | 应用程序的初始化方法、装置、设备和存储介质 | |
CN110599341A (zh) | 交易调用方法及系统 | |
CN110633977A (zh) | 支付异常处理方法、装置及终端设备 | |
CN109033466A (zh) | 页面分享方法、计算设备及计算机存储介质 | |
CN111767056A (zh) | 一种源码编译方法、可执行文件运行方法及终端设备 | |
CN111459629A (zh) | 基于Azkaban的项目运行方法、装置及终端设备 | |
WO2021135742A1 (zh) | 对账清算方法及装置 | |
CN111930633A (zh) | 数据测试方法、平台、电子设备及存储介质 | |
CN113342512B (zh) | 一种io任务静默与驱动方法、装置及相关设备 | |
CN107741885B (zh) | 基于cs架构的事务与业务关联方法、关联系统 | |
CN114474149B (zh) | 自动化测试方法、装置、服务器及可读存储介质 | |
CN111708545B (zh) | 业务流程的部署方法、装置、电子设备及存储介质 | |
CN104616153A (zh) | 状态一致性监控方法和装置 | |
CN115904636A (zh) | 事件分发方法、事件分发装置、存储介质与电子设备 | |
CN112613870B (zh) | 支付处理方法、装置、自助设备、支付终端、系统和介质 | |
CN115687224A (zh) | 一种异步处理流程生成方法及装置 | |
CN113377608A (zh) | 一种任务异常的告警方法、装置、终端设备及存储介质 | |
CN110008010A (zh) | 系统调用方法、装置、设备及可读存储介质 | |
CN110618937A (zh) | 软件测评方法、装置及设备 | |
CN113766442B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |