首页> 中国专利> 一种防止彩票游戏并发重复计奖的控制方法及系统

一种防止彩票游戏并发重复计奖的控制方法及系统

摘要

本发明公开了一种防止彩票游戏并发重复计奖的控制方法及系统,其中,该方法包括:获取中奖数据;根据所述中奖数据,启动计奖事务,对当前操作者ID进行加锁;读取当前开奖奖期信息并进行加锁;根据加锁后的操作者ID及加锁后的奖期信息,对所述中奖数据进行计奖处理,并记录计奖处理的操作日志;根据计奖处理的结果更新单注奖金数据,将所述计奖处理的操作日志提交至后台服务器并释放当前锁。本发明采用双重加锁的机制,避免了人工误操作多次点击导致的并发,抑制了其他问题引起的系统并发,防止彩票游戏出现并发重复计奖;同时,还可以保证彩票游戏中业务处理的正常运行,抑制当前奖期发生死锁的可能性,极大地提高了系统的运行性能和稳定性。

著录项

说明书

技术领域

本发明涉及彩票游戏计奖处理技术领域,尤指一种防止彩票游戏并发重复计奖的控制方法及系统。

背景技术

在数据库系统中,高并发会大大的提升系统的运行速度,与此同时,也会带来一些问题;例如,在有些情况下,这种处理方式会破坏事务的一致性因而导致死锁。因此,在有些情况下,需要限制甚至抑制并发,来防止因死锁产生的等待,从而保证系统顺利的执行。

在彩票的开奖环节中,以超级大乐透为例,在开奖日的20:00,省中心会陆续开始结束销售的操作;在20:10左右,各省止售完毕,国家中心进行止售操作,同时计算本期全国的销量,并将销量和明细数据,刻盘封存;在20:30,摇奖大厅开始摇奖,在20:37左右,摇奖结果传真至数据中心。正常情况下,21:00前国家中心就完成了开兑操作,网站上也可以查询到当期开奖结果了。在获得开奖结果至开兑期间,会进行两次计算奖金的操作(第二次是计奖验证,即将止售时刻在光盘上的明细和销量数据,在另一台与生产环境隔离的机器上,重新计算一次中奖数据。两次的计算结果一致,即认为是正确的),而完成这些操作的处理时间通常不到30分钟。因此,在这个环节上,各省并行来计算各自的中奖注数,并进行汇总后,再计算单注奖金。

因为在计奖环节,游戏的下一个奖期已经开始售票,为了不影响数据库的整体性能,采用了乐观锁来防止并发。在奖期一级的数据上,增加一个奖期状态的字段作为标识。读取奖期数据时,将奖期状态标识一同读出。之后更新奖期级数据时,将此状态标识一同更新。此时,将提交数据的奖期状态标识与数据库表中对应记录的状态标识进行比对,如果提交的状态标识大于当前库中的状态标识,则予以更新,否则认为是过期数据。这样避免了长时间的锁定数据,能够保证整体性能。虽然采用乐观锁能够保证系统整体性能的表现,但是,由于乐观锁机制是在本系统中实现,来自外部系统的用户更新操作不受本系统的控制,因此可能会造成脏数据被更新到数据库中,进而影响数据的一致性。尽管可能性很低,但是这在彩票行业却是致命的危险。

综上来看,亟需一种可以克服上述问题,在保持系统整体性能的情况下可以保证数据一致性的计奖方案。

发明内容

本发明提出了一种防止彩票游戏并发重复计奖的控制方法及系统,该方法及系统采用双重加锁的机制,避免了人工误操作多次点击导致的并发,抑制了其他问题引起的系统并发;并且,由于采用的是行锁,不影响表中其他记录的读取和修改;该方法及系统保证并发的同时,又抑制了该奖期信息发生死锁的可能性,极大地提高了系统的运行性能和稳定性。

具体的,在本发明实施例的第一方面,提出了一种防止彩票游戏并发重复计奖的控制方法,该方法包括:

