CN112862614A - 账户明细的交易顺序的确定方法和装置 - Google Patents
账户明细的交易顺序的确定方法和装置 Download PDFInfo
- Publication number
- CN112862614A CN112862614A CN202110336793.4A CN202110336793A CN112862614A CN 112862614 A CN112862614 A CN 112862614A CN 202110336793 A CN202110336793 A CN 202110336793A CN 112862614 A CN112862614 A CN 112862614A
- Authority
- CN
- China
- Prior art keywords
- transaction
- balance
- account details
- sorted
- determining
- 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
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种账户明细的交易顺序的确定方法和装置,涉及自动程序设计技术领域。该方法的一具体实施方式包括:获取多笔待排序的账户明细,所述多笔待排序的账户明细来自同一账户,所述账户明细包括:交易前余额、发生额和交易后余额;根据所述多笔待排序的账户明细,生成交易前余额集合;根据所述多笔待排序的账户明细,生成交易后余额集合;根据所述交易前余额集合和所述交易后余额集合,确定最终余额,所述最终余额为最终明细中的交易后余额,所述最终明细为所述多笔待排序的账户明细中交易时间最晚的交易明细;根据所述最终余额,确定所述多笔待排序的账户明细的交易顺序。该实施方式能够准确确定同一账户的明细的实际交易顺序。
Description
技术领域
本发明涉及自动程序设计技术领域,尤其涉及一种账户明细的交易顺序的确定方法和装置。
背景技术
业务***常常需要从银行联机***中,获取和展示银行账户明细。对于同一账户的明细,业务***一般根据交易日期时间、银行流水号,对账户明细进行排序展示。但该排序方式存在以下问题:同一账户的明细的排列顺序常常与实际交易顺序不符。
发明内容
有鉴于此,本发明实施例提供一种账户明细的交易顺序的确定方法和装置,能够准确确定同一账户的明细的实际交易顺序。
第一方面,本发明实施例提供了一种账户明细的交易顺序的确定方法,包括:
获取多笔待排序的账户明细,所述多笔待排序的账户明细来自同一账户,所述账户明细包括:交易前余额、发生额和交易后余额;
根据所述多笔待排序的账户明细,生成交易前余额集合;
根据所述多笔待排序的账户明细,生成交易后余额集合;
根据所述交易前余额集合和所述交易后余额集合,确定最终余额,所述最终余额为最终明细中的交易后余额,所述最终明细为所述多笔待排序的账户明细中交易时间最晚的交易明细;
根据所述最终余额,确定所述多笔待排序的账户明细的交易顺序。
可选地,所述获取多笔待排序的账户明细之前,还包括:
接收明细查询请求,所述明细查询请求包括:账户标识和交易日期;
所述获取多笔待排序的账户明细,包括:
根据所述账户标识和所述交易日期,获取所述多笔待排序的账户明细。
可选地,所述根据所述多笔待排序的账户明细,生成交易前余额集合,包括:
获取每笔所述账户明细中的交易前余额;
将所述交易前余额组合成所述交易前余额集合。
可选地,所述根据所述多笔待排序的账户明细,生成交易后余额集合,包括:
获取每笔所述账户明细中的交易后余额;
将所述交易后余额组合成所述交易后余额集合。
可选地,所述根据所述交易前余额集合和所述交易后余额集合,确定最终余额,包括:
确定所述交易后余额集合与所述交易前余额集合之间的差集;
确定所述差集中的元素个数;
根据所述元素个数,确定所述最终余额。
可选地,所述根据所述元素个数,确定所述最终余额,包括:
判断所述元素个数是否为1;
若是,则确定所述差集中的元素为所述最终余额;
若否,则确定所述多笔待排序的账户明细无法进行排序处理。
可选地,所述根据所述最终余额,确定所述多笔待排序的账户明细的交易顺序,包括:
根据所述最终余额,从所述多笔待排序的账户明细中确定出所述最终明细;
将所述最终明细确定为当前明细;
根据所述当前明细,确定所述多笔待排序的账户明细的交易顺序。
可选地,所述根据所述当前明细,确定所述多笔待排序的账户明细的交易顺序,包括:
根据所述当前明细,确定所述当前明细的上一明细;
以此类推,直至将所述多笔待排序的账户明细的交易顺序确定完毕。
可选地,所述根据所述当前明细,确定所述当前明细的上一明细,包括:
确定所述当前明细的交易前余额及所述当前明细的发生额;
计算所述当前明细的交易前余额与所述当前明细的发生额之间的差值;
根据所述差值,确定所述当前明细的上一明细的交易后余额;
根据所述上一明细的交易后余额,从所述多笔待排序的账户明细中确定出所述上一明细。
可选地,所述获取多笔待排序的账户明细之后,还包括:
将所述多笔待排序的账户明细按流水号进行排序;
判断排序后的账户明细是否符合余额连续性条件;
若是,则将所述排序后的账户明细的排序,确定为所述多笔待排序的账户明细的交易顺序;
若否,则执行所述根据所述多笔待排序的账户明细,生成交易前余额集合的步骤。
可选地,所述根据所述多笔待排序的账户明细,生成交易后余额集合之后,还包括:
判断所述交易前余额集合及所述交易后余额集合,是否符合排序条件;
若是,则执行所述根据所述交易前余额集合和所述交易后余额集合,确定最终余额的步骤;
可选地,所述判断所述交易前余额集合及所述交易后余额集合,是否符合排序条件之后,还包括:
若否,则确定所述多笔待排序的账户明细无法进行排序处理。
可选地,所述排序条件包括:所述交易前余额集合中不存在重复元素、所述所述交易后余额集合中不存在重复元素、所述交易前余额集合和所述交易后余额集合中不存在交集元素、所述交易后余额集合与所述交易前余额集合之间的差集的元素个数为1。
第二方面,本发明实施例提供了一种账户明细的交易顺序的确定装置,包括:
明细获取模块,用于获取多笔待排序的账户明细,所述多笔待排序的账户明细来自同一账户,所述账户明细包括:交易前余额、发生额和交易后余额;
前集合生成模块,用于根据所述多笔待排序的账户明细,生成交易前余额集合;
后集合生成模块,用于根据所述多笔待排序的账户明细,生成交易后余额集合;
余额确定模块,用于根据所述交易前余额集合和所述交易后余额集合,确定最终余额,所述最终余额为最终明细中的交易后余额,所述最终明细为所述多笔待排序的账户明细中交易时间最晚的交易明细;
顺序确定模块,用于根据所述最终余额,确定所述多笔待排序的账户明细的交易顺序。
第三方面,本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。
第四方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:根据交易前余额集合和交易后余额集合,确定最终余额;根据最终余额,确定多笔待排序的账户明细的交易顺序。通过本发明实施例的方法,能够准确确定多个待排序账户明细的实际交易顺序。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一个实施例提供的一种账户明细的交易顺序的确定方法的应用场景的示意图;
图2是本发明的一个实施例提供的一种账户余额明细变化的示意图;
图3a是本发明的一个实施例提供的一种账户余额明细变化成环的示意图;
图3b是本发明的一个实施例提供的另一种账户余额明细变化成环的示意图;
图4是本发明的一个实施例提供的一种账户明细的交易顺序的确定方法的流程的示意图;
图5是本发明的一个实施例提供的另一种账户明细的交易顺序的确定方法的流程的示意图;
图6是本发明的一个实施例提供的又一种账户明细的交易顺序的确定方法的流程的示意图;
图7是本发明的一个实施例提供的一种账户明细的交易顺序的确定装置的结构示意图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
现有技术中,常常需要获取用户的银行账户明细数据,并按照实际的交易时间对这些账户明细进行排序。例如,公积金中心业务管理***通过住建部结算平台可对接全国几百家银行获取银行账户明细数据,各家银行的账户明细数据规范不统一,也无法推动其统一提供顺序号或提供能精确排序的银行流水号,因此不可能从数据源头解决上述明细排序问题。可预见的实现方案基本都应着眼于从银行账户明细数据本身出发来提升排序的准确性。
可通过如下方式对账户明细进行排序:对于同一账户的一组相同交易日期时间的银行账户明细,首先判断其按通用规则排序时明细余额是否连续,若连续则采用该排序,并生成顺序号写入明细数据中;若按通用规则排序明细余额不连续,则遍历这组数据的全部排列方式,对每一种排列方式逐一判断明细余额是否连续,直到找出明细余额全部连续的一个排列方式;若所有排列方式都不能使明细余额全部连续,则仍采用通用规则排序。
假设从银行获取到某账户的一组相同交易日期时间的账户明细数据有N条,则按上述现有技术方案遍历该组数据的全部排列方式共有A(N,N)种,通过遍历方式找出明细余额连续的一种排列方式的时间复杂度是O(N!)。举例来看,若N取值10至6,则所需遍历的最大排列种数依次是:3,628,800、362880、40320、5040、720。
上述技术方案的时间复杂度过高,在某账户的一组相同交易日期时间的账户明细条数超过10条时,会导致公积金中心业务管理***处理明细排序的时间过长,不具有实用性,而在该组明细条数在6条以内时,才会有较良好的处理效率,这造成该技术方案的使用具有一定局限性,不能满足部分真实应用场景。随着移动互联网渠道办理公积金提取业务日趋普及,秒级交易并发十分常见,超过6条甚至10条银行账户明细的交易日期时间相同属于正常应用场景。
基于此,本发明实施例提供了一种更高效的账户明细排序方法,该方法在真实应用场景中具有较高的实用性和快速处理能力。
图1是本发明一个实施例提供的一种账户明细的交易顺序的确定方法的应用场景的示意图。如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103中存储有多家银行的账户明细数据。终端设备101、102、103可以是手机、笔记本、服务器、平板电脑、膝上型便携计算机等等。
终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103通过网络104将存储的多家银行的账户明细数据发送给服务器105。
服务器105接收终端设备101、102、103发送的隶属于同一账户的账户明细数据;根据交易前余额集合和交易后余额集合,确定最终余额;根据最终余额,确定多笔账户明细的交易顺序。
需要说明的是,本发明实施例所提供的账户明细的交易顺序的确定方法一般由服务器105执行,相应地,账户明细的交易顺序的确定装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
为使本发明实施例的方法更加便于理解,以下阐述本发明实施例所依据的原理。图2是本发明的一个实施例提供的一种账户余额明细变化的示意图。如图2所示,当一组同一账户、相同交易日期时间的银行账户明细余额连续时,其余额一般是简单变化的,即余额无重复值、余额变化是一条唯一路径,余额变化不形成环。交易后余额集合与交易前余额集合取差集可以得到该组余额变化的终点,即最终余额。通过最终余额往前推,即可从最后一笔明细开始往前定位每笔明细的前一笔明细,直到定位第一笔明细。
当该组明细余额通过任意排列方式排列都不连续时,差集元素个数大于1,则无法通过差集得到余额终点。
当该组明细余额变化存在环时,余额变化过程有重复值,形成环的明细的余额集合与交易前余额集合取差集的元素个数为0。图3a是本发明的一个实施例提供的一种账户余额明细变化成环的示意图。图3b是本发明的一个实施例提供的另一种账户余额明细变化成环的示意图。如图3a和图3b所示,当明细余额变化存在环时,该组账户明细存在多条潜在的余额连续变化路径,无法确定最终余额。
根据以上三点,可以归纳,当一组同一账户、相同交易日期时间的银行账户明细具备以下两条特征时可以判定该组明细连续且具有唯一的连续变化路径:
(1)该组明细余额无重复值。
(2)该组明细的余额(交易后余额)集合与交易前余额集合的差集元素个数为1。
符合上述(1)(2)特征的一组账户明细,可以递归从最终余额即最后一笔明细,依次前推直到定位第一笔明细,前推时先依据等式:第n-1笔明细的交易后余额=第n笔明细的交易后余额-第n笔明细的发生额,得到前一笔明细的余额,然后基于余额值的唯一性可定位前一笔明细。此过程即可确定明细的准确排序,并生成顺序号写入到明细数据,该处理过程的时间复杂度为O(N),具有较高的处理效率和实用性。
以下实施例为根据上述原理,设定的账户明细的交易顺序的确定方法。图4是本发明的一个实施例提供的一种账户明细的交易顺序的确定方法的流程的示意图,如图4所示,该方法包括:
步骤401:获取多笔待排序的账户明细,多笔待排序的账户明细来自同一账户,账户明细包括:交易前余额、发生额和交易后余额。
多笔待排序的账户明细为来自同一账户,在某一连续时间段内的账户明细。排序后的账户明细需要符合下列等式:第n-1笔明细的交易后余额=第n笔明细的交易后余额-第n笔明细的发生额,第n-1笔明细的交易后余额=第n笔明细的交易前余额。
在本发明的一个实施例中,获取多笔待排序的账户明细之前,还包括:
接收明细查询请求,明细查询请求包括:账户标识和交易日期;
获取多笔待排序的账户明细,包括:
根据账户标识和交易日期,获取多笔待排序的账户明细。
根据查询请求中的账户标识和交易日期,在***中确定出该账户在该交易日期内的多笔待排序的账户明细。
步骤402:根据多笔待排序的账户明细,生成交易前余额集合。
步骤403:根据多笔待排序的账户明细,生成交易后余额集合。
步骤404:根据交易前余额集合和交易后余额集合,确定最终余额,最终余额为最终明细中的交易后余额,最终明细为多笔待排序的账户明细中交易时间最晚的交易明细。
在本发明的一个实施例中,可先获取每笔账户明细中的交易前余额,将交易前余额组合成交易前余额集合。再获取每笔账户明细中的交易后余额,将交易后余额组合成交易后余额集合,并可通过如下方法确定最终余额:
确定交易后余额集合与交易前余额集合之间的差集;
确定差集中的元素个数;
根据元素个数,确定最终余额。
举例来说,如图2所示的3条账户明细,该组账户明细的交易前余额集合为:100、1000、500,该组账户明细的交易后余额集合为:1000、500、600,则交易后余额集合与交易前余额集合之间的差集为:600。差集中的元素个数为1,最终余额为600。
如图3a所示的3条账户明细,该组账户明细的交易前余额集合为:100、1000、500,该组账户明细的交易后余额集合为:1000、500、100,则交易后余额集合与交易前余额集合之间不存在差集。差集中的元素个数为0,则确定多笔待排序的账户明细无法进行排序处理。
如图3b所示的3条账户明细,该组账户明细的交易前余额集合为:1000、500、100,该组账户明细的交易后余额集合为:500、100、1000,则交易后余额集合与交易前余额集合之间不存在差集。差集中的元素个数为0,则确定多笔待排序的账户明细无法进行排序处理。
步骤405:根据最终余额,确定多笔待排序的账户明细的交易顺序。
在本发明实施例中,根据交易前余额集合和交易后余额集合,确定最终余额;根据最终余额,确定多笔待排序的账户明细的交易顺序。通过本发明实施例的方法,能够解决现有技术中通过流水号无法准确确定账户明细的实际交易顺序的问题。
在本发明的一个实施例中,获取多笔待排序的账户明细之后,还包括:
将多笔待排序的账户明细按流水号进行排序;
判断排序后的账户明细是否符合余额连续性条件;
若是,则将排序后的账户明细的排序,确定为多笔待排序的账户明细的交易顺序;
若否,则执行根据多笔待排序的账户明细,生成交易前余额集合的步骤。
余额连续性条件用于判断多笔账户明细的余额是否为连续性变化。可通过如下公式来确定多笔账户明细是否符合余额连续性条件:第n-1笔明细的交易后余额=第n笔明细的交易后余额-第n笔明细的发生额。如果排序后的每笔明细都符合上述公式,则可确定排序后的多笔账户明细符合余额连续性条件,该排序可以用于表征实际交易的执行顺序。
如果按流水号排序后的账户明细符合余额连续性条件,则按流水号排序后的账户明细为按实际交易顺序排序的明细,无需再执行本申请实施例中的账户明细交易顺序的确定方法,直接以按流水号排序后的账户明细作为排序后的账户明细。
在本发明的一个实施例中,根据多笔待排序的账户明细,生成交易后余额集合之后,还包括:
判断交易前余额集合及交易后余额集合,是否符合排序条件;
若是,则执行根据交易前余额集合和交易后余额集合,确定最终余额的步骤;
若否,则确定多笔待排序的账户明细无法进行排序处理。
排序条件可包括:交易前余额集合中不存在重复元素、交易后余额集合中不存在重复元素、交易前余额集合和交易后余额集合中不存在交集元素、交易后余额集合与交易前余额集合之间的差集的元素个数为1。
通过本发明实施例的原理可知,交易前余额集合中存在重复元素、交易后余额集合中存在重复元素、交易前余额集合和交易后余额集合中存在交集元素、交易后余额集合与交易前余额集合之间的差集的元素个数不为1的情况,则交易明细中的余额可能存在环,如图3a和图3b所示,这种情况下将无法确定多个交易明细的排列顺序。
图5是本发明的一个实施例提供的一种账户明细的交易顺序的确定方法的流程的示意图,如图5所示,该方法包括:
步骤501:获取多笔待排序的账户明细,多笔待排序的账户明细来自同一账户,账户明细包括:交易前余额、发生额和交易后余额。
步骤502:根据多笔待排序的账户明细,分别生成交易前余额集合和交易后余额集合。
步骤503:根据交易前余额集合和交易后余额集合,确定最终余额,最终余额为最终明细中的交易后余额,最终明细为多笔待排序的账户明细中交易时间最晚的交易明细。
步骤504:根据最终余额,从多笔待排序的账户明细中确定出最终明细。
步骤505:将最终明细确定为当前明细。
步骤506:根据当前明细,确定当前明细的上一明细。
可通过如下方法,根据当前明细,确定当前明细的上一明细:
确定当前明细的交易前余额及当前明细的发生额;
计算当前明细的交易前余额与当前明细的发生额之间的差值;
根据差值,确定当前明细的上一明细的交易后余额;
根据上一明细的交易后余额,从多笔待排序的账户明细中确定出上一明细。
即确定出第n笔明细后,可根据如下公式确定出第n-1笔明细:第n-1笔明细的交易后余额=第n笔明细的交易后余额-第n笔明细的发生额,第n-1笔明细的交易后余额=第n笔明细的交易前余额。根据第n-1笔明细的交易后余额,从多笔待排序的账户明细中确定出第n-1笔明细。
需要说明的是,如果交易前余额集合中存在重复元素、交易后余额集合中存在重复元素,即账户余额明细变化成环,如图3a和图3b所示,则无法确定出上以明细。
步骤507:判断多笔待排序的账户明细的交易顺序是否确定完毕。
若是,则结束排序过程。若否,则执行步骤508.
步骤508:将上一明细确定为当前明细。
将上一明细确定为当前明细,并重新执行上述步骤506,直至所有待排序的账户明细都确定出对应的排列顺序为止。
在本发明的一个实施例中,根据元素个数,确定最终余额,包括:
判断元素个数是否为1;
若是,则确定差集中的元素为最终余额;
若否,则确定多笔待排序的账户明细无法进行排序处理。
如图3a和图3b所示,交易后余额集合与交易前余额集合之间不存在差集。差集中的元素个数为0,符合余额连续性条件的明细排列方式有多种,无法确定多笔待排序的账户明细排序顺序。
图6是本发明的一个实施例提供的又一种账户明细的交易顺序的确定方法的流程的示意图。如图6所示,包括:
取一组待排序的同一账户、相同交易日期时间的明细;
按银行流水号对待排序的账户明细进行排序;
判断排序后的账户明细是否符合余额连续性条件,若符合则结束,若不符合,继续执行下面的步骤;
判断余额是否有重复值,若是则结束,若否,则继续执行下面的步骤;
判断交易后余额集合与交易前余额集合的差集元素个数是否为1,若否则结束,若是,则继续执行下面的步骤;
取差值元素作为最后一笔明细的交易后余额,递归前推前一笔明细,直到定位第一笔明细;
为已排列的明细生成顺序号并写入数据记录。
本发明实施例的方法归纳了余额连续的银行账户明细的数据特征,并提供了一套判断一组明细能否连续、递归得到唯一排列的方法,并将时间复杂度控制在时间复杂度为O(N)的高效水平,使本发明实施例的方法具备实用性和快速处理能力。
图7是本发明的一个实施例提供的一种账户明细的交易顺序的确定装置的结构示意图,包括:
明细获取模块701,用于获取多笔待排序的账户明细,多笔待排序的账户明细来自同一账户,账户明细包括:交易前余额、发生额和交易后余额;
前集合生成模块702,用于根据多笔待排序的账户明细,生成交易前余额集合;
后集合生成模块703,用于根据多笔待排序的账户明细,生成交易后余额集合;
余额确定模块704,用于根据交易前余额集合和交易后余额集合,确定最终余额,最终余额为最终明细中的交易后余额,最终明细为多笔待排序的账户明细中交易时间最晚的交易明细;
顺序确定模块705,用于根据最终余额,确定多笔待排序的账户明细的交易顺序。
可选地,明细获取模块701具体用于:接收明细查询请求,明细查询请求包括:账户标识和交易日期;
获取多笔待排序的账户明细,包括:
根据账户标识和交易日期,获取多笔待排序的账户明细。
可选地,前集合生成模块702具体用于:获取每笔账户明细中的交易前余额;
将交易前余额组合成交易前余额集合。
可选地,后集合生成模块703具体用于:获取每笔账户明细中的交易后余额;
将交易后余额组合成交易后余额集合。
可选地,余额确定模块704具体用于:确定交易后余额集合与交易前余额集合之间的差集;
确定差集中的元素个数;
根据元素个数,确定最终余额。
可选地,余额确定模块704具体用于:
判断元素个数是否为1;
若是,则确定差集中的元素为最终余额;
若否,则确定多笔待排序的账户明细无法进行排序处理。
可选地,顺序确定模块705具体用于:
根据最终余额,从多笔待排序的账户明细中确定出最终明细;
将最终明细确定为当前明细;
根据当前明细,确定多笔待排序的账户明细的交易顺序。
可选地,顺序确定模块705具体用于:
根据当前明细,确定当前明细的上一明细;
以此类推,直至将多笔待排序的账户明细的交易顺序确定完毕。
可选地,顺序确定模块705具体用于:
确定当前明细的交易前余额及当前明细的发生额;
计算当前明细的交易前余额与当前明细的发生额之间的差值;
根据差值,确定当前明细的上一明细的交易后余额;
根据上一明细的交易后余额,从多笔待排序的账户明细中确定出上一明细。
可选地,还包括:
条件判断模块706,用于将多笔待排序的账户明细按流水号进行排序;
判断排序后的账户明细是否符合余额连续性条件;
若是,则将排序后的账户明细的排序,确定为多笔待排序的账户明细的交易顺序;
若否,则执行根据多笔待排序的账户明细,生成交易前余额集合的步骤。
可选地,条件判断模块706还用于:
判断交易前余额集合及交易后余额集合,是否符合排序条件;
若是,则执行根据交易前余额集合和交易后余额集合,确定最终余额的步骤;
若否,则确定多笔待排序的账户明细无法进行排序处理。
可选地,排序条件包括:交易前余额集合中不存在重复元素、交易后余额集合中不存在重复元素、交易前余额集合和交易后余额集合中不存在交集元素、交易后余额集合与交易前余额集合之间的差集的元素个数为1。
本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任一实施例的方法。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机***800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有***800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括明细获取模块、前集合生成模块、后集合生成模块、余额确定模块、顺序确定模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,明细获取模块还可以被描述为“获取多笔待排序的账户明细的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
获取多笔待排序的账户明细,所述多笔待排序的账户明细来自同一账户,所述账户明细包括:交易前余额、发生额和交易后余额;
根据所述多笔待排序的账户明细,生成交易前余额集合;
根据所述多笔待排序的账户明细,生成交易后余额集合;
根据所述交易前余额集合和所述交易后余额集合,确定最终余额,所述最终余额为最终明细中的交易后余额,所述最终明细为所述多笔待排序的账户明细中交易时间最晚的交易明细;
根据所述最终余额,确定所述多笔待排序的账户明细的交易顺序。
根据本发明实施例的技术方案,根据交易前余额集合和交易后余额集合,确定最终余额;根据最终余额,确定多笔待排序的账户明细的交易顺序。通过本发明实施例的方法,能够准确确定多个待排序账户明细的实际交易顺序。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (15)
1.一种账户明细的交易顺序的确定方法,其特征在于,包括:
获取多笔待排序的账户明细,所述多笔待排序的账户明细来自同一账户,所述账户明细包括:交易前余额、发生额和交易后余额;
根据所述多笔待排序的账户明细,生成交易前余额集合;
根据所述多笔待排序的账户明细,生成交易后余额集合;
根据所述交易前余额集合和所述交易后余额集合,确定最终余额,所述最终余额为最终明细中的交易后余额,所述最终明细为所述多笔待排序的账户明细中交易时间最晚的交易明细;
根据所述最终余额,确定所述多笔待排序的账户明细的交易顺序。
2.根据权利要求1所述的方法,其特征在于,所述获取多笔待排序的账户明细之前,还包括:
接收明细查询请求,所述明细查询请求包括:账户标识和交易日期;
所述获取多笔待排序的账户明细,包括:
根据所述账户标识和所述交易日期,获取所述多笔待排序的账户明细。
3.根据权利要求1所述的方法,其特征在于,所述根据所述多笔待排序的账户明细,生成交易前余额集合,包括:
获取每笔所述账户明细中的交易前余额;
将所述交易前余额组合成所述交易前余额集合。
4.根据权利要求1所述的方法,其特征在于,所述根据所述多笔待排序的账户明细,生成交易后余额集合,包括:
获取每笔所述账户明细中的交易后余额;
将所述交易后余额组合成所述交易后余额集合。
5.根据权利要求1所述的方法,其特征在于,所述根据所述交易前余额集合和所述交易后余额集合,确定最终余额,包括:
确定所述交易后余额集合与所述交易前余额集合之间的差集;
确定所述差集中的元素个数;
根据所述元素个数,确定所述最终余额。
6.根据权利要求5所述的方法,其特征在于,所述根据所述元素个数,确定所述最终余额,包括:
判断所述元素个数是否为1;
若是,则确定所述差集中的元素为所述最终余额;
若否,则确定所述多笔待排序的账户明细无法进行排序处理。
7.根据权利要求1所述的方法,其特征在于,所述根据所述最终余额,确定所述多笔待排序的账户明细的交易顺序,包括:
根据所述最终余额,从所述多笔待排序的账户明细中确定出所述最终明细;
将所述最终明细确定为当前明细;
根据所述当前明细,确定所述多笔待排序的账户明细的交易顺序。
8.根据权利要求7所述的方法,其特征在于,所述根据所述当前明细,确定所述多笔待排序的账户明细的交易顺序,包括:
根据所述当前明细,确定所述当前明细的上一明细;
以此类推,直至将所述多笔待排序的账户明细的交易顺序确定完毕。
9.根据权利要求8所述的方法,其特征在于,所述根据所述当前明细,确定所述当前明细的上一明细,包括:
确定所述当前明细的交易前余额及所述当前明细的发生额;
计算所述当前明细的交易前余额与所述当前明细的发生额之间的差值;
根据所述差值,确定所述当前明细的上一明细的交易后余额;
根据所述上一明细的交易后余额,从所述多笔待排序的账户明细中确定出所述上一明细。
10.根据权利要求1所述的方法,其特征在于,所述获取多笔待排序的账户明细之后,还包括:
将所述多笔待排序的账户明细按流水号进行排序;
判断排序后的账户明细是否符合余额连续性条件;
若是,则将所述排序后的账户明细的排序,确定为所述多笔待排序的账户明细的交易顺序;
若否,则执行所述根据所述多笔待排序的账户明细,生成交易前余额集合的步骤。
11.根据权利要求1所述的方法,其特征在于,所述根据所述多笔待排序的账户明细,生成交易后余额集合之后,还包括:
判断所述交易前余额集合及所述交易后余额集合,是否符合排序条件;
若是,则执行所述根据所述交易前余额集合和所述交易后余额集合,确定最终余额的步骤;
若否,则确定所述多笔待排序的账户明细无法进行排序处理。
12.根据权利要求11或12所述的方法,其特征在于,所述排序条件包括:所述交易前余额集合中不存在重复元素、所述所述交易后余额集合中不存在重复元素、所述交易前余额集合和所述交易后余额集合中不存在交集元素、所述交易后余额集合与所述交易前余额集合之间的差集的元素个数为1。
13.一种账户明细的交易顺序的确定装置,其特征在于,包括:
明细获取模块,用于获取多笔待排序的账户明细,所述多笔待排序的账户明细来自同一账户,所述账户明细包括:交易前余额、发生额和交易后余额;
前集合生成模块,用于根据所述多笔待排序的账户明细,生成交易前余额集合;
后集合生成模块,用于根据所述多笔待排序的账户明细,生成交易后余额集合;
余额确定模块,用于根据所述交易前余额集合和所述交易后余额集合,确定最终余额,所述最终余额为最终明细中的交易后余额,所述最终明细为所述多笔待排序的账户明细中交易时间最晚的交易明细;
顺序确定模块,用于根据所述最终余额,确定所述多笔待排序的账户明细的交易顺序。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-12中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110336793.4A CN112862614A (zh) | 2021-03-29 | 2021-03-29 | 账户明细的交易顺序的确定方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110336793.4A CN112862614A (zh) | 2021-03-29 | 2021-03-29 | 账户明细的交易顺序的确定方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112862614A true CN112862614A (zh) | 2021-05-28 |
Family
ID=75993148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110336793.4A Pending CN112862614A (zh) | 2021-03-29 | 2021-03-29 | 账户明细的交易顺序的确定方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112862614A (zh) |
-
2021
- 2021-03-29 CN CN202110336793.4A patent/CN112862614A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112204557A (zh) | 用于自动去中心化多边交易处理的***和方法 | |
CN109582550B (zh) | 一种获取全量业务场景故障集合的方法、装置及服务器 | |
CN110738477A (zh) | 一种对账方法、装置、计算机设备及存储介质 | |
CN110019367B (zh) | 一种统计数据特征的方法和装置 | |
CN111427971A (zh) | 用于计算机***的业务建模方法、装置、***和介质 | |
CN113205402A (zh) | 对账方法、装置、电子设备及计算机可读介质 | |
CN110705981B (zh) | 一种实时结算的方法和装置 | |
CN111444077A (zh) | 一种生成流程节点测试数据的方法和装置 | |
CN114358147A (zh) | 异常账户识别模型的训练方法、识别方法、装置及设备 | |
CN114281663A (zh) | 测试处理方法、装置、电子设备和存储介质 | |
CN113590756A (zh) | 信息序列生成方法、装置、终端设备和计算机可读介质 | |
CN112433757A (zh) | 一种确定接口调用关系的方法和装置 | |
CN109740130B (zh) | 用于生成文件的方法和装置 | |
CN112862614A (zh) | 账户明细的交易顺序的确定方法和装置 | |
CN115391343A (zh) | 账单数据处理方法、装置、电子设备和存储介质 | |
CN110688295A (zh) | 数据测试方法和装置 | |
CN114723455A (zh) | 业务处理方法、装置、电子设备和存储介质 | |
CN112991029A (zh) | 对账方法和装置 | |
CN113066479B (zh) | 一种评测模型的方法和装置 | |
CN109670980B (zh) | 一种充电业务数据的处理方法、***及设备 | |
CN112102068A (zh) | 一种etc业务办理方法和*** | |
CN109754189A (zh) | 一种制卡任务的分配方法、一种制卡任务的获取方法、计算机装置及计算机可读存储介质 | |
CN114997977B (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 | |
CN116151981A (zh) | 交易处理请求的处理方法和装置 | |
CN106897443A (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 |