一种基于短信进行航班提醒的方法及装置转让专利

申请号 : CN202110927082.4

文献号 : CN113810865B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘英龙舒昌文姚伟娜

申请人 : 荣耀终端有限公司

摘要 :

本申请涉及终端领域,提供了一种基于短信进行航班提醒的方法及装置。该方法包括:获取时间戳为第一时刻的第一短信,第一短信用于指示第一航班为出票状态;根据第一短信,在数据库中存储第一航班对应的航班信息,航班信息包括第一航班的航班标识、第一航班的航班状态和第一时刻;获取时间戳为第二时刻的第二短信,第二时刻用于指示航班无效状态;根据预设规则,确定第二短信与第一航班对应的航班信息匹配;根据第二短信指示的航班无效状态,将航班信息中第一航班的航班状态更改为无效状态;停止运行无效状态的航班对应的航班提醒业务,航班提醒业务用于向用户展示航班提醒信息。通过上述方案能更加准确地向用户进行航班信息提醒。

权利要求 :

1.一种基于短信进行航班提醒的方法,其特征在于,应用于终端设备,所述终端设备支持航班提醒业务,当所述航班提醒业务关闭又打开时,包括:获取第一短信,所述第一短信对应的时间戳为第一时刻,所述第一短信用于指示第一航班为出票状态或无效状态;

根据所述第一短信,在数据库中存储所述第一航班对应的航班信息,所述航班信息包括所述第一航班的航班标识、所述第一航班的航班状态和所述第一时刻;当所述第一航班的航班状态为出票状态时:获取第二短信,所述第二短信对应的时间戳为第二时刻,所述第二时刻用于指示航班无效状态,所述第一短信和所述第二短信为所述终端设备在所述航班提醒业务关闭期间接收到的;

根据预设规则,确定所述第二短信与数据库中所述第一航班对应的航班信息匹配;

若所述第二时刻晚于所述第一时刻,根据所述第二短信指示的航班无效状态,将所述航班信息中第一航班的航班状态更改为无效状态,且所述第一航班对应的时间戳仍为所述第一时刻;

若所述第二时刻早于所述第一时刻,根据所述第二短信指示的航班无效状态,在所述数据库保留与所述第一短信对应的所述航班信息;

当所述第一航班的航班状态为无效状态时:

获取第三短信,所述第三短信的时间戳为第三时刻,所述第三短信用于指示所述第一航班出票,所述第一短信和所述第三短信为所述终端设备在航班提醒业务关闭期间接收到的;

根据所述预设规则,确定所述第三短信与所述数据库中所述第一航班对应的航班信息匹配;

若所述第一时刻晚于所述第三时刻,将所述第一航班对应的航班信息中的时间戳更改为所述第三时刻;

若所述第一时刻早于所述第三时刻,在所述数据库新增所述第三短信对应的航班信息;

停止运行所述无效状态的航班对应的航班提醒业务,所述航班提醒业务用于向用户展示航班提醒信息。

2.根据权利要求1所述的方法,其特征在于,所述根据预设规则,确定所述第二短信与数据库中所述第一航班对应的航班信息匹配,具体包括:当所述第二短信包括所述第一航班的航班标识时,根据所述第一航班的航班标识确定所述第二短信与数据库中所述第一航班对应的航班信息匹配;

当所述第二短信不包括所述第一航班的航班标识时,查询所述数据库中所述航班信息的数量;

若所述数据库中只存在一条航班信息,则确定所述第二短信与数据库中所述第一航班对应的航班信息匹配。

3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一短信,在数据库中存储所述第一航班对应的航班信息,还包括:根据所述第一短信包括的所述航班标识,在数据库中查询是否存在与所述第一短信匹配的航班信息;

若未查询到与所述第一短信匹配的航班信息,则根据所述第一短信,在数据库中存储所述第一航班对应的航班信息。

4.根据权利要求1或2所述的方法,其特征在于,所述根据所述第二短信指示的航班无效状态,将所述航班信息中第一航班的航班状态更改为无效状态,还包括:比较所述第二时刻和所述第一时刻;

当所述第二时刻晚于所述第一时刻时,根据所述第二短信指示的航班无效状态,将所述航班信息中第一航班的航班状态更改为无效状态。

5.根据权利要求1或2所述的方法,其特征在于,所述航班标识包括以下至少一种:所述航班的航班号和所述航班的起飞时间;

所述航班的票号;

所述航班对应的订单号。

6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:当所述第一航班对应的航班信息为有效状态,在所述数据库新增所述第三短信对应的航班信息。

7.根据权利要求1或2所述的方法,其特征在于,所述第二短信用于指示航班无效状态,具体包括:所述第二短信用于指示航班退票;或者,

所述第二短信用于指示航班取消;或者,

所述第二短信用于指示航班为被改签。

8.根据权利要求7所述的方法,其特征在于,当所述第二短信用于指示所述第一航班为被改签时,所述方法还包括:根据第二短信,在数据库中新增改签后的航班对应的所述航班信息。

9.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:运行有效状态的航班对应的所述航班提醒业务。

10.一种终端设备,其特征在于,包括:

显示器;

一个或多个处理器;

一个或多个存储器;

所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行如权利要求1至9中任一项所述的方法。

说明书 :

一种基于短信进行航班提醒的方法及装置

技术领域

[0001] 本申请涉及终端领域,尤其涉及一种基于短信进行航班提醒的方法及装置。

背景技术

[0002] 随着终端技术的发展,终端设备可以为用户提供多种智能服务,比如出行提醒。

发明内容