获取中奖数据;

根据所述中奖数据,启动计奖事务,对当前操作者ID进行加锁;

读取当前开奖奖期信息并进行加锁;

根据加锁后的操作者ID及加锁后的奖期信息,对所述中奖数据进行计奖处理,并记录计奖处理的操作日志;

根据计奖处理的结果更新单注奖金数据,将所述计奖处理的操作日志提交至后台服务器并释放当前锁。

进一步的,在计奖事务执行过程中,包括:

获取当前操作者ID,并对所述当前操作者ID添加悲观锁。

进一步的,在计奖事务执行过程中,包括:

读取当前开奖奖期信息,并对所述当前开奖奖期添加悲观锁。

进一步的,根据加锁后的操作者ID及加锁后的奖期信息,对所述中奖数据进行计奖处理,并记录计奖处理的操作日志,包括:

在计奖处理的操作日志中,检查是否已经进行过当前开奖奖期对应的中奖数据的计奖处理;

若未检查到当前开奖奖期对应的计奖处理的操作日志,判定本次计奖处理为首次计奖处理,进行单注奖金的计算,得到首次计奖处理的结果;

若检查到当前开奖奖期信息对应的计奖处理的操作日志,判定已有首次计奖处理的结果,退出计奖程序;

在计奖处理结束后,在另一台机器上进行二次计奖处理;

根据二次计奖处理的结果进行计奖验证,判断二次计奖处理的结果是否与首次计奖处理的结果一致,如果一致则验证通过,进入开奖环节,如果不一致则生成计奖报错信息,通知人工介入排查原因。

进一步的,根据计奖处理的结果更新单注奖金数据,将所述计奖处理的操作日志提交至后台服务器并释放当前锁,还包括:

在完成单注奖金数据的更新后,释放当前操作者ID的悲观锁及当前开奖奖期的悲观锁。

具体的,在本发明实施例的第二方面,提出了一种防止彩票游戏并发重复计奖的控制系统,该系统包括:

数据获取模块,用于获取中奖数据;

操作者ID加锁模块,用于根据所述中奖数据,启动计奖事务,对当前操作者ID进行加锁;

开奖奖期加锁模块,用于读取当前开奖奖期信息并进行加锁;

计奖处理模块,用于根据加锁后的操作者ID及加锁后的奖期信息,对所述中奖数据进行计奖处理,并记录计奖处理的操作日志;

数据更新模块,用于根据计奖处理的结果更新单注奖金数据,将所述计奖处理的操作日志提交至后台服务器并释放当前锁。

进一步的,所述操作者ID加锁模块具体用于:

获取当前操作者ID,并对所述当前操作者ID添加悲观锁。

进一步的,所述开奖奖期加锁模块具体用于:

读取当前开奖奖期信息,并对所述当前开奖奖期添加悲观锁。

进一步的,所述计奖处理模块还用于:

在计奖处理的操作日志中,检查是否已经进行过当前开奖奖期对应的中奖数据的计奖处理;

若未检查到当前开奖奖期对应的计奖处理的操作日志,判定本次计奖处理为首次计奖处理,进行单注奖金的计算,得到首次计奖处理的结果;

若检查到当前开奖奖期信息对应的计奖处理的操作日志,判定已有首次计奖处理的结果,退出计奖程序;

在计奖处理结束后,在另一台机器上进行二次计奖处理;

根据二次计奖处理的结果进行计奖验证,判断二次计奖处理的结果是否与首次计奖处理的结果一致,如果一致则验证通过,进入开奖环节,如果不一致则生成计奖报错信息,通知人工介入排查原因。

进一步的,所述数据更新模块还用于:

在完成单注奖金数据的更新后,释放当前操作者ID的悲观锁及当前开奖奖期的悲观锁。

在本发明实施例的第三方面,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现防止彩票游戏并发重复计奖的控制方法。

