一种基于mybatis拦截器实现订单状态同步的方法及服务器技术

技术编号:28715567 阅读:15 留言:0更新日期:2021-06-06 01:49
本发明专利技术公开了一种基于mybatis拦截器实现订单状态同步的方法及服务器,属于订单状态同步技术领域,解决现有技术中的订单管理模块,易造成导致交易耗时长,效率低,且易失败,客户体验感极差,以及系统整体性能差等问题。包括用户操作应用:用于接收用户发起的订单操作请求,并在订单表和订单状态表中登记订单信息,提交订单事务,并实时返回消息,即完成订单预约;系统内部操作应用:用于配置Mybatis拦截器;配置好后,通过Mybatis拦截器监控系统执行数据操作,若监控到,基于监控的数据映射到所对应业务场景配置的SQL语句,映射后,执行SQL语句完成订单状态同步操作,若未监控到,则不执行。本发明专利技术用于订单状态同步。本发明专利技术用于订单状态同步。本发明专利技术用于订单状态同步。

【技术实现步骤摘要】
一种基于mybatis拦截器实现订单状态同步的方法及服务器


[0001]一种基于mybatis拦截器实现订单状态同步的方法及服务器,用于订单状态同步,属于订单状态同步


技术介绍

[0002]现有技术中的订单管理模块(列如在电商业务中,用户在前台购买商品完成交易后,后台系统会扣除当前的商品库存系统,同时消息把订单数据发送到配置系统,配置系统会安排订单的派送等后续操作),要完成预约、取消预约、发货、收货等操作需要很多步骤(即指订单预约),其中,订单管理模块在订单预约完成后的实现逻辑具体如下:
[0003]1、在订单预约完成后需把数据实时推送给下游各派送系统;
[0004]2、基于第1步完成的前提下,根据当前的预约数量同步更新现有库存的数量;
[0005]3、如果预约的数据需要许可证,还需要调用许可证服务同步更新许可证数量;
[0006]4、如果预约的数据是外检物料,还需要将预约数据推送外检系统,等待外检系统结果等。
[0007]根据不同的业务需要,其场景处理越不同,采用上述方式,具体存在如下技术问题:
[0008]1.将用户操作和系统内部操作融合在一个应用中(即在订单管理模块中),业务逻辑越复杂流程步骤越多的情况下,整个预约过程都需要实时等待上一步操作的处理结果(那怕跟用户交互无关的数据都要等待),导致交易耗时长,效率低,且易失败,客户体验感极差等问题;
[0009]2.上述整个过程中计算订单库存、向其他关联系统发送消息通知等数据集成操作都是属于自身的系统内部操作,跟用户操作无关,将用户操作和系统内部操作融合在一个应用中(即在订单管理模块中),用户操作时,若出现大批量预约等情况会影响系统整体性能。

技术实现思路