[0003] 本申请提供了一种基于短信进行航班提醒的方法及装置,通过按照预设规则根据短信内容分析航班状态,解决在短信缺乏航班标识时航班提醒信息容易发生错误的问题。
[0004] 交通卡片提醒是一种通过包含出行信息的用户界面(userinterface,UI)提醒用户出行的方式。例如,用户购买机票后,用户的手机会收到机票订购短信,该短信通常以文字的形式将航班信息告知用户;手机收到短信后,可以将短信中的航班信息转化为包含图形和文字UI展示给用户,从而增强用户的体验。
[0005] 然而,现有的短信类型很多,第三方服务平台使用短信模板并不统一,不乏一些短信缺乏指示特定航班标识。终端设备无法根据这些缺乏航班标识的短信解析准确的航班信息,从而也就无法基于短信内容生成准确的交通卡片内容,以对用户进行准确有效的出行提醒,使用户体验不佳。
[0006] 第一方面,提供了一种基于短信进行航班提醒的方法,应用于终端设备,包括:获取第一短信,所述第一短信对应的时间戳为第一时刻,所述第一短信用于指示第一航班为出票状态;根据所述第一短信,在数据库中存储所述第一航班对应的航班信息,所述航班信息包括所述第一航班的航班标识、所述第一航班的航班状态和所述第一时刻;获取第二短信,所述第二短信对应的时间戳为第二时刻,所述第二时刻用于指示航班无效状态;根据预设规则,确定所述第二短信与数据库中所述第一航班对应的航班信息匹配;根据所述第二短信指示的航班无效状态,将所述航班信息中第一航班的航班状态更改为无效状态;停止运行所述无效状态的航班对应的航班提醒业务,所述航班提醒业务用于向用户展示航班提醒信息。
[0007] 在一些实现方式中,出票状态状态也可以被描述为有效状态,有效状态可以包括航班出票、航班改签(视为改签后的航班出票)等可按出票计划出行时对应的航班状态;无效状态可以包括航班改签、航班退票、航班取消等无法按出票计划出行时对应的航班状态。
[0008] 根据本实现方式提供的基于短信进行航班提醒的方法,在出票后,如果又获取到指示已出票航班无效的短信时,通过根据短信将已出票航班状态修改为无效,后续停止向用户展示该航班的相关提醒信息,能够根据航班事件及时向用户展示准确的航班提醒内容,提升用户业务体验的舒适性。
[0009] 结合第一方面,在第一方面的任一实现方式中,所述根据预设规则,确定所述第二短信与数据库中所述第一航班对应的航班信息匹配,具体包括:当所述第二短信包括所述第一航班的航班标识时,根据所述第一航班的航班标识确定所述第二短信与数据库中所述第一航班对应的航班信息匹配;当所述第二短信不包括所述第一航班的航班标识时,查询所述数据库中所述航班信息的数量;若所述数据库中只存在一条航班信息,则确定所述第二短信与数据库中所述第一航班对应的航班信息匹配。
[0010] 根据本实现方式提供的基于短信进行航班提醒的方法,通过按照预设规则匹配短信和数据库中的航班信息,能够在短信缺乏完整的航班标识(即航班标识)时,也能将短信与航班匹配,从而获取到准确的航班状态,向用户展示准确的航班提醒信息。
[0011] 结合第一方面,在第一方面的任一实现方式中,所述根据所述第一短信,在数据库中存储所述第一航班对应的航班信息,还包括:根据所述第一短信包括的所述航班标识,在数据库中查询是否存在与所述第一短信匹配的航班信息;若未查询到与所述第一短信匹配的航班信息,则根据所述第一短信,在数据库中存储所述第一航班对应的航班信息。
[0012] 结合第一方面,在第一方面的任一实现方式中,所述根据所述第二短信指示的航班无效状态,将所述航班信息中第一航班的航班状态更改为无效状态,还包括:比较所述第二时刻和所述第一时刻;当所述第二时刻晚于所述第一时刻时,根据所述第二短信指示的航班无效状态,将所述航班信息中第一航班的航班状态更改为无效状态。
[0013] 根据本实现方式提供的基于短信进行航班提醒的方法,通过根据短信指示的航班状态以及短信对应的时间戳确定航班状态,能够实现无论以何种顺利解析短信,均可以获取准确的航班状态,从而向用户展示准确的航班提醒信息,提升用户体验。
[0014] 结合第一方面,在第一方面的任一实现方式中,所述航班标识包括以下至少一种:所述航班的航班号和所述航班的起飞时间;所述航班的票号;所述航班对应的订单号。
[0015] 结合第一方面,在第一方面的任一实现方式中,所述方法还包括:获取第三短信,所述第三短信对应的时间戳为第三时刻,所述第三短信用于指示所述第一航班出票;根据所述预设规则确定所述第三短信与所述数据库中所述第一航班对应的航班信息匹配;当所述第一航班对应的航班信息为无效状态,且所述第一时刻晚于所述第三时刻时,将所述第一航班对应的航班信息中的时间更改为所述第三时刻;当所述第一航班对应的航班信息为无效状态,且所述第一时刻早于所述第三时刻时,在所述数据库新增所述第三短信对应的航班信息;当所述第一航班对应的航班信息为无效状态,在所述数据库新增所述第三短信对应的航班信息。
[0016] 根据本实现方式提供的基于短信进行航班提醒的方法,通过根据短信指示的航班状态以及短信对应的时间戳确定航班状态,能够实现无论以何种顺利解析短信,均可以获取准确的航班状态,从而向用户展示准确的航班提醒信息,提升用户体验。
[0017] 结合第一方面,在第一方面的任一实现方式中,所述第二短信用于指示航班无效状态,具体包括:所述第二短信用于指示航班退票;或者,所述第二短信用于指示航班取消;或者,所述第二短信用于指示航班为被改签。
[0018] 结合第一方面,在第一方面的任一实现方式中,当所述第二短信用于指示所述第一航班为被改签状态时,所述方法还包括:根据第二短信,在数据库中新增改签后的航班对应的所述航班信息。
[0019] 结合第一方面,在第一方面的任一实现方式中,所述方法还包括:运行所述有效状态的航班对应的所述航班提醒业务。
[0020] 第二方面,提供了一种终端设备,包括:显示器;一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行如第一方面中任一实现方式所述的方法。
[0021] 第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如第一方面中任一实现方式所述的方法。
[0022] 第四方面,提供了一种包含指令的计算机程序产品,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行如第一方面中任一实现方式所述的方法。

附图说明

[0023] 图1是本申请实施例提供的一种终端设备的结构示意图。
[0024] 图2是本申请实施例提供的一种终端设备的软件结构示意图。
[0025] 图3是本申请实施例提供的一种显示交通卡片的系统架构示意图。
[0026] 图4A至图4C是本申请实施例提供的一些场景示意图和界面示意图。
[0027] 图5A和图5B是本申请实施例提供的另一些场景示意图和界面示意图。
[0028] 图6A和图6B是本申请实施例提供的又一些场景示意图和界面示意图。
[0029] 图7A和图7B是本申请实施例提供的又一些场景示意图和界面示意图。
[0030] 图8是本申请实施例提供的一种改签短信的示意图。
[0031] 图9是本申请实施例提供的一种退票短信的示意图。
[0032] 图10是本申请实施例提供的一种航班取消短信的示意图。
[0033] 图11是本申请实施例提供的一种无时序匹配短信的场景示意图。
[0034] 图12是本申请实施例提供的另一种无时序匹配短信的场景示意图。
[0035] 图13是本申请实施例提供的又一种无时序匹配短信的场景示意图。
[0036] 图14是本申请实施例提供的一种基于短信进行航班提醒的方法的示意性流程图。

具体实施方式

