CN113111060A - 数据处理方法、装置、存储介质及计算机设备 - Google Patents
数据处理方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN113111060A CN113111060A CN202110271047.1A CN202110271047A CN113111060A CN 113111060 A CN113111060 A CN 113111060A CN 202110271047 A CN202110271047 A CN 202110271047A CN 113111060 A CN113111060 A CN 113111060A
- Authority
- CN
- China
- Prior art keywords
- user data
- deduction
- module
- preset user
- users
- 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
- 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
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computational Linguistics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种数据处理方法、装置、存储介质及计算机设备,涉及信息技术领域,主要在于能够提高扣款处理效率,满足针对千万级用户同一批次进行扣款处理的业务需求。其中方法包括:将用户数据分散存储于多个预设用户数据表中;创建多个与所述预设用户数据表分别对应的线程;基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。本发明适用于针对千万级以上用户的扣款处理。
Description
技术领域
本发明涉及信息技术领域,特别是涉及一种数据处理方法、装置、存储介质及计算机设备。
背景技术
随着移动互联网的发展与普及,网络用户数量极速增加,伴随着互联网公司的崛起,越来越多的公司用户数据达到千万级甚至亿万级,公司相关业务中会经常对所有用户同时进行扣款处理,因此,如何有效地提高用户数据处理速度显得十分重要。
目前,与业务相关的所有用户的数据通常会存储在单张表中,在进行扣款处理时,采用单线程遍历存储数据的单表,以完成对所有用户的扣款操作。然而,针对千万级别以上用户进行同批次扣款的场景,这种单表单线程的扣款处理方式,扣款处理速度较为缓慢,扣款处理效率较低,无法满足业务需求。
发明内容
有鉴于此,本发明提供一种数据处理方法、装置、存储介质及计算机设备,主要目的在于能够提高扣款处理效率。
依据本发明一个方面,提供了一种数据处理方法,包括:
将用户数据分散存储于多个预设用户数据表中;
创建多个与所述预设用户数据表分别对应的线程;
基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。
可选地,所述将用户数据分散存储于多个预设用户数据表中包括:
获取用户数据以及所述多个预设用户数据表对应的特征值;
利用预设分表规则计算所述用户数据对应的数据表匹配值;
基于所述数据表匹配值和所述多个预设用户数据表对应的特征值,将所述用户数据存储至相应的预设用户数据表中。
可选地,所述利用预设分表规则计算所述用户数据对应的数据表匹配值包括:
确定用户数据对应的数量级;
对所述用户数据中的用户ID进行取模处理,得到所述用户ID对应的模;
基于所述用户ID对应的模和所述数量级,计算所述用户数据对应的数据表匹配值;
所述基于所述数据表匹配值和所述多个预设用户数据表对应的特征值,将所述用户数据存储至相应的预设用户数据表中,包括:
从多个特征值中确定与所述数据表匹配值相同的目标特征值,并将所述用户数据存储至所述目标特征值对应的预设用户数据表中。
可选地,所述根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理包括:
判断所述订单状态信息是否为已支付状态;
若所述订单状态信息为已支付状态,则获取用户对应的扣款金额和账户余额,并判断所述账户余额是否大于或者等于所述扣款金额;
若所述账户余额大于或者等于所述扣款金额,则基于所述扣款金额,对所述多个预设用户数据表中的用户同批进行扣款处理。
可选地,在所述根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理之后,所述方法还包括:
查询预设数据处理记录中用户的扣款状态信息;
基于所述扣款状态信息,判断所述多个预设用户数据表中是否存在遗漏扣款的用户;
若存在遗漏扣款的用户,则从所述多个预设用户数据表中查询所述遗漏扣款的用户对应的订单状态信息和扣款金额;
基于所述订单状态信息和所述扣款金额,对所述遗漏扣款的用户进行扣款处理。
可选地,在所述基于所述扣款状态信息,判断所述多个预设用户数据表中是否存在遗漏扣款的用户之后,所述方法还包括:
若不存在遗漏扣款的用户,则计算所述多个预设用户数据表中用户的扣款总额,并对所述扣款总额进行校验处理。
可选地,所述计算多个预设用户数据表中用户的扣款总额,并对所述扣款总额进行校验处理包括:
获取本期业务对应的业务总额;
将所述扣款总额与所述业务总额进行对比;
若所述扣款总额与所述业务总额相同,则确定针对所述多个预设用户数据表中用户的扣款处理正确;
若所述扣款总额与所述业务总额不同,则确定针对所述多个预设用户表中用户的扣款处理存在错误,并向相应业务人员终端发送报警信息。
依据本发明第二个方面,提供了一种数据处理装置,包括:
存储单元,用于将用户数据分散存储于多个预设用户数据表中;
创建单元,用于创建多个与所述预设用户数据表分别对应的线程;
扣款单元,用于基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。
可选地,所述存储单元包括:第一获取模块、计算模块和存储模块,
所述第一获取模块,用于获取用户数据以及所述多个预设用户数据表对应的特征值;
所述计算模块,用于利用预设分表规则计算所述用户数据对应的数据表匹配值;
所述存储模块,用于基于所述数据表匹配值和所述多个预设用户数据表对应的特征值,将所述用户数据存储至相应的预设用户数据表中。
可选地,所述计算模块包括:确定子模块、取模子模块和计算子模块,
所述确定子模块,用于确定用户数据对应的数量级;
所述取模子模块,用于对所述用户数据中的用户ID进行取模处理,得到所述用户ID对应的模;
所述计算子模块,用于基于所述用户ID对应的模和所述数量级,计算所述用户数据对应的数据表匹配值;
所述存储模块,具体用于从多个特征值中确定与所述数据表匹配值相同的目标特征值,并将所述用户数据存储至所述目标特征值对应的预设用户数据表中。
可选地,所述扣款单元包括:判断模块和扣款模块,
所述判断模块,用于判断所述订单状态信息是否为已支付状态;
所述判断模块,还用于若所述订单状态信息为已支付状态,则获取用户对应的扣款金额和账户余额,并判断所述账户余额是否大于或者等于所述扣款金额;
所述扣款模块,用于若所述账户余额大于或者等于所述扣款金额,则基于所述扣款金额,对所述多个预设用户数据表中的用户同批进行扣款处理。
可选地,所述装置还包括:查询单元和判断单元,
所述查询单元,用于查询预设数据处理记录中用户的扣款状态信息;
所述判断单元,用于基于所述扣款状态信息,判断所述多个预设用户数据表中是否存在遗漏扣款的用户;
所述查询单元,还用于若存在遗漏扣款的用户,则从所述多个预设用户数据表中查询所述遗漏扣款的用户对应的订单状态信息和扣款金额;
所述扣款单元,还用于基于所述订单状态信息和所述扣款金额,对所述遗漏扣款的用户进行扣款处理。
可选地,所述装置还包括:校验单元,
所述校验单元,用于若不存在遗漏扣款的用户,则计算所述多个预设用户数据表中用户的扣款总额,并对所述扣款总额进行校验处理。
可选地,所述校验单元包括:第二获取模块、对比模块、确定模块和发送模块,
所述第二获取模块,用于获取本期业务对应的业务总额;
所述对比模块,用于将所述扣款总额与所述业务总额进行对比;
所述确定模块,用于若所述扣款总额与所述业务总额相同,则确定针对所述多个预设用户数据表中用户的扣款处理正确;
所述发送模块,用于若所述扣款总额与所述业务总额不同,则确定针对所述多个预设用户表中用户的扣款处理存在错误,并向相应业务人员终端发送报警信息。
根据本发明的第三个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
将用户数据分散存储于多个预设用户数据表中;
创建多个与所述预设用户数据表分别对应的线程;
基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。
根据本发明的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
将用户数据分散存储于多个预设用户数据表中;
创建多个与所述预设用户数据表分别对应的线程;
基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。
本发明提供了一种数据处理方法、装置、存储介质及计算机设备,与目前采用单表单线程对所有用户进行扣款处理的方式相比,本发明通过将用户数据分散存储于多个预设用户数据表中,在进行扣款处理时,创建多个与所述预设用户数据表分别对应的线程;并基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理,由此通过将用户数据分散存储于多个预设用户数据表中,在进行扣款操作时,能够便于创建多个预设用户数据表对应的线程,从而能够同时遍历多个预设用户数据表,提高了扣款处理效率,能够满足针对千万级用户同一批次进行扣款处理的业务需求。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1示出了本发明实施例提供的一种数据处理方法流程图;
图2示出了本发明实施例提供的另一种数据处理方法流程图;
图3示出了本发明实施例提供的一种数据处理装置的结构示意图;
图4示出了本发明实施例提供的另一种数据处理装置的结构示意图;
图5示出了本发明实施例提供的一种计算机设备的实体结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本发明实施例提供了一种数据处理方法,如图1所示,该方法包括:
101、将用户数据分散存储于多个预设用户数据表中。
其中,用户数据包括用户的订单状态信息、用户ID、账户信息、扣款金额和业务参与时间等。为了克服现有技术中将千万级以上的用户数据单独存储于一张表中所导致的扣款处理效率低,无法满足针对千万级以上用户同批次进行扣款处理的业务需求的问题,本发明实施例,利用预设分表规则将千万级以上的用户数据分散存储于多个预设用户数据表中,以便在进行扣款处理时,能够创建多个预设用户数据表对应的线程,进而能够同时遍历多个预设用户数据表,提高了扣款处理效率,能够满足针对千万级以上用户同批次进行扣款处理的业务需求。
本发明实施例主要适用于针对千万级以上用户数据同批次进行扣款的场景,本发明实施例的执行主体为能够进行数据处理的装置或者设备,具体可以设置在客户端或者服务器一侧。
具体地,收集参加同一期业务的用户数据,并确定用户数据对应的数量级,用户数据对应的数量级越高,预设用户数据表对应的数量越多;用户数据对应的数量级越低,预设用户数据表对应的数量越少,例如,确定用户数据对应的数量级为千万级,将用户数据分散存储于50张预设用户数据表中,再比如,确定用户数据对应的数量级为亿万级级,将用户数据分散存储于500张表中,进一步地,可以根据这一期用户所参与的业务属性,确定相应的分表规则,进而基于确定的分表规则,将大量的用户数据分散存储于多张预设用户数据表中,以便在进行扣款操作时,能够创建多个与预设用户数据表分别对应的线程,进而能够同时处理多张预设用户数据表,提高扣款处理效率。
102、创建多个与所述预设用户数据表分别对应的线程。
对于本发明实施例,当需要对千万级以上用户同批进行扣款操作时,为了能够提高扣款处理效率,满足针对千万级以上用户同批进行扣款处理的业务需求,需要创建多个与预设用户数据表分别对应的线程,以便实现多表多线程的处理方式,具体地,可以采用通过承继Thread来创建并启动多个预设用户数据表对应的线程,还可以通过Runnable接口创建并启动多个预设用户数据表对应的线程,需要说明的是,在本发明实施例中还可以采用其他方式创建多个预设用户数据表对应的线程,本发明实施例不做具体限定。
103、基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。
其中,用户的订单状态信息包括下单未支付和支付成功,对于本发明实施例,在对大量用户数据同批次进行扣款处理时,创建的多个线程会分别遍历相应的预设用户数据表,并对相应预设用户数据表中的用户数据进行扣款处理,具体在进行扣款处理的过程中,需要获取预设用户数据表中的订单状态信息,如果用户的订单状态信息为下单未支付,则不对用户进行扣款处理;如果用户的订单状态信息为订单支付成功,则对用户进行扣款处理,从而通过这种多表多线程的方式能够提高对用户数据的扣款处理效率,进而能够满足针对千万级以上用户同批次进行扣款的业务需求。
需要说明的是,在本发明实施例中,可以根据预设用户数据表的数量创建相应数量的线程,以保证每个线程能够单独处理一张用户数据表,当处理器的资源有限时,为了避免占用过多的处理器资源,创建的线程数量可以少于用户数据表的数量,例如,存在10张预设用户数据表,由于处理器的资源有限,可以创建5个线程,即每个线程对应2张预设用户数据表,例如,当线程a遍历完第一张预设用户数据表时,再遍历下一张预设用户数据表,由此相对于将所有用户数据存储于一张用户数据表的方式,依然能够起到提高数据处理效率的作用。
在具体应用场景中,不仅可以对用户数据进行扣款操作,还可以查询并显示预设用户数据表中的扣款记录,或者查询其他与扣款记录有关的信息,由于将用户数据分散存储至多个预设用户数据表中,在进行数据查询的过程中,也可以采用创建多线程的方式,同时查询多张预设用户数据表,进而提升数据查询的效率,此外,当用户数据需要进行更新时,由于其分散存储于多张表中,可以同时对多张预设用户数据表中的数据进行更新,进而提升数据更新的速度。
本发明实施例提供的一种数据处理方法,与目前采用单表单线程对所有用户进行扣款处理的方式相比,本发明通过将用户数据分散存储于多个预设用户数据表中,在进行扣款处理时,创建多个与预设用户数据表分别对应的线程;并基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理,由此通过将用户数据分散存储于多个预设用户数据表中,在进行扣款操作时,能够便于创建多个预设用户数据表对应的线程,从而能够同时遍历多个预设用户数据表,提高了扣款处理效率,能够满足针对千万级用户同一批次进行扣款处理的业务需求。
进一步地,为了更好的说明上述数据处理的过程,作为对上述实施例的细化和扩展,本发明实施例提供了另一种数据处理方法,如图2所示,所述方法包括:
201、获取用户数据以及所述多个预设用户数据表对应的特征值,并利用预设分表规则计算所述用户数据对应的数据表匹配值。
其中,预设用户数据表的特征值可以采用与预设分表规则相应的规则进行设定,例如,设定预设用户数据表A对应的特征值为1,预设用户数据表B对应的特征值为16,预设用户数据表C对应的特征值256,此外,预设分表规则可以根据业务属性进行设定,对于本发明实施例,为了将大量的用户数据分散存储于预设用户数据表中,需要先计算用户数据对应的数据表匹配值,针对该数据表匹配值的具体计算过程,作为一种可选实施方式,所述方法包括:确定用户数据对应的数量级;对所述用户数据中的用户ID进行取模处理,得到所述用户ID对应的模;基于所述用户ID对应的模和所述数量级,计算所述用户数据对应的数据表匹配值。
例如,在将用户数据分配至相应预设用户数据表的过程中,确定用户ID为40,根据用户数据对应的数量级确定预设用户数据表对应的数量为6,利用预设用户ID对预设用户数量表的数量进行取模处理,得到用户数据对应的模为4,进一步地,根据用户数据对应的数量级,确定相应的幂次方,数量级越高,相应的幂次方越大;数量级越低,相应的幂次方越小,如确定相应的幂次方为4,计算用户数据对应的模的4次方为256,由此能够确定用户数据对应的数据表匹配值为256,进一步地,将计算的数据表匹配值分别与预设用户数据表对应的特征值进行匹配,并根据匹配结果,将用户数据存储至相应的预设用户数据表中,以实现将用户数据分散存储至多个预设用户数据表的目的。
202、基于所述数据表匹配值和所述多个预设用户数据表对应的特征值,将所述用户数据存储至相应的预设用户数据表中。
对于本发明实施例,为了将用户数据存储至相应的预设用户数据表中,步骤202具体包括:从多个特征值中确定与所述数据表匹配值相同的目标特征值,并将所述用户数据存储至所述目标特征值对应的预设用户数据表中。
例如,计算用户数据对应的数据表匹配值为256,将该数据表匹配值与多个预设用户数据表对应的特征值进行匹配,如设定预设用户数据表A对应的特征值为1,预设用户数据表B对应的特征值为16,预设用户数据表C对应的特征值256,由此将该用户数存储至预设用户数据表C中,从而能够根据业务需求将大量的用户数据分散存储至多个预设用户数据表中,以便提高扣款处理效率。
在具体应用场景中,如果用户数据对应的数量级较高,如用户数据为亿万级用户数据,预设用户数据表的数量较多,还可以将预设用户数据表存储于多个数据库中,具体存储用户数据时,需要先利用预设分库规则确定用户数据对应的数据库,之后再利用预设分表规则确定用户数据对应的该数据库下的预设用户数据表,具体地,可以根据数据库的数量,确定各个数据库对应的特征值,再计算用户数据对应的哈希值,并利用该哈希值对该数据库的数量进行取模处理,将取模后的值确定为用户数据对应的数据库匹配值,进一步地,将该数据库匹配值与各个数据库对应的特征值进行匹配,根据匹配结果确定该用户数据所属的数据库。
例如,根据用户数据对应的数量级确定将预设用户数据表存储于数据库A、数据库B、数据库C和数据库D中,根据该数据库数量确定数据库A、数据库B、数据库C和数据库D对应的特征值分别0,1,2,3,进一步地,获取用户数据中的用户ID,计算该用户ID对应的哈希值,之后将该哈希值对数据库的数量4进行取模处理,得到用户数据对应的数据库匹配值为2,之后将该匹配值分别与数据库A、数据库B、数据库C和数据库D对应的特征值0,1,2,3进行匹配,由此能够确定将用户数据存储于数据库B中,进一步地,再利用预设分表规则将用户数据存储于数据库B中相应的预设用户数据表,针对分表的过程与上述过程完全相同,在此不再赘述。
203、创建多个与所述预设用户数据表分别对应的线程。
对于本发明实施例,当需要对千万级以上用户同批进行扣款操作时,为了能够提高扣款处理效率,满足针对千万级以上用户同批进行扣款处理的业务需求,需要创建多个与预设用户数据表分别对应的线程,以便实现多表多线程的处理方式,具体地,可以采用通过承继Thread来创建并启动多个预设用户数据表对应的线程,还可以通过Runnable接口创建并启动多个预设用户数据表对应的线程,需要说明的是,在本发明实施例中还可以采用其他方式创建多个预设用户数据表对应的线程,本发明实施例不做具体限定。
204、基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。
对于本发明实施例,在对用户数据进行扣款操作之前,需要根据用户数据中的订单状态信息和账户余额,判断该用户是否满足扣款条件,如果确定该用户满足扣款条件,则对该用户进行扣款处理;如果该用户不满足扣款条件,则不对该用户进行扣款处理,基于此,步骤204具体包括:判断所述订单状态信息是否为已支付状态;若所述订单状态信息为已支付状态,则获取用户对应的扣款金额和账户余额,并判断所述账户余额是否大于或者等于所述扣款金额;若所述账户余额大于或者等于所述扣款金额,则基于所述扣款金额,对所述多个预设用户数据表中的用户同批进行扣款处理。
具体地,在遍历预设用户数据表的过程中,如果该用户的订单状态信息为未支付,则不对该用户执行扣款操作;如果该用户的订单状态信息为下单已支付,则获取用户数据中的扣款金额和账户余额,并判断该账户余额是否大于或者等于扣款金额,如果大于或者等于扣款金额,则对该用户数据执行扣款处理;如果该账户余额小于扣款金额,则不对该用户执行扣款操作,该用户无法再继续参与业务,不再享有相应的权利,由此多个线程在同时遍历多个预设用户数据表的过程中,能够同时对千万级以上用户执行扣款操作,满足相应的业务需求。
进一步地,在对多个预设用户数据表中的用户执行完扣款操作之后,还需要检测是否存在漏扣用户,如果存在漏扣用户,则根据该漏扣用户对应的订单状态信息和扣款金额,执行扣款操作,基于此,在所述根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理之后,所述方法还包括:查询预设数据处理记录中用户的扣款状态信息;基于所述扣款状态信息,判断所述多个预设用户数据表中是否存在遗漏扣款的用户;若存在遗漏扣款的用户,则从所述多个预设用户数据表中查询所述遗漏扣款的用户对应的订单状态信息和扣款金额;基于所述订单状态信息和所述扣款金额,对所述遗漏扣款的用户进行扣款处理。
其中,预设数据处理记录中记录有用户的扣款状态信息,当在预设用户数据表中完成对用户的扣款操作之后,预设数据处理记录中该用户对应的扣款状态信息为已扣款,通过查询该预设数据处理记录能够发现未被执行扣款处理的用户,进一步地,根据该用户ID在预设用户数据表中查询该用户的订单状态信息和扣款金额,若满足扣款条件则执行相应的扣款操作
在具体应用场景中,如果预设数据处理记录中不存在遗漏的扣款用户,为了保证扣款处理的准确性,还需要计算本次同批扣款操作对应的扣款总额,并基于该扣款总额检测本次扣款操作是否存在问题,基于此,在所述基于所述扣款状态信息,判断所述多个预设用户数据表中是否存在遗漏扣款的用户之后,所述方法还包括:若不存在遗漏扣款的用户,则计算所述多个预设用户数据表中用户的扣款总额,并对所述扣款总额进行校验处理。进一步地,所述计算多个预设用户数据表中用户的扣款总额,并对所述扣款总额进行校验处理,包括:获取本期业务对应的业务总额;将所述扣款总额与所述业务总额进行对比;若所述扣款总额与所述业务总额相同,则确定针对所述多个预设用户数据表中用户的扣款处理正确;若所述扣款总额与所述业务总额不同,则确定针对所述多个预设用户数据表中用户的扣款处理存在错误,并向相应业务人员终端发送报警信息。
对于本发明实施例,根据用户本期参与的业务类型,确定相应的业务总额,如业务总额为50万,之后将多个预设用户数据表中所有用户对应的扣款金额相加,计算本期业务对应的扣款总额,如果计算的扣款总额小于业务总额,则重新查询预设数据处理记录,判断是否存在遗漏扣款的用户,当该步骤的重复次数超过预设次数,则可以向相应业务人员的终端发送报警信息,或者当计算的扣款总额大于业务总额时,也需要向相应业务人员的终端发送报警信息,以便提示相关业务人员进行人工审查,如果计算的扣款金额等于业务总额,则确定针对多个预设用户数据表中用户的扣款处理正确,由此能够建立完善、高效、准确的扣款流程,从而实现千万级用户数据同一批次扣款场景的业务需求。
本发明实施例提供的另一种数据处理方法,与目前采用单表单线程对所有用户进行扣款处理的方式相比,本发明通过将用户数据分散存储于多个预设用户数据表中,在进行扣款处理时,创建多个与所述预设用户数据表分别对应的线程;并基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理,由此通过将用户数据分散存储于多个预设用户数据表中,在进行扣款操作时,能够便于创建多个预设用户数据表对应的线程,从而能够同时遍历多个预设用户数据表,提高了扣款处理效率,能够满足针对千万级用户同一批次进行扣款处理的业务需求。
进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种数据处理装置,如图3所示,该装置包括:存储单元31、创建单元32和扣款单元33。
存储单元31,可以用于将用户数据分散存储于多个预设用户数据表中。所述存储单元31是本装置中将用户数据分散存储于多个预设用户数据表中的主要功能模块,也是核心模块。
创建单元32,可以用于创建多个与所述预设用户数据表分别对应的线程。所述创建单元32是本装置中创建多个与所述预设用户数据表分别对应的线程的主要功能模块,也是核心模块。
扣款单元33,可以用于基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。所述扣款单元33是本装置中基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理的主要功能模块。
进一步地,如图4所示,为了将千万级以上的用户数据分散存储于不同的预设用户数据表中,所述存储单元31,包括:第一获取模块311、计算模块312和存储模块313。
所述第一获取模块311,可以用于获取用户数据以及所述多个预设用户数据表对应的特征值。
所述计算模块312,可以用于利用预设分表规则计算所述用户数据对应的数据表匹配值。
所述存储模块313,可以用于基于所述数据表匹配值和所述多个预设用户数据表对应的特征值,将所述用户数据存储至相应的预设用户数据表中。
在具体应用场景中,为了将用户数据存储至相应的预设用户数据表中,所述计算模块312,包括:确定子模块、取模子模块和计算子模块。
所述确定子模块,可以用于确定用户数据对应的数量级。
所述取模子模块,可以用于对所述用户数据中的用户ID进行取模处理,得到所述用户ID对应的模。
所述计算子模块,可以用于基于所述用户ID对应的模和所述数量级,计算所述用户数据对应的数据表匹配值。
所述存储模块,具体可以用于从多个特征值中确定与所述数据表匹配值相同的目标特征值,并将所述用户数据存储至所述目标特征值对应的预设用户数据表中。
在具体应用场景中,为了对多个预设用户数据表中的用户同批进行扣款处理,所述扣款单元33,包括:判断模块331和扣款模块332。
所述判断模块331,可以用于判断所述订单状态信息是否为已支付状态。
所述判断模块331,还可以用于若所述订单状态信息为已支付状态,则获取用户对应的扣款金额和账户余额,并判断所述账户余额是否大于或者等于所述扣款金额。
所述扣款模块332,可以用于若所述账户余额大于或者等于所述扣款金额,则基于所述扣款金额,对所述多个预设用户数据表中的用户同批进行扣款处理。
在具体应用场景中,为了对遗漏扣款的用户进行扣款处理,所述装置还包括:查询单元34和判断单元35。
所述查询单元34,可以用于查询预设数据处理记录中用户的扣款状态信息。
所述判断单元35,可以用于基于所述扣款状态信息,判断所述多个预设用户数据表中是否存在遗漏扣款的用户。
所述查询单元34,还可以用于若存在遗漏扣款的用户,则从所述多个预设用户数据表中查询所述遗漏扣款的用户对应的订单状态信息和扣款金额。
所述扣款单元33,还可以用于基于所述订单状态信息和所述扣款金额,对所述遗漏扣款的用户进行扣款处理。
进一步地,为了保证扣款处理正确无误,所述装置还包括:校验单元36。
所述校验单元36,可以用于若不存在遗漏扣款的用户,则计算所述多个预设用户数据表中用户的扣款总额,并对所述扣款总额进行校验处理。
进一步地,为了对扣款操作进行校验处理,所述校验单元36,包括:第二获取模块361、对比模块362、确定模块363和发送模块364。
所述第二获取模块361,可以用于获取本期业务对应的业务总额。
所述对比模块362,可以用于将所述扣款总额与所述业务总额进行对比。
所述确定模块363,可以用于若所述扣款总额与所述业务总额相同,则确定针对所述多个预设用户数据表中用户的扣款处理正确。
所述发送模块364,可以用于若所述扣款总额与所述业务总额不同,则确定针对所述多个预设用户数据表中用户的扣款处理存在错误,并向相应业务人员终端发送报警信息。
基于上述如图1和图2所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图1至图2所示的方法。
基于上述如图1所示方法和如图3所示装置的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图5所示,该计算机设备包括:处理器41、存储器42、及存储在存储器42上并可在处理器上运行的计算机程序,其中存储器42和处理器41均设置在总线43上所述处理器41执行所述程序时实现如图1至图2所示的方法。
通过本发明的技术方案,本发明能够将用户数据分散存储于多个预设用户数据表中,在进行扣款处理时,创建多个与所述预设用户数据表分别对应的线程;并基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理,由此通过将用户数据分散存储于多个预设用户数据表中,在进行扣款操作时,能够便于创建多个预设用户数据表对应的线程,从而能够同时遍历多个预设用户数据表,提高了扣款处理效率,能够满足针对千万级用户同一批次进行扣款处理的业务需求。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种数据处理装置,其特征在于,包括:
存储单元,用于将用户数据分散存储于多个预设用户数据表中;
创建单元,用于创建多个与所述预设用户数据表分别对应的线程;
扣款单元,用于基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。
2.根据权利要求1所述的装置,其特征在于,所述存储单元包括:第一获取模块、计算模块和存储模块,
所述第一获取模块,用于获取用户数据以及所述多个预设用户数据表对应的特征值;
所述计算模块,用于利用预设分表规则计算所述用户数据对应的数据表匹配值;
所述存储模块,用于基于所述数据表匹配值和所述多个预设用户数据表对应的特征值,将所述用户数据存储至相应的预设用户数据表中。
3.根据权利要求2所述的装置,其特征在于,所述计算模块包括:确定子模块、取模子模块和计算子模块,
所述确定子模块,用于确定用户数据对应的数量级;
所述取模子模块,用于对所述用户数据中的用户ID进行取模处理,得到所述用户ID对应的模;
所述计算子模块,用于基于所述用户ID对应的模和所述数量级,计算所述用户数据对应的数据表匹配值;
所述存储模块,具体用于从多个特征值中确定与所述数据表匹配值相同的目标特征值,并将所述用户数据存储至所述目标特征值对应的预设用户数据表中。
4.根据权利要求1所述的装置,其特征在于,所述扣款单元包括:判断模块和扣款模块,
所述判断模块,用于判断所述订单状态信息是否为已支付状态;
所述判断模块,还用于若所述订单状态信息为已支付状态,则获取用户对应的扣款金额和账户余额,并判断所述账户余额是否大于或者等于所述扣款金额;
所述扣款模块,用于若所述账户余额大于或者等于所述扣款金额,则基于所述扣款金额,对所述多个预设用户数据表中的用户同批进行扣款处理。
5.根据权利要求1所述的装置,其特征在于,所述装置还包括:查询单元和判断单元,
所述查询单元,用于查询预设数据处理记录中用户的扣款状态信息;
所述判断单元,用于基于所述扣款状态信息,判断所述多个预设用户数据表中是否存在遗漏扣款的用户;
所述查询单元,还用于若存在遗漏扣款的用户,则从所述多个预设用户数据表中查询所述遗漏扣款的用户对应的订单状态信息和扣款金额;
所述扣款单元,还用于基于所述订单状态信息和所述扣款金额,对所述遗漏扣款的用户进行扣款处理。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:校验单元,
所述校验单元,用于若不存在遗漏扣款的用户,则计算所述多个预设用户数据表中用户的扣款总额,并对所述扣款总额进行校验处理。
7.根据权利要求6所述的装置,其特征在于,所述校验单元包括:第二获取模块、对比模块、确定模块和发送模块,
所述第二获取模块,用于获取本期业务对应的业务总额;
所述对比模块,用于将所述扣款总额与所述业务总额进行对比;
所述确定模块,用于若所述扣款总额与所述业务总额相同,则确定针对所述多个预设用户数据表中用户的扣款处理正确;
所述发送模块,用于若所述扣款总额与所述业务总额不同,则确定针对所述多个预设用户数据表中用户的扣款处理存在错误,并向相应业务人员终端发送报警信息。
8.一种数据处理方法,其特征在于,包括:
将用户数据分散存储于多个预设用户数据表中;
创建多个与所述预设用户数据表分别对应的线程;
基于创建的多个线程,遍历所述多个预设用户数据表,根据用户的订单状态信息,对所述多个预设用户数据表中的用户同批进行扣款处理。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求8所述的方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求8所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110271047.1A CN113111060A (zh) | 2021-03-11 | 2021-03-11 | 数据处理方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110271047.1A CN113111060A (zh) | 2021-03-11 | 2021-03-11 | 数据处理方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113111060A true CN113111060A (zh) | 2021-07-13 |
Family
ID=76711201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110271047.1A Pending CN113111060A (zh) | 2021-03-11 | 2021-03-11 | 数据处理方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113111060A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800270A (zh) * | 2019-01-22 | 2019-05-24 | 青岛聚好联科技有限公司 | 一种数据存储和查询的方法及物联网系统 |
CN109977102A (zh) * | 2019-03-27 | 2019-07-05 | 网易(杭州)网络有限公司 | 数据处理方法、装置、介质及电子设备 |
CN111080301A (zh) * | 2019-11-22 | 2020-04-28 | 网银在线(北京)科技有限公司 | 数据处理方法、终端、电子设备和计算机存储介质 |
CN111737257A (zh) * | 2020-06-16 | 2020-10-02 | 中国银行股份有限公司 | 数据查询方法及装置 |
CN111833034A (zh) * | 2020-07-02 | 2020-10-27 | 泰康保险集团股份有限公司 | 一种批量扣款方法、支付服务器、计算机设备及存储介质 |
CN111861437A (zh) * | 2020-07-07 | 2020-10-30 | 中国建设银行股份有限公司 | 一种支付处理方法和装置 |
-
2021
- 2021-03-11 CN CN202110271047.1A patent/CN113111060A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800270A (zh) * | 2019-01-22 | 2019-05-24 | 青岛聚好联科技有限公司 | 一种数据存储和查询的方法及物联网系统 |
CN109977102A (zh) * | 2019-03-27 | 2019-07-05 | 网易(杭州)网络有限公司 | 数据处理方法、装置、介质及电子设备 |
CN111080301A (zh) * | 2019-11-22 | 2020-04-28 | 网银在线(北京)科技有限公司 | 数据处理方法、终端、电子设备和计算机存储介质 |
CN111737257A (zh) * | 2020-06-16 | 2020-10-02 | 中国银行股份有限公司 | 数据查询方法及装置 |
CN111833034A (zh) * | 2020-07-02 | 2020-10-27 | 泰康保险集团股份有限公司 | 一种批量扣款方法、支付服务器、计算机设备及存储介质 |
CN111861437A (zh) * | 2020-07-07 | 2020-10-30 | 中国建设银行股份有限公司 | 一种支付处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10311106B2 (en) | Social graph visualization and user interface | |
US10459888B2 (en) | Method, apparatus and system for data analysis | |
CN108833458B (zh) | 一种应用推荐方法、装置、介质及设备 | |
CN106487715B (zh) | 一种用于为用户分配资源的方法和装置 | |
CN110268409A (zh) | 用于电力欺诈检测的新型非参数统计行为识别生态系统 | |
CN102117323A (zh) | 一种推荐求职简历的处理方法和系统 | |
CN109241084B (zh) | 数据的查询方法、终端设备及介质 | |
CN109615410B (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
CN111160737A (zh) | 一种资源分配方案的适配方法及相关设备 | |
CN112116969B (zh) | 信息推荐方法、装置、存储介质及计算机设备 | |
CN113111060A (zh) | 数据处理方法、装置、存储介质及计算机设备 | |
CN110909072A (zh) | 一种数据表建立方法、装置及设备 | |
Chaokai et al. | A new reputation model for p2p network based on set pair analysis | |
CN114490406A (zh) | 测试覆盖项管理方法、装置、设备及介质 | |
CN107909481B (zh) | 一种投资共建展示与认股信息分析系统及方法 | |
CN113297053A (zh) | 测试覆盖率的确定方法、装置和存储介质 | |
CN111488613A (zh) | 业务数据区块链的数据高效查询方法及装置 | |
CN110751460A (zh) | 一种业务信息处理方法 | |
KR20200019079A (ko) | 비정상 유저 검출 장치 및 방법 | |
CN111309758A (zh) | 一种计费数据验证比对方法及装置 | |
CN112199269A (zh) | 一种数据处理的方法以及相关装置 | |
US20230367594A1 (en) | System and method for processing instructions associated with one or more data transfers | |
CN117114758A (zh) | 基于电商平台店铺订单的返利方法、装置、设备及存储介质 | |
CN109559139A (zh) | 一种物品对象的处理方法、装置、介质及电子设备 | |
CN115883270A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant after: Beijing Shuidi Technology Group Co.,Ltd. Address before: 100102 201, 2 / F, block C, No.2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant before: Beijing Health Home Technology Co.,Ltd. |