一种短信提醒的触发方法及装置与流程

文档序号:11234138阅读:659来源:国知局
一种短信提醒的触发方法及装置与流程

本发明涉及通信控制技术领域,更为具体来说,本发明为一种短信提醒的触发方法及装置。



背景技术:

在电信行业中,短信提醒业务是非常重要的一个业务环节,其中短信提醒平台模块,触发短信发送的逻辑中,存在大量的条件匹配,例如:a条件匹配成功,则触发b短信发送;根据联通规范要求,条件匹配种类有如下几个大类:阈值提醒,即xx套餐使用量超过总量的80%时,触发阈值告警短信;余额提醒,即用户当前账号余额的剩余量,发推送短信;状态变更提醒,如从“有效状态”变更为“充值期状态”,触发短信推送;流量封顶提醒,即指定的封顶套餐,到达指定的封顶值,触发短信推送。

在条件匹配环节中,实现上述目的的传统方式是:采用在程序代码中的“条件匹配”方法中运用了大量的条件枚举的形式,将参数读入,写在if、else中判断条件中,实现相应的场景判断。

但是,传统的设计方法存在如下问题:

一、大量的条件枚举导致代码的冗余度高:所有情景或情况必须一一枚举,研发投入成本非常高。

二、开发频率高:如果增加没有枚举过的场景,则只能重新调整程序代码,从而导致代码开发频率过高。

三、难以实现复杂度高的短信提醒业务:随着电信业务的发展,短信提醒业务的复杂度在不断增大,触发短信提醒的条件由原来的“单一调节匹配”转换为“多个条件同时匹配”;套餐由“单阈值赠送”(如:前100m免费,后收费)演变成“循环赠送”(如:前100m赠送,后40m收费,再后100m免费,再后40m或多少m收费,……,循环),这样的复杂度较高的条件匹配只能在编码过程中通过“写死”的方式来实现;然而,这样的做法,并不能适应多种不同的复杂短信提醒业务和随着时间可能不断变化的业务,因而在程序设计上是不可取的。

因此,如何解决实现短信提醒业务过程中存在的代码冗余度高、开发频率高、研发投入大、逻辑实现过程复杂的问题,成为了本领域技术人员亟待解决的技术问题和研究的重点。



技术实现要素:

为解决实现短信提醒业务过程中存在的诸多问题,本发明公开了一种短信提醒的触发方法及装置,通过字符串表达式的方式对短信提醒业务的实现过程进行优化,降低了代码的复杂程度,极大地减少代码的重复开发,降低了实现短信提醒业务过程中的研发投入。

为实现上述的技术目的,本发明公开了一种短信提醒的触发方法,该触发方法包括如下的步骤,

步骤1,读取待触发的短信相关的业务参数;

步骤2,将所述业务参数配置于字符串表达式中,计算出所述字符串表达式的布尔值;

步骤3,如果所述布尔值为“真”,则触发短信提醒;如果所述布尔值为“假”,则返回步骤1。

本发明创新地通过字符串表达式的配置实现短信提醒的触发,避免了传统方案中代码冗余度高、重复开发频率大等问题,不仅降低了研发成本,而且从长远来看其必然也提高了研发速度。

进一步地,步骤2中,所述字符串表达式包括算数运算符、关系运算符、逻辑运算符以及参量,配置的方式为将各业务参数之间的关系转换为字符串表达式描述、将所述参量替换为参量对应的业务参数。

通过包含多种运算符的字符串表达式,可准确无误地表达出是否触发短信提醒的判断逻辑,进而准确地触发短信提醒。

进一步地,为提高字符串表达式的运算速度和准确度,步骤2中,还包括字符串表达式解析的步骤,计算出解析后的字符串表达式的布尔值。

进一步地,步骤2中,以二叉树的形式解析所述字符串表达式,所述二叉树的根节点包括字符串表达式的布尔值,同一父节点的两个子节点之间通过关系运算符或者逻辑运算符运算,各个父节点包括布尔值;通过层层递归的方式计算出所述字符串表达式的布尔值。

本发明创新地通过二叉树表示字符串表达式,各个不同分支的节点可并行运算,提高了本发明的执行速度。