[0010]本专利技术的目的在于提供一种基于mybatis拦截器实现订单状态同步的方法及服务器,解决现有技术中的订单管理模块,易造成导致交易耗时长,效率低,且易失败,客户体验感极差,以及系统整体性能差等问题。
[0011]为了实现上述目的,本专利技术采用的技术方案为:
[0012]一种基于mybatis拦截器实现订单状态同步的方法,在系统中加载有用户操作应用和系统内部操作应用;
[0013]用户操作应用:
[0014]用于接收用户发起的订单操作请求,并在订单表和订单状态表中登记当前订单的订单信息,提交订单事务,并实时返回成功操作响应,即完成订单预约,其中,订单表存储订单的基本信息,订单状态表存储订单表中的订单状态,与订单表一对一关联:
[0015]用于配置Mybatis拦截器的订单表和订单状态表新增和更新操作的SQL语句;
[0016]配置好后,通过Mybatis拦截器监控系统执行数据操作,即提交订单事务操作,若监控到系统执行数据操作,并判断数据是否执行完成,即判断订单预约是否完成,若完成,基于监控的数据、映射到所对应业务场景配置的订单表和订单状态表的新增和更新操作的SQL语句,映射后,执行SQL语句完成订单状态同步操作,若未监控到,则不处理。
[0017]系统内部操作应用:
[0018]接受到用户操作应用的消息,做相应的数据操作。
[0019]进一步,Mybatis拦截器配置具体如下:
[0020]根据实际的不同业务场景,选择配置各种场景下SQL语句监听订单表及订单状态表,即监控新增和更新操作中涉及到的订单和状态字段的操作,基于监控的内容配置Mybatis拦截器的操作如下:
[0021]配置KEYS数组对象,KEYS数组对象包含发送消息的属性字段,目的是监控系统执行的数据的属性是否包含KEYS里面的属性;
[0022]配置对应业务场景需求监听订单表和订单状态表新增和更新操作的SQL语句;
[0023]配置正则表达式规则;
[0024]配置Spring发布和订阅事件。
[0025]进一步,当用户通过Mybatis拦截器监控系统数据执行操作,判断用户发起的订单事务是否提交,若提交完成则获取配置对应的业务场景的SQL语句,获取后,使用正则表达式判断执行SQL语句是否包含监听的对象,若包含了监听的对象,则从监听的对象里获取订单id值,再通过Spring的发布订阅模型来发布和订阅事件;即通过TransactionalEventListener实现事务的监听,当完成了事务Commited,Rollback操作后才会去发送包含当前订单id和订单状态的topic消息,即当前订单的订单信息,其中,订单状态包括创建状态,派送状态,收货状态,取消状态;若否,则不处理。
[0026]进一步,接受到用户操作应用的消息,做相应的数据操作具体为:
[0027]监听topic消息,消费该topic消息,根据topic消息的订单id值到数据库获取订单的相关数据,后把订单的相关数据推送给相关联系统,同时更新自身系统。
[0028]一种基于mybatis拦截器实现订单状态同步的服务器,包括:
[0029]用户操作应用:
[0030]用于接收用户发起的订单操作请求,并在订单表和订单状态表中登记当前订单的订单信息,提交订单事务,并实时返回成功操作响应,即完成订单预约,其中,订单表存储订单的基本信息,订单状态表存储订单表中的订单状态,与订单表一对一关联;
[0031]用于配置Mybatis拦截器的订单表和订单状态表新增和更新操作的SQL语句;
[0032]配置好后,通过Mybatis拦截器监控系统执行数据操作,即提交订单事务操作,若监控到系统执行数据操作,并判断数据是否执行完成,即判断订单预约是否完成,若完成,基于监控的数据、映射到所对应业务场景配置的订单表和订单状态表的新增和更新操作的SQL语句,映射后,执行SQL语句完成订单状态同步操作,若未监控到,则不处理。
[0033]系统内部操作应用:
[0034]接受到用户操作应用的消息,做相应的数据操作。
[0035]与现有技术相比,本专利技术的优点在于:
[0036]一、本专利技术将用户操作和系统内部操作进行分离,整个订单预约过程中跟用户交互无关的数据不需要同步处理,是通过异步处理,降低了交易耗时长,效率低,且易失败的问题,并且提高了客户体验感,与之前的单应用相比较,效率提升了80%,改造前用户预约一个订单耗时大约3S,改造后只需要500MS;
[0037]二、本专利技术将用户操作和系统内部操作进行分离提高了系统的整体性能,叉职责明确。
附图说明
[0038]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应该看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0039]图1为本专利技术中的用户操作应用的执行流程示意图;
[0040]图2为本专利技术中的系统内部操作应用流程示意图。...

【技术保护点】

【技术特征摘要】
1.一种基于mybatis拦截器实现订单状态同步的方法,其特征在于,在系统中加载有用户操作应用和系统内部操作应用;用户操作应用:用于接收用户发起的订单操作请求,并在订单表和订单状态表中登记当前订单的订单信息,提交订单事务,并实时返回成功操作响应,即完成订单预约,其中,订单表存储订单的基本信息,订单状态表存储订单表中的订单状态,与订单表一对一关联;用于配置Mybatis拦截器的订单表和订单状态表新增和更新操作的SQL语句;配置好后,通过Mybatis拦截器监控系统执行数据操作,即提交订单事务操作,若监控到系统执行数据操作,并判断数据是否执行完成,即判断订单预约是否完成,若完成,基于监控的数据、映射到所对应业务场景配置的订单表和订单状态表的新增和更新操作的SQL语句,映射后,执行SQL语句完成订单状态同步操作,若未监控到,则不处理。系统内部操作应用:接受到用户操作应用的消息,做相应的数据操作。2.根据权利要求1所述的一种基于mybatis拦截器实现订单状态同步的方法,其特征在于:Mybatis拦截器配置具体如下:根据实际的不同业务场景,选择配置各种场景下SQL语句监听订单表及订单状态表,即监控新增和更新操作中涉及到的订单和状态字段的操作,基于监控的内容配置Mybatis拦截器的操作如下:配置KEYS数组对象,KEYS数组对象包含发送消息的属性字段,目的是监控系统执行的数据的属性是否包含KEYS里面的属性;配置对应业务场景需求监听订单表和订单状态表新增和更新操作的SQL语句;配置正则表达式规则;配置Spring发布和订阅事件。3.根据权利要求2所述的一种基于mybatis拦截器实现订单状态同步的方法,其特征在于:当用户通过Mybatis拦截器监控系统数据执行操作,判断用户发起的订单事务是否提交,若提交完成则获取配置对应的...

【专利技术属性】
技术研发人员:黄融李耀彭磊杨志文
申请(专利权)人:武汉众邦银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1