在本发明实施例的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现防止彩票游戏并发重复计奖的控制方法。

本发明提出的防止彩票游戏并发重复计奖的控制方法及系统采用双重加锁的机制,避免了人工误操作多次点击导致的并发,抑制了其他问题引起的系统并发,防止彩票游戏出现并发重复计奖;同时,本发明还可以保证彩票游戏中业务处理的正常运行,抑制当前奖期发生死锁的可能性,极大地提高了系统的运行性能和稳定性。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明一实施例的防止彩票游戏并发重复计奖的控制方法流程示意图。

图2是本发明一具体实施例的计奖事务的流程示意图。

图3至图7是本发明一具体实施例的计奖程序的示意图。

图8是本发明一实施例的防止彩票游戏并发重复计奖的控制系统架构示意图。

图9是本发明一实施例的计算机设备结构示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种防止彩票游戏并发重复计奖的控制方法及系统。

在本发明实施例中,需要说明的术语有:

超级大乐透:一种大盘彩票玩法。超级大乐透属于双区选号大乐透,投注方法为“35选5加12选2”,从01-35共35个号码中,选取5个号码为前区号码,并从01-12共12个号码中选取2个号码为后区号码,组合为一注进行单式投注。

计奖:针对彩票的每一个投注号码与开奖号码进行比对,以确认本投注号码是否中奖,并计算出本投注号码中奖的奖级以及中奖注数。

锁机制:由于多个用户对数据库系统同时进行操作,会带来数据不一致的问题,因此引入了锁机制。从对资源的占有情况,通常分为共享锁和排他锁;共享锁(S):不对数据进行修改,只进行读操作;排他锁(X):用于数据修改操作,确保不会同时对同一资源进行数据更新。

for update:一种行级锁,又叫排它锁,一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行.如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。

SQL:Structured Query Language,结构化查询语言,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

奖期:一个游戏从开始售票,结束售票,开始计奖,结束计奖,开始兑奖到结束兑奖的一个完整的生命周期,称为一个奖期;一个游戏有多个奖期。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

图1是本发明一实施例的防止彩票游戏并发重复计奖的控制方法流程示意图。如图1所示,该方法包括:

步骤S101,获取中奖数据;

步骤S102,根据所述中奖数据,启动计奖事务,对当前操作者ID进行加锁;

步骤S103,读取当前开奖奖期信息并进行加锁;

步骤S104,根据加锁后的操作者ID及加锁后的奖期信息,对所述中奖数据进行计奖处理,并记录计奖处理的操作日志;

步骤S105,根据计奖处理的结果更新单注奖金数据,将所述计奖处理的操作日志提交至后台服务器并释放当前锁。

为了对上述防止彩票游戏并发重复计奖的控制方法进行更为清楚的解释,下面结合每一步骤进行详细说明。

步骤S101:

获取中奖数据。

步骤S102:

启动计奖事务,在计奖事务执行过程中,获取当前操作者ID,并对所述当前操作者ID添加悲观锁。

步骤S103:

在计奖事务执行过程中,读取当前开奖奖期信息,并对所述当前开奖奖期添加悲观锁。

步骤S104:

根据加锁后的操作者ID及加锁后的奖期信息,对所述中奖数据进行计奖处理,并记录计奖处理的操作日志;

其中,在进行计奖处理时,可以在计奖处理的操作日志中,检查是否已经进行过当前开奖奖期对应的中奖数据的计奖处理;

若未检查到当前开奖奖期对应的计奖处理的操作日志,判定本次计奖处理为首次计奖处理,根据加锁后的操作者ID及加锁后的奖期信息,进行单注奖金的计算,得到首次计奖处理的结果;

若检查到当前开奖奖期信息对应的计奖处理的操作日志,判定已有首次计奖处理的结果,退出计奖程序;