进一步地,步骤1中,所述业务参数通过电信系统内部获取和/或外部配置的方式产生。

本发明的另一个发明目的在于提供一种短信提醒的触发装置,该触发装置包括:读取模块、配置模块及判断模块;

所述读取模块,用于读取待触发的短信相关的业务参数;

所述配置模块,用于将所述业务参数配置于字符串表达式中,计算出所述字符串表达式的布尔值;

所述判断模块,用于判断所述布尔值真假,并根据判断结果判断是否触发短信提醒。

本发明创新地通过字符串表达式的配置实现短信提醒的触发,避免了传统方案中代码冗余度高、重复开发频率大等问题,不仅降低了研发成本,而且从长远来看提高了研发速度。

进一步地,所述字符串表达式包括算数运算符、关系运算符、逻辑运算符以及参量,所述参量用于被其对应的业务参数替换。

进一步地,所述配置模块包括字符串解析单元和计算单元,所述字符串解析单元用于解析字符串表达式,所述计算单元用于计算出解析后的字符串表达式的布尔值。

进一步地,所述字符串解析单元为二叉树,所述二叉树的根节点包括字符串表达式的布尔值,各个父节点包括布尔值。

进一步地,所述读取模块为内部获取模块、外部配置模块中的至少一种。

本发明的有益效果为:本发明通过“字符串表达式求取波尔值”方式替代“枚举判断方式”,大大精简了代码量,彻底解决了传统方法存在的冗余度大、开发频率高、研发投入大等问题,本发明具有可配置性强、灵活性强等突出优点。

本发明通过参数之间的运算实现灵活配置各种常见场景和复杂场景;从而实现了复杂场景配置快、多个条件叠加配置即可的原则,大大增加了程序的灵活性,降低了修改代码的频率,具有“一劳永逸”的技术效果。

附图说明

图1为短信提醒的触发方法流程示意图。

图2为短信提醒的触发装置组成示意图。

图3为通过二叉树返回布尔值的流程示意图。

图4为二叉树组成示意图。

具体实施方式

下面结合说明书附图对本发明短信提醒的触发方法及装置进行详细的解释和说明。

如图1、2、3、4所示,本发明公开了一种短信提醒的触发方法,是一种条件判定中支持参数运算的触发方法,通过字符串表达式求取波尔值,取代传统的“枚举判断方式”;该触发方法包括如下步骤。

步骤1,读取待触发的短信相关的业务参数;本实施例中,业务参数通过电信系统内部获取和/或外部配置的方式产生。“和/或”应理解为两条件同时成立或者其中一个条件成立,本实施例中,业务参数可以从电信系统内部获取,也可以通过外部工作人员配置得到,或既从电信系统内部获取、又从外部工作人员配置得到。

步骤2,将业务参数配置于字符串表达式中,配置的方式为将参量替换为参量对应的业务参数,且将各业务参数关系之间的结构转换为字符串表达式进行描述,计算出字符串表达式的布尔值。

本实施例中,在计算布尔值之前,步骤2还包括字符串表达式解析的步骤,然后计算出解析后的字符串表达式的布尔值。更为具体地,根据字符串表达式构造二叉树模型,以二叉树的形式解析字符串表达式,二叉树的根节点包括字符串表达式的布尔值,同一父节点的两个子节点之间通过关系运算符或者逻辑运算符运算,并构造节点内容,各个父节点包括布尔值;根据业务参数组成的关系对象的数量,在字符串表达式exp中,顺序将每个关系对象转换为一个字符串表达式exp,通过关系运算符或逻辑运算符分解成若干个域,exp1、exp2、……expn,将其转换为二叉树,如图4所示,本实施例中,二叉树的节点格式为:“1或2:变量”,其中“1”表示变量中存放“待运算表达式”,用exp1、exp2、……expn表示,其仅仅是含有业务参数的运算表达式;“2”表示连接两个子节点的关系运算符,用rel1、rel2、…reln表示。比如,“23*(348+567)%500”诸如这样的表达式,本发明可通过longstrbc(char*exp)方法计算求取。将表达式exp1、exp2、……expn的返回值返回给其父节点;父节点通过其reln获得自己的波尔值,再返回给上层的父节点;这样层层递归,最终获取到根节点的波尔值,即exp的表达式最终的波尔值,如果为“1”,则触发短信提醒;如果为“0”,则不触发短信提醒、进行下一轮的判断。

