电子凭证提示方法、装置、计算机设备及存储介质与流程

文档序号:19310770发布日期:2019-12-03 23:29阅读:197来源:国知局
电子凭证提示方法、装置、计算机设备及存储介质与流程

本发明涉及数据分析处理技术领域,尤其涉及一种电子凭证提示方法、装置、计算机设备及存储介质。



背景技术:

随着经济科技发展,人们的生活越来越智能化。人们通常通过智能终端推送的电子凭证进行使用或者消费,电子凭证的使用或消费为用户提供便利,成为人们生活必不可少支的消费方式。现有技术中,智能终端通常是基于电子凭证的到期时间进行提示,或者用户到达电子凭证的使用或者消费区域时,才对用户所需的电子凭证进行提示,每个用户的喜好不同,所推荐的电子凭证只与用户的地理位置相关。因此,使得推送的电子凭证更为精准成为亟待解决的问题。



技术实现要素:

本发明实施例提供一种电子凭证提示方法、装置、计算机设备及存储介质,以解决推送的电子凭证更为精准的问题。

一种电子凭证提示方法,包括:

接收用户端发送的电子凭证查询请求,所述电子凭证查询请求中包含用户标识、目标查询位置、目标类型和近邻数目;

根据所述用户标识和所述目标类型,获取最近一次的历史查询记录,所述历史查询记录包括历史查询位置和历史查询时间;

若所述目标查询位置在所述历史查询位置的预设范围外和/或所述历史查询时间距离系统当前时间的时间差大于预设时长,则获取基于四叉树结构和空间填充曲线创建的与所述用户标识和所述目标类型相对应的空间索引树,并获取与所述空间索引树相对应的索引节点信息表;

根据所述目标查询位置查询所述空间索引树,确定目标子树,根据所述目标子树获取对应的根节点编号和截断节点编号;

根据所述根节点编号和所述截断节点编号查询所述索引节点信息表,将对应的有效电子凭证作为目标电子凭证,将所述目标电子凭证推送给所述用户端。

一种电子凭证提示装置,包括:

电子凭证查询请求获取模块,用于接收用户端发送的电子凭证查询请求,所述电子凭证查询请求中包含用户标识、目标查询位置、目标类型和近邻数目;

历史查询记录获取模块,用于根据所述用户标识和所述目标类型,获取最近一次的历史查询记录,所述历史查询记录包括历史查询位置和历史查询时间;

索引信息获取模块,若所述目标查询位置在所述历史查询位置的预设范围外和/或所述历史查询时间距离系统当前时间的时间差大于预设时长,则获取基于四叉树结构和空间填充曲线创建的与所述用户标识和所述目标类型相对应的空间索引树,并获取与所述空间索引树相对应的索引节点信息表;

节点编号获取模块,用于根据所述目标查询位置查询所述空间索引树,确定目标子树,根据所述目标子树获取对应的根节点编号和截断节点编号;

目标电子凭证反馈模块,用于根据所述根节点编号和所述截断节点编号查询所述索引节点信息表,将对应的有效电子凭证作为目标电子凭证,将所述目标电子凭证推送给所述用户端。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述电子凭证提示方法。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述电子凭证提示方法。

上述提供一种电子凭证提示方法、装置、计算机设备和存储介质,接收用户端发送的电子凭证查询请求,以便根据电子凭证查询请求推送目标电子凭证。根据用户标识和目标类型,获取最近一次的历史查询记录,历史查询记录包括历史查询位置和历史查询时间,以便确定是否需要根据空间索引树和索引节点信息表确定目标电子凭证。若目标查询位置在历史查询位置的预设范围外和/或历史查询时间距离系统当前时间的时间差大于预设时长,则获取基于四叉树结构和空间填充曲线创建的与用户标识和目标类型相对应的空间索引树,并获取与空间索引树相对应的索引节点信息表,通过空间索引树可提高索引速度,通过索引节点信息表确定电子凭证信息。根据目标查询位置查询空间索引树,确定目标子树,根据目标子树获取对应的根节点编号和截断节点编号,根据根节点编号和截断节点编号查询索引节点信息表,将对应的有效电子凭证作为目标电子凭证,实现目标电子凭证的索引查询,提高目标电子凭证的获取速度,且根据用户标识对应的空间索引树确定的目标电子凭证,使得目标电子凭证更为精准。

附图说明

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

图1是本发明一实施例中电子凭证提示方法的应用环境示意图;

图2是本发明一实施例中电子凭证提示方法的流程图;

图3是本发明一实施例中电子凭证提示方法的流程图;

图4是本发明一实施例中电子凭证提示方法的流程图;

图5是本发明一实施例中电子凭证提示方法的流程图;

图6是本发明一实施例中电子凭证提示方法的流程图;

图7是本发明一实施例中电子凭证提示方法的流程图;

图8是本发明一实施例中电子凭证提示方法的流程图;

图9是本发明一实施例中电子凭证提示方法的空间索引树的一示意图;

图10是本发明一实施例中电子凭证提示方法的目标子树的一示意图

图11是本发明一实施例中电子凭证提示装置的原理框图;

图12是本发明一实施例中计算机设备的一示意图。

具体实施方式

下面将结和本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的电子凭证提示方法,可应用在如图1的应用环境中,该电子凭证提示方法应用在电子凭证推荐系统的服务端中,根据用户发送的电子凭证查询请求,先判断历史查询记录中的历史查询位置是否在目标查询位置预设范围外,历史查询时间距离系统当前时间的时间差是否大于预设时长,若均是,则根据与用户标识和目标类型相对应的空间索引树和索引节点信息表确定目标电子凭证,使得获取到的目标电子凭证与用户相对应,并更为准确。其中,用户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务端或者是多个服务端组成的服务端集群来实现。

