CN110795604A - 生成交易流水号的方法、装置、计算设备和介质 - Google Patents
生成交易流水号的方法、装置、计算设备和介质 Download PDFInfo
- Publication number
- CN110795604A CN110795604A CN201911048395.1A CN201911048395A CN110795604A CN 110795604 A CN110795604 A CN 110795604A CN 201911048395 A CN201911048395 A CN 201911048395A CN 110795604 A CN110795604 A CN 110795604A
- Authority
- CN
- China
- Prior art keywords
- serial number
- target serial
- type
- digit
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004590 computer program Methods 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本公开提供了一种生成交易流水号的方法。该方法包括:接收流水号生成请求,流水号生成请求包括目标流水号类型和目标流水号位数;获取与目标流水号类型对应的目标流水号集合;重复执行随机生成操作来生成目标流水号,直至目标流水号未包含在目标流水号集合中;以及将目标流水号存储在目标流水号集合中,并输出目标流水号;其中,随机生成操作包括:根据流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符。本公开还提供了一种生成交易流水号的装置、一种计算设备以及一种介质。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种生成交易流水号的方法、装置、计算设备和介质。
背景技术
分布式交易***可以使用UUID(Universally Unique Identifier,通用唯一识别码)生成交易流水号。UUID为一组32位的16进制数字,通常可以基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的MAC地址)等数据来计算生成UUID。
在实现本公开构思的过程中,发明人发现使用UUID生成交易流水号至少存在如下问题:由于UUID位数比较长,并且需要读取硬件标识,因此UUID的生成时间比较长。
发明内容
本公开的一个方面提供了一种生成交易流水号的方法,包括:接收流水号生成请求,流水号生成请求包括目标流水号类型和目标流水号位数;获取与目标流水号类型对应的目标流水号集合;重复执行随机生成操作来生成目标流水号,直至目标流水号未包含在目标流水号集合中;以及将目标流水号存储在目标流水号集合中,并输出目标流水号;其中,随机生成操作包括:根据流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符。
可选地,上述目标流水号类型包括数字类型、字母类型和数字字母混合类型中的任意一种。
可选地,上述根据流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符,包括:在目标流水号类型为数字类型的情况下,针对目标流水号的每一位上的字符,随机确定一个数字字符,作为该位上的字符;在目标流水号类型为字母类型的情况下,针对目标流水号的每一位上的字符,随机确定一个字母字符,作为该位上的字符;以及在目标流水号类型为数字字母混合类型的情况下,随机确定目标流水号的每一位为数字位或字母位;针对每一个数字位,随机确定一个数字字符,作为该数字位上的字符;针对每一个字母位,随机确定一个字母字符,作为该字母位上的字符。
可选地,上述获取与目标流水号类型对应的目标流水号集合,包括:获取映射关系表;以及根据目标流水号类型,在映射关系表中查找与目标流水号类型对应的目标流水号集合。
可选地,上述方法还包括:对流水号生成请求加锁,以使在接收到包含同一流水号类型的多个流水号生成请求的情况下,同一时刻仅对加锁的流水号生成请求进行处理。
本公开的另一个方面提供了一种生成交易流水号的装置,包括接收模块,用于接收流水号生成请求,流水号生成请求包括目标流水号类型和目标流水号位数;第一获取模块,用于获取与目标流水号类型对应的目标流水号集合;执行模块,用于重复执行随机生成操作来生成目标流水号,直至目标流水号未包含在目标流水号集合中;以及输出模块,用于将目标流水号存储在目标流水号集合中,并输出目标流水号;其中,随机生成操作包括:根据流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符。
可选地,上述目标流水号类型为数字类型、字母类型和数字字母混合类型中的任意一种;上述执行模块包括:第一确定子模块,用于在目标流水号类型为数字类型的情况下,针对目标流水号的每一位上的字符,随机确定一个数字字符,作为该位上的字符;第二确定子模块,用于在目标流水号类型为字母类型的情况下,针对目标流水号的每一位上的字符,随机确定一个字母字符,作为该位上的字符;以及第三确定子模块,用于在目标流水号类型为数字字母混合类型的情况下,随机确定目标流水号的每一位为数字位或字母位;针对每一个数字位,随机确定一个数字字符,作为该数字位上的字符;针对每一个字母位,随机确定一个字母字符,作为该字母位上的字符。
可选地,上述第一获取模块包括:第二获取子模块,用于获取映射关系表;以及查找模块,用于根据目标流水号类型,在映射关系表中查找与目标流水号类型对应的目标流水号集合。
本公开的另一方面提供了一种计算设备,包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序,其中,当一个或多个计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例中提供的生成流水号的方法和装置,接收流水号生成请求,获取与流水号生成请求中的目标流水号类型对应的目标流水号集合,重复执行随机生成操作来生成目标流水号,直至目标流水号未包含在目标流水号集合中。由此,在生成流水号的过程中不必读取硬件标识,速度较快。此外,由于生成的流水号随机,因此不容易预测生成的流水号,安全性较高。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开的实施例的生成流水号的方法和生成交易流水号的装置的应用场景;
图2示意性示出了根据本公开的实施例的生成交易流水号的方法的流程图;
图3示意性示出了根据本公开实施例的获取与目标流水号类型对应的目标流水号集合的示例性流程图;
图4示意性示出了根据本公开另一实施例的生成交易流水号的方法的流程图;
图5示意性示出了根据本公开的实施例的生成交易流水号的装置的框图;
图6示意性示出了根据本公开的实施例的执行模块的示例性框图;
图7示意性示出了根据本公开的实施例的第一获取模块的示例性框图;
图8示意性示出了根据本公开另一实施例的生成交易流水号的装置的框图;以及
图9示意性示出了根据本公开实施例的适于实现根据本公开实施例的方法的计算机***的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
本公开的实施例提供了一种生成流水号的方法以及生成交易流水号的装置。该方法包括接收流水号生成请求,流水号生成请求包括目标流水号类型和目标流水号位数;获取与目标流水号类型对应的目标流水号集合;重复执行随机生成操作来生成目标流水号,直至目标流水号未包含在目标流水号集合中;以及将目标流水号存储在目标流水号集合中,并输出目标流水号。其中,随机生成操作包括:根据流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符。
图1示意性示出了根据本公开的实施例的生成流水号的方法和生成交易流水号的装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104、交易服务器105和中心服务器106。网络104用以在终端设备101、102、103和交易服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
交易服务器105用于对用户利用终端设备101、102、103所浏览的交易平台网站提供支持。交易服务器105可以对接收到的用户请求(例如交易请求)等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
中心服务器106用于响应交易服务器105所发送的流水号生成请求,生成相应的流水号,并反馈给交易服务器105。
当用户通过终端设备101、102、103发起交易时,终端设备向交易服务器105提交交易请求。接着,交易服务器105根据交易请求生成流水号生成请求,将流水号生成请求发送至中心服务器106。然后,中心服务器106根据流水号生成请求生成相应的流水号,将流水号发回交易服务器105。接下来,交易服务器105将中心服务器发回的流水号作为本次交易的流水号。
需要说明的是,本公开实施例所提供的生成交易流水号的方法可以由中心服务器106执行。相应地,本公开实施例所提供的生成交易流水号的装置可以设置于中心服务器106中。本公开实施例所提供的生成交易流水号的方法也可以由不同于中心服务器106且能够与交易服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的生成交易流水号的装置也可以设置于不同于中心服务器106且能够与交易服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开的实施例的生成交易流水号的方法的流程图。
如图2所示,该方法包括操作S210~S240。
在操作S210,接收流水号生成请求。
根据本公开的实施例,流水号生成请求可以由交易服务器生成并发送至中心服务器。流水号生成请求用于请求中心服务器生成交易所需的流水号。
流水号生成请求中可以包括所请求的交易流水号的类型和交易流水号的位数。交易流水号的类型例如可以包括数字类型、字母类型和数字字母混合类型。其中,数字类型是指由纯数字构成的流水号(例如0001),字母类型是指由纯字母构成的流水号(例如efsd),数字字母混合类型是指由数字与字母混合构成的流水号(例如a2b3)。
在操作S220,获取与目标流水号类型对应的目标流水号集合。
根据本公开的实施例,每一种流水号类型对应一个流水号集合,流水号集合用于存储该类型的已生成的流水号。
图3示意性示出了根据本公开实施例的获取与目标流水号类型对应的目标流水号集合的示例性流程图。
如图3所示,操作S220可以包括操作S310~S320。
在操作S310,获取映射关系表。
在操作S320,根据所述目标流水号类型,在所述映射关系表中查找与所述目标流水号类型对应的目标流水号集合。
据本公开的实施例,预先将流水号类型和流水号的对应关系保存在映射关系表中。映射关系表例如可以采用map数据类型,其存储位置可以为服务器内存。
在操作S230,重复执行随机生成操作来生成目标流水号,直至目标流水号未包含在目标流水号集合中。
其中,随机生成操作包括:根据流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符。
根据本公开的实施例,根据流水号类型的不同,生成流水号的方法也不同。例如,在目标流水号类型为数字类型的情况下,针对目标流水号的每一位上的字符,随机确定一个数字字符,作为该位上的字符。在目标流水号类型为字母类型的情况下,针对目标流水号的每一位上的字符,随机确定一个字母字符,作为该位上的字符。在目标流水号类型为数字字母混合类型的情况下,随机确定目标流水号的每一位为数字位或字母位,然后针对每一个数字位,随机确定一个数字字符,作为该数字位上的字符,针对每一个字母位,随机确定一个字母字符,作为该字母位上的字符。
举例说明,对于一个n位的流水号,若该流水号为数字类型,则首先针对该流水号第1位上的字符,运行随机数字生成函数(随机数字生成函数用于随机生成0~9这10个数字中的任意一个数字),得到0~9中任意一个数字作为第1位上的字符;然后针对第2位,再次运行随机数字生成函数,随机得到一个数字作为第2位上的字符……以此类推,直到得到第n位上的字符。例如,第1位可以为最低有效位。
若该流水号为字母类型,则首先针对该流水号第1位上的字符,运行随机字母生成函数(随机字母生成函数用于随机生成A~Z这26个字母中任意一个字母),得到A~Z中任意一个字母作为第1位上的字符;然后针对第2位,再次运行随机数字生成函数,随机得到的一个字母作为第2位上的字符……以此类推,直到得到第n位上的字符。
若该流水号为数字字母混合类型,则首先针对该流水号第1位上的字符,运行随机函数(随机函数用于随机生成0或1,例如random函数)。若结果为0,则表示该位为数字位,运行随机数字生成函数,随机得到一个数字作为第1位上的字符;然后再次运行随机函数,若结果为1,则表示该位为字母位,运行随机字母生成函数,随机得到一个字母作为第2位上的字符……以此类推,直到得到第n位上的字符。
在操作S240,将目标流水号存储在目标流水号集合中,并输出目标流水号。
根据本公开的实施例中提供的生成流水号的方法,接收流水号生成请求,获取与流水号生成请求中的目标流水号类型对应的目标流水号集合,重复执行随机生成操作来生成目标流水号,直至目标流水号未包含在目标流水号集合中。该方法在生成流水号的过程中不必读取硬件标识,速度较快。同时,由于生成的流水号随机,因此不容易被预测,安全性较高。
可以理解的是,上述生成流水号的方法还可以用于生成其他编号,例如账号、主机通讯码、第三方交互码、订单号等等要求唯一的编号。
根据本公开的另一实施例,还可以预先设置配置文件,配置文件中预设有多个流水号模板,例如表1所示,每个模板中包括流水号标识、流水号类型和位数。交易服务器可以将流水号标识通过流水线生成请求发送到中心服务器中,然后中心服务器从配置文件中查找该流水号类型所对应的类型和位数,根据该类型和位数即可生成相应的流水号,从而交易服务器不必再发送流水号类型和位数,能够节省通信开销。
表1
标识 | 类型 | 位数 |
A | 数字类型 | 32 |
B | 数字字母混合类型 | 18 |
… | … | … |
下面结合具体实施例对图2所示的方法做进一步说明。
终端设备向交易服务器发送交易请求。交易服务器根据交易请求判断需要哪种类型的流水号以及需要多少位的流水号,并相应地生成流水号生成请求,然后向中心服务器发送流水号生成请求。
中心服务器接收到流水号生成请求后,解析该流水号生成请求。若流水号生成请求中包含有流水号标识但未包含流水号类型和流水号位数,则根据配置文件生成流水号。若流水号生成请求中包含有流水号标识以及流水号类型和流水号位数,按照流水号生成请求中的流水号类型和位数生成流水号。
针对流水号类型为数字类型,随机生成每一位数字字符,得到一个数字字符串,然后在例如内存中的map查询该流水号标识所对应的流水号集合里是否已包含该数字字符串。若该数字字符串未包含在该流水号集合里,则将该数字字符串作为目标流水号。若该数字字符串已包含在该流水号集合里,则重新生成一个数字字符串,直到生成的数字字符串未被包含在该流水号集合里。
针对流水号类型为纯字母类型,随机生成每一位字母字符,得到一个字母字符串,然后在内存中的map查询该流水号标识所对应的流水号集合里是否已包含该字母字符串。若该字母字符串未包含在该流水号集合里,则将该字母字符串作为目标流水号。若该字母字符串已包含在该流水号集合里,则重新生成一个字母字符串,直到生成的字母字符串未被包含在该流水号集合里。
针对流水号类型为数字字母混合类型,首先根据random函数随机生成结果,random函数运行结果具有0和1两种,并且出现概率相同,均为50%。然后若运行结果为0,则该位为数字字符,随机生成一位数字作为该位上的字符;若运行结果为1,则该位为字母字符,随机生成一位字母作为该位上的字符。接下来在内存中的map查询该流水号标识所对应的流水号集合里是否已包含该字符串。若该字符串未包含在该流水号集合里,则将该字符串作为目标流水号。若该字符串已包含在该流水号集合里,则重新生成一个数字字母混合字符串,直到生成的字符串未被包含在该流水号集合里。
图4示意性示出了根据本公开另一实施例的生成交易流水号的方法的流程图。
如图4所示,除了操作S210~S240之外,该方法还可以包括操作S410。
在操作S410,对流水号生成请求加锁,以使在接收到包含同一流水号类型的多个流水号生成请求的情况下,同一时刻仅对加锁的流水号生成请求进行处理。
根据本公开的实施例,中心服务器判断当前是否有同类型已加锁的的流水号生成请求正在处理。若当前没有正在处理同类型已加锁的流水号生成请求,则对该流水号生成请求加锁,然后进行处理;否则,等待已加锁的请求被处理完毕并解锁后再对该流水号生成请求加锁并处理。
图5示意性示出了根据本公开的实施例的生成交易流水号的装置的框图。
如图5所示,生成交易流水号的装置500包括:接收模块510、第一获取模块520、执行模块530和输出模块540。该生成交易流水号的装置500可以执行上面参考图2描述的方法。
具体地,接收模块510,用于接收流水号生成请求,流水号生成请求包括目标流水号类型和目标流水号位数。
第一获取模块520,用于获取与目标流水号类型对应的目标流水号集合。
执行模块530,用于重复执行随机生成操作来生成目标流水号,直至目标流水号未包含在目标流水号集合中。其中,随机生成操作包括:根据流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符。
输出模块540,用于将目标流水号存储在目标流水号集合中,并输出目标流水号。
图6示意性示出了根据本公开的实施例的执行模块的示例性框图。
如图6所示,执行模块530包括:第一确定子模块610、第二确定子模块620和第三确定子模块630。
其中,第一确定子模块610,用于在所述目标流水号类型为数字类型的情况下,针对所述目标流水号的每一位上的字符,随机确定一个数字字符,作为所述位上的字符。
第二确定子模块620,用于在所述目标流水号类型为字母类型的情况下,针对所述目标流水号的每一位上的字符,随机确定一个字母字符,作为所述位上的字符。
第三确定子模块630,用于在所述目标流水号类型为数字字母混合类型的情况下,随机确定所述目标流水号的每一位为数字位或字母位;针对每一个数字位,随机确定一个数字字符,作为所述数字位上的字符;针对每一个字母位,随机确定一个字母字符,作为所述字母位上的字符。
图7示意性示出了根据本公开的实施例的第一获取模块的示例性框图。
如图7所示,第一获取模块520包括第二获取子模块710和查找模块720。
第二获取子模块710,用于获取映射关系表。
查找模块720,用于根据目标流水号类型,在映射关系表中查找与所述目标流水号类型对应的目标流水号集合。
根据本公开的实施例中提供的生成交易流水号的装置,接收流水号生成请求,获取与流水号生成请求中的目标流水号类型对应的目标流水号集合,重复执行随机生成操作来生成目标流水号,直至目标流水号未包含在目标流水号集合中。由此,在生成流水号的过程中不必读取硬件标识,速度较快。同时,由于随机地生成流水号,因此不容易预测生成的流水号,安全性较高。
图8示意性示出了根据本公开另一实施例的生成交易流水号的装置的框图。
如图8所示,除了接收模块510、第一获取模块520、执行模块530和输出模块540之外,生成交易流水号的装置800还包括:加锁模块810。
其中,加锁模块810,用于对流水号生成请求加锁,以使在接收到包含同一流水号类型的多个流水号生成请求的情况下,同一时刻仅对加锁的流水号生成请求进行处理。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,接收模块510、第一获取模块520、执行模块530和输出模块540中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,接收模块510、第一获取模块520、执行模块530和输出模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块510、第一获取模块520、执行模块530和输出模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机***的方框图。图9示出的计算机***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,计算设备900包括处理器910、计算机可读存储介质920。该计算设备900可以执行根据本公开实施例的方法。
具体地,处理器910例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器910还可以包括用于缓存用途的板载存储器。处理器910可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质920,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质920可以包括计算机程序921,该计算机程序921可以包括代码/计算机可执行指令,其在由处理器910执行时使得处理器910执行根据本公开实施例的方法或其任何变形。
计算机程序921可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序921中的代码可以包括一个或多个程序模块,例如包括921A、模块921B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器910执行时,使得处理器910可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,接收模块510、第一获取模块520、执行模块530和输出模块540中的至少一个可以实现为参考图5描述的计算机程序模块,其在被处理器910执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种生成交易流水号的方法,包括:
接收流水号生成请求,所述流水号生成请求包括目标流水号类型和目标流水号位数;
获取与所述目标流水号类型对应的目标流水号集合;
重复执行随机生成操作来生成目标流水号,直至所述目标流水号未包含在所述目标流水号集合中;以及
将所述目标流水号存储在所述目标流水号集合中,并输出所述目标流水号;
其中,所述随机生成操作包括:根据所述流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符。
2.根据权利要求1所述的方法,其中,所述目标流水号类型包括数字类型、字母类型和数字字母混合类型中的任意一种。
3.根据权利要求2所述的方法,其中,所述根据所述流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符,包括:
在所述目标流水号类型为数字类型的情况下,针对所述目标流水号的每一位上的字符,随机确定一个数字字符,作为所述位上的字符;
在所述目标流水号类型为字母类型的情况下,针对所述目标流水号的每一位上的字符,随机确定一个字母字符,作为所述位上的字符;以及
在所述目标流水号类型为数字字母混合类型的情况下,随机确定所述目标流水号的每一位为数字位或字母位;针对每一个数字位,随机确定一个数字字符,作为所述数字位上的字符;针对每一个字母位,随机确定一个字母字符,作为所述字母位上的字符。
4.根据权利要求1所述的方法,其中,所述获取与所述目标流水号类型对应的目标流水号集合,包括:
获取映射关系表;以及
根据所述目标流水号类型,在所述映射关系表中查找与所述目标流水号类型对应的目标流水号集合。
5.根据权利要求1所述的方法,还包括:
对所述流水号生成请求加锁,以使在接收到包含同一流水号类型的多个流水号生成请求的情况下,同一时刻仅对加锁的流水号生成请求进行处理。
6.一种生成交易流水号的装置,包括:
接收模块,用于接收流水号生成请求,所述流水号生成请求包括目标流水号类型和目标流水号位数;
第一获取模块,用于获取与所述目标流水号类型对应的目标流水号集合;
执行模块,用于重复执行随机生成操作来生成目标流水号,直至所述目标流水号未包含在所述目标流水号集合中;以及
输出模块,用于将所述目标流水号存储在所述目标流水号集合中,并输出所述目标流水号;
其中,所述随机生成操作包括:根据所述流水号生成请求中的目标流水号类型和目标流水号位数,随机确定目标流水号每一位上的字符。
7.根据权利要求6所述的装置,其中,所述目标流水号类型为数字类型、字母类型和数字字母混合类型中的任意一种;所述执行模块包括:
第一确定子模块,用于在所述目标流水号类型为数字类型的情况下,针对所述目标流水号的每一位上的字符,随机确定一个数字字符,作为所述位上的字符;
第二确定子模块,用于在所述目标流水号类型为字母类型的情况下,针对所述目标流水号的每一位上的字符,随机确定一个字母字符,作为所述位上的字符;以及
第三确定子模块,用于在所述目标流水号类型为数字字母混合类型的情况下,随机确定所述目标流水号的每一位为数字位或字母位;针对每一个数字位,随机确定一个数字字符,作为所述数字位上的字符;针对每一个字母位,随机确定一个字母字符,作为所述字母位上的字符。
8.根据权利要求6所述的装置,其中,所述第一获取模块包括:
第二获取子模块,用于获取映射关系表;以及
查找模块,用于根据所述目标流水号类型,在所述映射关系表中查找与所述目标流水号类型对应的目标流水号集合。
9.一种计算设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序,
其中,当一个或多个计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现权利要求1至5中任一项的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至5中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911048395.1A CN110795604A (zh) | 2019-10-29 | 2019-10-29 | 生成交易流水号的方法、装置、计算设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911048395.1A CN110795604A (zh) | 2019-10-29 | 2019-10-29 | 生成交易流水号的方法、装置、计算设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110795604A true CN110795604A (zh) | 2020-02-14 |
Family
ID=69442235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911048395.1A Pending CN110795604A (zh) | 2019-10-29 | 2019-10-29 | 生成交易流水号的方法、装置、计算设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795604A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112184367A (zh) * | 2020-09-17 | 2021-01-05 | 北京同邦卓益科技有限公司 | 一种订单处理方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208141A (zh) * | 2015-08-19 | 2015-12-30 | 魅族科技(中国)有限公司 | 一种设备编码处理方法和服务器 |
CN107622102A (zh) * | 2017-09-11 | 2018-01-23 | 平安科技(深圳)有限公司 | 实体***生成方法及终端设备 |
CN109255701A (zh) * | 2018-08-27 | 2019-01-22 | 宜人恒业科技发展(北京)有限公司 | 一种网贷业务数据处理方法 |
CN109376155A (zh) * | 2018-11-06 | 2019-02-22 | 泰康保险集团股份有限公司 | Id生成方法及装置、存储介质及电子设备 |
CN110297824A (zh) * | 2019-05-23 | 2019-10-01 | 平安银行股份有限公司 | 基于资源转移的数据记录方法、装置、设备及存储介质 |
CN110377268A (zh) * | 2019-07-25 | 2019-10-25 | 中国工商银行股份有限公司 | 流水号生成方法、装置及存储介质 |
-
2019
- 2019-10-29 CN CN201911048395.1A patent/CN110795604A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208141A (zh) * | 2015-08-19 | 2015-12-30 | 魅族科技(中国)有限公司 | 一种设备编码处理方法和服务器 |
CN107622102A (zh) * | 2017-09-11 | 2018-01-23 | 平安科技(深圳)有限公司 | 实体***生成方法及终端设备 |
CN109255701A (zh) * | 2018-08-27 | 2019-01-22 | 宜人恒业科技发展(北京)有限公司 | 一种网贷业务数据处理方法 |
CN109376155A (zh) * | 2018-11-06 | 2019-02-22 | 泰康保险集团股份有限公司 | Id生成方法及装置、存储介质及电子设备 |
CN110297824A (zh) * | 2019-05-23 | 2019-10-01 | 平安银行股份有限公司 | 基于资源转移的数据记录方法、装置、设备及存储介质 |
CN110377268A (zh) * | 2019-07-25 | 2019-10-25 | 中国工商银行股份有限公司 | 流水号生成方法、装置及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112184367A (zh) * | 2020-09-17 | 2021-01-05 | 北京同邦卓益科技有限公司 | 一种订单处理方法和装置 |
CN112184367B (zh) * | 2020-09-17 | 2024-05-24 | 北京同邦卓益科技有限公司 | 一种订单处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150161207A1 (en) | Assisting query and querying | |
CN106919634B (zh) | 跨应用共享数据的方法及网页浏览器 | |
CN108701121B (zh) | 将用户输入分派到用户界面中的多个输入域 | |
JP6803702B2 (ja) | サーバおよびプログラム | |
EP3557437B1 (en) | Systems and methods for search template generation | |
CN109284321B (zh) | 数据加载方法、装置、计算设备和计算机可读存储介质 | |
CN110609966B (zh) | 一种页面显示方法、装置及其设备 | |
CN110036381B (zh) | 存储器内数据搜索技术 | |
CN104767761A (zh) | 一种云存储平台访问控制方法及装置 | |
CN110852720A (zh) | 文档的处理方法、装置、设备及存储介质 | |
CN110020040B (zh) | 查询数据的方法、装置和*** | |
CN110110184B (zh) | 信息查询方法、***、计算机***及存储介质 | |
CN110795604A (zh) | 生成交易流水号的方法、装置、计算设备和介质 | |
WO2019237949A1 (zh) | 搜索方法及装置 | |
CN108363707B (zh) | 用于生成网页的方法和装置 | |
CN107977381B (zh) | 数据配置方法、索引管理方法、相关装置以及计算设备 | |
CN111460273B (zh) | 信息推送方法和装置 | |
CN113032820B (zh) | 文件存储方法、访问方法、装置、设备及存储介质 | |
CN114461912A (zh) | 一种信息处理方法、装置、电子设备及存储介质 | |
US20170116348A1 (en) | Collaborative bookmarks | |
CN112559825B (zh) | 业务处理方法、装置、计算设备和介质 | |
CN110889040B (zh) | 用于推送信息的方法和装置 | |
US11120054B2 (en) | Hierarchical label generation for data entries | |
US20230102594A1 (en) | Code page tracking and use for indexing and searching | |
US8935343B2 (en) | Instant messaging network resource validation |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200214 |
|
RJ01 | Rejection of invention patent application after publication |