本实施例中,字符串表达式exp包括算数运算符、关系运算符、逻辑运算符及参量;其中,算数运算符包括“+”、“-”、“*”、“/”、“%”、“++”、“--”等,关系运算符包括“==”、“!=”、“>”、“<”、“>=”、“<=”等,逻辑运算符包括“&&”、“||”、“!”、“^”、“&”、“|”等。

步骤3,如果布尔值为“真”,则触发短信提醒;如果布尔值为“假”,则返回步骤1,重新进行触发步骤。

如图1、3、4所示,本发明把特定的若干个参数通过若干个符号组合在一起,形成字符串表达式exp,在匹配条件中,判断:当exp为“true”时,则触发短信推送和提醒,当exp为“false”时,则不进行短信提醒。通过上述基于字符串表达式exp的触发方法,本发明使程序设计的灵活性、可配置性等方面得到极大的增强。

比如,本发明可按照如下的方式实施。

循环套餐中每免费赠送量用到80%预警短信条件。

配置思路为:“套餐使用量”与“套餐循环量”取余计算的值小于“套餐总赠送量”与“套餐循环量”取余计算的值,并且“套餐使用量与本次使用量的和”与“套餐循环量”取余计算的值大于“套餐总赠送量”与“套餐循环量”取余计算的值;即

((param2%param4)<(param3%param4))&&(((param2+param1)%param4))>(param3%param4))

在多条件匹配场景下,aaa套餐,余量不足80%,且余额不足10元时,触发短信推送。配置思路为:当前套餐是aaa,并且使用量大于总量的80%并且当前余额不足10元;即:exp:(param5==aaa)&&(param2+param1>param3*0.8)&&(param8<10)。下表为在条件表达式中对应的参数。

如图2、4所示,本发明还公开了一种短信提醒的触发装置,可应用于电信计费系统中,具体用于短信平台模块中,事先,维护人员会将各种场景的判定条件记录在“短息条件表”中,短信平台程序会将此表加载到内存中;本发明基于短信平台使用,接受到电信计费系统上游模块的话单累计增量时触发短信判定;短信平台会遍历“短信条件表”,获取出条件表中的condition字段;逐一进行条件匹配。该触发装置包括:读取模块、配置模块及判断模块,本发明可采用软件实现,但是如果采用纯硬件实施本发明的触发装置,读取模块、配置模块及判断模块可依次连接,具体说明如下。

读取模块,用于读取待触发的短信相关的业务参数;本实施例中,读取模块为内部获取模块、外部配置模块中的至少一种。

配置模块,用于将业务参数配置于字符串表达式中,计算出字符串表达式的布尔值;字符串表达式包括算数运算符、关系运算符、逻辑运算符以及参量,参量用于替换为其对应的业务参数。更为具体地,配置模块包括字符串解析单元和计算单元,字符串解析单元用于解析字符串表达式,计算单元用于计算出解析后的字符串表达式的布尔值。本实施例中,字符串解析单元为二叉树,二叉树的根节点包括字符串表达式的布尔值,各个父节点包括布尔值。

判断模块,用于判断布尔值真假,并根据判断结果判断是否触发短信提醒。如果布尔值为“真”,则触发短信提醒;如果布尔值为“假”,则返回步骤1。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“本实施例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本发明的保护范围之内。如,在本发明的技术启示下,对于上述触发条件匹配结果为真的情况,会触发相应的短信提醒;即,在“短息条件表”的condition字段中所配置的参数,还可以作为后续“短信发送表”中的参数。举例:时间类型yy、mm,在技术方案第一步骤中能将yy、mm求取为2016和10。若发送短信内容为“截止到2016年10月,您的……”,可配置成“截止到yy年mm月,您的……”;融入这种能让参数参与运算的理念,让很多冗余的配置得以简化,频繁的代码调整变成仅仅配置的调整。

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