在一实施例中,如图2所示,提供一种电子凭证提示方法,以该方法应用在图1中的服务端为例进行说明,具体包括如下步骤:

s10:接收用户端发送的电子凭证查询请求,电子凭证查询请求中包含用户标识、目标查询位置、目标类型和近邻数目。

其中,电子凭证查询请求是指用户基于用户端向电子凭证推荐系统的服务端发送的电子凭证查询的请求,服务端可根据电子凭证查询请求向用户反馈目标电子凭证。其中,目标电子凭证是指与用户相对应的有效电子凭证,例如,团购券、优惠券、代金券、电子储值卡、电子票券等。有效电子凭证是指用户可使用或消费的电子凭证。用户标识是指用于确定唯一用户的标识,其用户标识可以是用户登录账号、用户号码或用户身份证号等。目标查询位置是指与需要查询有效电子凭证的地理位置,该目标查询位置的获取方式可为多种,一种是用户基于定位系统所定位的地理位置,也可以是用户手动输入的特定地理位置。目标类型是指需要查询的电子凭证的类型,例如,美食、酒店、旅游门票和游玩等类型。近邻数目是指推荐给用户的目标电子凭证的数目。

具体地,当用户需要获取目标电子凭证时,服务端需要先基于用户端向电子凭证推荐系统的服务端发送电子凭证查询请求,其电子凭证查询请求中包含用户标识、目标查询位置、目标类型和近邻数目,以便服务端根据用户标识、目标查询位置和目标类型获取到与近邻数目相对应的目标电子凭证。

s20:根据用户标识和目标类型,获取最近一次的历史查询记录,历史查询记录包括历史查询位置和历史查询时间。

其中,历史查询记录是指存储在云数据库中的与用户标识和目标类型相对应的查询记录。可以理解地,当每一用户进行电子凭证查询时,会将每一用户对应的用户标识、目标类型和查询记录关联存储在云数据库中,以便后续直接调用,以推送目标电子凭证,提高推送速度。历史查询位置是指根据云数据库确定的与用户标识和与目标类型相对应的查询位置。历史查询时间是指与用户标识和目标类型相对应的查询时间。例如,用户标识为1,目标类型为美食,根据用户标识1和美食查询云数据库中,获取到历史查询记录,历史查询记录中记载该用户标识上次查询的历史查询记录为x年x月x日发送电子凭证请求,位置为深圳xx大厦,该深圳xx大厦则为历史查询位置,x年x月x日为历史查询时间。

具体地,当服务端获取到用户标识、目标查询位置、目标类型和近邻数目后,先根据用户标识和目标类型查询云数据库,以获取到与用户标识和目标类型对应的最近一次的历史查询记录,即与系统当前时间距离最近的一次历史查询记录,其历史查询记录中包括历史查询位置和历史查询时间,以便后续服务端确定是否需要根据空间索引树和索引节点信息表来确定目标电子凭证或者直接推送目标电子凭证。

s30:若目标查询位置在历史查询位置的预设范围外和/或历史查询时间距离系统当前时间的时间差大于预设时长,则获取基于四叉树结构和空间填充曲线创建的与用户标识和目标类型相对应的空间索引树,并获取与空间索引树相对应的索引节点信息表。

其中,预设范围是指预先设定的是否需要根据空间索引树和索引节点信息表来确定目标电子凭证的范围值,例如,500米。预设时长是指预先设定的是否需要根据空间索引树和索引节点信息表来确定目标电子凭证的时长值,例如,一天。四叉树结构是指将地理空间递归划分为不同层次的树结构。空间填充曲线是指遍历不同层次的树结构中所有的点,得到一条充满空间的曲线。空间索引树是一种树状数据结构,在每一个节点上会有有4个的孩子,并将四个孩子分别对应地图的西北(nw)、东北(ne)、西南(sw)和东南(se)方位。索引节点信息表是指存储空间索引树中每一节点的原始节点编号、原始节点坐标、电子凭证、凭证有效期、使用地点和商家信息等信息的数据表。

具体地,服务端先获取目标查询位置和历史查询位置的地理坐标,采用距离算法将目标查询位置的地理坐标和历史查询位置的地理坐标进行距离计算,获取目标距离,其中,目标距离是指目标查询位置与历史查询位置的距离。其中,距离算法包括但不局限于欧式距离算法、曼哈顿算法和切比雪夫算法。将目标距离于预设范围进行比较。根据current()函数获取系统当前时间,根据历史查询时间和系统当前时间确定时间差,其中,时间差是指历史查询时间距离系统当前时间的时长,例如,历史查询时间为2月5日,系统当前时间为2月7日,那么时间差为2日。将时间差与预设时长进行比较。

若目标查询位置在历史查询位置的预设范围外和/或历史查询时间距离系统当前时间的时间差大于预设时长,则获取基于四叉树结构和空间填充曲线创建的与用户标识和目标类型相对应的空间索引树,并获取与空间索引树相对应的索引节点信息表。其中,空间索引树是指与用户标识相对应的空间索引树,例如,可根据用户消费信息的有效电子凭证的凭证类型或者根据目标查询位置等创建的空间索引树。

若目标查询位置不在历史查询位置的预设范围外和/或历史查询时间距离系统当前时间的时间差不大于预设时长,则根据用户标识和目标类型获取最近一次的历史查询记录,从历史查询记录中确定相关的历史目标电子凭证,将历史目标电子凭证反馈给用户端,提高推送速度。

s40:根据目标查询位置查询空间索引树,确定目标子树,根据目标子树获取对应的根节点编号和截断节点编号。