[0037] 需要说明的是,本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联障碍物的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,除非另有说明,“多个”是指两个或多于两个,“至少一个”、“一个或多个”是指一个、两个或两个以上。
[0038] 以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征。
[0039] 在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0040] 示例性的,如图1所示,为本申请实施例提供的一种终端设备的结构示意图。
[0041] 图1示出了终端设备100的结构示意图。终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器
180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器
180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
[0042] 可以理解的是,本发明实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0043] 处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural‑network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0044] 其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0045] 处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
[0046] 可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0047] 终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。显示屏194用于显示图像,视频等。
[0048] 示例性的,终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。图2是本申请实施例的终端设备100的软件结构框图。
[0049] 分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
[0050] 应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
[0051] 应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
[0052] 窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
[0053] 内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
[0054] 视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
[0055] 电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
[0056] 资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
[0057] 通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端振动,指示灯闪烁等。
[0058] Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
[0059] 核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
[0060] 应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行障碍物生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
[0061] 系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
[0062] 表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
[0063] 媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
[0064] 三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
[0065] 2D图形引擎是2D绘图的绘图引擎。
[0066] 内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
[0067] 示例性的,如图3所示,为本申请实施例提供的一种基于短信进行航班提醒的方法适用的系统架构示意图。该系统架构包括终端设备100和短信通知平台200。
[0068] 在一些实施例中,终端设备100可以是手机、智慧屏、平板电脑、可穿戴电子设备、车载电子设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra‑mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、投影仪等等,本申请实施例对终端设备100的具体类型不作任何限定。
[0069] 在一些实施例中,终端设备100上安装有感知APP、业务APP和显示APP。下面分别介绍这三个模块的功能。
[0070] 感知APP(或称监听APP)常驻运行,具有短信采集能力,可以支持采集包含指定字符数组内容的短信,并支持指定覆盖一段时间内的已接收短信内容。感知模块还可以支持航班短信解析静态工具类,进行短信解析,输出航班信息。例如,感知APP可以接收由短信通知平台200下发的短信。在航班提醒业务处于开启状态时,感知APP对短信进行解析后,可以将航班相关的短信发送(或广播)至业务APP。此外,感知模块还可以通过API由其他应用程序感知相关状态信息,如调用与时间APP、位置APP或者网络APP之间的API分别获取当前时间、当前位置或者网络状态。
[0071] 业务APP具有业务逻辑处理能力,用于实现航班卡片(交通卡片的一个示例)的逻辑处理功能。例如,业务APP接收到感知APP发送(或广播)的短信后,可以根据预设规则(或称预设匹配规则),根据短信内容在数据库中查询与短信匹配的航班信息,然后根据短信指示的航班事件(如航班出票、航班退票、航班改签、航班取消等)确定航班状态。业务APP还可以根据航班状态运行航班提醒业务,如提取特定信息生成提醒卡片等。
[0072] 显示APP可具体实现为快捷应用程序(如YOYO或YOYO空间),用于将确定的航班卡片显示在手机的屏幕上。例如,显示APP可以接收业务APP传递的交通卡片信息,并将该交通卡片展示给用户。
[0073] 短信通知平台200例如可以是第三方服务平台,用于由航班服务平台获取航班信息,并根据航班信息的变化向终端设备100发送短信通知。或者,该短信通知平台200也可以是航班服务平台,当有航班信息变更时,该航班服务平台可以通过终端设备100对应的云服务平台向终端设备100发送短信通知。
[0074] 在一些实施例中,短信通知平台200和终端设备100可以基于任何已有的通信协议进行无线通信,如全球移动通讯(global system of mobile communication,GSM)系统、码分多址(code division multiple access,CDMA)系统、宽带码分多址(wideband code division multiple access,WCDMA)系统、通用分组无线业务(general packet radio service,GPRS)、长期演进(long term evolution,LTE)系统、LTE频分双工(frequency division duplex,FDD)系统、LTE时分双工(time division duplex,TDD)、通用移动通信系统(universal mobile telecommunication system,UMTS)、全球互联微波接入(worldwide interoperability for microwave access,WiMAX)通信系统、未来的第五代(5th generation,5G)系统或新无线(new radio,NR)等,本申请对此不作限定。
[0075] 以下结合上述介绍的终端设备的结构及各APP的功能,示例性地介绍在基于短信解析内容生成交通卡片的场景下,终端设备的工作过程。
[0076] 在一些实施例中,当用户进行航班业务操作(如购票、退票、改签等)后,短信通知平台会向终端设备发送航班(或航程)通知消息(以短信为例)。终端设备的感知APP接收短信,并对短信进行解析获取短信内容。业务APP接收感知APP发送的解析后的短信内容,并且提取其中包含的航班信息(如航班号、起飞时间等),在数据库中创建(或新增)该航班对应的航班信息。之后,业务APP可以基于航班信息生成与当前业务场景匹配的交通卡片内容,并将其传递至显示APP,展示给用户。
[0077] 示例性的,数据库中的航班信息例如可以如表1所示,包括航班号、起飞时间、标志位(isRefund)以及短信时间戳等。其中,航班号和起飞时间可以为航班标识的一个示例,用于确定唯一的航班。标志位用于指示航班状态,如用于指示航班是有效航班还是无效航班。有效航班是指航班按照出票通知正常起飞且用户按照出票通知乘此航班正常出行时对应的航班,也即有效航班是处于有效状态中的航班,在本申请中有效状态也可以被描述为出票状态。与之相对地,如果由于客观原因航班无法按照计划正常起飞(如由于天气原因,航班取消等);或者,如果由于用户主观原因自行改变航程(如退票或改签航班)时,此时航班会由有效航班变更至无效航班,也即无效航班是指处于无效状态中的航班。
[0078] 表1
[0079]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 False 8:00
[0080] 在一些实施例中,对于有效航班,例如可以将其对应的标志位标记为False;对于无效航班,例如可以将其对应的标志位标记为True。
[0081] 在一些实施例中,短信时间戳可以是出票短信对应的时间。短信时间戳可以对应于终端设备接收短信的时间;或者,也可以对应航班服务平台发送短信的时间,本申请实施例对此不作限定。
[0082] 应理解,上述表1所示的航班信息类型以及标记航班状态的方式仅为示例,在实际应用中,该航班信息还可以包括更多的其他内容(如票号、订单号等);或者,也可以采用其他方式对航班信息的有效性进行标识(如用标志位YES表示有效状态,用标志位No表示无效状态等),本申请实施例对此不作限定。
[0083] 当发生航班变动事件(如用户购票、退票、改签,或者因客观原因发生航班延误、登机口变更、航班取消等)时,终端设备通常会收到相关的通知短信;终端设备可以基于短信内容,通过交通卡片等方式对用户进行及时提醒。在实际应用中,短信类型很多,不同短信发送方使用的短信模板可能不同,导致短信通知内容也不相同,例如有些短信会包含较为完整的航班信息;而有些短信可能仅简单地通知航班变动事件,缺乏具体的航班信息,这种情况使得终端设备无法判断航班变动事件针对哪一航班,最终可能导致卡片显示状态或者卡片显示内容错误。比如,机票出票后,用户又对该航班执行退票操作,并接收到退票短信;若该退票短信仅通知了退票事件成功,未包含具体的航班信息(如航班号和起飞时间),那么终端设备就无法确定该退票短信指示对哪一航班退票,后续终端设备可能会继续向用户展示已退票航班的航班信息。诸如此类的情形,不仅会额外消耗终端设备的资源,还会导致用户体验不佳。
[0084] 针对上述问题,本申请实施例提供了一种基于短信进行航班提醒的方法,通过在短信缺失基础航班信息(即航班标识)时,按照预设规则对短信和数据库中的航班信息进行匹配,确定准确的航班状态,并基于航班状态确定与当前业务场景匹配的卡片内容或卡片显示状态。该方法能够避免无效航班对卡片显示状态或卡片显示内容的干扰,使航班提醒更加准确,提升了用户业务体验的舒适性。
[0085] 本申请实施例提供的基于短信进行航班提醒的方法可适用于基于短信内容对航班信息进行提醒的多种应用场景下,例如可以适用于终端设备基于航班短信解析内容,通过交通卡片向用户进行出票提醒的场景中。以下以短信内容包含完整的航班标识为例,对基于短信内容确定航班状态的一些示例性应用场景进行介绍。
[0086] 应理解,本申请实施例中的航班标识是指能够用于确定唯一航班的短信内容,比如航班号+起飞时间、订单号等。航班标识可以根据需求灵活设置,本申请以下实施例以航班标识为航班号+起飞时间为例进行介绍。
[0087] 场景一:出票场景
[0088] 在一种可能的情形下,如图4A所示,假设用户购买了2021‑08‑03,CA1635航班的机票;出票后,终端设备在8:00收到由短信通知平台发送的出票短信。出票短信如图4B所示,包括航班号(CA1635),起飞时间(2021‑08‑03)以及出发地(北京首都机场)和目的地(沈阳桃仙机场)等。
[0089] 之后,终端设备对该短信进行解析,根据解析后的短信内容获取航班标识(如航班号+起飞时间)和航班事件(航班出票),并根据航班标识在数据库中查找是否已有该航班的信息。由于当前只收到该航班的一条出票短信,数据库实际不包括该航班对应的航班信息,因此,终端设备不会在数据库中查询到该航班对应的航班信息。当终端设备查询到数据库中不存在该航班的信息后,可在数据库新增该航班对应的航班信息,如将航班号、起飞时间、标志位、短信时间戳存储至数据库,如上表1所示。应理解,由于出票短信指示的航班事件为出票,因而可以确定该航班当前状态为有效航班,航班信息中的标志位可以标记为有效状态(如标记false)。之后,终端设备可以基于该出票短信对应的航班信息生成对应的交通卡片,以提醒用户订阅的航班已出票成功。示例性的,交通卡片可以如图4C所示,用于向用户展示航班号、起飞时间以及出发地和目的地。
[0090] 场景二:出票后又改签的场景
[0091] 在另一种可能的场景下,如图5A所示,假设在场景一中出票之后,用户又对机票进行了改签,且改签成功后,用户于9:00接收到改签成功的通知短信。改签短信如图5B所示,包括改签前的航班号(CA1635)、改签前的起飞时间(2021‑08‑03)和改签后的航班号(CA1635)、改签后的起飞时间(2021‑08‑07)以及改签后的票号等信息。
[0092] 之后,终端设备对改签短信的内容进行解析,根据解析后的短信内容获取航班标识(如改签前的航班号+起飞时间和改签后的航班号+起飞时间),并根据航班标识在数据库中查找是否已有相关的航班信息。由于当前数据库已存有改签前的航班(CA1635+2021‑08‑03)对应的航班信息,终端设备可以根据改签短信中改签前的航班标识匹配至该已存储的航班信息,并且根据短信指示的改签事件,将该航班信息的状态修改为无效状态,如将表1中的标志位False修改为True,表示用户已取消通过此航班出行。终端设备在确定该已出票航班为无效状态后,会停止对该航班的航班提醒业务,卡片在终端设备的界面消失。
[0093] 类似地,终端设备还可以根据改签短信中改签后的航班标识(CA1635+2021‑08‑07)在数据库中查找匹配的航班信息。当未查找到匹配的航班信息时,终端设备可以将该改签后的航班信息增加至数据库中,并且根据改签短信指示的事件将该航班信息标记为有效状态。示例性的,基于改签短信修改航班状态后,数据库中的航班信息可以如表2所示:
[0094] 表2
[0095]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 True 8:00
CA1635 2021‑08‑07 False 9:00
[0096] 值得注意的是,在一些实施例中,数据库中存储的短信时间戳是指航班出票短信对应的接收时间。当出票之后又接收到改签短信,该短信时间戳可以继续保持原出票短信时间。可选地,在另一些实施例中,当出票之后又接收到改签短信,数据库中对应航班信息的时间戳也可以更新为改签短信接收时间。本申请实施例对此不作限定。
[0097] 场景三:出票后又退票的场景
[0098] 在又一种可能的场景下,如图6A所示,假设在场景一的出票之后,用户又对机票进行了退票,且退票成功后,用户于9:00接收到退票成功的通知短信。退票短信如图6B所示,包括已退航班的航班号(CA1635)、起飞时间(2021‑08‑03)。
[0099] 之后,终端设备对退票短信的内容进行解析,根据退票短信解析内容获取航班标识(如航班号+起飞时间),并根据航班标识在数据库中查找是否已有该航班的信息。由于当前数据库已存有航班(CA1635+2021‑8‑3)对应的航班信息(如表1所示),终端设备可以根据航班标识将退票短信匹配至该已存储的航班信息,并且根据短信指示的退票事件,将该航班信息的状态修改为无效状态,如将表1中的标志位False修改为True,表示用户已取消通过此航班出行。修改后的航班信息如表3所示。终端设备在确定该已出票航班为无效状态后,停止对该航班的航班提醒业务,卡片在终端设备的界面消失。
[0100] 表3
[0101] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 True 8:00
[0102] 应理解,上述场景中表示航班状态有效或者无效的方式仅为示例,在另一些实施例中,还可以采用其他方式对航班状态是否有效进行标识,本申请实施例对此不作限定。
[0103] 场景四:出票后航班取消的场景
[0104] 在又一种可能的场景下,如图7A所示,假设在场景一的出票之后,因客观原因航班取消,且用户于9:00接收到航班取消通知短信。该航班取消短信如图7B所示,包括取消航班的航班号(CA16357)、起飞时间(2021‑08‑03)。
[0105] 之后,终端设备对航班取消通知短信解析,根据航班取消短信解析内容获取航班标识(如航班号+起飞时间),并根据航班标识在数据库中查询是否已有该航班的信息。由于当前数据库在航班取消前已存储有航班(CA1635+2021‑08‑03)对应的航班信息(如表1所示),终端设备可以根据航班标识将短信匹配至该已存储的航班信息,并且根据短信指示的航班取消事件,将该航班信息的状态修改为无效状态,如将表1中的标志位由false修改为true,表示用户不会再乘坐此航班出行。修改后的航班信息可如上表3所示。终端设备在确定该已出票航班为无效状态后,可以停止对该航班的航班提醒业务,卡片在终端设备的界面消失。
[0106] 应理解,上述场景二至场景四仅以出票后又进行改签,或者出票后又进行退票,或者出票后航班取消为例进行介绍。但在实际应用中,当出票后发生其他使航班无效的事件时,也可以通过上述描述的过程更改航班状态,进而改变航班提醒卡片的显示状态。
[0107] 还应理解,上述表1至表3所示的航班信息仅为示例。在实际应用中,数据库中存储的航班信息还可以包括其他多项内容,本申请实施例对此不作限定。
[0108] 根据本申请实施例提供的基于短信进行航班提醒的方法,在出票后,如果又获取到指示已出票航班无效的短信时,通过根据短信将已出票航班状态修改为无效,后续停止向用户展示该航班的相关提醒信息,能够在航班变更时及时向用户展示准确的航班提醒内容,提升用户业务体验的舒适性。
[0109] 上文对短信包含完整的航班标识的场景进行了介绍。以下对短信包含航班标识不完整时,基于短信内容确定航班状态的一些应用场景进行介绍。示例性的,如表4所示,为本申请实施例提供的几种短信的示例性情形。
[0110] 表4
[0111]
[0112] 针对上述列举的几种情形,以下具体阐述每种情形下如何将短信与航班信息进行匹配。
[0113] 情形1:短信内容完整,包括可确定唯一航班信息的航班标识(如航班号+起飞时间),因此可以直接根据短信解析内容将航班信息与短信进行匹配。
[0114] 情形2:短信内容不完整,但有票号或订单号,此时判断能否根据票号或订单号匹配航班信息与短信,若能够匹配(如航班信息包括与短信中相同的票号或订单号),则可以直接根据短信解析内容将航班信息与短信进行匹配;若不能够匹配,则短信作废,不再基于该短信修改航班信息。
[0115] 情形3:短信内容不完整,但有起飞日期,此时判断能否根据起飞日期匹配航班信息与短信,若能够匹配(如当前数据库中航班信息中的起飞时间均不相同),则可以直接根据短信解析内容将航班信息与短信进行匹配;若不能够匹配,则短信作废,不再基于该短信修改航班信息。
[0116] 情形4:短信内容不完整,但有航班号,此时判断能否根据航班号匹配航班信息与短信,若能够匹配(如当前数据库中航班信息中的航班号均不相同),则可以直接根据短信解析内容将航班信息与短信进行匹配;若不能够匹配,则短信作废,不再基于该短信修改航班信息。
[0117] 情形5:短信内容不完整,没有能够明确指示特定航班的信息,此时短信作废,不再基于该短信修改航班信息。
[0118] 下文以情形5所示的短信缺乏航班标识的情形为例,对一些场景下基于短信内容确定航班状态的过程进行介绍。
[0119] 场景四:出票后又改签的场景
[0120] 继续参见图5A,在一种可能的场景下,假设用户在接收到场景一中的出票短信后,又对机票进行了改签,且改签成功后,用户于9:00接收到改签成功的通知短信。该改签短信如图8所示,包括改签后的航班号(CZ1635)、改签后的起飞时间(2021‑09‑15)以及改签后的到达时间、票号等信息。
[0121] 之后,终端设备根据对改签短信进行解析,根据解析后的短信内容获取航班标识(如CZ1231+2021‑09‑15)以及航班事件(如航班改签),并根据航班标识在数据库中查找是否有匹配的航班信息。然而,由于已存储的航班信息(CA1635+2021‑08‑03)与改签短信中的航班标识(CZ1231+2021‑09‑15)并不匹配,因而终端设备仅根据短信内容,无法将该短信与数据库中存储的航班信息匹配,也即终端设备无法获知该航班改签事件是针对哪一航班的。
[0122] 针对这种情况,终端设备可以根据数据库中航班信息的数量进行匹配。具体来说,如果此时数据库中仅存储有一条航班信息,且该航班信息处于有效状态(如标志位为False),就可认为改签事件就是针对该已出票的航班的,可自动将该改签短信与数据库中的航班信息相匹配。基于该匹配结果,终端设备可以在数据库中将已存储的航班信息对应的标志位修改为无效状态(如将标志位修改为True),同时停止对该航班的航班提醒业务,使卡片在终端设备的界面消失。
[0123] 类似地,终端设备还可以根据改签短信中改签后的航班标识(CZ1231+2021‑09‑15)在数据库中查找匹配的航班信息。当未查找到匹配的航班信息时,终端设备可以将该改签后的航班信息增加至数据库中,并且根据改签短信指示的事件将该航班标记为有效状态。示例性的,基于改签短信修改航班状态后,数据库中的航班信息可以如表5所示:
[0124] 表5
[0125] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 True 8:00
CZ1231 2021‑09‑15 False 9:00
[0126] 场景五:出票后又退票的场景
[0127] 继续参见图6A,在另一种可能的场景下,假设用户在接收到场景一中的出票短信后,又对机票进行了退票,且退票成功后,用户于9:00接收到退票成功的通知短信,退票短信如图9所示,包括已出票航班对应的票号信息,但未包含已退航班的航班号和起飞时间。
[0128] 之后,终端设备对退票短信的内容进行解析,并根据解析的结果与数据库中已存储航班信息匹配。由于短信不包含航班标识,因而终端设备在数据库中不会获取与短信相匹配的航班信息,此时,终端设备也就无法确认该退票事件针对哪一航班。
[0129] 针对这种情况,终端设备可根据数据库中已存储的航班信息的数量进行匹配。具体来说,如果此时数据库中仅存储有一条航班信息,且该航班信息处于有效状态(如标志位为False),就可认为退票操作就是针对该航班进行的,可自动将该退票事件与数据库中已存储的航班相匹配。基于该匹配结果,终端设备可以在数据库中将已存储的航班信息对应的标志位修改为无效状态(如将表1中的标志位修改为True),同时停止对该航班的航班提醒业务,使卡片在界面消失。
[0130] 场景六:出票后航班取消的场景
[0131] 继续参见图7A,在又一种可能的场景下,假设用户在接收到场景一中的出票短信后,用户又接收到了航班取消通信短信。该航班取消通信如图10所示包括已出票的订单号,但未包含已取消航班的航班号和起飞时间。
[0132] 之后,终端设备对航班取消短信的内容进行解析,并根据解析的结果与数据库中已存储航班信息匹配。由于短信不包含航班标识,因而终端设备在数据库中不会获取与短信相匹配的航班信息,此时,终端设备也就无法确认该航班取消事件针对哪一航班。
[0133] 针对这种情况,终端设备可根据数据库中已存储的航班信息的数量进行匹配。具体来说,如果此时数据库中仅存储有一条航班信息,且该航班信息处于有效状态(如标志位为False),就可认为航班取消事件就是针对该航班的,可自动将该航班取消事件与数据库中已存储的航班相匹配。基于该匹配结果,终端设备可以在数据库中将已存储的航班信息对应的标志位修改为无效状态(如将表1中的标志位修改为True),同时停止对该航班的航班提醒业务,使卡片在界面消失。
[0134] 根据本申请实施例提供的基于短信进行航班提醒的方法,当短信内容缺乏航班标识时,终端设备可以根据已存储航班的数量和状态确定航班状态,通过这种方式,即使短信内容有缺失,也可以准确地获取航班状态,从而准确地向用户展示航班提醒信息,提升用户业务体验的舒适性。
[0135] 应理解,为了满足用户的个性化需求,终端设备可以设置航班提醒业务可以被灵活开启或者关闭。例如,终端设备可以在应用程序的界面上设置航班提醒业务的开关控件,用户可以根据需求自主开启或关闭该航班提醒功能。又例如,终端设备可以在满足预设条件时,自动开启或关闭航班提醒业务。本申请实施例对航班提醒业务开启或关闭的具体触发方式不做限定。
[0136] 本申请实施例提供的基于短信进行航班提醒的方法在航班提醒业务处于开启状态时被执行。也就是说,在航班提醒业务运行期间,终端设备可以基于短信解析后的内容,获取航班状态,并基于航班状态向用户展示对应的提醒卡片;而在航班提醒业务被关闭时,航班提醒业务停止,基于短信解析内容匹配航班以及确定航班状态的相关进程也随之停止。
[0137] 值得注意的是,当航班提醒业务由开启状态变更为关闭状态时,数据库中标记为有效状态的航班信息会被清除,而被标记为无效状态的航班信息则仍会被保留。之所以会保留无效航班信息,而清除有效航班信息,是因为当航班提醒业务再次开启后,终端设备会对航班短信进行重新解析和匹配,当数据库中存在之前存储的无效航班的信息时,若某条短信的解析内容与该航班信息匹配,则可表示该短信属于与无效航班相关的短信,无需再根据该短信进行航班状态分析,后续可以忽略该短信,以减少终端设备运算负荷。对于数据库不存在关联航班信息的短信,表示该短信可能属于与有效航班相关的短信,终端设备会再次对这些短信与航班进行匹配,根据短信解析内容识别关联的航班的状态,以获取准确的航班状态,向用户展示准确的航班提醒,提升用户体验。
[0138] 在一些实施例中,如果终端设备在航班提醒业务关闭期间接收到多条航班通知短信,则航班提醒业务开启后,终端设备会对航班提醒业务关闭期间接收到的短信与航班信息进行匹配。目前,终端设备匹配这些短信是无时序的,也即接收到一条短信就对该条短信进行解析匹配,并不会按照终端设备接收短信的时间戳依次进行。然而,不同的短信匹配时序可能会导致不同的航班状态结果,比如:
[0139] 如图11所示,在航班提醒业务关闭期间依次接收到出票短信和退票短信,之后当航班提醒业务开启后,终端设备的感知APP会向业务APP无时序地广播这两条短信,因而业务APP存在两种获取和匹配短信的时序:时序1,先获取和匹配退票短信,再获取和匹配出票短信;2、先获取和匹配出票短信,再获取和匹配退票短信。在时序1中,终端设备可以首先根据退票短信确定航班状态为无效状态(标志位为True),之后再根据出票短信确定该航班状态更改为有效状态(标志位修改为False),最终航班状态为有效状态。在时序2中,终端设备可以首先根据出票短信确定航班状态为有效状态(标志位为False),之后再根据退票短信确定该航班状态更改为无效状态(标志位修改为True),最终航班状态为无效状态。
[0140] 因此,不同的短信匹配顺序,会得出不同的航班状态结果,从而影响航班信息提醒的准确性。如果航班提醒业务在短信接收和匹配期间未能一直保持开启状态,则需要克服该航班提醒业务的开关状态对航班状态的影响,使得无论短信以怎样的时序被匹配,都能获取准确的航班状态。针对这种需求,本申请实施例提供的基于短信进行航班提醒的方法基于短信解析内容以及短信时间戳,按照预设规则对航班状态进行匹配,以获取准确的航班状态。以下结合具体的应用场景,对此类情形下的短信解析异常处理的过程进行介绍。
[0141] 以下结合图11至图13,对本申请实施例中航班提醒业务未一直保持开启时基于短信解析内容确定航班状态的过程介绍。示例性的,如图11所示,为本申请实施例提供的一种航班提醒业务未保持一直开启时,基于短信解析内容分析航班状态的场景示意图。
[0142] 当终端设备以图11所示的时序1匹配短信时,该过程可以包括:终端设备首先获取退票短信;然后,基于航班标识(如航班号+起飞时间)在数据库中查询是否有与短信相匹配的航班信息;当未查询到匹配的航班信息时,终端设备会基于退票短信中的航班标识以及航班事件(退票)在数据库存储对应的航班信息,此时该航班信息可以如表6所示:
[0143] 表6
[0144]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 True 9:00
[0145] 然后,终端设备的业务APP获取感知APP广播的出票短信内容,并基于航班标识(如航班号+起飞事件)在数据库中查询是否有与短信匹配的航班信息;若查询到表6所示的航班信息与出票短信中的航班匹配时,终端设备可以根据出票短信的时间戳(8:00)与表6所示的短信时间戳(9:00)比较,确定出票短信时间早于退票时间,说明退票行为发生在出票之后(即用户先购票又退票),航班状态应以退票短信指示的航班事件(退票)来确定,也即该航班的状态应该为无效状态,标志位继续标记为True,同时将短信时间戳修改为出票短信对应的时间。终端设备在确定该已出票航班为无效状态后,会停止对该航班的航班提醒业务,卡片在终端设备的界面消失。示例性的,此时该航班信息如表7所示:
[0146] 表7
[0147]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 True 8:00
[0148] 应理解,存储航班信息的预设规则可以包括两种方式:方式一,终端设备可以基于最新解析的短信对应的时间戳,将数据库中与该短信匹配的航班信息的时间戳进行更新;方式二,数据库中存储的短信时间戳为指示有效航班的短信接收时间(如出票短信的时间戳,或改签短信的接收戳),如果是基于指示无效航班的短信获取的航班信息,则该短信时间戳可以为空。当按照方式二存储航班信息时,本场景中退票的航班信息中的短信时间戳为空,之后基于出票短信的航班标识查询到该匹配航班信息时,若发现短信时间戳为空,则可以将该出票短信对应的时间添加至航班信息的短信时间戳中。
[0149] 当终端设备以图11所示的时序2匹配短信时,该过程可以包括:终端设备首先获取出票短信;然后,基于航班标识(如航班号+起飞时间)在数据库中查询是否有与短信相匹配的航班信息;当未查询到匹配的航班信息时,终端设备会基于出票短信中的航班标识以及航班事件(出票)在数据库存储对应的航班信息(如表1所示)。
[0150] 然后,终端设备的业务APP获取感知APP广播的退票短信内容,并基于航班标识(如航班号+起飞事件)在数据库中查询是否有与短信匹配的航班信息;若查询到表1所示的航班信息与出票短信中的航班匹配时,终端设备可以根据退票短信的时间戳(9:00)与表1所示的短信时间戳(8:00)比较,确定退票短信时间晚于出票时间,说明退票行为发生在出票之后(即用户先购票又退票),航班状态应以退票短信指示的航班事件(退票)来确定,也即应该将该航班的状态应该为无效状态,标志位继续标记为true(如表7所示)。终端设备在确定该已出票航班为无效状态后,会停止对该航班的航班提醒业务,卡片在终端设备的界面消失。示例性的,此时该航班信息如表7所示:
[0151] 根据本申请实施例提供的基于短信进行航班提醒的方法,通过首先根据航班标识匹配航班信息,然后根据短信的时间戳和短信指示的航班事件进行分析,能够获取准确的航班状态,为用户提供准确的航班提醒信息,提升用户体验。
[0152] 示例性的,如图12所示,为本申请实施例提供的另一种航班提醒业务未保持一直开启时,基于短信解析内容分析航班状态的场景示意图。
[0153] 如图12所示,在一种可能的场景中,假设在航班业务关闭状态下,用户首先在8:00接收到起飞时间为2021‑08‑03航班号为CA1635的出票短信1;然后,在8:30接收到该航班的退票短信;之后,又重新订购了该航班的机票,在9:00又接收到该起飞时间为2021‑08‑03航班号为CA1635的出票短信2。其中,各个短信均包括航班的航班标识。则当航班提醒业务开启后,业务APP存在六种获取和匹配短信的时序(时序3至时序8),具体地,这六种时序可以如表8所示:
[0154] 表8
[0155]时序编号 解析短信的具体顺序
时序3 退票短信‑机票1出票短信‑机票2出票短信
时序4 退票短信‑机票2出票短信‑机票1出票短信
时序5 机票1出票短信‑机票2出票短信‑退票短信
时序6 机票1出票短信‑退票短信‑机票2出票短信
时序7 机票2出票短信‑机票1出票短信‑退票短信
时序8 机票2出票短信‑退票短信‑机票1出票短信
[0156] 以下对这六种时序对应的基于短信解析内容确定航班状态的过程分别进行介绍。
[0157] 当终端设备以图12所示的时序3匹配短信时,该过程可以包括:终端设备的业务APP首先获取退票的航班标识(如CA1635+2021‑08‑03)以及航班事件(如航班退票),并根据航班标识在数据库中查找是否有匹配的航班信息。当未查询到匹配的航班信息时,业务APP可以在对应的数据库中存储该航班的航班信息,并且根据航班事件将航班状态标记为无效状态(如将标志位标记为True),示例性的,航班信息例如可以如表9所示:
[0158] 表9
[0159]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 True 08:30
[0160] 然后,终端设备的业务APP获取出票短信1包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如出票),并根据航班标识在数据库中查找是否有匹配的航班信息。当查询到如表9所示的匹配的航班信息时,业务APP可以根据出票短信1对应的时间戳(08:00)与表9所示的退票短信时间戳(08:30)比较,确定出票短信1时间早于退票时间,说明退票行为发生在出票之后(即用户先购票又退票),航班状态应以退票短信指示的航班事件(退票)来确定,也即该航班的状态应该为无效状态,标志位继续标记为True;同时将航班信息中的时间戳修改为出票短信1对应的时间。示例性的,此时该航班信息可以如表10所示:
[0161] 表10
[0162]
[0163]
[0164] 之后,终端设备的业务APP获取出票短信2包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如出票),并可以根据航班标识在数据库中查找到如表10所示的匹配的航班信息。但由于表10航班信息对应的标志位为无效,且短信时间戳(8:00)早于出票短信2的时间(9:00),因而可以确定航班信息对应的是较早出票且已经被取消的航班,即出票短信2是新航班对应的短信。此时,终端设备的业务APP可以在数据库中新增一条与出票短信2对应的航班信息,并基于出票事件将该新增的航班信息中标志位标记为有效状态(False),且时间戳为出票短信2对应的时间。示例性的,此时数据库中的航班信息如表11所示:
[0165] 表11
[0166]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 True 08:00
CA1635 2021‑08‑03 False 09:00
[0167] 终端设备可以基于航班状态仅向用户展示出票短信2对应的航班信息。
[0168] 当终端设备以图12所示的时序4解析短信时,基于短信内容确定航班状态的过程可以包括:终端设备的业务APP首先获取感知APP发送的退票短信,获取退票的航班标识(如CA1635+2021‑08‑03)以及航班事件(如航班退票),并根据航班标识在数据库中查找是否有匹配的航班信息。当未查询到匹配的航班信息时,业务APP可以在对应的数据库中存储该航班的航班信息,并且根据航班事件将该航班信息对应的航班状态标记为无效状态(如将标志位标记为True),示例性的,航班信息例如可以如表12所示:
[0169] 表12
[0170] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 True 08:30
[0171] 然后,终端设备的业务APP获取出票短信2包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如出票),并可以根据航班标识在数据库中查找到如表12所示的匹配的航班信息时,但由于表12航班信息对应的标志位为无效,且时间戳(8:30)早于出票短信2的时间(9:00),因而可以确定该航班是已经被取消的航班。此时,终端设备的业务APP可以在数据库中新增一条与出票短信2对应的航班信息,并基于出票事件将该新增的航班信息中标志位标记为有效状态(False),且时间戳为出票短信2对应的时间。示例性的,此时数据库中的航班信息如表13所示:
[0172] 表13
[0173] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 True 08:30
CA1635 2021‑08‑03 False 09:00
[0174] 之后,终端设备的业务APP获取出票短信1包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如出票),并可以根据航班标识在数据库中查找到如表13所示的匹配的无效航班信息。业务APP可以根据出票短信1对应的时间戳(08:00)与表13所示的退票短信时间戳(09:30)比较,确定退票短信时间晚于出票短信1时间,航班状态仍应以退票短信指示的航班事件(出票)来确定,此时航班状态标志位无需改动,但短信时间戳修改为出票短信1对应的时间。示例性的,此时数据库中的航班信息如表14所示:
[0175] 表14
[0176]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 True 08:00
CA1635 2021‑08‑03 False 09:00
[0177] 终端设备可以基于航班状态仅向用户展示出票短信2对应的航班信息。
[0178] 当终端设备以图11所示的时序5解析短信时,基于短信内容确定航班状态的过程可以包括:终端设备的业务APP首先获取出票短信1的航班标识(如CA1635+2021‑08‑03)以及航班事件(如航班出票)。业务APP根据航班标识在数据库中查找是否有匹配的航班信息,当未查询到匹配的航班信息时,业务APP可以在对应的数据库中存储该航班的航班信息,并且根据航班事件将该航班信息对应的航班状态标记为有效状态(如将标志位标记为False),示例性的,航班信息例如可以如表15所示:
[0179] 表15
[0180]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 False 08:00
[0181] 然后,终端设备的业务APP获取出票短信2包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如航班出票)。业务APP可以根据航班标识在数据库中查找到如表15所示的匹配的航班信息,但由于该已记录的航班同样为有效状态,因而业务APP可以根据出票短信2在数据库新增一条航班信息。示例性的,此时航班信息如表16所示:
[0182] 表16
[0183] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 False 08:00
CA1635 2021‑08‑03 False 09:00
[0184] 之后,终端设备的业务APP获取退票短信包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如退票)。业务APP可以根据航班标识在数据库中查找到如表16所示的匹配的航班信息时,业务APP可以根据退票短信对应的时间戳(08:30)与表16所示的两个时间戳(08:00和09:00)比较,确定退票短信时间晚于出票短信1的时间,也即出票短信1中的航班为无效航班。此时将出票短信1对应的航班信息标志位修改为无效状态(True),而出票短信2对应的航班信息无需改动。示例性的,此时数据库中的航班信息如表17所示:
[0185] 表17
[0186] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 True 08:00
CA1635 2021‑08‑03 False 09:00
[0187] 终端设备可以基于航班状态仅向用户展示出票短信2对应的航班信息。
[0188] 当终端设备以图12所示的时序6解析短信时,基于短信内容确定航班状态的过程可以包括:终端设备的业务APP首先获取出票短信1的航班标识(如CA1635+2021‑08‑03)以及航班事件(如航班出票),并根据航班标识在数据库中查找是否有匹配的航班信息。当未查询到匹配的航班信息时,业务APP可以在对应的数据库中存储该航班的航班信息,并且根据航班事件将该航班信息对应的航班状态标记为有效状态(如将标志位标记为False),示例性的,航班信息例如可以如表18所示:
[0189] 表18
[0190]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 False 08:00
[0191] 然后,终端设备的业务APP获取退票短信包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如退票)。业务APP可以根据航班标识在数据库中查找到如表18所示的匹配的航班信息,然后根据退票短信对应的时间戳(08:30)与表18所示的出票短信1的时间戳(08:00)比较,确定退票短信时间晚于出票短信1的时间,航班状态应以退票短信指示的航班事件(航班退票)来确定,航班状态为无效状态,标志位应由False修改为True。示例性的,修改后的航班信息如表19所示:
[0192] 表19
[0193]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 True 08:00
[0194] 之后,终端设备的业务APP获取出票短信2包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如出票)。业务APP可以根据航班标识在数据库中查找到如表19所示的匹配的航班信息,但由于表19中航班信息对应的标志位为无效状态,且时间戳(08:00)早于出票短信2的时间(09:00),因而可以确定该航班信息对应的航班已经被取消。此时,终端设备的业务APP可以在数据库中新增一条与出票短信2对应的航班信息,并基于出票事件将该新增的航班信息中标志位标记为有效(False),且时间戳为出票短信2对应的时间。示例性的,此时数据库中的航班信息如表20所示:
[0195] 表20
[0196]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 True 08:00
CA1635 2021‑08‑03 False 09:00
[0197] 根据上述航班信息,终端设备可以仅向用户展示出票短信2对应的航班提醒信息。
[0198] 当终端设备以图12所示的时序7解析短信时,基于短信内容确定航班状态的过程可以包括:终端设备的业务APP首先获取出票短信2的航班标识(如CA1635+2021‑08‑03)以及航班事件(如航班出票),并根据航班标识在数据库中查找是否有匹配的航班信息。当未查询到匹配的航班信息时,业务APP可以在对应的数据库中存储该航班的航班信息,并且根据航班事件将该航班信息对应的航班状态标记为有效状态(如将标志位标记为False),示例性的,航班信息例如可以如表21所示:
[0199] 表21
[0200] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 False 09:00
[0201] 然后,终端设备的业务APP获取出票短信1包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如航班出票)。业务APP可以根据航班标识在数据库中查找到如表21所示的匹配的航班信息,但由于该已记录的航班同样为有效状态,因而业务APP可以根据出票短信1在数据库新增一条航班信息。示例性的,此时航班信息如表22所示:
[0202] 表22
[0203]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 False 09:00
CA1635 2021‑08‑03 False 08:00
[0204] 之后,终端设备的业务APP获取退票短信包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如退票)。业务APP可以根据航班标识在数据库中查找到如表22所示的匹配的航班信息。业务APP可以根据退票短信对应的时间戳(08:30)与表22所示的两条航班信息的时间戳(09:00和08:00)比较,确定退票短信时间早于出票短信2的时间,但晚于出票短信1时间,意味着该退票事件是针对出票短信1中的航班的。因而需要将出票短信1对应的航班信息标志位修改为无效状态(True)。示例性的,此时数据库中的航班信息如表23所示:
[0205] 表23
[0206]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 False 09:00
CA1635 2021‑08‑03 True 08:00
[0207] 根据上述航班信息,终端设备可以仅向用户展示出票短信2对应的航班提醒信息。
[0208] 当终端设备以图12所示的时序8解析短信时,基于短信内容确定航班状态的过程可以包括:终端设备的业务APP首先获取出票短信2的航班标识(如CA1635+2021‑08‑03)以及航班事件(如航班出票),并根据航班标识在数据库中查找是否有匹配的航班信息。当未查询到匹配的航班信息时,业务APP可以在对应的数据库中存储该航班的航班信息,并且根据航班事件将该航班信息对应的航班状态标记为有效状态(如将标志位标记为False),示例性的,航班信息例如可以如表24所示:
[0209] 表24
[0210]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 False 09:00
[0211] 然后,终端设备的业务APP获取退票短信包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如退票),并根据航班标识在数据库中查找是否有匹配的航班信息。当查询到如表24所示的匹配的航班信息时,业务APP可以根据退票短信对应的时间戳(08:30)与表24所示的出票短信2的时间戳(09:00)比较,确定退票短信时间早于出票短信2的时间,意味着该退票事件不是针对出票短信2的。因此,出票短信2对应的航班信息无需改动,而在数据库中新增一条退票短信对应的航班信息。示例性的,此时数据库中的航班信息如表25所示:
[0212] 表25
[0213]
[0214]
[0215] 之后,终端设备的业务APP获取出票短信1包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如出票)。业务APP可以根据航班标识在数据库中查找到如表25所示的匹配的航班信息,业务APP可以根据出票短信1对应的时间戳(08:00)与表25所示的退票航班信息的时间戳(08:30)比较,确定出票短信1时间早于退票的时间,航班状态仍应以退票短信指示的航班事件来确定,也即该航班状态无需改动,只需将对应的短信时间戳修改为出票短信1对应的时间(08:00)。示例性的,此时数据库中的航班信息如表26所示:
[0216] 表26
[0217]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 False 09:00
CA1635 2021‑08‑03 True 08:00
[0218] 根据上述航班信息,终端设备可以仅向用户展示出票短信2对应的航班提醒信息。
[0219] 根据本申请实施例提供的基于短信进行航班提醒的方法,当航班提醒业务未保持一直开启时,通过根据短信指示的航班状态以及短信对应的时间戳确定航班状态,能够实现无论以何种顺利解析短信,均可以获取准确的航班状态,从而向用户展示准确的航班提醒信息,提升用户体验。
[0220] 示例性的,如图13所示,为本申请实施例提供的又一种航班提醒业务未保持一直开启时,基于短信解析内容分析航班状态的场景示意图。
[0221] 如图13所示,在一种可能的场景中,在航班提醒业务开启期间,假设用户在8:00接收到起飞时间为2021‑08‑03航班号为CA1635的出票短信。终端设备的业务APP可以根据出票短信的航班标识在数据库查询是否存在匹配的航班信息。当未查询到时,业务APP可以在对应的数据库中存储该出票短信对应的航班信息,并基于出票事件确定该航班信息的标志位为有效状态(False)。示例性的,此时数据库中的航班信息如表27所示:
[0222] 表27
[0223]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 False 08:00
[0224] 然后,航班提醒业务关闭,由于数据库中的航班信息标志位为有效状态(7alse),因此该航班信息在航班提醒业务关闭时也随之被清除。
[0225] 在航班提醒业务关闭期间,用户在9:00接收到该航班的改签短信;之后,航班提醒业务开启。此时,业务APP存在两种获取和匹配短信的时序,具体地,这两种时序可以如表28所示:
[0226] 表28
[0227] 时序编号 匹配短信的具体时序时序9 出票短信‑改签短信
时序10 改签短信‑出票短信
[0228] 当业务APP以图13所示的时序9匹配短信时,该过程可以包括:终端设备的业务APP首先获取出票短信包括的航班标识(如CA1635+2021‑08‑03)以及航班事件(如出票),并根据航班标识在数据库中查找是否有匹配的航班信息。当未查询到匹配的航班信息时,业务APP可以在对应的数据库中重新存储该航班的航班信息,并且根据航班事件将该航班信息对应的航班状态标记为有效状态(如将标志位标记为False),示例性的,航班信息例如可以如表29所示:
[0229] 表29
[0230] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 False 08:00
[0231] 之后,终端设备的业务APP获取改签短信包括的航班标识(如改签前的航班标识:CA1635+2021‑08‑03,改签后的航班标识:CZ1231+2021‑09‑15)以及航班事件(航班改签),并根据航班标识在数据库中查找是否有匹配的航班信息。当查询到改签前的航班标识与表
29所示的航班信息匹配时,业务APP可以根据改签短信对应的时间戳(09:00)与表29所示的出票短信时间戳(08:00)比较,确定改签短信时间晚于出票短信的时间,说明改签行为发生在出票之后(即用户购票后又改签),航班状态应以改签短信指示的航班事件(航班改签)来确定,也即该航班的状态应该修改为无效状态,标志位此时由有效(False)修改为无效(True)。
[0232] 类似地,终端设备还可以基于改签后的航班标识(如CZ1231+2021‑09‑15)在数据库中查找是否有匹配的航班信息。当未查询到匹配的航班信息时,业务APP可以在对应的数据库中存储该改签后航班的航班信息,并且根据航班事件将该航班信息对应的航班状态标记为有效状态(如将标志位标记为False)。示例性的,该场景下修改后航班信息例如可以如表30所示:
[0233] 表30
[0234]航班号 起飞时间 标志位(isRefund) 短信时间戳
CA1635 2021‑08‑03 True 08:00
CZ1231 2021‑09‑15 False 09:00
[0235] 当业务APP以图13所示的时序10解析短信时,该过程可以包括:终端设备的业务APP首先获取改签短信包括的航班标识(如改签前的航班标识CA1635+2021‑08‑03,改签后的航班标识:CZ1231+2021‑09‑15)以及航班事件(航班改签),并根据航班标识在数据库中查找是否有匹配的航班信息。当未查询到匹配的航班信息时,业务APP可以在对应的数据库中存储该改签短信指示的航班信息,如改签前的航班信息和改签后的航班信息,并且根据航班事件将改签前的航班信息对应的航班状态标记为无效状态(如将标志位标记为True),将改签后的航班信息对应的航班状态标记为有效状态(如将标志位标记为False)。示例性的,航班信息例如可以如表31所示:
[0236] 表31
[0237] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 True 09:00
CZ1231 2021‑09‑15 False 09:00
[0238] 之后,终端设备的业务APP获取出票短信包括的航班标识(CA1635+2021‑08‑03)以及航班事件(航班出票),并根据航班标识在数据库中查找是否有匹配的航班信息。当查询到航班标识与表31所示的改签前的航班信息匹配时,业务APP可以根据出票短信对应的时间戳(08:00)与表31所示的改签短信时间戳(09:00)比较,确定改签短信时间晚于出票短信的时间,说明改签行为发生在出票之后(即用户购票后又改签),航班状态应以改签短信指示的航班事件(航班改签)来确定,也即该航班的状态无需改动,而需要将航班信息中的时间戳修改为出票短信对应的时间。示例性的,此时该场景下的航班信息例如可以如表32所示:
[0239] 表32
[0240] 航班号 起飞时间 标志位(isRefund) 短信时间戳CA1635 2021‑08‑03 True 08:00
CZ1231 2021‑09‑15 False 09:00
[0241] 根据上述航班信息,终端设备可以仅向用户展示改签短信中指示的新航班对应的航班提醒信息。
[0242] 根据本申请实施例提供的基于短信进行航班提醒的方法,当航班提醒业务未保持一直开启时,通过根据短信指示的航班状态以及短信对应的时间戳确定航班状态,能够实现无论以何种顺利解析短信,均可以获取准确的航班状态,从而向用户展示准确的航班提醒信息,提升用户体验。
[0243] 应理解,上述图12和图13所示的航班提醒业务未保持一直开启的实施例中,以短信内容包含完整的航班标识为例进行介绍。当短信(如退票短信、改签短信或航班取消短信等)包含的航班标识不完整时,可以采用上述针对短信不包括航班标识的情形所介绍的过程来确定航班状态,也即根据数据库存储的航班信息的部分字段或航班信息的数量来匹配短信和数据库中的航班信息,若匹配,则可根据短信指示的航班事件确定对应的航班的航班状态。具体实现可参见上述相关介绍,此处对该过程不再赘述。
[0244] 示例性的,如图14所示,为本申请实施例提供的一种基于短信进行航班提醒的方法的示意性流程图。该过程可以由终端设备作为主体来执行,具体包括以下步骤:
[0245] S1401,获取第一短信,该第一短信对应的时间戳为第一时刻,该第一短信用于指示第一航班为出票状态。
[0246] 其中,第一短信例如可以为如图4B所示的出票短信。第一短信对应的时间戳可以是终端设备接收该第一短信的时间;或者,第一短信对应的时间戳也可以是短信服务平台发送该第一短信的时间。本申请实施例对此不做限定。示例性的,第一时刻例如可以对应于图4A所示的接收出票短信的时间08:00。
[0247] S1402,根据第一短信,在数据库中存储第一航班对应的航班信息,该航班信息包括第一航班的航班标识、第一航班的航班状态和第一时刻。
[0248] 在一些实施例中,终端设备接收第一短信后,可以获取该第一短信包括的航班标识(也即上文描述的航班标识)。航班标识用于确定唯一的航班,航班标识例如可以包括:航班号和起飞时间,或者票号,或者订单号等。此外,终端设备还可以根据第一短信指示的航班事件确定航班状态,比如,终端设备可以根据第一短信指示航班出票事件确定对应航班处于出票状态,属于有效状态;又比如,终端设备也可以根据退票短信指示的退票事件确定对应航班处于退票状态,属于无效状态。其中,当航班处于有效状态时,该航班也可被描述为有效航班,是指航班业务按照出票通知正常起飞且用户按照出票通知乘此航班正常出行时对应的航班。与之相对地,当航班处于无效状态时,该航班也可被描述为无效航班,是指由于客观原因航班无法按照计划正常起飞(如由于天气原因,航班取消或延迟等);或者,如果由于用户主观原因自行改变航程(如退票或改签航班),用户不再乘此航班出行。示例性的,无效航班对应的情形例如可以包括:退票、改签、航班取消等。
[0249] 在一些实施例中,终端设备可以根据第一短信包括的航班标识在数据库中查询是否存在与该第一短信匹配的航班信息。其中,与第一短信匹配的航班信息是指航班信息对应的航班与第一短信指示的航班一致,比如航班信息包括的航班标识(如航班号+起飞时间)与第一短信包括的航班标识(如航班号+起飞时间)相同时,可认为该航班信息与第一短信指示的未相同航班,两者互相匹配。
[0250] 在一些实施例中,当未在数据库中查询到与第一短信匹配的航班信息时,终端设备可以据第一短信,在数据库中存储第一航班对应的航班信息。示例性的,数据库中存储的航班信息例如可以如表1所示。
[0251] 应理解,通过首先在数据库中查询是否存储与短信匹配的航班信息,若未查询到,才在数据库存储该短信对应的航班信息,可以保证一个航班在数据库中存储有一条航班信息,避免一个航班对应多条航班信息时容易带来航班状态分析错误的问题,便于后续根据该航班信息为基准分析航班状态,向用户提示准确的航班信息。
[0252] S1403,获取第二短信,该第二短信对应的时间戳为第二时刻,该第二时刻用于指示航班无效状态。
[0253] 其中,第二短信可以是指示航班无效的短信,例如,第二短信用于指示航班退票;或者,第二短信用于指示航班取消;或者,第二短信用于指示航班为被改签。示例性的,第二短信例如可以为如图5B所示的改签短信,或者可以为如图6B所示的退票短信,又或者可以为如图7B所示的航班取消短信。第二短信对应的时间戳可以是终端设备接收该第二短信的时间;或者,第二短信对应的时间戳也可以是短信服务平台发送该第一短信的时间。本申请实施例对此不做限定。示例性的,第一时刻例如可以对应于图5A所示的接收出票短信的时间09:00。
[0254] S1404,根据预设规则,确定第二短信与数据库中第一航班对应的航班信息匹配。
[0255] 这里的预设规则可以是用于匹配短信和数据库中航班信息的匹配规则。在一些实施例中,该预设规则例如可以包括以下两种:1、当第二短信包括第一航班的航班标识时,根据第一航班的航班标识确定第二短信与数据库中第一航班对应的航班信息匹配;2、当第二短信不包括第一航班的航班标识时,查询数据库中航班信息的数量,若数据库中只存在一条航班信息时,则确定第二短信与数据库中的该航班信息匹配。
[0256] 具体来说,如果第二短信包括与航班信息中相同的航班标识(如航班号+起飞时间),则可以确定该第二短信与该航班信息匹配;或者,如果第二短信不包括与航班信息中相同的航班标识(如航班号+起飞时间),但此时数据库只有一条航班信息时,则自动认为该第二短信与这条航班信息匹配。
[0257] 应理解,根据上述预设规则匹配短信和数据库中的航班信息,能够在短信缺乏完整的航班标识(即航班标识)时,也能将短信与航班匹配,从而获取到准确的航班状态,向用户展示准确的航班提醒信息。
[0258] S1405,根据该第二短信指示的航班无效状态,将该航班信息中第一航班的航班状态更改为无效状态。
[0259] 在一些实施例中,当确定第二短信与第一航班对应的航班信息匹配后,可以根据第二短信指示的航班事件,更新第一航班的航班状态。比如,当第二短信指示对第一航班进行改签,或者第二短信指示对第一航班进行退票,或者第二短信指示取消第一航班时,第一航班的航班状态更改为无效状态。
[0260] 在一些实施例中,当确定第二短信与第一航班对应的航班信息匹配后,需要进一步结合时间戳、航班信息的状态等,确定第一航班的新的航班状态。比如,在上述描述的航班提醒业务未一直开启场景下,终端设备匹配短信是无时序的,此时需要综合短信内容、时间戳、航班信息的状态等,确定新的航班状态。
[0261] 示例性的,终端设备可以比较第二时刻和第一时刻;当第二时刻晚于第一时刻时,根据第二短信指示的航班无效状态,将航班信息中第一航班的航班状态更改为无效状态。
[0262] 在一些实施例中,如果终端设备获取第三短信,该第三短信对应的时间戳为第三时刻,且该第三短信用于指示第一航班出票;则终端设备可以根据预设规则确定第三短信与数据库中第一航班对应的航班信息匹配;之后根据航班状态以及时间戳确定新的航班状态,比如,当第一航班对应的航班信息为无效状态,且第一时刻晚于第三时刻时,将第一航班对应的航班信息中的时间更改为第三时刻;当第一航班对应的航班信息为无效状态,且第一时刻早于第三时刻时,在数据库新增第三短信对应的航班信息;当第一航班对应的航班信息为无效状态,在数据库新增所述第三短信对应的航班信息。
[0263] 在一些实施例中,当第二短信用于指示第一航班为被改签状态时,终端设备还可以根据第二短信,在数据库中新增改签后的航班对应的所述航班信息。或者,当第三短信用于指示第一航班为被改签状态时,终端设备还可以根据第三短信,在数据库中新增改签后的航班对应的所述航班信息。
[0264] S1406,停止运行无效状态的航班对应的航班提醒业务,航班提醒业务用于向用户展示航班提醒信息。
[0265] 在一些实施例中,终端设备确定航班处于无效状态时,可以对与该无效航班进行杀进程操作,停止运行该无效航班对应的航班提醒业务。而当终端设备确定航班处于有效状态时,终端设备会运行该有效状态的航班的相关进程,运行该有效航班对应的航班提醒业务。
[0266] 本申请实施例还提供了一种终端设备,包括:显示器;一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行上述任一个方法中的一个或多个步骤。
[0267] 本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
[0268] 本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
[0269] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
[0270] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
[0271] 以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。