在计奖处理结束后,在另一台机器上进行二次计奖处理;这里提到的“另一台机器”指的是除首次计奖处理所用的机器以外的另一台机器,该机器可以独立进行计奖处理,即,首次和二次计奖处理时所采用的是两台独立的机器;该些机器由公证人员管理;

根据二次计奖处理的结果进行计奖验证,判断二次计奖处理的结果是否与首次计奖处理的结果一致,如果一致则验证通过,进入开奖环节,如果不一致则生成计奖报错信息,通知人工介入排查原因。通常,如果出现结果不一致的情况,必须立即通知人工介入,及时处理该问题以保证计奖环节及后续的开奖环节顺利进行。

步骤S105:

根据计奖处理的结果更新单注奖金数据,将所述计奖处理的操作日志提交至后台服务器并释放当前锁;其中,

在完成单注奖金数据的更新后,释放当前操作者ID的悲观锁及当前开奖奖期的悲观锁,使得其他操作者可以进行处理,或者执行其他事务。

当要对数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,可以直接对该数据进行加锁以防止并发,基于该方式,本发明在计奖事务执行过程中,对当前操作者ID及当前开奖奖期进行加锁,防止同时被其他人修改。这种借助数据库锁机制,在修改数据之前先锁定,再修改的方式一般被称为“悲观并发控制”,即悲观锁。悲观锁具有独占和排他特性,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。悲观锁通常假设最坏的情况,每次读取数据的时候都默认其他线程会更改数据,因此需要进行加锁操作,当其他线程想要访问数据时,都需要阻塞挂起。

需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

为了对上述防止彩票游戏并发重复计奖的控制方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。

参考图2,为本发明一具体实施例的计奖事务的流程示意图。如图2所示,计奖事务的流程包括:

步骤S201,获取当前操作用户ID,加锁。

步骤S202,读取今日开奖奖期信息记录,加锁。

步骤S203,检查操作日志,判断是否进行过该操作,如果是第一次,计算单注奖金。

步骤S204,更新单注奖金纪录。

步骤S205,生成操作日志并提交,释放锁。

在步骤S201及步骤S202中,设置了两道锁;第一道锁,是对执行操作的用户ID加锁,防止用户发起的并发操作;第二道锁,是对开奖的奖期信息加锁,防止系统进行并发计奖。

举例而言,若A,B两个事务由用一个用户并发执行,A事务执行完第一步加锁成功后,B事务由于无法在当前操作用户ID上成功加锁,保持等待状态,在A事务完成后,释放锁,B事务才可以继续执行。

若A、B两个事务由不同用户执行,当两个事务都执行完第一步,并对用户ID加锁成功后,需要看哪一方先执行到第二步,则相应的一方会给奖期信息成功加锁;则后执行的一方的事务保持等待状态,等待先加锁的事务完成提交后,才能继续执行。

以下结合一示例性的计奖事务为例,对本发明的防止彩票游戏并发重复计奖的控制方法进行说明:

在计奖环节,为了防止并发,可以采用for update加两道行锁,利用SQL语句来实现,如下:

SELECT province_center_id FROM c_sys_user WHERE user_id=&登录用户idFORUPDATE;

SELECT draw_time FROM c_game_draw WHERE province_center_id=&省中心id;

AND draw_id=&奖期id FORUPDATE;

参考图3至图7,为本发明一具体实施例的计奖程序的示意图。

如图3所示,两个sessionA、B,都是调用计奖程序,sessionA先执行,为了突出防止并发重复计奖的效果,在程序加了sleep(200),这样可以看出sessionB是否被阻塞而等待。

如图4所示,在计奖事务的执行过程中,sessionA开始睡眠。

如图5所示,sessionB由于无法加锁,进而等待sessionA的执行。

如图6所示,sessionA睡眠200秒后,开始进行下一步。

如图7所示,sessionB加锁成功,进入下一步。

基于上述方法,利用数据库锁的原理,在不影响彩票游戏计奖性能的情况下,采用双重加锁的方式,对来自用户或其他系统的并发进行抑制,杜绝在计奖的30分钟内发生死锁的可能性。

在应用层面,当用户点击计奖按键后,在返回结果前,按键灰显,防止用户由于误操作引起的并发。

在数据库层面,为了防止应用或外来系统的并发处理,以及运维人员的误操作,采用双重悲观锁来保证计奖事务的正常运行。

由于彩票的计奖环节时间非常短,因此需要尽量避免人工介入处理问题,尤其要杜绝死锁,因此,抑制并发极为重要;本发明采用双重加锁的机制,既避免了人工误操作多次点击导致的并发,又抑制了其他问题引起的系统并发。并且,由于采用的是行锁,不影响表中其他记录的读取和修改;增加彩票系统并发的同时,又抑制了该奖期信息发生死锁的可能性,极大地提高了彩票系统的运行性能和稳定性。

在介绍了本发明示例性实施方式的方法之后,接下来,参考图8对本发明示例性实施方式的防止彩票游戏并发重复计奖的控制系统进行介绍。

防止彩票游戏并发重复计奖的控制系统的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”或者“单元”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

基于同一发明构思,本发明还提出了一种防止彩票游戏并发重复计奖的控制系统,如图8所示,该系统包括:

数据获取模块810,用于获取中奖数据;

操作者ID加锁模块820,用于根据所述中奖数据,启动计奖事务,对当前操作者ID进行加锁;

开奖奖期加锁模块830,用于读取当前开奖奖期信息并进行加锁;

计奖处理模块840,用于根据加锁后的操作者ID及加锁后的奖期信息,对所述中奖数据进行计奖处理,并记录计奖处理的操作日志;

数据更新模块850,用于根据计奖处理的结果更新单注奖金数据,将所述计奖处理的操作日志提交至后台服务器并释放当前锁。

在一实施例中,所述操作者ID加锁模块820具体用于:获取当前操作者ID,并对所述当前操作者ID添加悲观锁。

所述开奖奖期加锁模块830具体用于:读取当前开奖奖期信息,并对所述当前开奖奖期添加悲观锁。

所述计奖处理模块840还用于:在计奖处理的操作日志中,检查是否已经进行过当前开奖奖期对应的中奖数据的计奖处理;

若未检查到当前开奖奖期对应的计奖处理的操作日志,判定本次计奖处理为首次计奖处理,进行单注奖金的计算,得到首次计奖处理的结果;

若检查到当前开奖奖期信息对应的计奖处理的操作日志,判定已有首次计奖处理的结果,退出计奖程序;

在计奖处理结束后,在另一台机器上进行二次计奖处理;

根据二次计奖处理的结果进行计奖验证,判断二次计奖处理的结果是否与首次计奖处理的结果一致,如果一致则验证通过,进入开奖环节,如果不一致则生成计奖报错信息,通知人工介入排查原因。

所述数据更新模块850还用于:在完成单注奖金数据的更新后,释放当前操作者ID的悲观锁及当前开奖奖期的悲观锁。

应当注意,尽管在上文详细描述中提及了防止彩票游戏并发重复计奖的控制系统的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

基于前述发明构思,如图9所示,本发明还提出了一种计算机设备900,包括存储器910、处理器920及存储在存储器910上并可在处理器920上运行的计算机程序930,所述处理器920执行所述计算机程序930时实现前述防止彩票游戏并发重复计奖的控制方法。

基于前述发明构思,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述防止彩票游戏并发重复计奖的控制方法。

本发明提出的防止彩票游戏并发重复计奖的控制方法及系统采用双重加锁的机制,避免了人工误操作多次点击导致的并发,抑制了其他问题引起的系统并发,防止彩票游戏出现并发重复计奖;同时,本发明还可以保证彩票游戏中业务处理的正常运行,抑制当前奖期发生死锁的可能性,极大地提高了系统的运行性能和稳定性。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号