其中,目标子树是指根据目标查询位置从空间索引树中确定的子树。该目标子树中包含了与近邻数目相对应的目标电子凭证。根节点编号是指目标子树中根节点所对应的编号。可以理解地,空间索引树中每一节点对应一个编号,每一叶子节点对应至少一个有效电子凭证。截断节点编号是指目标子树中叶子节点的编号,叶子节点中对应有效电子凭证。

具体地,空间索引树中每一节点对应一位置信息,根据目标查询位置查询空间索引树,根据空间索引树确定目标子树。其中,确定目标子树时,为保证最后获取到与近邻数目相对应的目标电子凭,因此,可根据目标查询位置和近邻数目以确定目标子树。根据目标子树以确定根节点编号和截断节点编号。

如图9所示,该图为空间索引树的一示意图,若根据目标查询位置查询空间索引树,获取到的目标子树为如图10所示,根据目标子树确定根节点编号为00,截断节点编号为00、01和10。

s50:根据根节点编号和截断节点编号查询索引节点信息表,将对应的有效电子凭证作为目标电子凭证,将目标电子凭证推送给用户端。

其中,有效电子凭证是指用户可进行使用或消费的电子凭证。

具体地,根据根节点编号和截断节点编号查询索引节点信息表,获取与根节点编号和截断节点编号相对应的距离目标查询位置较近的有效电子凭证作为目标电子凭证,将与近邻数目相对应的目标电子凭证推送给用户端。

步骤s10-s50中,接收用户端发送的电子凭证查询请求,以便根据电子凭证查询请求推送目标电子凭证。根据用户标识和目标类型,获取最近一次的历史查询记录,历史查询记录包括历史查询位置和历史查询时间,以便确定是否需要根据空间索引树和索引节点信息表确定目标电子凭证。若目标查询位置在历史查询位置的预设范围外和/或历史查询时间距离系统当前时间的时间差大于预设时长,则获取基于四叉树结构和空间填充曲线创建的与用户标识和目标类型相对应的空间索引树,并获取与空间索引树相对应的索引节点信息表,通过空间索引树可提高索引速度,通过索引节点信息表确定电子凭证信息。根据目标查询位置查询空间索引树,确定目标子树,根据目标子树获取对应的根节点编号和截断节点编号,根据根节点编号和截断节点编号查询索引节点信息表,将对应的有效电子凭证作为目标电子凭证,实现目标电子凭证的索引查询,提高目标电子凭证的获取速度,且根据用户标识对应的空间索引树确定的目标电子凭证,使得目标电子凭证更为精准。

在一实施例中,如图3所示,步骤s30中,即获取基于四叉树结构和空间填充曲线创建的与用户标识和目标类型相对应的空间索引树,具体包括如下步骤:

s31:根据用户标识和目标类型查询云数据库,判断云数据库中是否存在与用户标识和目标类型相对应的历史索引树。

具体地,云数据库中存储有与每一用户标识和目标类型相对应的历史索引树。服务端根据用户标识和目标类型查询云数据库,判断云数据库中是否存在与用户标识和目标类型相对应的历史索引树。由于云数据库中存储有历史用户标识、历史目标类型和历史索引树的关联关系,采用关键词匹配算法将用户标识和目标类型与云数据库中历史用户标识和历史目标类型相匹配;若用户标识和目标类型与云数据库中历史用户标识和历史目标类型均匹配成功,则云数据库中存在与用户标识和目标类型相对应的历史索引树;若用户标识和目标类型与云数据库中历史用户标识和历史目标类型任一匹配结果为匹配失败,则云数据库中不存在与用户标识和目标类型相对应的历史索引树。

s32:若云数据库中存在与用户标识和目标类型相对应的历史索引树,则将历史索引树作为空间索引树。

具体地,若是云数据库中存在与用户标识和目标类型相对应的历史索引树,那么数据库中存储有基于四叉树结构和空间填充曲线创建的与用户标识和目标类型相对应的空间索引树,则将历史索引树作为空间索引树。

s33:若云数据库中不存在与用户标识和目标类型相对应的历史索引树,则获取与目标类型和目标查询位置相对应的有效电子凭证,确定每一有效电子凭证对应的有效节点位置的区域地图。

具体地,若云数据库中不存在与用户标识和目标类型相对应的历史索引树,那么云数据库中未预先创建与户标识和目标类型相对应的空间索引树,则获取与目标类型和目标查询位置相对应的有效电子凭证,并确定每一有效电子凭证对应的有效节点位置。其中,有效节点位置是指有效电子凭证的地理位置。例如,用户标识为1,目标类型为美食,云数据库中不存在与用户标识1和目标类型为美食的历史索引树,则从云数据库中获取与目标类型为美食和目标查询位置深圳xx大厦相对应的所有有效电子凭证和每一有效电子凭证的有效节点位置。可以理解堤,云数据库中存储有商家预先上传的有效电子凭证、地理位置和凭证类型等。根据目标查询位置xx大厦、有效节点位置和近邻数目,确定区域地图。其中,区域地图随着有效电子凭证的地理位置不同而不同,例如,目标查询位置为xx大厦,若xx大厦附近500米存在与近邻数目相对应的有效电子凭证,则有效节点位置为xx大厦的附近500米内有效电子凭证对应的地理位置,将以xx大厦为中心附近500米的地理位置作为区域地图。

通过目标查询位置xx大厦、有效节点位置和近邻数目,确定区域地图,相比大范围创建空间索引树,避免用户不是长期在目标查询区域,减少空间索引树的创建时间,减少云服务器存储量。

s34:基于每一有效电子凭证对应的有效节点位置,采用四叉树结构和空间填充曲线对区域地图进行处理,构建空间索引树。

