CN114792233A - 一种数据处理方法、装置、计算机设备和可读存储介质 - Google Patents
一种数据处理方法、装置、计算机设备和可读存储介质 Download PDFInfo
- Publication number
- CN114792233A CN114792233A CN202110098915.0A CN202110098915A CN114792233A CN 114792233 A CN114792233 A CN 114792233A CN 202110098915 A CN202110098915 A CN 202110098915A CN 114792233 A CN114792233 A CN 114792233A
- Authority
- CN
- China
- Prior art keywords
- state
- service
- resource
- resource data
- logic
- 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
- 238000003672 processing method Methods 0.000 title abstract description 28
- 238000012546 transfer Methods 0.000 claims abstract description 220
- 238000000034 method Methods 0.000 claims abstract description 73
- 238000012545 processing Methods 0.000 claims abstract description 40
- 238000006243 chemical reaction Methods 0.000 claims description 47
- 230000008569 process Effects 0.000 claims description 39
- 230000007704 transition Effects 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 16
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 12
- 238000012423 maintenance Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000008570 general process Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/42—Confirmation, e.g. check or permission by the legal debtor of payment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例提供了一种数据处理方法、装置、计算机设备和可读存储介质,其中方法包括:当接收到资源数据转移业务的启动请求时,将资源数据转移业务的状态机的状态设置为第一状态;启动请求携带第一状态的状态标识;执行第一状态对应的第一业务逻辑,得到第一业务逻辑的执行结果;根据第一业务逻辑的执行结果将状态机的状态调整为第二状态,执行第二状态对应的第二业务逻辑,得到第二业务逻辑的执行结果;当第二状态是终止状态时,根据第二业务逻辑的执行结果输出资源数据转移业务的业务执行结果;资源数据转移业务的业务逻辑包含第一业务逻辑和第二业务逻辑,可以丰富资源数据转移业务的实现方式。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理方法、装置、计算机设备和可读存储介质。
背景技术
目前,随着互联网技术的不断发展,出现了各式各样的支付业务,如红包支付、转账等业务。其中,以红包支付业务为例,该红包支付业务主要以事件驱动的方式进行实现,原理大致如下:当用户在发红包时,判断余额是否满足发红包要求,满足要求时将资源数据转出发红包者账户并会往数据库里面添加一条发红包记录,包括领取次数和资源数据量;在领红包阶段主要是判断当前领取后是否超过领取次数,且只有小于领取次数时,才能领取到红包,领取红包后向数据库插入一条领红包记录并往红包所得者账户转入资源数据。可见,在现有红包支付业务实现过程中,是按照事先设定的逻辑依次执行,导致资源数据转移业务的实现方式单一。
发明内容
本发明实施例提供了一种数据处理方法、装置、计算机设备和可读存储介质,可以丰富资源数据转移业务的实现方式;进一步地,利用状态机使得整个资源数据转移业务的状态转换有序,便于维护,进而能够更好地实现资源数据转移业务。
本申请实施例一方面提供了一种数据处理方法,包括:
当接收到资源数据转移业务的启动请求时,将所述资源数据转移业务的状态机的状态设置为第一状态;所述启动请求携带所述第一状态的状态标识;
执行所述第一状态对应的第一业务逻辑,得到所述第一业务逻辑的执行结果;
根据第一业务逻辑的执行结果将所述状态机的状态调整为第二状态,执行所述第二状态对应的第二业务逻辑,得到所述第二业务逻辑的执行结果;
当所述第二状态是终止状态时,根据所述第二业务逻辑的执行结果输出所述资源数据转移业务的业务执行结果;所述资源数据转移业务的业务逻辑包含所述第一业务逻辑和所述第二业务逻辑。
本申请实施例一方面提供了一种数据处理装置,所述装置包括:
处理单元,用于当接收到资源数据转移业务的启动请求时,将所述资源数据转移业务的状态机的状态设置为第一状态;所述启动请求携带所述第一状态的状态标识;
所述处理单元,还用于执行所述第一状态对应的第一业务逻辑,得到所述第一业务逻辑的执行结果;
所述处理单元,还用于根据第一业务逻辑的执行结果将所述状态机的状态调整为第二状态,执行所述第二状态对应的第二业务逻辑,得到所述第二业务逻辑的执行结果;
输出单元,用于当所述第二状态是终止状态时,根据所述第二业务逻辑的执行结果输出所述资源数据转移业务的业务执行结果;所述资源数据转移业务的业务逻辑包含所述第一业务逻辑和所述第二业务逻辑。
本申请实施例一方面提供了一种计算机设备,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述所述的数据处理方法。
本申请实施例一方面提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,该程序指令被执行时,用于实现上述所述的数据处理方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中,计算机指令被计算机设备的处理器执行时,执行上述所述的数据处理方法。
在本申请实施例中,在进行资源数据转移业务的过程中,利用状态机的来实现资源数据转移业务的状态机的状态之间的调整,最终实现资源数据转移业务,丰富了资源数据转移业务的实现方式;进一步地,利用状态机使得整个资源数据转移业务的状态转换有序,便于维护,进而能够更好地保证资源数据转移业务的实现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种数据处理系统的结构示意图;
图1b是本发明实施例提供的一种更为具体的数据处理系统的架构图;
图2a-2c是本发明实施例提供的一种数据处理方法的具体场景示意图;
图3是本发明实施例提供的一种数据处理方法的流程示意图;
图4是本发明实施例提供的一种数据处理方法的流程示意图;
图5是本发明实施例提供的一种数据处理方法的流程示意图;
图6a是本发明实施例提供的一种显示红包的通知消息的示意图;
图6b是本发明实施例提供的一种显示红包的通知消息的示意图;
图6c是本发明实施例提供的一种在资源领取界面中显示数据的示意图;
图7是本发明实施例提供的一种数据处理方法的流程示意图;
图8a是本发明实施例提供的一种红包资金流向示意图;
图8b是本发明实施例提供的一种基于状态模式的状态机的实现示意图;
图9是本发明实施例提供的一种数据处理装置的结构示意图;
图10是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了能更好理解资源数据转移业务的过程,本申请实施例可提供一种数据处理系统,请参见图1a,所述数据处理系统可包括终端设备101和服务器102。终端设备101以及服务器102之间可以通过有线或无线通信方式进行直接或间接地连接。其中,终端设备101可以为能够进行资源数据转移业务的设备,或者该终端设备101中运行有可进行资源数据转移业务的应用程序,例如,应用程序可以是支付类的应用程序。上述终端设备101可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备等智能设备;上述的服务器102可以是指独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在实际过程中,可基于区块链网络来部署该数据处理系统,即可将终端设备和服务器均部署在区块链网络中,或者将终端设备部署在区块链网络外,将服务器部署在区块链网络内等等。当将服务器部署在区块链网络内,且服务器是由多个物理服务器构成的服务器集群或者分布式系统时,每个物理服务器均可作为区块链网络中的节点。其中,此处所提及的区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块。在本申请所公开的数据处理方法,其中这些数据(如状态机的多个状态和每个状态对应的业务逻辑)可保存于区块链上。
基于上述涉及的数据处理系统,本申请可应用在如下场景:当在游戏APP 中需要转移游戏币时,采用本申请的方案可利用转移游戏币的状态机来完成游戏币的转移。在具体实现中,可根据转移游戏币过程为状态机设置多个状态,然后计算机设备可根据用户针对转移游戏币的操作,可确定转移游戏币的状态机的当前状态(例如,当前状态为购买游戏币状态),并执行状态机的当前状态下的业务逻辑:接收用户输入支付密码以及向用户的游戏账户转入游戏币。当成功接收到用户输入密码,且计算机设备验证密码成功后,向用户的游戏账户转入游戏币;当成功转入游戏币后,将状态机的状态由购买游戏币状态调整为购买成功状态,并以此类推,当计算机设备确定某个状态为状态机中的终止状态时,可根据该状态的业务执行结果输出转移游戏币的结果。
当在税务APP中需要转移发票时,采用本申请的方案可利用转移发票的状态机来完成发票的转移。在具体实现中,可根据发票转移过程为状态机设置多个状态,然后计算机设备可根据用户针对转移发票的操作,可确定转移发票的状态机的当前状态(例如,当前状态为发票生成状态),并执行状态机的当前状态下的业务逻辑:将生成的发票转移给商户;当发票成功转移给商户之后,可将状态机的状态由发票生成状态调整为转移成功状态;并以此类推,当计算机设备确定某个状态为状态机中的终止状态时,可根据该状态的业务执行结果输出转移发票的结果。
当在支付类APP中需要转移合法货币时,采用本申请的方案可利用状态机来实现转移合法货币的过程,在具体过程中,根据合法货币转移的过程可设置针对该状态机所需要经历的多个状态,当转移合法货币时,计算机设备可根据用户针对转移合法货币的操作,来确定转移合法货币的状态机的当前状态,并执行此时状态机的当前状态所对应的业务逻辑,并根据该业务逻辑的执行结果确定状态机的下一个状态,通过不断调整状态机的状态来转移合法货币。在一个实现方式中,若该资源数据转移业务为基于红包形式的资源转移业务,本申请实施例还提供一种数据处理系统的具体架构,在图1b中,该数据处理系统中包括接入层、逻辑层和数据层。在接入层主要包括用户登录的身份校验、以及对计算机设备的工作频率进行限制等;在逻辑层主要包括整个红包转移业务的主流程,即包括领红包、发红包、红包退款等。整个红包转移业务可通过状态机来控制整个红包业务的流程。在具体实现中,可为该红包业务的状态机设置多个状态,然后根据该状态机的状态之间的调整来实现整个红包转移业务,并且在红包业务流程不断优化的过程中,状态机可根据该红包业务流程的优化,不断增加新的状态。数据层主要包括业务订单、用户订单等。
在本申请实施例所提供的数据处理方法可由计算机设备执行,该计算机设备可以是上述数据处理系统中的终端设备101或者服务器102;下述以计算机设备进行资源数据转移业务为例,进行详细说明:
请参见图2a-图2c,其是本申请实施例提供的一种数据处理方法的场景示意图。其中,图2a为本申请实施例提供的资源数据转移业务为资源转出业务,例如,该资源转出业务为发红包业务;如图2a所示,当用户A通过自身的账户A 执行发红包操作时,相应的,计算机设备(对应用户A所使用的手机)接收到发红包的启动请求,将发红包业务的状态机的状态设置为:等待用户支付状态;然后计算机设备可以确定“等待用户支付状态”下的第一业务逻辑,假设该第一业务逻辑为接收用户输入的支付密码以及转出资源数据;当用户输入支付密码,且对用户输入的支付密码验证通过后,即执行资源数据转出操作;当资源数据转出成功时,将状态机的状态由“等待用户支付状态”调整为:支付完成状态,此时在支付完成状态下,该用户A所发送的红包的资源数据可保存在E 国公共账户B中,以使得后续在用户领红包时可由E国公共账户B进行转账到领红包的用户的零钱包中。
当领红包业务的状态机的状态由“等待用户支付状态”调整为“支付完成状态”后,计算机设备可对“支付完成状态”进行终止状态判断,当计算机设备确定“支付完成状态”为非终止状态时,计算机设备可执行“支付完成状态”对应的第二业务逻辑;此时的第二业务逻辑为将红包中的资源数据分配给用户,即这里可理解为某个用户成功领取相应的红包中的资源数据,并且领取的红包数量增加;然后,不同用户在执行领红包操作过程中,每执行一次领红包操作,计算机设备就会对应地将领取红包的数量+1。随后,计算机设备可判断领取的红包数量是否小于用户A发送的红包总数量,若该领取的红包数量小于发送的总红包数量,则计算机设备可将状态机的状态由“支付完成状态”调整为“部分领取状态”,该“部分领取状态”下的业务逻辑为:将红包中的资源数据分配给用户。当用户点击领取红包的操作时,计算机设备对应的执行“部分领取状态”下的业务逻辑;若该领取红包数量小于用户A发送的总红包数量,且发送的红包的有效时间超过预设时间,说明后续没有用户领取用户A发的红包,用户A发的红包已经过期,计算机设备需要将过期的红包退回给用户A,则计算机设备可将状态机的状态由“部分领取状态”调整为“退款中状态”,然后执行“退款中状态”对应的业务逻辑:将红包中资源数据退回。以此类推。当计算机设备确定状态机的状态为全部领取状态或者退款成功状态是终止状态时,根据全部领取状态的业务逻辑的执行结果或者根据退款成功状态的业务逻辑的执行结果输出资源数据转移业务的业务执行结果。
图2b-2c为本申请实施例提供的资源数据转移业务为跨区域资源转入业务,该跨区域资源转入业务可以是跨境领红包业务。例如,用户A和用户B身处在 E国,用户C身处F国执行领红包业务为例,当用户B点击用户A所发送的红包后,计算机设备可将保存在E国公共账户B的红包中的资源数据转账到用户 B的零钱包中。在具体实现中,主要通过状态机的状态调整来实现将保存在E 国公共账户B的红包中的资源数据转账到用户B的零钱包中。如图2b所示,当用户B点击用户A所发的红包,相应的,计算机设备接收到领红包业务的启动请求,可将领红包的状态机的状态的初始状态设置为“待转账状态”(可理解为状态机的初始状态),该“待转账状态”的业务逻辑为E国公共账户B转账给用户B;计算机设备执行E国公共账户B转账给用户B,当E国公共账户B将红包成功转给E国用户B后,即可以理解为E国用户已经成功领取红包中的资源数据;计算机设备将状态机的状态“待转账状态”调整为“转账成功状态”。需要说明的是,上述E国公共账户B所保存的红包的资源数据为E国货币。
当用户C点击用户A所发送的红包后,此时由于用户C和用户A不在同一区域,因此为了资金支付的安全性,计算机设备响应于用户C的点击操作(即接收到资源数据转移业务的启动请求),先将保存于E国公共账户B的红包中的资源数据转给E国公共账户C,然后E国公共账户C通过刷卡支付,将E国公共账户C保存的资源数据通过钱包融合,实现E国货币与F国货币之间的转换,进而实现F国货币公共账户B转账到F国货币公共账户C,最终通过F国货币公共账户C转账到用户C的零钱包中。请参见图2c,图2c为通过状态机的状态调整来实现用户C领取用户A的红包中的资源数据的过程。在具体实现中,用户C点击用户A所发的红包后,相应的,计算机设备接收到领红包业务的启动请求,可将领红包的状态机的状态设置为“初始状态”,“初始状态”的第一业务逻辑为:计算用户C领取的E国货币,以及领取的E国货币换算成F 国货币的金额,并生成一条F国货币分单。然后计算机设备执行第一业务逻辑,并在生成F国货币分单后将该领红包业务的状态机的状态由“初始状态”调整为“待E国公共账户B(图2c中简称E国B)向E国公共账户C(图2c中简称E国C)转账状态”,并确定状态“待E国公共账户B向E国公共账户C转账状态”的第二业务逻辑为E国公共账户B向E国公共账户C转账,并执行E 国公共账户B向E国公共账户C转账。
计算机设备需要判断该“待E国公共账户B向E国公共账户C转账状态”是否为终止状态,当“待E国公共账户B向E国公共账户C转账状态”不为终止状态,计算机设备在E国公共账户B向E国公共账户C转账成功后,可将状态机的状态由“待E国公共账户B向E国公共账户C转账状态”调整为“E国公共账户B向E国公共账户C转账成功状态”,并执行“E国公共账户B向E 国公共账户C转账成功状态”对应第三业务逻辑:E国公共账户C做刷卡支付,接着计算机设备对“E国公共账户B向E国公共账户C转账成功状态”进行终止状态判断,当“E国公共账户B向E国公共账户C转账成功状态”不为终止状态,计算机设备根据E国公共账户C刷卡支付成功后,将“E国公共账户B 向E国公共账户C转账成功状态”调整为“刷卡支付成功状态”;该刷卡支付成功状态对应的业务逻辑为F国货币公共账户B(图2c中简称F国货币B)向F 国货币公共账户C(图2c中简称F国货币B)转账,并在确定该刷卡支付成功状态为非终止状态后,执行F国货币公共账户B向F国货币公共账户C转账,以此类推,当状态机所处的企业付款成功状态或者红包回退状态为终止状态时,计算机设备可根据该企业付款成功状态或者红包回退的业务逻辑的执行结果输出领红包的业务执行结果。
通过本申请,在进行资源数据转移业务的过程中,可利用状态机来控制资源数据转移业务中的状态转移,丰富了资源数据转移业务的实现方式;进一步地,利用状态机使得整个资源数据转移业务的状态转换有序,便于维护,进而能够更好地保证资源数据转移业务的实现。
请参阅图3,图3为本申请实施例提供的一种数据处理方法的流程示意图。该方法可由计算机设备执行,计算机设备中设置针对不同业务对应的状态机,本实施例中所描述的数据处理方法,可包括以下步骤S301-S304:
S301、当接收到资源数据转移业务的启动请求时,将资源数据转移业务的状态机的状态设置为第一状态。
其中,资源数据转移业务可以具体是游戏币转移业务,发票转移业务,法币转移业务等;在电子红包场景下,资源数据转移业务可以具体分为资源转入业务和资源转出业务;资源转入业务可以是领红包业务;资源转出业务可以是发红包业务等。
在具体实现中,状态机包括针对该资源数据转移业务设置多个状态,以及该多个状态中每个状态对应的状态标识,其中,为资源数据转移业务的状态机设置的多个状态以及每个状态对应的状态标识可保存在计算机设备的本地空间或者保存在区块链网络上,以防止对状态机的多个状态以及每个状态对应的状态标识进行篡改。相应的,计算机设备当接收到资源数据转移业务的启动请求时,可先从本地空间或者从区块链网络中获取第一状态的状态标识,并将资源数据转移业务的状态机设置为第一状态。
在一个实施中,启动请求可以是接收到资源数据转移操作后生成的请求,此时第一状态的状态标识为预先设置的初始状态的状态标识,计算机设备将初始状态设置为第一状态。其中,该资源数据转移操作可以是点击资源数据转移对应的图标的操作,例如用户可点击发红包的图标或者点击领红包的图标;资源数据转移操作还可以是用户针对资源数据转移输入的指令或者密码的触发操作。
在另一个实施例中,在进行资源数据转移业务的过程中,可能会由于网络质量差或者系统抖动等原因导致状态机在进行状态调整时失败,因此当网络质量变好或者系统稳定时,需要支持从断点处重新进行资源数据转移。在这种情况下,启动请求还可以是状态机的状态调整失败后生成的断点重启请求,该第一状态的状态标识是状态机的状态调整失败时,状态机所处状态的状态标识。具体的,计算机设备保存有状态机的状态调整历史记录表;当计算机设备接收到针对态机的状态调整失败后生成的断点重启请求时,可获取该状态调整历史记录表,并确定状态调整失败时,状态机所处状态的状态标识,并将该状态机所处状态的状态标识确定为第一状态的状态标识。其中,该状态调整记录表可保存在区块链网络中。
S302、执行第一状态对应的第一业务逻辑,得到第一业务逻辑的执行结果。
在具体实现中,每个状态对应有业务逻辑,且每个状态机对应的业务逻辑可保存在计算机设备的本地空间,也可将每个状态对应的业务逻辑上传区块链网络以防止篡改;计算机设备可先根据第一状态从本地空间或者区块链网络中确定出第一业务逻辑,然后执行该第一业务逻辑。
在一个实施例中,当资源数据转移业务的状态机的状态较少时,例如,该资源数据转移业务为资源转出业务(如发红包),资源转出业务的状态机对应的状态数量比较少,且仅有支付一个资金流动作,状态机的状态比较固定。计算机设备可基于普通过程式的状态机实现来确定第一业务逻辑。
在另一种实施例中,当资源数据转移业务的状态机的状态较多时,例如,该资源数据转移业务为资源转入业务(如领红包),由于该资源转入业务的资金流动作比较多,该状态机的状态也比较多,如果采用上述基于普通过程式的状态机很容易造成代码之间的逻辑混乱,会增加开发人员的开发难度和降低开发效率,且当需要新增状态机的状态时,基于普通过程式的状态机会对原有代码模块的入侵性比较大。因此,当状态机的状态较多时,为了使状态机具有良好的扩展性和灵活性。计算机设备可基于状态模式的状态机来确定第一业务逻辑。
其中,上述所涉及到基于普通过程式的状态机是指:状态机的每个状态对应一个面向过程的状态判断条件,根据该每个状态判断条件可确定相应的业务逻辑,并执行相应的业务逻辑;上述涉及到基于状态模式的状态机是指:状态机的每个状态对应一个面向对象的状态类,并基于每个状态类可确定相应的业务逻辑,并执行相应的业务逻辑。该状态机的每个状态对应一个面向过程的状态判断条件或者状态机的每个状态对应一个面向对象的状态类是由状态机对应的状态数量决定的。在具体实现中,当状态机对应的状态数量小于预设数值时,选择状态机的每个状态对应一个面向过程的状态判断条件;当状态机对应的状态数量大于或者等于预设数值时,选择状态机的每个状态对应一个面向对象的状态类。
S303、根据第一业务逻辑的执行结果将状态机的状态调整为第二状态,执行第二状态对应的第二业务逻辑,得到第二业务逻辑的执行结果。
在具体实现中,根据资源数据转移业务的状态转移需求,可预先设置状态转换逻辑,计算机设备可根据状态转换逻辑与第一业务逻辑的执行结果进行对比,根据对比结果可将状态机的状态由第一状态调整为第二状态,然后根据第二状态确定对应的第二业务逻辑,并执行第二业务逻辑。
在一个实施例中,计算机设备根据第一业务逻辑的执行结果将状态机的状态调整为第二状态后,可对第二状态进行终止状态判断。当该第二状态是非终止状态时,则可根据第二业务逻辑的执行结果调整状态机的状态,并基于调整后的状态输出资源数据转移业务的业务执行结果,可以理解的是,当第二状态是非终止状态时,计算机设备可将当前第二状态作为新的第一状态,将当前第二状态的第二业务逻辑作为新的第一业务逻辑,将当前第二业务逻辑的执行结果作为新的第一业务逻辑的执行结果,再根据新的第一业务逻辑的执行结果确定新的第二状态,以此类推。
S304、当第二状态是终止状态时,根据第二业务逻辑的执行结果输出资源数据转移业务的业务执行结果。
其中,资源数据转移业务的业务逻辑至少包括第一业务逻辑和第二业务逻辑;在具体实现中,计算机设备根据第二业务逻辑的执行结果输出资源数据转移业务的最终资源数据的转移情况。
在本申请实施例中,在进行资源数据转移业务的过程中,利用状态机的来实现资源数据转移业务的状态机的状态之间的调整,最终实现资源数据转移业务,丰富了资源数据转移业务的实现方式;进一步地,利用状态机使得整个资源数据转移业务的状态转换有序,便于维护,进而能够更好地保证资源数据转移业务的实现。
请参阅图4,图4为本申请实施例提供的一种数据处理方法的流程示意图。该方法可由计算机设备执行,计算机设备中设置针对不同业务对应的状态机,本实施例中所描述的数据处理方法中主要在资源数据转移业务为资源数据转出业务来进行讲解,可包括以下步骤S401-S406:
S401、当接收到资源数据转移业务的启动请求时,将资源数据转移业务的状态机的状态设置为第一状态。
其中,启动请求携带第一状态的状态标识。
S402、遍历多个状态判断条件,以确定第一状态对应的状态判断条件。
其中,状态机对应有多个状态,每个状态对应的一个面向过程的状态判断条件。在具体实现中,计算机设备根据第一状态遍历多个状态判断条件,从而确定第一状态对应的状态判断条件,并执行步骤S403。例如,第一状态为支付完成状态,并遍历状态判断条件中是否存在支付完成状态,若成功在状态判断条件下遍历到支付完成状态,则可确定支付完成状态对应的状态判断条件。
S403、读取第一状态的状态判断条件对应的第一业务逻辑。
其中,每个状态的状态判断条件对应有业务逻辑。例如,上述资源数据转移业务为资源转出业务,第一业务逻辑可包括资源数据包分配,统计已转资源数据包数量等。
S404、执行第一状态对应的第一业务逻辑,得到第一业务逻辑的执行结果。
在一个实施例中,在步骤S403中,该第一状态为资源数据包部分转出状态,第一状态的状态判断条件对应的第一业务逻辑为根据用户的领取触发操作,将资源数据包中的资源数据分配给相应用户,并统计已转资源数据包数量(在电子红包场景下,已转资源数据包数量即是已领取红包数量);最终得到的第一业务逻辑的执行结果为已转资源数据包数量。
S405、根据第一业务逻辑的执行结果将状态机的状态调整为第二状态,执行第二状态对应的第二业务逻辑,得到第二业务逻辑的执行结果。
承接上述第一业务逻辑的执行结果为已转资源数据包,计算机设备获取资源数据包总量(在电子红包场景下,资源数据包总量即是用户发送的红包总数),并判断已转资源数据包数量是否小于资源数据包总量。若已转资源数据包数量等于资源数据包总数量,则将资源全部转出状态作为状态机的第二状态;若已转资源数据包数量小于资源数据包总数量,此时需要进一步判断资源数据包的有效时间戳是否超过预设时间戳,例如预设时间戳可为12小时、24小时等,在实际应用中,预设时间戳可根据需求设置。若资源数据包的有效时间戳超过预设时间戳,则将退回资源状态作为状态机的第二状态。若该资源数据包的有效时间戳未超过预设时间戳,则状态机的状态不发生改变,即将该资源部分领取状态作为第二状态。其中,该状态机的状态调整实现过程如下:
进一步地,在确定第二状态后,可先判断该第二状态是否为终止状态,若第二状态为非终止状态,则计算机设备再次遍历多个状态判断条件,以确定第二状态对应的状态判断条件,并读取第二状态对应的状态判断条件对应的第二业务逻辑,然后执行第二业务逻辑,然后根据第二业务逻辑的执行结果调整状态机的状态。此时可将第二状态作为新的第一状态,将状态机调整后的状态作为新的第二状态,并再次判断新的第二状态是否终止状态,以此类推,直到当某个状态为终止状态时,根据终止状态的业务逻辑结果输出资源数据转移业务的业务执行结果。
S406、当第二状态是终止状态时,根据第二业务逻辑的执行结果输出资源数据转移业务的业务执行结果;资源数据转移业务的业务逻辑包含第一业务逻辑和第二业务逻辑。
在具体实现中,第二业务逻辑的执行结果可包括显示资源数据包全部领取完的通知信息或者已将过期资源数据包退回账户。具体的,第二业务逻辑的执行结果为显示资源数据包全部领取完的通知信息,该资源转出业务的业务执行结果为资源数据包转出成功;第二业务逻辑的执行结果为已将过期资源数据包退回账户,该资源转出业务的业务执行结果为资源数据包部分转出成功或者资源数据包全部转出成功。
在本申请实施例中,在进行资源数据转移业务过程中,可采用状态机对应的多个状态判断条件来确定第一状态对应的状态判断条件,并根据第一状态判断条件来确定第一业务逻辑,然后根据第一业务逻辑的执行结果将状态机的状态调整为第二状态,可以丰富资源数据转移业务的实现方式;进一步地,利用状态机使得整个资源数据转移业务的状态转换有序,便于维护,进而能够更好地实现资源数据转移业务。
请参阅图5,图5为本申请实施例提供的一种数据处理方法的流程示意图。该方法可由计算机设备执行,计算机设备中设置针对不同业务对应的状态机,本实施例中所描述的数据处理方法中主要以资源数据转移业务为资源转入业务来进行讲解,其中,该资源转入业务可以是跨境区域资源转入业务,也可以是同一区域资源转入业务,本申请实施例不做限定;该数据处理方法可包括以下步骤S501-S506:
S501、当接收到资源数据转移业务的启动请求时,将资源数据转移业务的状态机的状态设置为第一状态。
其中,启动请求携带第一状态的状态标识。
S502、执行第一状态对应的第一业务逻辑,得到第一业务逻辑的执行结果。
其中,状态机包括多个状态,每个状态对应一个面向对象的状态类,每个状态类包括业务逻辑。当状态机为第一状态时,状态指针指向第一状态的状态类对应的实例。具体的,在第一状态的状态类对应的实例中,封装有第一状态需要执行的业务逻辑,状态指针指向第一状态的状态类对应的实例,计算机设备就可确定第一状态对应的第一业务逻辑,并执行第一业务逻辑。
在一个实施例中,状态模式除了包括状态类,还可包括环境类和抽象类;其中,环境类维护一个状态类的实例,并通过抽象类的接口运行状态类对应的实例的操作,该环境类中可持有一个状态指针;抽象类,定义为环境类的抽象接口,也可理解为基类,抽象类为状态类的父类。具体的,计算机设备通过环境类的状态指针指向抽象类中第一状态的状态类的实例。
在一个实施例中,第一业务逻辑包括在会话界面显示资源数据包的通知消息,例如,该跨区域资源转入业务为跨区域领红包,计算机设备在执行第一业务逻辑时,在会话界面显示红包的通知消息,此时在会话界面中显示红包的通知消息可由上述图6a所示。
S503、根据第一业务逻辑的执行结果将状态机的状态调整为第二状态。
在具体实现中,由于基于状态模式可允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句,因此上述每个状态类中包括状态转移逻辑。计算机设备可根据第一业务逻辑和状态转换逻辑确定第二状态,然后将状态指针指向第二状态的状态类对应的实例,以使状态机的状态由第一状态调整为第二状态。
在一个实施例中,上述状态转换逻辑包括一个或多个转换条件,以及各转换条件下对应的状态。计算机设备根据第一业务逻辑和状态转换逻辑确定第二状态的具体实现为:判断第一业务逻辑的执行结果是否有命中状态转换逻辑中的目标转换条件;若第一业务逻辑的执行结果命中状态转换逻辑中的目标转换条件,则将目标转换条件下对应的状态确定为第二状态,其中,目标转换条件是所述一个或多个转换条件中的一个转换条件。在具体实现中,以资源数据转移业务为资源转入业务为例,多个转换条件为资源支付失败和资源支付成功,资源支付失败对应资源转入失败状态,资源支付成功对应资源转入成功状态;若第一业务逻辑的执行结果命中多个转换条件中的目标转换条件为资源支付失败,则可将资源转入失败状态确定为第二状态;若第一业务逻辑的执行结果命中多个转换条件中的目标转换条件为资源支付成功,则可将资源转入成功状态作为第二状态。
需要说明的是,上述每个状态对应面向过程的一个状态类,每个状态类包括业务逻辑以及状态转换条件等均可保存在区块链网络中。
例如,该资源转入业务为领红包业务,两个转换条件包括F国货币转账成功和F国货币转账失败;其中,F国货币转账成功对应企业付款成功状态,F国货币转账失败对应企业付款失败状态。若第一业务逻辑的执行结果命中两个转换条件中的F国货币转账成功,则将企业付款成功状态作为第二状态;若第一业务逻辑的执行结果命中两个转换条件中的F国货币转账失败,则将企业付款失败状态作为第二状态。
S504、对第二状态进行终止状态判断。
在具体实现中,计算机设备可通过环境类调用抽象类对应的状态类中的目标函数对终止状态进行判断。若目标函数返回的是终止状态的状态标识,则确定第二状态为终止状态,并执行步骤S506;若目标函数返回的是非终止状态的状态标识,则确定第二状态是非终止状态,并执行步骤S505。
S505、当第二状态是非终止状态时,执行第二状态对应的第二业务逻辑,得到第二业务逻辑的执行结果,根据第二业务逻辑的执行结果调整状态机的状态,并基于调整后的状态输出资源数据转移业务的业务执行结果。
在具体实现中,当第二状态是非终止状态时,计算机设备可调用业务执行函数执行第二状态对应的第二业务逻辑。该第二业务逻辑可包括在会话界面中显示红包的通知消息,此时显示红包的通知消息可如图6b所示。
S506、当第二状态是终止状态时,根据第二业务逻辑的执行结果输出资源数据转移业务的业务执行结果。
其中,资源数据转移业务的业务逻辑包含第一业务逻辑和第二业务逻辑。
在一个实施例中,第二业务逻辑包括在资源领取界面中显示发起资源转入业务的用户的用户名称、第一资源数据量和第二资源数据量,其中,该第一资源数据量和第二资源数据量对应不同区域的资源类型。例如,承接上述S502的例子中,第一资源数据量对应的区域为F国,该第一资源数据量的资源类型为F 国货币,第二资源数据量对应的区域为E国,该第二资源数据量对应的资源类型为E国货币,如图6c所示,当执行完成第一业务逻辑后,计算机设备将状态机的状态调整为第二状态,并执行第二状态对应的第二业务逻辑,即在资源领取界面会显示发红包的用户名称“XX”,第一资源数据量为“XX的F国货币”,以及第二资源数据量为“XX的E国货币”。又例如,第一资源数据量对应的区域为F国,该第一资源数据量的资源类型为F国货币;第二资源数据量对应的区域为游戏应用区域,该第二资源数据量的资源类型为游戏币等等。本申请不限制第一资源数据量和第二资源数据量对应不同区域的资源类型。
在本申请实施例中,在进行资源数据转移业务的过程中,计算机设备根据第一状态的第一业务逻辑的执行结果来控制资源数据转移业务的状态机的状态由第一状态调整为第二状态,然后并在每个状态下进行终止状态判断,可以丰富资源数据转移业务的实现方式;进一步地,利用状态机使得整个资源数据转移业务的状态转换有序,便于维护,进而能够更好地实现资源数据转移业务。并且每个状态对应一个面向过程的状态类,当状态机的状态较多时,可以减少整个资源数据业务转移业务的处理时间。进一步地,由于上述每个状态对应一个状态类,将所有与与某个状态相关的行为放在对应状态类中,只需要改变对象状态即可改变对象的行为,因此当需要对资源数据转移业务进行新增状态时,只需要生成新增状态对应的新增状态类就可以并进行相应的操作即可,具有良好的扩展性。
请参见图7,图7为本申请实施例提供的一种数据处理方法的流程示意图,该数据处理方法可由区块链网络中的任一节点执行,前述实施例中的计算机设备可以是任一节点,且设置针对不同业务对应的状态机,本实施例中所描述的数据处理方法,可包括以下步骤S701-S706:
S701、当接收到从区块链上读取到的资源数据转移业务的启动请求时,将资源数据转移业务的状态机的状态设置为第一状态。
在具体实现中,任一节点均可读取到的资源数据转移业务的启动请求,并根据该启动请求将资源数据转移业务的状态机的状态设置为第一状态。
S702、执行第一状态对应的第一业务逻辑,得到第一业务逻辑的执行结果。
S703、根据第一业务逻辑的执行结果将状态机的状态调整为第二状态,执行第二状态对应的第二业务逻辑,得到第二业务逻辑的执行结果;
S704、当第二状态是终止状态时,根据第二业务逻辑的执行结果输出资源数据转移业务的业务执行结果;资源数据转移业务的业务逻辑包含第一业务逻辑和第二业务逻辑。
其中,上述步骤S702-S704的具体实现方式可参见上述步骤S302-S304的具体实现方式,在次不再赘述。
S705、将资源数据转移业务过程中状态机经历的多个状态、每个状态对应的业务逻辑的执行结果以及资源数据转移业务的业务执行结果封装为区块。
具体实现中,任一节点接收到资源数据转移业务过程中的状态机经历的多个状态、每个状态对应的业务逻辑的执行结果以及资源数据转移业务的业务执行结果之后,对接收到的多个状态、每个状态对应的业务逻辑的执行结果以及资源数据转移业务的业务执行结果进行校验,在校验通过之后,任一节点可将多个状态、每个状态对应的业务逻辑的执行结果以及资源数据转移业务的业务执行结果进行储存,并生成区块头和区块主体,得到区块。
S706、将区块存储至区块链。
在具体实现中,任一节点将上述生成的区块发送给区块链网络中的其他节点,并其他节点对生成的区块进行校验,并在完成校验后将区块添加至区块链中。
在本申请实施例中,在进行资源数据转移业务的过程中,利用状态机来控制资源数据转移业务中的状态转移,在一定程序上无需按照预设逻辑进行执行,且能够准确地确定资源数据转移业务的状态转换过程,进而保证完成资源数据转移业务;将资源数据转移业务过程中状态机经历的多个状态、每个状态对应的业务逻辑的执行结果以及资源数据转移业务的业务执行结果保存到区块链中,可有效防止篡改资源数据转移业务过程中状态机经历的多个状态、每个状态对应的业务逻辑的执行结果以及资源数据转移业务的业务执行结果。
基于上述所提供的数据处理方法,本申请实施例还提供一种更为具体的基于状态模式的状态机实现资源转入业务。为方便理解,先以该资源转入业务为跨境领红包为例。图8a为整个微信红包资金流的具体过程:E国用户C通过账户C或者快捷发红包,其中,C账户可以理解为E国用户C的零钱包;快捷可以理解为银行卡;计算机设备将该发送的红包中的数据资源保存在中间账户(如图8a中的商户B账户),然后等待用户进行领红包。当E国用户领取红包后,直接经过中间账户将红包中的资源数据转到E国零钱包。但当F国用户领取红包之后,需要由中间账户将红包中的资源数据再转给另外一个中间账户(如图 8b中的商户C账户),然后再由商户C账户刷卡支付,并经过钱包融合,才能将E国货币转换成F国货币,最终才能到的F国用户的零钱包。由于钱包融合过程已经固定,本申请实施例不对该钱包融合中所涉及的状态进行讨论。从上述图8a可以看出,当F国用户领红包后,会涉及到多个状态的改变,因此可采用基于状态模式来实现跨境领红包。其中,状态模式主要由3种类型的类组成: Context类(或者称为环境类)、State类(或称为抽象类)和ConcreteState类(或称为状态类),每个状态类分别对应跨境红包状态机的状态,内部封装对应每个状态所需的实现。
基于状态模式的跨境红包的实现可如图8b所示:Context类持有一个指向 State类的状态指针(ConcreteState类的父指针),Context类中可包括Run函数以及mystate函数,其中,Run函数可利用状态指针实现状态机的状态转移和状态所对应的业务逻辑执行;mystate函数可实现其他功能。每个ConcreteState类中都对应有isFinal函数、process函数和setcontext函数等,其中isFinal函数可用于对状态机的状态进行终止状态判断,process函数可用于执行状态机的状态对应的业务逻辑,setcontext函数可用于状态机的其他功能实现。当计算机设备接收到F国用户的领红包业务的启动请求时,将跨境领红包业务的状态机设置为初始状态(对应上述第一状态),并通过Context类中的Run函数调用状态指针指向State类中的初始状态对应的状态类中的isFinal函数,判断第一状态是否终态。
(1)若计算机设备确定初始状态为非终止状态,则通过Context类中的Run 函数调用状态指针指向State类中的初始状态对应的状态类中的process函数,然后计算出抢到的E国货币(对应上述第一资源数据量)以及E国货币换算为 F国货币的金额(对应上述第二资源数据量),插入分单表一条记录,然后更新 Context类里State类的指针指向CBeforeB2CState的实例。
(2)当更新Context类里State类的指针指向CBeforeB2CState的实例后,计算机设备需要按照上述初始状态判断是否为终止状态的实现方式来判断 CBeforeB2CState类对应的状态是否为终止状态。若CBeforeB2CState类对应的状态为非终止状态,则可按照上述初始状态执行相应的业务逻辑来执行 CBeforeB2CState类对应的业务逻辑,即商户B账户到商户C账户的转账,当转账成功(业务逻辑执行结果),然后更新Context类里State的指针指向 CB2CSucState的实例(状态指针指向CB2CSucState的实例)。
(3)当更新Context类里State的指针指向CB2CSucState的实例(状态指针指向CB2CSucState的实例)后,按照上述初始状态的处理过程来对 CB2CSucState进行处理,然后执行CB2CSucState对应的业务逻辑,即执行刷卡支付。当刷卡支付成功后更新Context类里State的指针到下一个状态。以此类推。
从上述跨境领红包的状态机实现过程可以看出,每个状态形成一个子类,每个状态类只关心她的下一个可能状态(即封装了转换原则)。并且在枚举可能的状态,在枚举可能的状态之前需要确定状态的种类;若后续状态机有新加状态的需求,只需要新加状态对应实现一个ConcreteState类,在里面实现新加状态对应的业务逻辑。然后修改上一状态对应状态类中的业务逻辑以及状态转换条件,然后让上一状态指向这个新加状态,整个流程就可以按照状态机自动执行下来,不需要重构整个业务逻辑,对原有逻辑没有侵入性,扩展性非常好,适用于支付等行业状态机的代码实现。
综上所述,本申请实施例基于状态模式实现的资源数据转移业务状态迁移,具有以下有点:
(1)每个状态形成一个子类,每个状态类只关心它的下一个可能状态,因此封装了转换原则。
(2)枚举资源数据转移业务所有可能的状态,并在枚举状态之前需要确定状态种类。
(3)将所有与某个状态有关的行为放到一个类中,后续在增加新状态时,只需改变前一状态的有关行为,可以方便地增加新的状态。且后续只需要改变对象状态即可改变对象的行为。
(4)允许状态转换逻辑与状态对象合成一体,即都保存在状态对象对应的类中,而不是某一个巨大的条件语句块。
(5)可以让多个环境对象共享一个状态对象,从而减少系统中对象的个数即,通过这些优点,最终源数据转移业务的代码实现呈现的是一个高内聚,高扩展的设计实现。
进一步的,请参见图9,其是本申请实施例提供的一种数据处理装置的结构示意图。如图9所示,数据处理装置可以应用于上述图3或图4或图5对应实施例中的计算机设备;或者数据处理装置可以应用于上述图7对应实施例中的任一节点,具体的,数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如数据处理装置为一个应用软件;该数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。
处理单元901,用于当接收到资源数据转移业务的启动请求时,将所述资源数据转移业务的状态机的状态设置为第一状态;所述启动请求携带所述第一状态的状态标识;
所述处理单元901,还用于执行所述第一状态对应的第一业务逻辑,得到所述第一业务逻辑的执行结果;
所述处理单元901,还用于根据第一业务逻辑的执行结果将所述状态机的状态调整为第二状态,执行所述第二状态对应的第二业务逻辑,得到所述第二业务逻辑的执行结果;
输出单元902,用于当所述第二状态是终止状态时,根据所述第二业务逻辑的执行结果输出所述资源数据转移业务的业务执行结果;所述资源数据转移业务的业务逻辑包含所述第一业务逻辑和所述第二业务逻辑。
在一个实施例中,所述处理单元901,还用于:
对所述第二状态进行终止状态判断;
当所述第二状态是非终止状态时,根据所述第二业务逻辑的执行结果调整所述状态机的状态,并基于调整后的状态输出所述资源数据转移业务的业务执行结果。
在一个实施例中,所述资源数据转移业务包括跨区域资源转入业务,所述第一业务逻辑包括在会话界面显示资源数据包的通知消息,所述第二业务逻辑包括在资源领取界面中显示发起所述资源转入业务的用户的用户名称、第一资源数据量和第二资源数据量,所述第一资源数据量和所述第二资源数据量对应不同区域的资源类型。
在一个实施例中,所述资源数据转移业务的启动请求是接收到资源数据转移操作后生成的请求;或者,
所述资源数据转移业务的启动请求是状态机的状态调整失败后生成的断点重启请求,所述启动请求中携带的第一状态的状态标识是状态调整失败时,状态机所处状态的状态标识。
在一个实施例中,所述状态机对应有多个状态,每个状态对应一个面向过程的状态判断条件,每个状态判断条件对应有业务逻辑,所述多个状态包括所述第一状态和所述第二状态;所述处理单元901,还用于:
遍历所述多个状态判断条件,以确定所述第一状态对应的状态判断条件;
读取所述第一状态的状态判断条件对应的第一业务逻辑。
在一个实施例中,所述资源数据转移业务包括资源转出业务,所述第一业务逻辑的执行结果包括已转资源数据包数量和资源数据有效时间戳;所述处理单元901,具体用于:
获取资源数据包总量;
若所述已转资源数据包数量等于所述资源数据包总量,则将资源全部转出状态作为所述状态机的第二状态;
若所述已转资源数据包数量小于所述资源数据包总量,且所述资源数据包有效时间戳超过预设时间戳,则将退回资源状态作为所述状态机的第二状态。
在一个实施例中,所述状态机包括多个状态,每个状态对应一个面向对象的状态类,每个状态类包括业务逻辑;当状态机的状态为第一状态时,状态指针指向所述第一状态的状态类对应的实例;所述处理单元901,具体用于:
确定所述第一状态的状态转换逻辑;
根据所述第一业务逻辑的执行结果和所述状态转换逻辑确定第二状态;
将所述状态指针指向所述第二状态的状态类对应的实例,以使所述状态机的状态由所述第一状态调整为所述第二状态。
在一个实施例中,所述状态转换逻辑包括一个或多个转换条件以及,各转换条件下对应的状态;所述处理单元901,具体用于:
若所述第一业务逻辑的执行结果命中所述状态转换逻辑中的目标转换条件,则将所述目标转换条件下对应的状态确定为第二状态,所述目标转换条件是所述一个或多个转换条件中的一个转换条件。
在一个实施例中,所述资源数据转移业务包括资源转入业务,所述多个转换条件包括资源支付失败和资源支付成功,所述资源支付失败对应资源转入失败状态,所述资源支付成功对应资源转入成功状态;
若所述目标转换条件为资源支付失败,则第二状态是资源转入失败状态;
若所述目标转换条件为资源支付成功,则第二状态是资源转入成功状态。
在一个实施例中,所述状态机的每个状态对应一个面向过程的状态判断条件或者所述状态机的每个状态对应一个面向对象的状态类是由状态机对应的状态数量决定的。
在一个实施例中,所述资源数据转移业务的启动请求是从区块链上读取的;所述处理单元901,还用于:
将资源数据转移业务过程中状态机经历的多个状态、每个状态对应的业务逻辑的执行结果以及资源数据转移业务的业务执行结果封装为区块;
将所述区块存储至所述区块链。
可以理解的是,本实施例的数据处理装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例图3 或图4或图5或图7的相关描述,此处不再赘述。
进一步地,请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。上述图3或图4或图5对应实施例中的计算机设备可以为图10所示的计算机设备,上述图7对应的实施例中的任一节点可以为图10所示的计算机设备。如图10所示,计算机设备可以包括:处理器1001、输入设备1002,输出设备1003和存储器1004。上述处理器1001、输入设备1002、输出设备1003 和存储器1004通过总线1005连接。存储器1004用于存储计算机程序,所述计算机程序包括程序指令,处理器1001用于执行存储器1004存储的程序指令。
在本申请实施例中,处理器1001通过运行存储器1004中的可执行程序代码,执行如下操作:
当接收到资源数据转移业务的启动请求时,将所述资源数据转移业务的状态机的状态设置为第一状态;所述启动请求携带所述第一状态的状态标识;
执行所述第一状态对应的第一业务逻辑,得到所述第一业务逻辑的执行结果;
根据第一业务逻辑的执行结果将所述状态机的状态调整为第二状态,执行所述第二状态对应的第二业务逻辑,得到所述第二业务逻辑的执行结果;
当所述第二状态是终止状态时,根据所述第二业务逻辑的执行结果输出所述资源数据转移业务的业务执行结果;所述资源数据转移业务的业务逻辑包含所述第一业务逻辑和所述第二业务逻辑。
在一个实施例中,所述处理器1001,还用于:
对所述第二状态进行终止状态判断;
当所述第二状态是非终止状态时,根据所述第二业务逻辑的执行结果调整所述状态机的状态,并基于调整后的状态输出所述资源数据转移业务的业务执行结果。
在一个实施例中,所述资源数据转移业务包括跨区域资源转入业务,所述第一业务逻辑包括在会话界面显示资源数据包的通知消息,所述第二业务逻辑包括在资源领取界面中显示发起所述资源转入业务的用户的用户名称、第一资源数据量和第二资源数据量,所述第一资源数据量和所述第二资源数据量对应不同区域的资源类型。
在一个实施例中,所述资源数据转移业务的启动请求是接收到资源数据转移操作后生成的请求;或者,
所述资源数据转移业务的启动请求是状态机的状态调整失败后生成的断点重启请求,所述启动请求中携带的第一状态的状态标识是状态调整失败时,状态机所处状态的状态标识。
在一个实施例中,所述状态机对应有多个状态,每个状态对应一个面向过程的状态判断条件,每个状态判断条件对应有业务逻辑,所述多个状态包括所述第一状态和所述第二状态;所述处理器1001,还用于:
遍历所述多个状态判断条件,以确定所述第一状态对应的状态判断条件;
读取所述第一状态的状态判断条件对应的第一业务逻辑。
在一个实施例中,所述资源数据转移业务包括资源转出业务,所述第一业务逻辑的执行结果包括已转资源数据包数量和资源数据有效时间戳;所述处理器1001,具体用于:
获取资源数据包总量;
若所述已转资源数据包数量等于所述资源数据包总量,则将资源全部转出状态作为所述状态机的第二状态;
若所述已转资源数据包数量小于所述资源数据包总量,且所述资源数据包有效时间戳超过预设时间戳,则将退回资源状态作为所述状态机的第二状态。
在一个实施例中,所述状态机包括多个状态,每个状态对应一个面向对象的状态类,每个状态类包括业务逻辑;当状态机的状态为第一状态时,状态指针指向所述第一状态的状态类对应的实例;
所述处理器1001,具体用于:
确定所述第一状态的状态转换逻辑;
根据所述第一业务逻辑的执行结果和所述状态转换逻辑确定第二状态;
将所述状态指针指向所述第二状态的状态类对应的实例,以使所述状态机的状态由所述第一状态调整为所述第二状态。
在一个实施例中,所述状态转换逻辑包括一个或多个转换条件以及,各转换条件下对应的状态;所述处理器1001,具体用于:
若所述第一业务逻辑的执行结果命中所述状态转换逻辑中的目标转换条件,则将所述目标转换条件下对应的状态确定为第二状态,所述目标转换条件是所述一个或多个转换条件中的一个转换条件。
在一个实施例中,所述资源数据转移业务包括资源转入业务,所述多个转换条件包括资源支付失败和资源支付成功,所述资源支付失败对应资源转入失败状态,所述资源支付成功对应资源转入成功状态;
若所述目标转换条件为资源支付失败,则第二状态是资源转入失败状态;
若所述目标转换条件为资源支付成功,则第二状态是资源转入成功状态。
在一个实施例中,所述状态机的每个状态对应一个面向过程的状态判断条件或者所述状态机的每个状态对应一个面向对象的状态类是由状态机对应的状态数量决定的。
在一个实施例中,所述资源数据转移业务的启动请求是从区块链上读取的;所述处理器1001,还用于:
将资源数据转移业务过程中状态机经历的多个状态、每个状态对应的业务逻辑的执行结果以及资源数据转移业务的业务执行结果封装为区块;
将所述区块存储至所述区块链。
应当理解,在本申请实施例中,所称处理器1001可以是中央处理单元 (CentralProcessing Unit,CPU),该处理器1001还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array, FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1004可以包括只读存储器和随机存取存储器,并向处理器1001 提供指令和数据。存储器1004的一部分还可以包括非易失性随机存取存储器。
该输入设备1002可以包括键盘等,并向处理器1001输入待测区块链程序源代码;该输出设备1003可以包括显示器等。
具体实现中,本申请实施例中所描述的处理器1001、输入设备1002、输出设备1003和存储器1004可执行上述所有实施例中描述的实现方式,也可执行上述装置中所描述的实现方式,在此不再赘述。
本申请实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,可执行上述所有实施例中所执行的步骤。
本申请实施例还提供一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中,计算机指令被计算机设备的处理器执行时,执行上述所有实施例中的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
当接收到资源数据转移业务的启动请求时,将所述资源数据转移业务的状态机的状态设置为第一状态;所述启动请求携带所述第一状态的状态标识;
执行所述第一状态对应的第一业务逻辑,得到所述第一业务逻辑的执行结果;
根据第一业务逻辑的执行结果将所述状态机的状态调整为第二状态,执行所述第二状态对应的第二业务逻辑,得到所述第二业务逻辑的执行结果;
当所述第二状态是终止状态时,根据所述第二业务逻辑的执行结果输出所述资源数据转移业务的业务执行结果;所述资源数据转移业务的业务逻辑包含所述第一业务逻辑和所述第二业务逻辑。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第二状态进行终止状态判断;
当所述第二状态是非终止状态时,根据所述第二业务逻辑的执行结果调整所述状态机的状态,并基于调整后的状态输出所述资源数据转移业务的业务执行结果。
3.根据权利要求2所述的方法,其特征在于,所述资源数据转移业务包括跨区域资源转入业务,所述第一业务逻辑包括在会话界面显示资源数据包的通知消息,所述第二业务逻辑包括在资源领取界面中显示发起所述资源转入业务的用户的用户名称、第一资源数据量和第二资源数据量,所述第一资源数据量和所述第二资源数据量对应不同区域的资源类型。
4.根据权利要求2所述的方法,其特征在于,
所述资源数据转移业务的启动请求是接收到资源数据转移操作后生成的请求;或者,
所述资源数据转移业务的启动请求是状态机的状态调整失败后生成的断点重启请求,所述启动请求中携带的第一状态的状态标识是状态调整失败时,状态机所处状态的状态标识。
5.根据权利要求2所述的方法,其特征在于,所述状态机对应有多个状态,每个状态对应一个面向过程的状态判断条件,每个状态判断条件对应有业务逻辑,所述多个状态包括所述第一状态和所述第二状态;
所述方法还包括:
遍历所述多个状态判断条件,以确定所述第一状态对应的状态判断条件;
读取所述第一状态的状态判断条件对应的第一业务逻辑。
6.根据权利要求5所述的方法,其特征在于,所述资源数据转移业务包括资源转出业务,所述第一业务逻辑的执行结果包括已转资源数据包数量和资源数据有效时间戳;
所述根据第一业务逻辑的执行结果将所述状态机的状态调整为第二状态,包括:
获取资源数据包总量;
若所述已转资源数据包数量等于所述资源数据包总量,则将资源全部转出状态作为所述状态机的第二状态;
若所述已转资源数据包数量小于所述资源数据包总量,且所述资源数据包有效时间戳超过预设时间戳,则将退回资源状态作为所述状态机的第二状态。
7.根据权利要求2所述的方法,其特征在于,所述状态机包括多个状态,每个状态对应一个面向对象的状态类,每个状态类包括业务逻辑;当状态机的状态为第一状态时,状态指针指向所述第一状态的状态类对应的实例;
所述根据第一业务逻辑的执行结果将所述状态机的状态调整为第二状态,包括:
确定所述第一状态的状态转换逻辑;
根据所述第一业务逻辑的执行结果和所述状态转换逻辑确定第二状态;
将所述状态指针指向所述第二状态的状态类对应的实例,以使所述状态机的状态由所述第一状态调整为所述第二状态。
8.根据权利要求7所述的方法,其特征在于,所述状态转换逻辑包括一个或多个转换条件以及,各转换条件下对应的状态;
所述根据所述第一业务逻辑的执行结果和所述状态转换逻辑确定第二状态,包括:
若所述第一业务逻辑的执行结果命中所述状态转换逻辑中的目标转换条件,则将所述目标转换条件下对应的状态确定为第二状态,所述目标转换条件是所述一个或多个转换条件中的一个转换条件。
9.根据权利要求8所述的方法,其特征在于,所述资源数据转移业务包括资源转入业务,所述多个转换条件包括资源支付失败和资源支付成功,所述资源支付失败对应资源转入失败状态,所述资源支付成功对应资源转入成功状态;
若所述目标转换条件为资源支付失败,则第二状态是所述资源转入失败状态;
若所述目标转换条件为资源支付成功,则第二状态是所述资源转入成功状态。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述状态机的每个状态对应一个面向过程的状态判断条件或者所述状态机的每个状态对应一个面向对象的状态类是由状态机对应的状态数量决定的。
11.根据权利要求1所述的方法,其特征在于,所述资源数据转移业务的启动请求是从区块链上读取的;
所述方法还包括:
将资源数据转移业务过程中状态机经历的多个状态、每个状态对应的业务逻辑的执行结果以及资源数据转移业务的业务执行结果封装为区块;
将所述区块存储至所述区块链。
12.一种数据处理装置,其特征在于,包括:
处理单元,用于当接收到资源数据转移业务的启动请求时,将所述资源数据转移业务的状态机的状态设置为第一状态;所述启动请求携带所述第一状态的状态标识;
所述处理单元,还用于执行所述第一状态对应的第一业务逻辑,得到所述第一业务逻辑的执行结果;
所述处理单元,还用于根据第一业务逻辑的执行结果将所述状态机的状态调整为第二状态,执行所述第二状态对应的第二业务逻辑,得到所述第二业务逻辑的执行结果;
输出单元,用于当所述第二状态是终止状态时,根据所述第二业务逻辑的执行结果输出所述资源数据转移业务的业务执行结果;所述资源数据转移业务的业务逻辑包含所述第一业务逻辑和所述第二业务逻辑。
13.一种计算机设备,其特征在于,包括输入设备、输出设备,所述计算机设备还包括处理器和存储介质,所述处理器用于获取存储介质中存储的一条或多条指令,以执行如权利要求1-11中任一项所述的方法。
14.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1-11任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110098915.0A CN114792233A (zh) | 2021-01-25 | 2021-01-25 | 一种数据处理方法、装置、计算机设备和可读存储介质 |
PCT/CN2022/072688 WO2022156696A1 (zh) | 2021-01-25 | 2022-01-19 | 一种数据处理方法、装置、计算机设备和可读存储介质 |
US17/965,668 US12099855B2 (en) | 2021-01-25 | 2022-10-13 | Data processing method and apparatus, computer device, and readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110098915.0A CN114792233A (zh) | 2021-01-25 | 2021-01-25 | 一种数据处理方法、装置、计算机设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114792233A true CN114792233A (zh) | 2022-07-26 |
Family
ID=82459856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110098915.0A Pending CN114792233A (zh) | 2021-01-25 | 2021-01-25 | 一种数据处理方法、装置、计算机设备和可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12099855B2 (zh) |
CN (1) | CN114792233A (zh) |
WO (1) | WO2022156696A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9037472B2 (en) * | 2012-04-20 | 2015-05-19 | Nuance Communications, Inc. | Method and system for facilitating communications for a user transaction |
CN103745540B (zh) * | 2014-01-16 | 2016-06-22 | 中国银行股份有限公司 | 银行业务状态机自动处理系统及信息状态自动转换方法 |
CN106535082B (zh) * | 2015-09-09 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置和系统 |
CN106909596B (zh) * | 2016-06-23 | 2021-07-09 | 创新先进技术有限公司 | 业务处理方法、装置及系统 |
CN110445619B (zh) * | 2017-03-30 | 2020-10-16 | 腾讯科技(深圳)有限公司 | 区块链系统、消息处理方法及存储介质 |
CN108764864A (zh) * | 2018-04-09 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 一种配置支付流程、执行支付流程的方法、装置及设备 |
US20220405852A1 (en) * | 2019-08-09 | 2022-12-22 | Trustlayer, Inc. | System and method for tracking proof of insurance and insurance compliance |
CN111144982B (zh) * | 2019-12-20 | 2022-02-11 | 网联清算有限公司 | 订单状态转移方法、装置、电子设备和存储介质 |
-
2021
- 2021-01-25 CN CN202110098915.0A patent/CN114792233A/zh active Pending
-
2022
- 2022-01-19 WO PCT/CN2022/072688 patent/WO2022156696A1/zh active Application Filing
- 2022-10-13 US US17/965,668 patent/US12099855B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230033236A1 (en) | 2023-02-02 |
WO2022156696A1 (zh) | 2022-07-28 |
US12099855B2 (en) | 2024-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109102269B (zh) | 基于区块链的转账方法及装置、区块链节点及存储介质 | |
EP3701461A1 (en) | Method, apparatus, and electronic device for executing transactions based on blockchain | |
CN110365491A (zh) | 业务处理方法、装置、设备、存储介质以及数据共享系统 | |
CN110570282A (zh) | 跨区域资源转移方法、装置、设备及存储介质 | |
CN110557403B (zh) | 基于区块链的资源分配方法、装置、存储介质及节点设备 | |
CN112613877B (zh) | 应用于区块链网络的智能合约触发方法、装置及相关设备 | |
CN112199382A (zh) | 在联盟链网络中创建节点组、基于节点组的交易方法 | |
CN110400217B (zh) | 智能合约的规则变更处理方法及装置 | |
CN110597916A (zh) | 基于区块链的数据处理方法、装置、存储介质及终端 | |
CN111738725A (zh) | 跨境资源转移真实性审核方法、装置及电子设备 | |
CN111985007A (zh) | 一种基于区块链的合同签署与执行方法及装置 | |
CN110866740A (zh) | 一种区块链事务请求的处理方法、装置、电子设备和介质 | |
WO2021238514A1 (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111008251A (zh) | 一种数据处理方法以及设备 | |
CN113162971B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN112633875B (zh) | 账户金额管理方法、系统、设备及存储介质 | |
CN112417052B (zh) | 区块链网络中的数据同步方法、装置、设备及存储介质 | |
CN113469811A (zh) | 区块链交易处理方法及装置 | |
CN113034137A (zh) | 基于区块链的数据处理方法、装置及相关设备 | |
WO2019233454A1 (zh) | 链码升级方法及装置 | |
CN114792233A (zh) | 一种数据处理方法、装置、计算机设备和可读存储介质 | |
CN113032036B (zh) | 业务数据处理方法、装置、系统、计算机设备和存储介质 | |
CN112650763A (zh) | 产品额度的配置方法、相关设备和存储介质 | |
CN114066451A (zh) | 管理资金交易的方法和系统、电子设备 | |
CN114677138A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40070999 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |