一种账户数据的处理方法和装置制造方法

文档序号:6490266阅读:244来源:国知局
一种账户数据的处理方法和装置制造方法
【专利摘要】本发明公开了一种账户数据的处理方法,对接收到的每个结算请求触发相应的结算请求处理操作,所述结算请求处理操作包括:获取与该结算请求相对应的账户的资源锁,锁住该账户的待结算金额,查询与该结算请求相对应的批次号类型,获取相应类型批次号的当前批次号;释放所述与该结算请求相对应的账户的资源锁。
【专利说明】一种账户数据的处理方法和装置
【技术领域】
[0001]本申请涉及数据处理【技术领域】,特别是涉及一种账户数据的处理方法和装置。
【背景技术】
[0002]账户资金系统在账户资金余额的处理中,根据一定业务条件触发对账户的资金余额的结算处理,主要包括三部分,第一部分是对账户资金余额的处理记录,包括存款或扣款信息的记录,第二部分是账户实际余额的更新,第三部分是账户余额变更记录的添加。
[0003]通常,每一次结算请求生成,都要对相关账户进行余额更新和账户变更记录的生成,以及触发相关业务。随着业务的不断壮大,某些账户会瞬间产生多个并发结算处理线程,但所有并发处理线程中只有一个结算处理线程能够持有当时的资源锁,其他扣款线程必须等待锁被释放后才能进行下一次结算处理,这种情况下,每次锁住的时间较长,其他结算处理线程等待时间相应也增加,严重影响系统的性能。

【发明内容】

[0004]本申请所要解决的技术问题是提供一种账户数据的处理方法,用以解决现有技术中账户的高并发扣款线程等待资源锁的时间过长,严重影响系统的性能的问题。
[0005]本申请还提供了一种账户数据的处理装置,用以保证上述方法在实际中的实现及应用。
[0006]为了解决上述问题,本申请公开了一种账户数据的处理方法,为每个账户设置唯一的一个资源锁,设置不同类型的批次号,为每种批次号设置相应的结算定时任务,
[0007]对接收到的每个结算请求触发相应的结算请求处理操作,所述结算请求处理操作包括:
[0008]获取与该结算请求相对应的账户的资源锁,锁住该账户的待结算金额,
[0009]查询与该结算请求相对应的批次号类型,获取相应类型批次号的当前批次号;
[0010]如果该结算请求为存款结算请求,则更新该账户的待结算金额为原待结算金额减去该存款结算请求的金额;根据该存款结算请求生成包含当前批次号的待结算存款记录;
[0011]如果该结算请求为扣款结算请求,则更新该账户的待结算金额为原待结算金额加上该扣款结算请求的金额,根据该扣款结算请求生成包含当前批次号的待结算扣款记录;
[0012]释放所述与该结算请求相对应的账户的资源锁。
[0013]本申请另一方面还提供一种账户数据的处理装置,包括资源锁单元、处理单元和缓冲存储单元,
[0014]所述资源锁单元,用于为每个账户分配唯一的一个资源锁;
[0015]结算批次号单元,用于设置不同类型的批次号,并为每种批次号设置相应的结算定时任务;
[0016]所述处理单元包括结算请求处理单元,
[0017]所述结算请求处理单元,用于接收到结算请求后向所述资源锁单元获取与该结算请求对应的账户的资源锁,锁住该账户的待结算金额,并查询与该结算请求相对应的批次号类型,获取相应类型批次号的当前批次号;如果该结算请求为存款结算请求,则更新该账户的待结算金额为原待结算金额减去该存款结算请求的金额;根据该存款结算请求生成包含当前批次号的待结算存款记录;如果该结算请求为扣款结算请求,则更新该账户的待结算金额为原待结算金额加上该扣款结算请求的金额,根据该扣款结算请求生成包含当前批次号的待结算扣款记录;释放所述扣款资源锁。。
[0018]与现有技术相比,本申请具有以下优点:
[0019]在本申请中,对每个结算请求,获取资源锁后,仅进行扣款和存款记录的登记,并更新待结算金额就立即释放资源锁,降低了其他高并发扣款和存款请求触发的线程等待资源锁的时间,提高了系统的性能。
[0020]在本申请中,以账户为维度对每个账户进行结算处理操作时也占用资源锁,消除了结算同时有新的结算请求生成造成数据异常的问题。
[0021]在本申请中,在设置结算批次号的基础上设置标识号,将开始结算后对批次号进行更新之前产生的具有前一个结算批次号的新的待扣款和存款请求对应的待结算扣款和存款记录放入下一次结算进行,消除了由于系统中数据传输存在时差而导致结算处理异常的问题。
[0022]在本申请中,对账户的扣款和存款请求实行定时汇总结算,减少了账户余额变更的频率,降低了资源使用以及数据量的提升幅度。
[0023]在本申请中,将结算批次号设置为具有至少一个维度,在进行本次结算时,根据结算批次号的维度设定条件,有选择性的对部分账户进行本次结算,可以节约系统资源。
[0024]当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
【专利附图】