具体地,通过四叉树结构对区域地图进行分解,获取网格地图,网格地图中包括至少一个网格,将所有有效电子凭证的有效节点位置标注在网格中,通过空间填充曲线对每一网格进行连接,获取空间索引树。

由于地理空间对象都存储在叶子节点上,中间节点以及根节点不存储地理空间对象,则通过索引节点信息表存储空间索引树中每一节点的原始节点编号、原始节点坐标、电子凭证、凭证有效期、使用地点和商家信息等信息。

步骤s31-s34中,根据用户标识和目标类型查询云数据库,判断云数据库中是否存在与用户标识和目标类型相对应的历史索引树,以便确定是否需要创建与用户标识对应的空间索引树。若云数据库中存在与用户标识和目标类型相对应的历史索引树,则将历史索引树作为空间索引树,以提高后续目标电子凭证的获取速度。若云数据库中不存在与用户标识和目标类型相对应的历史索引树,则获取与目标类型和目标查询位置相对应的有效电子凭证,并确定每一有效电子凭证对应的有效节点位置的区域地图;基于每一有效电子凭证对应的有效节点位置,采用四叉树结构和空间填充曲线对区域地图进行处理,构建空间索引树,以提高后续获取目标电子凭证的精准度和目标电子凭证的获取速度。

在一实施例中,如图4所示,步骤s40中,即根据目标查询位置查询空间索引树,确定目标子树,根据目标子树获取对应的根节点编号和截断节点编号,具体包括如下步骤:

s41:根据目标查询位置,查询空间索引树,获取与目标查询位置相对应的目标节点。

其中,目标节点是指与目标查询位置相对应的在空间索引树中的节点。

具体地,空间索引树是将地理空间递分成不同的网格,不同的网格所对应的节点不同。根据目标查询位置查询空间索引树,根据目标查询位置确定在空间索引树的子空间,将该子空间所对应的节点作为目标查询位置对应的目标节点。例如,如图9所示,根据目标查询位置查询空间索引树,可获取与目标查询位置的坐标较近的节点作为目标节点。

s42:获取目标节点的上一级节点对应的数量域中的凭证数量确定为目标数量,若目标数量大于近邻数目,则获取以上一级节点为根节点的目标子树,每一目标子树对应一根节点编号。

其中,凭证数量是指上一级节点对应的数量域所包含的有效电子凭证的数量。目标数量是指上一级节点所对应的有效电子凭证的数量。

具体地,服务端根据空间索引树,获取目标节点的上一级节点对应的数量域中的凭证数量确定为目标数量,将目标数量与近邻数目进行比较;若目标数量不大于近邻数目,则获取目标节点的上两级节点对应的数量域中的凭证数量确定为目标数量,并执行将目标数量与近邻数目进行比较的步骤;若目标数量大于近邻数目,则获取以上一级节点为根节点的目标子树,每一目标子树对应一根节点编号,该根节点编号为上一级节点的编号。

例如,如图10所示,根据目标查询位置查询空间索引树,获取到的目标节点编号为01,所对应凭证数量为3,获取目标节点的上一级节点对应数量域中的凭证数量为10,即目标数量为10;若近邻数目为8,将目标数量10与近邻数目8进行比较,目标数量10大于近邻数目8,则获取与上一级节点为根节点的目标子树。

s43:遍历目标子树中每一叶子节点,获取每一叶子节点对应的截断节点编号。

具体地,遍历目标子树,获取目标子树中每一叶子节点,获取每一叶子节点对应的截断节点编号。如图10所示,目标子树中截断节点编号为00、01、10和11。

步骤s41-s43中,根据目标查询位置,查询空间索引树,获取与目标查询位置相对应的目标节点,以便后续根据目标节点确定截断节点编号。获取目标节点的上一级节点对应的数量域中的凭证数量确定为目标数量,若目标数量大于近邻数目,则获取以上一级节点为根节点的目标子树,通过目标子树以提高目标电子凭证的获取速度。遍历目标子树中每一叶子节点,获取每一叶子节点对应的截断节点编号,以便后续根据截断节点编号确定目标电子凭证。

在一实施例中,如图5所示,步骤s50中,即根据根节点编号和截断节点编号查询索引节点信息表,将对应的有效电子凭证作为目标电子凭证,具体包括如下步骤:

s51:根据根节点编号和截断节点编号,获取叶子节点对应的原始节点编号。

其中,原始节点编号根据根节点编号和截断节点编号确定的编号。例如,如图9所示,目标子树的根节点编号为00,截断节点编号为00、01、10和11,那么原始节点编号为0000、0001、0010和0011。

s52:根据每一原始节点编号查询索引节点信息表,获取与原始节点编号对应的原始节点坐标。

其中,原始节点坐标是指与原始节点编号对应的每一有效电子凭证对应的有效节点位置坐标。

具体地,每一有效电子凭证可以属于同一商家的有效电子凭证,也可以属于至少两个商家的有效电子凭证;若属于同一商家,即每一原始节点编号对应的原始节点坐标的对应关系为一对一活着一对多。根据每一原始节点编号查询索引节点信息表,获取与每一商家的原始节点编号对应的原始节点坐标,即获取到每一有效电子凭证的原始节点坐标。

如图10所示,原始节点编号为0000时,所对应的有效电子凭证为p1、p2、p4、p6和p7,若p1、p2、p4、p6和p7属于同一商家的有效电子凭证,则根据索引节点信息表,获取与p1、p2、p4、p6和p7对应的原始节点坐标。原始节点编号0001所对应的有效电子凭证为p10、p11和p12,若p10、p11和p12属于不同商家的电子凭证,则根据索引节点信息表,获取每一商家的原始节点坐标,依次获取到每一原始节点编号对应原始节点坐标。

