业务操作留痕记录的获取方法及业务系统与流程

文档序号:32422372发布日期:2022-12-02 23:14阅读:201来源:国知局
业务操作留痕记录的获取方法及业务系统与流程

1.本发明涉及产业数字化技术领域,尤其涉及一种业务操作留痕记录的获取方法及业务系统。


背景技术:

2.国家在城市治理远景目标要明确提出要加快数字化发展,打造数字经济新优势,协同推进数字产业化和产业数字化转型,加快数字社会建设步伐。政府各个部门都在建设对应的信息业务系统来加快推进数字化办公,由之前的各项业务办理中的所有环节完全靠人转变为大部分环节在线上办理,所有信息的维护都是通过线上系统来填写。
3.之前没有数字化系统时,各个业务的办理涉及到数据信息的维护都是通过实体纸张来,然后再把这些纸张封存到档案室。现在政府部门在各项业务的办理都是在电子系统中通过新增、修改、删除等操作来维护数据,每次操作数据的痕迹也要保留记录下,以便在后期需要的时候可以提供出来。从而我们就需要把用户从登录到在系统中某些业务办理以及退出的留痕记录给保存到数据库或者其他存储介质。在某些时候因为个人在业务系统上的操作导致不良的后果,需要定位到具体人提供依据。
4.相关技术中,用户在系统的业务在数据库都会有对应的表来存储办理中生成的业务数据,技术人员就可以在系统部署落地时,把数据库部署架构设计为集群或者主备模式,即多台服务器之间同步存储,这样不仅可以保证数据库的高可用,还可以实现表数据的实时备份。因为用户在系统某个模块办理业务的过程中会导致对应的表数据有变化,可能新增数据,可能更新数据,也可能删除数据,在这些数据变化的过程中就会把之前的数据痕迹备份下来。
5.上述技术手段存在如下缺陷:
6.通过数据库自身机制来记录操作痕迹,备份的数据不具备可读性。因为表设计的技术性很强,只有专业技术人员才能看懂,普通的政府业务职员根本无法看懂,不具备可读性。业务系统正式上线后进入运行时期,不可能一遇到数据问题就去找软件公司来支撑,这都是需要花费大量的费用成本。数据库自身的备份机制都是为了防止运行过程中出现重大故障导致数据丢失。再者数据库自身的数据备份根本无法定位到是哪个账号哪个电脑操作系统,无法把责任定位到具体的人身上。
7.另有相关技术中,用户在系统的业务在数据库都会有对应的表来存储办理中生成的业务数据,系统前端业务在增删改的时候都会调用后端应用服务,后端程序的service层处理完相应的业务逻辑会把业务数据入库,待业务数据入库成功后再写一段业务逻辑把前端请求后端服务的数据痕迹记录(系统名称、功能模块名称、用户名称、客户端ip、痕迹数据内容、服务耗时、请求服务、操作类型等主要字段)保存到表里。通过这种方式也可以把用户操作业务功能的痕迹记录下来。
8.上述技术手段存在如下缺陷:
9.对现有系统代码侵入性太大,只要想在某个业务的增删改等操作增加痕迹留存,
都需要在对应的后端应用服务的service层业务逻辑新写一段程序。都需要增加不少的工作量,如果客户想在某几个关键业务的操作留痕,这种方式还可以接受,假如客户想在某几十个业务的操作都留痕,工作量增加了n倍,而且还可能存在影响原有业务逻辑正常执行的风险。


技术实现要素:

10.本发明要解决的技术问题是如何在不影响业务系统性能的情况下实现业务系统操作留痕记录,本发明提出一种业务操作留痕记录的获取方法及业务系统。
11.根据本发明实施例的业务操作留痕记录的获取方法,包括:
12.在业务系统的前端业务功能对应的controller层的服务方法上增加自定义注解,在业务系统的后端应用集成一个sdk;
13.对于业务系统的业务操作的数据留痕,通过所述自定义注解在sdk中异步处理保存到数据库。
14.根据本发明的一些实施例,所述sdk里定义有数据留痕记录实体对象,所述数据留痕记录实体对象的属性包括系统名称、功能模块名称、用户名称、客户端ip、痕迹数据内容、服务耗时、请求服务及操作类型。
15.在本发明的一些实施例中,通过spring的aop面向切面@aspect来获取封装所述数据留痕记录实体对象的属性值。
16.根据本发明的一些实施例,对于业务系统的业务操作的数据留痕,通过所述自定义注解在sdk中异步处理保存到数据库的方法具体包括:
17.在sdk中定义logcontrollerasp类,使用@pointcut注解来拦截controller层的带有自定义注解的服务,在@afterreturning注解的方法里获取业务数据留痕记录,用户名从mdc中动态获取,客户端ip从服务的请求头获取,把获取的所有业务操作留痕数据封装到所述数据留痕记录实体对象里异步保存。
18.在本发明的一些实施例中,所述自定义注解的属性包括:系统名、功能模块名、操作类型。
19.根据本发明实施例的具有业务操作留痕记录功能的业务系统,所述业务系统的前端业务功能对应的controller层的服务方法上具有自定义注解,所述业务系统的后端应用集成有一个sdk;
20.对于业务系统的业务操作的数据留痕,通过所述自定义注解在sdk中异步处理保存到数据库。
21.根据本发明的一些实施例,所述sdk里定义有数据留痕记录实体对象,所述数据留痕记录实体对象的属性包括系统名称、功能模块名称、用户名称、客户端ip、痕迹数据内容、服务耗时、请求服务及操作类型。
22.在本发明的一些实施例中,通过spring的aop面向切面@aspect来获取封装所述数据留痕记录实体对象的属性值。
23.根据本发明的一些实施例,对于业务系统的业务操作的数据留痕,通过所述自定义注解在sdk中异步处理保存到数据库的方法具体包括:
24.在sdk中定义logcontrollerasp类,使用@pointcut注解来拦截controller层的带
有自定义注解的服务,在@afterreturning注解的方法里获取业务数据留痕记录,用户名从mdc中动态获取,客户端ip从服务的请求头获取,把获取的所有业务操作留痕数据封装到所述数据留痕记录实体对象里异步保存。
25.在本发明的一些实施例中,所述自定义注解的属性包括:系统名、功能模块名、操作类型。
26.本发明提出的业务操作留痕记录的获取方法及业务系统具有如下有益效果:
27.本发明针对政府部门在使用业务系统时需要把某些主要功能业务以及登录退出的数据留痕,并且可以追踪具体人和客户端电脑。业务系统集成方便只需要一个sdk和一行代码,不需要在原有代码里增加非业务处理的代码,对原有系统代码侵入性小,可以把业务数据包括用户名和客户端ip留痕保存到存储介质,并可可视化展示出来给客户,便于责任定位到人,也可以查看业务的响应效率。
附图说明
28.图1为根据本发明实施例的业务操作留痕记录的获取方法流程图;
29.图2为根据本发明实施例的业务操作留痕记录的获取方法流程图;
30.图3为根据本发明实施例的业务操作留痕记录的获取方法中的部分代码示意图。
具体实施方式
31.为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
32.本发明中说明书中对方法流程的描述及本发明说明书附图中流程图的步骤并非必须按步骤标号严格执行,方法步骤是可以改变执行顺序的。而且,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
33.如图1和图2所示,根据本发明实施例的业务操作留痕记录的获取方法,包括:
34.s100,在业务系统的前端业务功能对应的controller层的服务方法上增加自定义注解,在业务系统的后端应用集成一个sdk;
35.s200,对于业务系统的业务操作的数据留痕,通过自定义注解在sdk中异步处理保存到数据库。
36.根据本发明的一些实施例,sdk里定义有数据留痕记录实体对象,数据留痕记录实体对象的属性包括系统名称、功能模块名称、用户名称、客户端ip、痕迹数据内容、服务耗时、请求服务及操作类型。
37.在本发明的一些实施例中,通过spring的aop面向切面@aspect来获取封装数据留痕记录实体对象的属性值。
38.根据本发明的一些实施例,对于业务系统的业务操作的数据留痕,通过自定义注解在sdk中异步处理保存到数据库的方法具体包括:
39.在sdk中定义logcontrollerasp类,使用@pointcut注解来拦截controller层的带有自定义注解的服务,在@afterreturning注解的方法里获取业务数据留痕记录,用户名从mdc中动态获取,客户端ip从服务的请求头获取,把获取的所有业务操作留痕数据封装到数据留痕记录实体对象里异步保存。
40.在本发明的一些实施例中,自定义注解的属性包括:系统名、功能模块名、操作类型。
41.根据本发明实施例的具有业务操作留痕记录功能的业务系统,业务系统的前端业务功能对应的controller层的服务方法上具有自定义注解,业务系统的后端应用集成有一个sdk;
42.对于业务系统的业务操作的数据留痕,通过自定义注解在sdk中异步处理保存到数据库。
43.根据本发明的一些实施例,sdk里定义有数据留痕记录实体对象,数据留痕记录实体对象的属性包括系统名称、功能模块名称、用户名称、客户端ip、痕迹数据内容、服务耗时、请求服务及操作类型。
44.在本发明的一些实施例中,通过spring的aop面向切面@aspect来获取封装数据留痕记录实体对象的属性值。
45.根据本发明的一些实施例,对于业务系统的业务操作的数据留痕,通过自定义注解在sdk中异步处理保存到数据库的方法具体包括:
46.在sdk中定义logcontrollerasp类,使用@pointcut注解来拦截controller层的带有自定义注解的服务,在@afterreturning注解的方法里获取业务数据留痕记录,用户名从mdc中动态获取,客户端ip从服务的请求头获取,把获取的所有业务操作留痕数据封装到数据留痕记录实体对象里异步保存。
47.在本发明的一些实施例中,自定义注解的属性包括:系统名、功能模块名、操作类型。
48.本发明提出的业务操作留痕记录的获取方法及业务系统具有如下有益效果:
49.本发明针对政府部门在使用业务系统时需要把某些主要功能业务以及登录退出的数据留痕,并且可以追踪具体人和客户端电脑。业务系统集成方便只需要一个sdk和一行代码,不需要在原有代码里增加非业务处理的代码,对原有系统代码侵入性小,可以把业务数据包括用户名和客户端ip留痕保存到存储介质,并可可视化展示出来给客户,便于责任定位到人,也可以查看业务的响应效率。
50.下面参照附图详细描述根据本发明的业务操作留痕记录的获取方法及业务系统。值得理解的是,下述描述仅是示例性描述,而不应理解为对本发明的具体限制。
51.本发明的实现是在业务系统的后端应用集成一个sdk。然后前端业务功能对应的controller层的服务方法上增加自定义注解@monitorlog,指明系统名、功能模块名、操作类型即可,对代码侵入性很小,只需要加上一个注解就行,也不会影响原有服务的业务逻辑和效率,对于业务操作的数据留痕都在sdk中异步处理保存到数据库。
52.sdk里定义一个数据留痕记录实体对象operationlog,这个对象包括系统名称、功能模块名称、用户名称、客户端ip、痕迹数据内容、服务耗时、请求服务、操作类型等主要属性。定义一个自定义注解对象@monitorlog,它有系统名称、功能模块名称,业务操作类型和描述等属性。对于operationlog对象属性值的获取封装使用spring的aop面向切面@aspect来实现。利用aop可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在spring aop中业务逻辑仅仅只关注业务本身,将数据留痕等代码从业务逻辑代码中划分出来,通过对这些行为的分离,将
它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
53.在sdk定义一个logcontrollerasp类,使用@pointcut注解来拦截controller层的带有自定义注解@monitorlog的服务,在@afterreturning注解的方法里获取业务数据留痕记录,用户名从mdc中动态获取即可,客户端ip从服务的请求头获取,把数据封装到operationlog对象里异步保存。业务系统通过集成一个sdk,在controller层某些服务上增加注解就能实现对业务系统功能操作的数据留痕。对原有系统代码侵入性小不影响原有业务逻辑,只需要一行代码即可,代码如下:
54.@monitorlog(servername="",mouldname="",operatetype="")
55.综上所述,本发明通过自定义注解拦截controller服务数据留痕,通过aop切面异步获取封装数据封装sdk,业务系统集成sdk侵入性小。
56.本发明具有如下有益效果:
57.本发明是针对政府部门在使用业务系统时需要把某些主要功能业务以及登录退出的数据留痕并且可以追踪具体人和客户端电脑。业务系统集成方便只需要一个sdk和一行代码,不需要在原有代码里增加非业务处理的代码,对原有系统代码侵入性小。通过这样可以把业务数据包括用户名和客户端ip留痕保存到存储介质,可以可视化展示出来给客户,如果哪天因为人为操作系统导致业务异常,可以很快将责任定位到人。也可以根据这些留痕数据看到哪些业务响应效率慢以便优化调整。
58.通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1