【附图说明】
[0025]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026]图1为本申请一种账户数据的处理方法的应用环境架构图;
[0027]图2为本申请一种账户数据的处理方法实施例1中扣款请求处理操作的步骤流程图;
[0028]图3为本申请一种账户扣款的结算处理方法实施例1中对每个账户分别进行的结算处理操作的步骤流程图;
[0029]图4为本申请一种账户扣款的结算处理方法实施例2的流程图;
[0030]图5为本申请一种账户扣款的结算处理方法实施例2中对每个账户分别进行的结算处理操作的步骤流程图;
[0031]图6为本申请一种账户扣款的结算处理方法实施例3中对每个账户分别进行的结算处理操作的步骤流程图;
[0032]图7为本申请一种账户扣款的结算处理方法中增加账户对外显示可用余额后的步骤流程图;[0033]图8为本申请一种账户数据的处理装置实施例的框图;
[0034]图9为本申请一种账户数据的处理装置实施例的具体框图。
【具体实施方式】
[0035]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0036]本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
[0037]本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0038]图1为本申请使用的一种应用环境架构图,由账户终端以及可以触发账户扣款请求的其他终端在触发扣款请求后,通过网络将扣款请求发送到账户扣款系统。
[0039]本申请的主要思想之一可以包括:为了减少某些账户的结算请求激活的线程占用资源锁的时间,保证系统对这些账户的高并发结算请求响应速度,本申请提出一种账户资金金额的结算处理方法中,系统对接收到的每个结算请求触发相应的结算请求处理操作,对每个结算请求触发的结算请求处理操作获取资源锁时,仅更新待结算金额就立即释放,与该结算请求相对应的账户的其他并发的结算请求继续占用该账户的资源锁,这样就减少了该账户的其他并发的结算请求等待资源锁的时间,提高了系统的响应速度。当满足结算条件后,触发结算处理操作。
[0040]如图2所示,本发明提供一种账户数据的处理方法,其中,为每个用户设置唯一的一个资源锁,设置不同类型的批次号,为每种批次号设置相应的结算定时任务。
[0041]该方法包括对接收到的每个结算请求触发相应的结算请求处理操作和分别针对每个账户进行的结算处理操作。
[0042]其中,结算请求处理操作包括:
[0043]步骤S201:获取与结算请求相对应的账户的资源锁,锁住该账户的待结算金额;
[0044]在这里,资源锁主要是针对该账户的待结算金额,因为该结算请求触发的处理操作需要对该账户的待结算金额进行更新,此时需要限制其他与该账户相关的线程同时对该账户的待结算金额进行更新造成数据异常;
[0045]在本发明中,结算请求可以为扣款请求,也可以为存款请求。
[0046]步骤S202:查询与该结算请求相对应的批次号类型,获取相应类型批次号的当前批次号。
[0047]步骤S203:如果该结算请求为存款结算请求,则更新该账户的待结算金额为原待结算金额减去该存款结算请求的金额;根据该存款结算请求生成包含当前批次号的待结算存款记录;
[0048]如果该结算请求为扣款结算请求,则更新该账户的待结算金额为原待结算金额加上该扣款结算请求的金额,根据该扣款结算请求生成包含当前批次号的待结算扣款记录。
[0049]步骤S204:释放与上述结算请求相对应的账户的资源锁。
[0050]在实际中,当每种批次号相应的结算定时任务开始后,更新与该结算任务相对应的类型的批次号,分别针对每个账户进行结算处理操作,该结算处理操作包括:
[0051]步骤S205:获取该账户的资源锁,锁住该账户的待结算金额和余额;
[0052]步骤S206:获取该账户具有批次号小于该类型批次号的当前批次号的待结算存款记录,汇总为该账户的当前结算存款金额;
[0053]获取该账户具有批次号小于该类型批次号的当前批次号的待结算扣款记录,汇总为该账户的当前结算扣款金额;
[0054]步骤S207:更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额;
[0055]步骤S208:释放该账户的资源锁。
[0056]以下不妨以扣款的场景对本发明实施例的具体实现举例说明。
[0057]参考图3,示出了本申请一种账户数据的处理方法的实施例1中结算处理操作对某一账户进行操作的流程图,可以包括以下步骤:
[0058]步骤301:将该账户在本次结算处理操作开始之前的所有待结算扣款记录汇总为该账户的当前结算金额;
[0059]步骤302:更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算金额、余额为该账户的原余额减去该账户的当前结算金额。
[0060]可见在结算处理操作中也涉及到更新账户的待结算金额,由于本申请中在结算定时开始后也有可能出现新的扣款请求,为了防止结算处理操作和扣款请求处理操作同时对某一账户的待结算金额进行更新,本申请一种账户扣款金额的结算处理方法实施例1,在结算处理操作中,对每个账户进行相应的处理时也占用相应账户的资源锁,也就是,在对该账户在本次结算处理操作开始之前的所有待结算扣款记录汇总为该账户的当前结算金额之前,需要先获取该账户的资源锁,锁住该账户的参数,此时需要锁住该账户的待结算金额和余额,当利用该账户的当前结算金额对该账户的待结算金额和余额进行更新之后,再释放该账户的资源锁。这样就能保证账户的待结算金额每次只被一个进程所更新。
[0061]本申请一种账户数据的处理方法实施例1,对账户的扣款请求进行缓冲汇总结算,针对每个账户每汇总结算完一次才进行一次余额变动触发的相关业务流程,如账户余额变更记录等,并不是对每个扣款请求分别进行这些操作,这样从总体上减少了账户余额变更的频率,降低了资源使用以及数据量的提升幅度。
[0062]本申请一种账户数据的处理方法实施例1,更加清楚地获知哪些扣款记录已经被结算过,在步骤302之后,还包括:将进行汇总该账户的当前结算金额的所有待结算扣款记录的状态标记为已结算。
[0063]基于以上本申请一种账户数据的处理方法实施例1的基本思想,为了更加明确的对本次结算处理操作开始之前的所有待结算扣款记录进行界定,结合图2和图3参见图4,示出了本申请一种账户扣款金额的结算处理方法中实施例2的流程图,预先设置一个结算批次号,那么扣款请求处理操作在步骤102生成与该扣款请求相对应的待结算扣款记录之前还包括步骤401:获取当前结算批次号,此时当前结算批次号为N,
[0064]那么步骤102中生成的与该扣款请求相对应的待结算扣款记录中包含当前结算批次号,
[0065]在本申请的实施例2中,结算批次号是在结算定时开始后进行更新的,所以,在满足结算定时后,还包括步骤402:对结算批次号进行更新,更新为N = N+1,
[0066]参见图5,示出了本申请一种账户数据的处理方法中实施例2,增加结算批次号之后,对每个账户的结算处理操作的流程图,具体包括步骤:
[0067]步骤501:将该账户的所有结算批次号小于当前结算批次号N+1的待结算扣款记录汇总为该账户的当前结算金额,
[0068]步骤502:更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算金额、余额为该账户的原余额减去该账户的当前结算金额,
[0069]步骤503:将该账户的所有结算批次号为当前结算批次号小于当前结算批次号N+1的待结算扣款记录的状态设置为已结算。
[0070]基于以上本申请一种账户扣款金额的结算处理方法实施例2的基本思想,由于系统在进行结算处理操作中,由于数据传输的时差问题,有可能在结算定时开始后,对当前批次号进行更新之前的时间里会产生新的扣款请求,此时生成的扣款请求具有更新前的结算批次号,但是并未进行该账户的当前结算金额的统计,所以,如果还像步骤503那样,将该账户的所有结算批次号为当前结算批次号小于当前结算批次号的待结算扣款记录的状态设置为已结算就会产生错误。
[0071]因此,本申请一种账户扣款金额的结算处理方法中实施例3中,在实施例2的基础上,为接收到的每个扣款请求分配一个唯一的标识号,那么步骤102中生成的与该扣款请求相对应的待结算扣款记录中不但包含当前结算批次号,还包含该扣款请求的标识号,
[0072]并且在图4中,步骤402对结算批次号进行更新之前还包括,获取最新一条待结算扣款记录的标识号,
[0073]此时,参见图6,示出了本申请一种账户扣款金额的结算处理方法中实施例3,在增加结算批次号基础上增加标识号id之后,对每个账户的结算处理操作的流程图,具体包括步骤:
[0074]步骤601:将每个账户的所有结算批次号小于当前结算批次号,且标识号小于最新一条待结算扣款记录的标识号id的待结算扣款记录汇总为相应账户的当前结算金额,
[0075]步骤602:更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算金额、余额为该账户的原余额减去该账户的当前结算金额,
[0076]步骤603:将该账户的所有结算批次号小于当前结算批次号,且标识号小于最新一条待结算扣款记录的标识号id的待结算扣款记录的状态设置为已结算。
[0077]这样对于开始结算交易后产生的新的待扣款请求,即id大于当前获取的最大的id记录,以及开始结算交易后产生的待扣款请求的批次号都为N+1的扣款记录,放入下一次结算定时任务处理,可以有效由于数据传输的时差而导致结算错误的问题。
[0078]在本申请一种账户扣款金额的结算处理方法中实施例3中,结算处理操作可以以账户为维度依次进行,而且在步骤402对结算批次号进行更新之后,在针对每个账户进行结算处理之前均进行如下操作:
[0079]判断是否存在结算批次号小于当前结算批次号,且标识号小于所述最新一条待结算扣款记录的标识号的待结算扣款记录,如果是,则继续进行结算处理操作;如果否,则结束结算处理操作。这样可以在不存在符合条件的待扣款结算记录时及时结束本次结算处理操作,节约系统资源。
[0080]此外,为了有选择性的进行本次结算,而不对系统中所有的待结算扣款记录全部进行本次结算,在本申请的实施例2和具体实施例3中的结算批次号可以为多维度的一个阵列,比如形式为N[nl,n2,…nk],其中,N仍然标识每次结算的批次,而nl标识客户的类型:nl = I标识该客户为普通卡客户,nl = 2标识该客户为VIP卡客户,nl = 3标识该客户为金卡VIP客户等;n2标识产品的类型,以此类推,这些均根据系统中的情况预先进行设置,由于扣款请求会用来作为生成待结算扣款记录时设置结算批次号维度取值的依据,那么扣款请求的属性也必将具备相应的维度信息。
[0081]每次满足结算条件,将结算批次号更新为N = N+1,对所有维度的取值进行初始化,即把nl,n2…,nk的取值设置为0,方便生成新的待结算扣款记录时进行相应的赋值。结算开始后,根据需要,选择所有满足批次号维度条件的待结算扣款记录,生成本次结算列表。这个批次号维度条件可以根据实际情况自行设定,比如可以设置为nl = 2,也就是选择所有nl = 2的待结算扣款记录生成本次结算列表,也可以设置为nl = 2或n2 = 1,也就是选择所有nl = 2或n2 = I的待结算扣款记录生成本次结算列表,但是不管批次号维度条件如何设定,本次结算列表中每条待结算扣款记录均是唯一的,不会因批次号维度条件的设定情况而出现重复。确定本次结算列表后,针对本次结算列表中的所有账户,对每个账户分别触发图5或图6中描述的结算处理操作,以图5为例,对每个账户触发的结算处理操作包括步骤:
[0082]将该账户的所有结算批次号小于当前结算批次号N+1的本次结算列表中的待结算扣款记录汇总为该账 户的当前结算金额;
[0083]更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算金额、余额为该账户的原余额减去该账户的当前结算金额;
[0084]将该账户的所有结算批次号为当前结算批次号小于当前结算批次号N+1的本次结算列表中的待结算扣款记录的状态设置为已结算。
[0085]这样,就可以以账户的客户类型以及产品类型等维度自行设定条件,选择需要进行结算的待结算扣款记录进行汇总结算,可以节约系统资源。
[0086]在以上本申请一种账户扣款金额的结算处理方法的实施例中,对于账户的扣款请求执行缓冲结算,每次结算由结算定时任务决定,所以对于账户的每次扣款请求可能并没有及时进行实际余额的结算,但是由于账户进行每次扣款请求后可能会查看是否已经完成本次扣款的结算,所以为了针对账户的每次扣款请求都能给账户提供及时的余额查询服务,因此,在以上本申请一种账户扣款金额的结算处理方法的实施例中,还可以为账户设置有对外显示可用余额,结合图2参见图7所示,在以上本申请一种账户扣款金额的结算处理方法的实施例中,在扣款请求处理操作的步骤204之后还包括步骤:
[0087]步骤701:更新相应的账户的可用余额为账户当前余额减去账户待结算金额;
[0088]步骤702:返回扣款结果。[0089]此外,有时由于网络问题,同一账户的同一条扣款请求可能会重发,为了避免对同一账户的同一条扣款请求进行重复扣款。同时在账户余额不足时不再进行后续操作并对账户进行提示,在以上本申请一种账户扣款金额的结算处理方法的实施例中,在接收到扣款请求后,进入(I)扣款请求处理操作之前,还包括步骤:根据该扣款请求的信息,一般为该扣款请求自带的流水号,判断是否已经接收过该扣款请求,如果是,则不对该扣款请求重复触发扣款请求处理操作;如果否,则对该扣款请求触发扣款请求处理操作;
[0090]在以上本申请一种账户扣款金额的结算处理方法的实施例中,还可以限定账户不能进行透支扣款,因此,在接收到账户的扣款请求后,还应判断该账户的可用余额是否充足,即判断该账户的可用余额是否大于该扣款请求的扣款金额,如果是,则对该扣款请求触发扣款请求处理操作;如果否,则对该账户的欠款进行统计,对该账户进行相关提示。
[0091]对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0092]与上述本申请一种账户扣款的结算处理方法实施例1所提供的方法相对应,参见图8,本申请还提供了一种账户资金金额的结算处理装置实施例1,本实施例中,该装置可以包括:
[0093]结合本申请的上述方法,参见图8所示本申请的装置框图,包括处理单元800、资源锁单元801和缓冲存储单元804、结算批次号单元805。
[0094]资源锁单元801,用于为每个账户分配唯一的一个资源锁;
[0095]结算批次号单元802,用于设置不同类型的批次号,并为每种批次号设置相应的结算定时任务;
[0096]处理单元800包括结算请求处理单元802和结算处理单元803,
[0097]其中,结算请求处理单元802用于接收到结算请求后向所述资源锁单元获取与该结算请求对应的账户的资源锁,锁住该账户的待结算金额,并查询与该结算请求相对应的批次号类型,获取相应类型批次号的当前批次号;如果该结算请求为存款结算请求,则更新该账户的待结算金额为原待结算金额减去该存款结算请求的金额;根据该存款结算请求生成包含当前批次号的待结算存款记录;如果该结算请求为扣款结算请求,则更新该账户的待结算金额为原待结算金额加上该扣款结算请求的金额,根据该扣款结算请求生成包含当前批次号的待结算扣款记录;释放所述扣款资源锁;
[0098]结算处理单元803,在每种批次号相应的结算定时任务开始后被激活,用于,对存储在所述缓冲单元中的每个账户,获取该账户的资源锁,锁住该账户的待结算金额和余额;获取该账户的具有批次号小于该类型批次号的当前批次号的待结算存款记录,汇总为该账户的当前结算存款金额;获取该账户具有批次号小于该类型批次号的当前批次号的待结算扣款记录,汇总为该账户的当前结算扣款金额;更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额;更新该账户的余额为该账户的原余额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额;释放所述该账户的资源锁。
[0099]缓冲存储单元804,用于存储扣款请求处理单元生成的与每个扣款请求相对应的待结算扣款记录和待结算存款记录。
[0100]参见图9,示出了本申请一种账户扣款的结算处理装置实施例的具体框图,结算请求处理单元802包括:请求接收单元901、资源锁占用单元902、生成记录单元903和累加待结算金额单元904,
[0101]请求接收单元901,用于接收结算请求;
[0102]资源锁占用单元902,用于获取或释放资源锁;也就是获取资源锁单元801中的与请求接收单元901接收到的结算请求相对应的账户的资源锁,锁住该账户的参数,在这里,主要是针对该账户的待结算金额,因为该结算请求触发的结算请求处理操作需要对该账户的待结算金额进行更新,此时需要限制其他与该账户相关的线程同时对该账户的待结算金额进行更新造成数据异常;
[0103]生成记录单元903,用于在资源锁占用单元902获取到资源锁之后,根据结算请求生成待结算扣款记录和待结算存款记录;
[0104]累加待结算金额单元904,用于当结算请求为扣款结算请求时,更新账户的待结算金额为账户的原待结算金额加上该扣款结算请求的金额,当结算请求为存款结算请求时,更新该账户的待结算金额为原待结算金额减去该存款结算请求的金额;
[0105]结算处理单元803包括:结算条件单元905、汇总单元906和更新单元907,
[0106]结算条件单元905,用于在每种批次号相应的结算定时任务开始时,激活所述结算处理单元;。
[0107]汇总单元906,用于对存储在缓冲单元中的每个账户,获取该账户的具有批次号小于该类型批次号的当前批次号的待结算存款记录,汇总为该账户的当前结算存款金额;获取该账户具有批次号小于该类型批次号的当前批次号的待结算扣款记录,汇总为该账户的当前结算扣款金额;;
[0108]更新单元907,用于更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额;更新该账户的余额为该账户的原余额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额。
[0109]为了支持本申请一种账户数据的处理方法实施例1,由于在结算处理单元中也涉及到更新账户的待结算金额,为了防止结算处理单元和结算请求处理单元同时对某一账户的待结算金额进行更新,本申请一种账户资金金额的结算处理装置实施例,在结算处理单元中,也设置有资源锁占用单元,在对该账户在本次结算处理操作开始之前的所有待结算扣款记录和存款记录汇总为该账户的当前结算金额之前,需要先获取该账户的资源锁,锁住该账户的参数,此时需要锁住该账户的待结算金额和余额,当利用该账户的当前结算金额对该账户的待结算金额和余额进行更新之后,再释放该账户的资源锁。这样就能保证账户的待结算金额每次只被一个进程所更新。
[0110]为了支持本申请一种账户数据的处理方法实施例1中更加清楚地获知哪些扣款记录和存款记录已经被结算过,本申请一种账户资金金额的结算处理装置实施例的装置还包括标记单元,用于在所述结算处理单元对每个账户进行相应的结算处理之后,将进行汇总相应账户当前结算扣款金额的存储在所述缓冲存储单元中的所有待结算扣款记录的状态标记为已结算,并将进行汇总相应账户当前结算存款金额的存储在缓冲存储单元中的所有待结算存款记录的状态标记为已结算。[0111]与上述本申请一种账户数据的处理方法实施例3所提供的方法相对应,为了改善由于系统中数据传输的时差导致的问题,本申请一种账户资金金额的结算处理装置实施例的装置还包括标识号单元,用于,为接收到的每个扣款请求分配一个唯一的标识号。
[0112]为了支持以上本申请一种账户扣款的结算处理方法实施例给账户提供更加优良的服务,本申请一种账户扣款的结算处理装置实施例的装置,还设置有对外显示可用余额单元,在扣款请求处理单元进行完相应操作后,更新相应的账户的可用余额为账户当前余额减去账户待结算金额,返回扣款结果。
[0113]为了支持以上本申请一种账户数据的处理方法实施例给账户提供更加优良的服务,本申请一种账户数据的处理装置实施例的装置中的请求接收单元901,在接收到结算请求后,还用于,首先根据该结算请求的信息,一般为该结算请求自带的流水号,判断是否已经接收过该扣款请求,如果是,则不重复接收该扣款请求;如果否,则确定接收该扣款请求。
[0114]为了支持以上本申请一种账户数据的处理方法实施例给账户提供更加优良的服务,本申请一种账户数据的处理装置实施例的装置还包括账户可用余额判断单元,在请求接收单元901接收到账户的扣款请求后,用于,判断该账户的可用余额是否充足,即判断该账户的可用余额是否大于该扣款请求的扣款金额,如果是,则激活资源锁占用单元902 ;如果否,则对该账户的欠款进行统计,对该账户进行相关提示。
[0115]本实施例所述的装置可以集成到第三方交易平台的服务器上,也可以单独作为一个实体与第三方交易平台的服务器相连,另外,需要说明的是,当本申请所述的方法采用软件实现时,可以作为第三方交易平台的服务器新增的一个功能,也可以单独编写相应的程序,本申请不限定所述方法或装置的实现方式。
[0116]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
`[0117]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0118]以上对本申请所提供的一种账户扣款金额的结算处理方法、装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
【权利要求】
1.一种账户数据的处理方法,其特征在于,为每个账户设置唯一的一个资源锁,设置不同类型的批次号,为每种批次号设置相应的结算定时任务, 对接收到的每个结算请求触发相应的结算请求处理操作,所述结算请求处理操作包括: 获取与该结算请求相对应的账户的资源锁,锁住该账户的待结算金额, 查询与该结算请求相对应的批次号类型,获取相应类型批次号的当前批次号; 如果该结算请求为存款结算请求,则更新该账户的待结算金额为原待结算金额减去该存款结算请求的金额;根据该存款结算请求生成包含当前批次号的待结算存款记录; 如果该结算请求为扣款结算请求,则更新该账户的待结算金额为原待结算金额加上该扣款结算请求的金额,根据该扣款结算请求生成包含当前批次号的待结算扣款记录; 释放所述与该结算请求相对应的账户的资源锁。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在每种批次号相应的结算定时任务开始后,更新与该结算定时任务相对应的类型的批次号,分别针对每个账户进行结算处理操作,所述结算处理操作包括: 获取该账户的资源锁,锁住该账户的待结算金额和余额; 获取该账户的具有批次号小于该类型批次号的当前批次号的待结算存款记录,汇总为该账户的当前结算存款金额; 获取该账户具有批次号小于该类型批次`号的当前批次号的待结算扣款记录,汇总为该账户的当前结算扣款金额; 更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额; 更新该账户的余额为该账户的原余额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额; 释放所述该账户的资源锁。
3.根据权利要求1所述的方法,其特征在于,在所述更新该账户的余额为该账户的原余额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额之后,还包括,将进行汇总该账户的当前扣款结算金额的待结算扣款记录的状态标记为已结算;将进行汇总该账户的当前存款结算金额的待结算存款记录的状态标记为已结算。
4.根据权利要求1所述的方法,其特征在于,为接收到的每个结算请求分配一个唯一的标识号, 所述生成的待结算存款记录或待结算扣款记录中包含相应的标识号, 所述更新与该结算定时任务相对应的类型的批次号之前还包括,获取根据最新一条结算请求生成的相应的待结算扣款记录或待结算存款记录的标识号, 所述结算处理操作包括: 获取与该账户的资源锁,锁住该账户的待结算金额和余额; 更新与该结算定时任务相应的类型的批次号; 获取该账户的具有批次号小于该类型批次号的当前批次号,且标识号小于所述根据最新一条结算请求生成的相应的待结算扣款记录或待结算存款记录的标识号的待结算存款记录,汇总为该账户的当前结算存款金额;获取该账户具有批次号小于该类型批次号的当前批次号,且标识号小于所述根据最新一条结算请求生成的相应的待结算扣款记录或待结算存款记录的标识号的待结算扣款记录,汇总为该账户的当前结算扣款金额; 更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额; 更新该账户的余额为该账户的原余额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额; 释放所述该账户的资源锁。
5.根据权利要求4所述的方法,其特征在于,所述分别针对每个账户进行所述结算处理操作之前还包括: 判断是否存在小于该类型批次号的当前批次号,且标识号小于所述根据最新一条结算请求生成的相应的待结算扣款记录或待结算存款记录的标识号的待结算存款记录或待结算扣款记录,如果是,则继续进行相应的结算处理操作;如果否,则结束相应的结算处理操作。
6.根据权利要求1所述的方法,其特征在于,对接收到的每个结算请求触发相应的结算请求处理操作之前还包括: 根据该结算请求的信息判断是否已经接收过该结算请求,如果是,则不触发相应的结算请求处理操作;如果否,则触发相应的结算请求处理操作。
7.根据权利要求1所述的方法,其特征在于,所述结算请求处理操作中,释放所述与该结算请求相对应的账户的资源锁之后还包括:` 更新与该结算请求相对应的账户的对外显示可用余额为该账户的实际余额减去该账户的待结算金额,返回扣款结果。
8.根据权利要求7所述的方法,其特征在于,对接收到的每个结算请求触发相应的结算请求处理操作之前还包括:如果该结算请求为扣款结算请求,则判断与该结算请求相对应的账户的对外显示可用余额是否大于该扣款请求的扣款金额, 如果是,则触发相应的结算请求处理操作; 如果否,则对该账户的欠款进行统计,对该账户进行提示。
9.一种账户数据的处理装置,其特征在于,包括资源锁单元、处理单元和缓冲存储单元, 所述资源锁单元,用于为每个账户分配唯一的一个资源锁; 结算批次号单元,用于设置不同类型的批次号,并为每种批次号设置相应的结算定时任务; 所述处理单元包括结算请求处理单元, 所述结算请求处理单元,用于接收到结算请求后向所述资源锁单元获取与该结算请求对应的账户的资源锁,锁住该账户的待结算金额,并查询与该结算请求相对应的批次号类型,获取相应类型批次号的当前批次号;如果该结算请求为存款结算请求,则更新该账户的待结算金额为原待结算金额减去该存款结算请求的金额;根据该存款结算请求生成包含当前批次号的待结算存款记录;如果该结算请求为扣款结算请求,则更新该账户的待结算金额为原待结算金额加上该扣款结算请求的金额,根据该扣款结算请求生成包含当前批次号的待结算扣款记录;释放所述扣款资源锁; 所述缓冲存储单元,用于存储所述结算请求处理单元生成的每个待结算扣款记录和待结算存款记录。
10.根据权利要求9所述的装置,其特征在于,所述处理单元还包括结算处理单元,所述结算处理单元,在每种批次号相应的结算定时任务开始后被激活,用于,对存储在所述缓冲单元中的每个账户,获取该账户的资源锁,锁住该账户的待结算金额和余额;获取该账户的具有批次号小于该类型批次号的当前批次号的待结算存款记录,汇总为该账户的当前结算存款金额;获取该账户具有批次号小于该类型批次号的当前批次号的待结算扣款记录,汇总为该账户的当前结算扣款金额;更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额;更新该账户的余额为该账户的原余额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额;释放所述该账户的资源锁。
11.根据权利要求10所述的装置,其特征在于, 所述结算请求处理单元包括:请求接收单元、资源锁占用单元、生成记录单元和累加待结算金额单元, 所述请求接收单元,用于接收结算请求; 所述资源锁占用单元,用于获取或释放资源锁; 所述生成记录单元,用于根据结算请求生成待结算扣款记录和待结算存款记录; 所述累加待结算金额单元,用于当结算请求为扣款结算请求时,更新账户的待结算金额为账户的原待结算金额加上该扣款结算请求的金额,当结算请求为存款结算请求时,更新该账户的待结算金额为原待结算金额减去该存款结算请求的金额; 所述结算处理单元包括:结算条件单元、汇总单元和更新单元, 所述结算条件单元,用于在每种批次号相应的结算定时任务开始时,激活所述结算处理单元; 所述汇总单元,用于对存储在所述缓冲单元中的每个账户,获取该账户的具有批次号小于该类型批次号的当前批次号的待结算存款记录,汇总为该账户的当前结算存款金额;获取该账户具有批次号小于该类型批次号的当前批次号的待结算扣款记录,汇总为该账户的当前结算扣款金额; 所述更新单元,用于更新该账户的待结算金额为该账户的原待结算金额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额;更新该账户的余额为该账户的原余额减去该账户的当前结算扣款金额,再加上该账户的当前结算存款金额。
12.根据权利要求11所述的装置,其特征在于,所述结算处理单元还包括所述资源锁占用单元。
13.根据权利要求11所述的装置,其特征在于,所述结算处理单元还包括标记单元,用于在所述结算处理单元对每个账户进行相应的结算处理之后,将进行汇总相应账户当前结算扣款金额的存储在所述缓冲存储单元中的所有待结算扣款记录的状态标记为已结算,并将进行汇总相应账户当前结算存款金额的存储在所述缓冲存储单元中的所有待结算存款记录的状态标记为已结算。
14.根据权利要求9所述的装置,其特征在于,所述装置还包括标识号单元,用于为接收到的每个扣款请求分配一个唯一的 标识号。
【文档编号】G06Q40/00GK103793843SQ201210418504
【公开日】2014年5月14日 申请日期:2012年10月26日 优先权日:2012年10月26日
【发明者】邵懿, 马超 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1