s53:采用近邻查询方法对原始节点坐标和目标查询位置进行处理,获取与近邻数目相对应的有效电子凭证作为目标电子凭证。

具体地,采用距离算法计算每一原始节点坐标和目标查询位置的距离,根据距离进行升序排序,获取与近邻数目相对应的有效电子凭证作为目标电子凭证。其中,距离算法包括但不局限于欧式距离算法、曼哈顿算法和切比雪夫算法。

如图10所示,采用距离算法计算每一商家对应的原始节点坐标与目标查询位置的距离,根据距离进行肾虚排序若为p1、p2、p4、p6、p7、p10、p11、p12、p3和p5,近邻数目为8,则将有效电子凭证为p1、p2、p4、p6、p7、p10、p11和p12作为目标电子凭证。

步骤s51-s53中,根据根节点编号和截断节点编号,获取叶子节点对应的原始节点编号,以便后续根据索引节点信息表,确定目标电子凭证。根据每一原始节点编号查询索引节点信息表,获取与原始节点编号对应的原始节点坐标,以便进一步确定目电子凭证。采用近邻查询方法对原始节点坐标和目标查询位置进行处理,获取与近邻数目相对应的有效电子凭证作为目标电子凭证,以实现目标电子凭证与目标查询位置距离较近,且与近邻数目相符。

在一实施例中,如图6所示,在步骤s31之前,即在根据用户标识和目标类型查询云数据库,判断云数据库中是否存在与用户标识和目标类型相对应的历史索引树之前,电子凭证提示方法还具体包括如下步骤:

s311:获取与用户标识对应的历史消费记录,每一历史消费记录包括历史消费时间、消费类型和消费商家。

其中,历史消费记录是指与用户标识对应的进行消费的消费记录。历史消费时间是指与用户标识对应的消费时间。消费类型是指与用户标识对应的进行消费的类型,例如,美食、酒店和旅游门票等。消费商家是指与用户标识对应的进行消费的商家。

s312:统计系统当前时间之前预设时间段内,任一消费类型对应的消费次数。

其中,预设时间段是指预先设定的用于统计消费次数的时间段。例如,统计与用户标识对应一个月内消费类型为美食的消费次数。具体地,获取系统当前时间之前预设时间段内与用户标识对应的任一消费类型对应的消费次数。其中,消费次数是指在预设时间段内与用户标识对应的次数。

s313:若任一消费类型对应的消费次数达到消费次数阈值,则获取消费类型对应的有效电子凭证,确定每一有效电子凭证对应的有效节点位置的区域地图。

其中,消费次数阈值是指预先设定的用于确定是否需要创建空间索引树的阈值。可以理解地,不同消费类型所对应消费次数阈值不同。

具体地,服务端获取每一消费类型对应消费次数阈值,将消费次数与对应的消费次数阈值进行比较,提高空间索引树创建准确性,避免无必要的空间索引树的创建过程,减少服务器运行和云数据库存储空间。当任一消费类型对应的消费次数达到消费次数阈值,则说明用户倾向于该消费类型的有效电子凭证,则获取与消费类型相对应的所有有效电子凭证,根据历史消费记录,确定该消费类型的有效电子凭证所在的区域作为区域地图。例如,某一用户标识对应的消费类型为美食的消费次数大于消费次数阈值,而历史消费记录中该消费类型的的有效电子凭证所在的区域为深圳a区和b区,则将a区和b区的行政地图作为区域地图。进一步地,获取消费类型对应的有效电子凭证时,可对消费类型进一步进行属性划分,例如,消费类型为美食类型时还可进一步划分为火锅类、湘菜类、川菜类和粤菜类等属性。进一步确定用户标识对应的消费类型的属性,以确定该属性的有效电子凭证作为消费类型对应的有效电子凭证,提高目标电子凭证推送的准确性。

s314:基于每一有效电子凭证对应的有效节点位置,采用四叉树结构和空间填充曲线对区域地图进行处理,构建空间索引树,将空间索引树确定为与用户标识和消费类型相对应的历史索引树,将历史索引树存储在云数据库。

具体地,该步骤中空间索引树构建过程与步骤s321-s323中构建过程相同,在此不做具体赘述。

步骤s311-s314中,通过根据历史消费记录,统计系统当前时间之前预设时间段内,任一消费类型对应的消费次数;若任一消费类型对应的消费次数达到消费次数阈值,则获取消费类型对应的有效电子凭证,确定每一有效电子凭证对应的有效节点位置;采用四叉树结构和空间填充曲线对所有有效电子凭证对应的有效节点位置进行处理,构建空间索引树,以实现构建与用户标识和用户类型相对应的空间索引树,以便后续直接调用历史空间索引树确定目标电子凭证,提高目标电子凭证获取的准确性。

在一实施例中,如图7所示,基于每一有效电子凭证对应的有效节点位置,采用四叉树结构和空间填充曲线对区域地图进行处理,构建空间索引树,具体包括如下步骤:

s321:基于每一有效电子凭证对应的有效节点位置,采用四叉树分解规则对区域地图进行分解,获取对应的网格地图,网格地图包括至少一个网格,每一网格存储至少一个有效节点位置。

其中,四叉树(quad-tree)是适合存储二维地图中poi信息的数据结构。四叉树是树的一种,每个内部结点有4个的孩子,并将四个孩子分别对应地图的西北(nw)、东北(ne)、西南(sw)和东南(se)方位。四叉树分解规则是指预先设定的对区域地图停止分割的规则。区域地图是指某一区域的电子地图。该区域的设置可按省市区县等行政区域进行划分。网格地图是指将区域地图按平面坐标或按地球经纬线划分为大小不同的网格来表示的地图。有效节点位置是指形成空间索引树的节点,通常每一网格可对应于四叉树中的根节点、中间节点或叶子节点,其中,根节点是四叉树树中最上层的节点,其无上级节点。叶子节点是四叉树存中最底层的节点,其无下级节点。中间节点是介于根节点与叶子节点之间的节点,既存在上级节点也存在下级节点。

具体地,为了保证区域地图能够以四叉树形式存储所有有效电子凭证对应的有效节点位置,可使每一区域地图为正方形地图,即以区域的中心为正方形地图的中心,使整个区域地图包括区域中所有位置。可以理解地,由于实际地图不是规则的正方形地图,使得两个区域边缘位置的原始兴趣点在至少两个区域地图中进行标注,以保证后续近邻查询的准确度。基于每一有效电子凭证对应的有效节点位置,获取区域地图,采用四叉树分解规则对区域地图进行分解,直至满足停止规则后,停止分割,获取网格地图,网格地图包括至少一个网格,每一网格存储至少一个有效节点位置。进一步地,四叉树分解规则可以是以区域地图的中心为其对应的四叉树的根节点,将西北、东北、西南和东南方位对应的区域为中间节点进行第一次分解;根据每一网格中所有可使用的有效电子凭证的有效节点位置的poi点,判断每一网格的poi点的数量是否达到预设数量;若poi点的数量不大于预设数量,则分割完成;若poi点的数量大于达预设数量,则节点分裂,继续分割,直至每一网格中所有可使用的有效电子凭证对应的有效节点位置的poi点的数量不大于预设数量,则获取网格地图,每一网格存储至少一个有效节点位置。

其中,每个poi点包含四方面信息,即商家名称、消费类型、经度和纬度,通过全面的poi点信息建于后续根据导航,确定路线。

s322:将所有有效电子凭证对应的有效节点位置标注在网格地图的网格中。

具体地,为了后续可通过空间索引树,确定每一有效电子凭证,以及有效电子凭证所在的节点位置,因此在创建空间索引树时,需要将所有有效电子凭证对应的有效节点位置标注在区域地图的网格中,以使在网格地图中显示所有有效电子凭证对应的有效节点。可以理解地,每一网格中标注了至少一个有效节点位置。例如,将深圳市罗湖区所有美食标注在网格地图中,即完成将目标类型相对应的所有有效电子凭证对应的有效节点位置标注在网格地图的网格中的操作。

s323:采用空间填充曲线对网格地图中的至少一个有效电子凭证进行连接处理,获取空间索引树,空间索引树中包括至少一个节点,每一节点对应一用于存储凭证数量的数据域。

具体地,空间填充曲线包括但不局限于geohash、希尔伯特曲线和z-order曲线。在本实施例中,以z-order曲线为例进行说明。在z-order树中每一节点的孩子被标记为00(左上),01(右上),10(左下)和11(右下),即第一个是y值,0是上,1是下;第二个是x值,0是左,1是右。

(1)获取网格地图中每一网格对应的网格坐标(x,y)。即在网格地图所形成的二维空间中,以左上角为原点,以叶子节点对应的网格为单位形成空间坐标系,并获取每一网格在该空间坐标系中的网格坐标。

(2)对网格坐标(x,y)进行二进制转换,获取对应的x轴二进制坐标和y轴二进制坐标。例如,对网格坐标(3,4)进行二进制转换时,所获取的x轴二进制坐标为x=(3)10=(011)2=(x1x2x3),y轴二进制坐标为y=(4)10=(100)2=(y1y2y3).

(3)对x轴二进制坐标和y轴二进制坐标进行位交叉操作,获取节点z值。

例如,如表一所示,对x轴二进制坐标和y轴二进制坐标进行位交叉操作是指将x轴二进制坐标的倒数第1位数字作为位交叉后二进制的节点z值的倒数第1位数字,将y轴二进制坐标的倒数第1位数字作为位交叉后二进制的节点z值的倒数第2位数字,将x轴二进制坐标的倒数第2位数字作为位交叉后二进制的节点z值的倒数第3位数字,将y轴二进制坐标的倒数第2位数字作为位交叉后二进制的节点z值的倒数第4位数字,将x轴二进制坐标的倒数第3位数字作为位交叉后二进制的节点z值的倒数第5位数字,将y轴二进制坐标的倒数第3位数字作为位交叉后二进制的节点z值的倒数第6位数字,则其获取的节点z值为z((011)2,(100)2)=(011010)2=(26)10。

表一:

(4)依据节点z值的升序顺序,对至少一个网格进行连接处理,获取与空间索引树,空间索引树中包括至少一个节点,每一节点对应一用于存储凭证数量的数据域。由于每个网格对应的网格z值是通过交叉排列其x轴二进制坐标和y轴二进制坐标计算出来的数值,可依据该节点z值的升序顺序将所有网格进行连接处理,以获取z-order曲线,并基于z-order曲线生成空间索引树。由于z-order曲线是依据节点z值的升序顺序连接起来的空间填充区域,这个特点可以实现在树形结构中不需要对比距离来决定更具体的方位是哪个节点所代表的,就可以直接快速定位到所查找的目标,减少有效电子凭证的查询次数,提高目标电子凭证获取速度。

步骤s321-s323中,采用四叉树分解规则对区域地图进行分解,获取对应的网格地图,以便后续根据网格地图创建空间索引树。将所有有效电子凭证对应的有效节点位置标注在网格地图的网格中,使得网个地图中包含所有有效电子凭证的有效节点位置,使得后续近邻查询到有效电子凭证。采用空间填充曲线对网格地图中的至少一个有效电子凭证进行连接处理,获取空间索引树,实现空间索引树的创建,并是空间索引树的每一节点对应一用于存储凭证数量的数量域,如图9和图10中每一节点对应的圆圈中的数字所示。可以理解地,该数量域用于存储其对应的节点的有效电子凭证的数量,以便后续确定与近邻数目相对应的有效电子凭证。

在一实施例中,如图8所示,在步骤s30之后,即在获取基于四叉树结构和空间填充曲线创建的与用户标识和目标类型相对应的空间索引树之后,电子凭证提示方法还具体包括如下步骤:

s301:获取电子凭证存储请求,电子凭证存储请求包括用户标识、商家标识、凭证标识、凭证类型和有效节点位置。

其中,电子凭证存储请求是存储相应的有效电子凭证时向服务端发送的请求。其中,电子凭证存储请求可分为两种方式,一种是用户基于保存有效电子凭证而发送的请求;另一种是用户添加信用卡时,自动向服务端发送电子凭证存储请求。

作为一种实施方式,当检测到用户保存有效电子凭证时,服务端获取电子凭证存储请求,电子凭证存储请求中包括用户标识、商家标识、凭证标识、凭证类型和有效节点位置。

作为另一种实施方式,若与用户标识对应的用户添加电子凭证卡(信用卡)时,服务端获取电子凭证存储请求,电子凭证请求中包含与该电子凭证卡相对应的优惠商家标识、凭证标识、凭证类型和有效节点位置。

其中,用户标识是指用于确定唯一用户的标识。商家标识是指用于确定唯一商家的标识。凭证标识是指有效电子凭证的凭证,用户可基于该凭证标识确定优惠力度或者进行消费。例如,肯德基单人套餐的凭证标识为y8。凭证类型是指有效电子凭证所属的类型,例如,商家肯德基的凭证类型为美食。有效节点位置是指可使用有效电子凭证的地理位置。

s302:根据用户标识和凭证类型查询云数据库,判断云数据库中是否存在与用户标识和凭证类型对应的历史索引树。

具体地,云数据库中存储有与每一用户标识和凭证类型相对应的历史索引树。判断云数据库中是否存在与用户标识和凭证类型对应的历史索引树与步骤s31相同,在此不做赘述。

s303:若存在与用户标识和凭证类型对应的历史索引树,则基于商家标识确定与凭证标识对应的所有有效节点位置,基于所有有效节点位置更新历史索引树,并更新空间索引树中每一节点的数量域中存储的凭证数量。

具体地,若存在与用户标识和凭证类型对应的历史索引树,则云数据库中存在与用户标识和凭证类型相对应的空间索引树,则基于商家标识,确定与凭证标识相对应的所有有效节点,确定所有可使用凭证标识对应的有效电子凭证的地理位置,即确定有效节点位置。例如,肯德基凭证标识为y8,可使用区域为深圳,即确定深圳所有可使用y8套餐的肯德基的地理位置。基于所有述有效节点位置更新区域地图为深圳的历史索引树,即在历史索引树中增加与凭证标识对应的有效电子凭证,并更新空间索引树中每一节点的数量域中存储的凭证数量,实现更新空间索引树,使得推送给用户的目标电子凭证更为精准。若不存在用户标识和凭证类型对应的历史索引树,则获取与商家标识对应的有效电子凭证的有效节点位置和与凭证类型对应的所有有效节点位置,执行步骤s321-s323,构建与用户标识和凭证类型空间索引树。

其中,更新历史索引树的情况还可包括另一种实施方式,当检测到云数据库中与商家标识对应的凭证标识增加时,服务端则自动生成电子凭证存储请求。服务端更新与商家标识对应的凭证标识,并更新包含该商家标识的空间索引树,使得后续推荐给用户的目标电子凭证更为精准。

作为另一种实施方式,根据有效时间,确定历史索引树的每一叶子节点的截止时间,以便后续推送给用户为有效电子凭证;采用监控函数对进行每一叶子节点的截止时间进行监控,获取第三方服务器当前时间;若第三方服务器当前时间达到截止时间,则将叶子节点删除,更新空间索引树和索引节点信息表,即更信息数量域中存储的凭证数量。

步骤s301-s303中,根据用户标识和凭证类型查询云数据库,判断云数据库中是否存在与用户标识和凭证类型对应的历史索引树,以便确定是否需要更新历史索引树。若存在与用户标识和凭证类型对应的历史索引树,则基于商家标识查询确定与凭证标识对应的所有有效节点位置,基于所有有效节点位置更新历史索引树,并更新空间索引树中每一节点的数量域中存储的凭证数量,以提高目标电子凭证推送的准确性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。在一实施例中,提供一种电子凭证提示装置,该电子凭证提示装置与上述实施例中电子凭证提示方法一一对应。如图11所示,该电子凭证提示装置包括电子凭证查询请求获取模块10、历史查询记录获取模块20、索引信息获取模块30、节点编号获取模块40和目标电子凭证反馈模块50。各功能模块详细说明如下:

电子凭证查询请求获取模块10,用于接收用户端发送的电子凭证查询请求,电子凭证查询请求中包含用户标识、目标查询位置、目标类型和近邻数目。

历史查询记录获取模块20,用于根据用户标识和目标类型,获取最近一次的历史查询记录,历史查询记录包括历史查询位置和历史查询时间。

索引信息获取模块30,若目标查询位置在历史查询位置的预设范围外和/或历史查询时间距离系统当前时间的时间差大于预设时长,则获取基于四叉树结构和空间填充曲线创建的与用户标识和目标类型相对应的空间索引树,并获取与空间索引树相对应的索引节点信息表。

节点编号获取模块40,用于根据目标查询位置查询空间索引树,确定目标子树,根据目标子树获取对应的根节点编号和截断节点编号。

目标电子凭证反馈模块50,用于根据根节点编号和截断节点编号查询索引节点信息表,将对应的有效电子凭证作为目标电子凭证,将目标电子凭证推送给用户端。

在一实施例中,索引信息获取模块30包括第一判断单元、空间索引树确定单元、第一区域地图确定单元和空间索引树构建单元。

第一判断单元,用于根据用户标识和目标类型查询云数据库,判断云数据库中是否存在与用户标识和目标类型相对应的历史索引树。

空间索引树确定单元,用于若云数据库中存在与用户标识和目标类型相对应的历史索引树,则将历史索引树作为空间索引树。

第一区域地图确定单元,用于若云数据库中不存在与用户标识和目标类型相对应的历史索引树,则获取与目标类型和目标查询位置相对应的有效电子凭证,并确定每一有效电子凭证对应的有效节点位置的区域地图。

空间索引树构建单元,用于基于每一有效电子凭证对应的有效节点位置,采用四叉树结构和空间填充曲线对区域地图进行处理,构建空间索引树。

在一实施例中,节点编号获取模块40包括目标节点获取单元、目标子树获取单元和截断节点编号获取单元。

目标节点获取单元,用于根据目标查询位置,查询空间索引树,获取与目标查询位置相对应的目标节点。

目标子树获取单元,用于获取目标节点的上一级节点对应的数量域中的凭证数量确定为目标数量,若目标数量大于近邻数目,则获取以上一级节点为根节点的目标子树,每一目标子树对应一根节点编号。

截断节点编号获取单元,用于遍历目标子树中每一叶子节点,获取每一叶子节点对应的截断节点编号。

在一实施例中,目标电子凭证反馈模块50包括原始节点编号获取单元、原始节点坐标获取单元和目标电子凭证确定单元。

原始节点编号获取单元,用于根据根节点编号和截断节点编号,获取叶子节点对应的原始节点编号。

原始节点坐标获取单元,用于根据每一原始节点编号查询索引节点信息表,获取与原始节点编号对应的原始节点坐标。

目标电子凭证确定单元,用于采用近邻查询装置对原始节点坐标和目标查询位置进行处理,获取与近邻数目相对应的有效电子凭证作为目标电子凭证。

在一实施例中,在第一判断单元之前,电子凭证提示装置还包括历史消费记录获取单元、消费次数统计单元、第二区域地图确定单元和第二空间索引树构建单元。

历史消费记录获取单元,用于获取与用户标识对应的历史消费记录,每一历史消费记录包括历史消费时间、消费类型和消费商家。

消费次数统计单元,用于统计系统当前时间之前预设时间段内,任一消费类型对应的消费次数。

第二区域地图确定单元,用于若任一消费类型对应的消费次数达到消费次数阈值,则获取消费类型对应的有效电子凭证,确定每一有效电子凭证对应的有效节点位置的区域地图。

第二空间索引树构建单元,用于基于每一有效电子凭证对应的有效节点位置,采用四叉树结构和空间填充曲线对区域地图进行处理,构建空间索引树,将空间索引树确定为与用户标识和消费类型相对应的历史索引树,将历史索引树存储在云数据库。

在一实施例中,第一间索引树构建单元或第二空间索引树构建单元,包括网格地图获取子单元、有效节点位置标注子单元和空间索引树获取子单元。

网格地图获取子单元,用于采用四叉树分解规则对区域地图进行分解,获取对应的网格地图,网格地图包括至少一个网格,每一网格存储至少一个有效节点位置。

有效节点位置标注子单元,用于将所有有效电子凭证对应的有效节点位置标注在网格地图的网格中。

空间索引树获取子单元,用于采用空间填充曲线对网格地图中的至少一个有效电子凭证进行连接处理,获取空间索引树,空间索引树中包括至少一个节点,每一节点对应一用于存储凭证数量的数据域。

在一实施例中,在索引信息获取模块30之后,电子凭证提示装置还包括电子凭证存储请求获取单元、第二判断单元和历史索引树更新单元。

电子凭证存储请求获取单元,用于获取电子凭证存储请求,电子凭证存储请求包括用户标识、商家标识、凭证标识、凭证类型和有效节点位置。

第二判断单元,用于根据用户标识和凭证类型查询云数据库,判断云数据库中是否存在与用户标识和凭证类型对应的历史索引树。

历史索引树更新单元,用于若存在与用户标识和凭证类型对应的历史索引树,则基于商家标识查询确定与凭证标识对应的所有有效节点位置,基于所有有效节点位置更新历史索引树,并更新空间索引树中每一节点的数量域中存储的凭证数量。

关于电子凭证提示装置的具体限定可以参见上文中对于电子凭证提示装置的限定,在此不再赘述。上述电子凭证提示装置中的各个模块可全部或部分通过软件、硬件及其组和来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务端,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于执行电子凭证提示方法过程中采用或者形成的数据,例如,存储历史查询记录等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种电子凭证提示方法。

在一实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中电子凭证提示方法的步骤,例如,图2所示的步骤s10至步骤s50。或者,处理器执行计算机程序时实现上述实施例中电子凭证提示装置中的各模块的功能,例如,图11所示模块10至模块50的功能。为避免重复,此处不再赘述。

在一实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中电子凭证提示方法,例如,图2所示的步骤s10至步骤s50。或者,该计算机程序被处理器执行时实现上述实施例中电子凭证提示装置中各模块的功能,例如,图11所示模块10至模块50的功能。为避免重复,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1