CN112905405B - 一种标签数据处理方法、装置和存储介质 - Google Patents

一种标签数据处理方法、装置和存储介质 Download PDF

Info

Publication number
CN112905405B
CN112905405B CN201911223223.3A CN201911223223A CN112905405B CN 112905405 B CN112905405 B CN 112905405B CN 201911223223 A CN201911223223 A CN 201911223223A CN 112905405 B CN112905405 B CN 112905405B
Authority
CN
China
Prior art keywords
tag
stored
information
entity object
tag data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911223223.3A
Other languages
English (en)
Other versions
CN112905405A (zh
Inventor
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201911223223.3A priority Critical patent/CN112905405B/zh
Publication of CN112905405A publication Critical patent/CN112905405A/zh
Application granted granted Critical
Publication of CN112905405B publication Critical patent/CN112905405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3086Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种标签数据处理方法、装置和存储介质,该方法包括:获取用户触发的标签数据存储请求,其中,标签数据存储请求包括日志对应的待存储标签数据;基于待存储标签数据对第一实体类进行实例化,创建出第一实体对象,以使第一实体对象存储待存储标签数据;以第一实体对象和会话对象为输入参数,调用预设存储函数,将待存储标签数据和用户信息存储至标签管理表中。通过本发明实施例的技术方案,可以提高标签数据的处理效率,同时便于维护管理。

Description

一种标签数据处理方法、装置和存储介质
技术领域
本发明实施例涉及计算机技术,尤其涉及一种标签数据处理方法、装置和存储介质。
背景技术
程序代码在运行过程中,可以在特定位置处输出用户所需的日志文件。用户可以基于自身喜好,预先对日志文件中的每条日志设置一个标签Tag进行标记,使得输出的每条日志中均包含一个标签Tag,以便后续可以基于该标签Tag了解日志内容。
现有技术中,用户往往通过在标签位置处手动注释的方式来记录标签数据。然而,随着标签数量的增加,这种手动注释的方式费时费力,降低了处理效率,并且若有的标签位置处进行了注释,而有的标签位置处未进行注释,则会导致标签难以维护管理的情况。
发明内容
本发明实施例提供了一种标签数据处理方法、装置和存储介质,以提高标签数据的处理效率,同时便于维护管理。
第一方面,本发明实施例提供了一种标签数据处理方法,包括:
获取用户触发的标签数据存储请求,其中,所述标签数据存储请求包括日志对应的待存储标签数据;
基于所述待存储标签数据对第一实体类进行实例化,创建出第一实体对象,以使所述第一实体对象存储所述待存储标签数据;
以所述第一实体对象和会话对象为输入参数,调用预设存储函数,将所述待存储标签数据和用户信息存储至标签管理表中。
第二方面,本发明实施例还提供了一种标签数据处理装置,包括:
标签数据存储请求获取模块,用于获取用户触发的标签数据存储请求,其中,所述标签数据存储请求包括日志对应的待存储标签数据;
第一实体对象创建模块,用于基于所述待存储标签数据对第一实体类进行实例化,创建出第一实体对象,以使所述第一实体对象存储所述待存储标签数据;
标签数据存储模块,用于以所述第一实体对象和会话对象为输入参数,调用预设存储函数,将所述待存储标签数据和用户信息存储至标签管理表中。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的标签数据处理方法。
本发明实施例通过在用户需要记录标签数据时,可以触发标签数据存储请求,当在获取标签数据存储请求时,基于标签数据存储请求中的日志对应的待存储标签数据,对第一实体类进行实例化,创建出第一实体对象,使得第一实体对象可以存储待存储标签数据,并以第一实体对象和用于获取用户信息的会话对象为输入参数,调用预设存储函数,从而可以将待存储标签数据和用户信息自动存储至标签管理表中,无需用户进行手动注释,从而提高了标签数据的处理效率,并且通过利用标签管理表,可以更加便捷地对日志对应的标签数据进行维护管理,提高了标签的维护管理效率。
附图说明
图1是本发明实施例一提供的一种标签数据处理方法的流程图;
图2是本发明实施例二提供的一种标签数据处理方法的流程图;
图3是本发明实施例三提供的一种标签数据处理装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种标签数据处理方法的流程图,本实施例可适用于对日志对应的标签Tag数据进行存储的情况。该方法可以由标签数据处理装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于具有日志管理功能的设备中,比如服务端。该方法具体包括以下步骤:
S110、获取用户触发的标签数据存储请求,其中,标签数据存储请求包括日志对应的待存储标签数据。
其中,标签数据存储请求可以是指用户触发的,用于将日志中的标签所对应的标签数据进行存储的请求。日志对应的待存储标签数据可以是指用于表征标签含义的信息,以便用户更好地了解日志内容。示例性地,待存储标签数据可以包括但不限于:日志类型名称typeName、日志类型标识tagType、标签标识tag、标签状态信息tagStatus、操作***标识platform、适配最低版本minVersion和配置详情信息detailsConfig。其中,日志类型可以包括但不限于基础日志和业务日志,其对应的日志类型标识tagType可以分别利用“0”和“1”进行表征。每个标签对应的标签标识tag是唯一的,以便区分不同的标签。标签状态信息tagStatus可以包括可用状态和不可用状态,其可以分别利用“1”和“2”进行表征。操作***可以是指日志可运行的操作***,其可以包括Android***和IOS***,其中,可以利用“1”表征Android***标识;利用“2”表征IOS***;利用“3”表征Android***和IOS***标识。配置详情信息detailsConfig可以用于详细描述日志数据的配置信息。
具体地,用户可以在网页端上针对日志中的标签,基于每个待存储标签数据的存储格式要求,手动输入该日志对应的待存储标签数据,并在输入待存储标签数据完毕后,可以通过点击触发方式使得网页端可以获得用户输入的待存储标签数据。网页端也可以针对日志中的标签,自动获取日志对应的待存储标签数据。在获得所有的待存储标签数据时,网页端可以基于待存储标签数据生成标签数据存储请求,并可以将标签数据存储请求发送至服务端中。
S120、基于待存储标签数据对第一实体类进行实例化,创建出第一实体对象,以使第一实体对象存储待存储标签数据。
其中,第一实体类是预先定义的,用于封装待存储标签数据的实体类。第一实体对象是对第一实体类实例化后获得的对象。第一实体对象可以用于存储日志对应的待存储标签数据。
示例性地,第一实体类可以定义如下:
Figure BDA0002301430570000041
Figure BDA0002301430570000051
其中,第一实体类的名称为LogTagReq,第一实体类中可以包括与每项待存储标签数据所对应的字段对象,以便利用该字段对象存储或读取相应的标签数据。通过在第一实体类的前方添加一个@Data数据标签,可以在编译时自动生成每个字段对象对应的存储set函数和读取get函数,从而提高开发效率。
具体地,服务端可以通过对标签数据存储请求进行解析,获得日志对应的待存储标签数据,并基于获得的待存储标签数据对第一实体类进行实例化。例如,在实例化过程中还可以实时检测每项待存储标签数据是否为空数据,以便保证标签数据存储的完整性。当检测到某项标签数据为空数据时,可以在网页端的显示界面上显示出标签数据不能为空的提示信息,以提示用户输入相应的标签数据,例如,在日志类型名称typeName为空数据时,显示界面上可以展示出“typeName不能为空”的提示信息。当检测到某项标签数据为非空数据时,可以将该项待存储标签数据存储至第一实体类中相应的字段对象中,从而可以创建出存储有日志对应的每项待存储标签数据的第一实体对象。
S130、以第一实体对象和会话对象为输入参数,调用预设存储函数,将待存储标签数据和用户信息存储至标签管理表中。
其中,会话对象可以是用户在网页端上进行交互时创建的,用于存储用户信息的对象。预设存储函数可以是预先定义的,用于将待存储标签数据和用户信息作为一条信息存储至标签管理表中的函数。示例性地,预设存储函数可以定义如下:
ResultVo insertLogTag(@Validated@RequestBody LogTagReq logTagReq,HttpSession session)
其中,预设存储函数的名称为insertLogTag。ResultVo是返回结果类,用于表征数据存储成功还是存储失败。@Validated标签是用于校验存储数据,若数据异常时会统一抛出异常提示信息,以便进行统一处理。@RequestBody标签是用于将JSON(JavaScriptObject Notation)格式的数据转化为java对象。logTagReq是第一实体类LogTagReq参数类型的第一实体参数;session是HttpSession会话接口类型的会话参数。通过将会话参数作为输入参数,可以在预设存储函数内部通过会话对象获得具体的用户信息,以便将日志所对应的用户信息也存储至标签管理表中。
其中,标签管理表可以是关系型数据库中的一个表,用于存储每个日志标签的标签数据,以便进行高效管理。示例性地,标签管理表中的字段信息可以包括但不限于:主键id、日志类型名称type_name、日志类型标识tag_type、标签标识tag、标签状态信息tag_status、操作***标识platform、适配最低版本min_version、配置详情信息details_config、创建者信息create_user、更新者信息update_user、创建时间create_time和更新时间update_time。示例性地,标签管理表可以定义如下:
Figure BDA0002301430570000071
Figure BDA0002301430570000081
其中,标签管理表中定义了每个字段信息的数据类型和相应的存储要求,以便进行统一管理。需要说明的是,上述标签管理表中通过包含创建者create_user和更新者update_user这两个字段信息,可以便于后续基于这两个字段信息快速地获得标签数据的维护历史情况。通过将标签管理表中的配置详情信息details_config的数据类型设置为长文本text类型,从而可以存储大量的字符串信息,并且配置详情信息details_config中是以JSON数据格式进行数据存储,可以保证配置的动态性和多样性,实现不同数据的描述功能。
具体地,通过以第一实体对象和会话对象为输入参数,调用预设存储函数,可以将待存储标签数据和获取的用户信息自动存储至标签管理表中,无需用户进行手动注释,从而提高了标签数据的处理效率。并且利用标签管理表存储每个日志标签的标签数据,可以更加便捷地对大量的日志标签进行统一管理,从而提高了标签的维护管理效率。
本实施例的技术方案,通过在用户需要记录标签数据时,可以触发标签数据存储请求,当在获取标签数据存储请求时,基于标签数据存储请求中的日志对应的待存储标签数据,对第一实体类进行实例化,创建出第一实体对象,使得第一实体对象可以存储待存储标签数据,并以第一实体对象和用于获取用户信息的会话对象为输入参数,调用预设存储函数,从而可以将待存储标签数据和用户信息自动存储至标签管理表中,无需用户进行手动注释,从而提高了标签数据的处理效率,并且通过利用标签管理表,可以更加便捷地对日志对应的标签数据进行维护管理,提高了标签的维护管理效率。
在上述技术方案的基础上,预设存储函数可以通过如下步骤S31-S40实现将待存储标签数据存储至标签管理表中的功能:
S31、通过调用会话对象中的用户信息获取函数,获取用户信息。
其中,用户信息获取函数可以是预先定义的,用于获取具体的用户信息的函数。例如,用户信息获取函数可以是session.getAttribute()。
具体地,可以以常量key键信息OaConstant.ADMIN_LOGIN_INFO作为输入参数,调用会话对象中的用户信息获取函数user=session.getAttribute(OaConstant.ADMIN_LOGIN_INFO),获得预先在网页端中在常量key键信息对应的值信息中存储的用户信息user。
S32、对标签管理表对应的管理实体类进行实例化,创建出管理实体对象。
其中,管理实体类是预先定义的,用于获取第一实体对象中的待存储标签数据,并将获得的标签数据存储至对应的标签管理表中的实体类。每个标签管理表均对应一个管理实体类进行统一管理。在定义管理实体类时需要创建其与管理实体类之间的映射关系。示例性地,管理实体类可以定义如下:
Figure BDA0002301430570000091
Figure BDA0002301430570000101
其中,管理实体类的名称为LogTagConfig。管理实体类中的字段信息与标签管理表中的字段信息是一致的。上述@Table(name="log_tag_config")表示该管理实体类所映射为的标签管理表的名称信息。@Column注解可以映射到该标签管理表中的一个字段信息,从而通过这两个注解可以创建管理实体类与标签管理表之间的一一映射关系。
具体地,可以通过new函数对标签管理表对应的管理实体类进行实例化,获得相应的管理实体对象。例如,通过调用LogTagConfig logTagConfig=new LogTagConfig(),创建出一个管理实体类LogTagConfig类型的管理实体对象logTagConfig。
S33、通过逐个调用第一实体对象中的每个标签数据获取函数,获取待存储的各个标签数据,并逐个通过调用管理实体对象中相应的标签数据存储函数,将各个标签数据存储至管理实体对象中。
其中,标签数据获取函数可以是指第一实体对象中的每个字段对象对应的读取get函数。标签数据存储函数可以是指管理实体对象中的每个字段对象对应的存储set函数。
具体地,可以通过调用第一实体对象中的日志类型名称获取函数logTagReq.getTypeName()获得日志类型名称,并调用管理实体对象中的日志类型名称存储函数logTagConfig.setTypeName(),将获得的日志类型名称存储至管理实体对象中。通过调用第一实体对象中的日志类型标识获取函数logTagReq.getTagType()获得日志类型标识,并调用管理实体对象中的日志类型标识存储函数logTagConfig.setTagType(),将获得的日志类型标识存储至管理实体对象中。通过调用第一实体对象中的日志类型标识获取函数logTagReq.getTagType()获得日志类型标识,并调用管理实体对象中的日志类型标识存储函数logTagConfig.setTagType(),将获得的日志类型标识存储至管理实体对象中。通过调用第一实体对象中的标签标识获取函数logTagReq.getTag()获得标签标识,并调用管理实体对象中的标签标识存储函数logTagConfig.setTag(),将获得的标签标识存储至管理实体对象中。通过调用第一实体对象中的标签状态信息获取函数logTagReq.getTagStatus()获得标签状态信息,并调用管理实体对象中的标签状态信息存储函数logTagConfig.setTagStatus(),将获得的标签状态信息存储至管理实体对象中。通过调用第一实体对象中的操作***标识获取函数logTagReq.getPlatform()获得操作***标识,并调用管理实体对象中的操作***标识存储函数logTagConfig.setPlatform(),将获得的操作***标识存储至管理实体对象中。通过调用第一实体对象中的适配最低版本获取函数logTagReq.getMinVersion()获得适配最低版本,并调用管理实体对象中的适配最低版本存储函数logTagConfig.setMinVersion(),将获得的适配最低版本存储至管理实体对象中。通过调用第一实体对象中的配置详情信息获取函数logTagReq.getDetailsConfig()获得配置详情信息,并调用管理实体对象中的配置详情信息存储函数logTagConfig.setDetailsConfig(),将获得的配置详情信息存储至管理实体对象中,从而将所有待存储的标签数据均存储至管理实体对象中。
S34、检测待存储标签数据对应的标签是否为首次存储,若是,则进入步骤S35;若否,则进入步骤S38。
具体地,本实施例可以基于待存储标签数据中的标签标识,检测在当前的标签管理表中,待存储标签数据对应的标签是否为首次存储。例如,检测当前的标签管理表中是否存在待存储标签数据中的标签标识,若不存在,则表明待存储标签数据对应的标签是首次存储,需要将待存储标签数据作为一个新标签存储至标签管理表中,此时可以执行S35的操作。若存在,则表明待存储标签数据对应的标签已经存储过,需要对以该标签已存储的标签数据进行更新,此时可以执行S38的操作。
S35、通过分别调用管理实体对象中的创建者信息存储函数和更新者信息存储函数,将用户信息均作为创建者信息和更新者信息存储至管理实体对象中。
具体地,在待存储标签数据对应的标签为首次存储时,标签的创建者和更新者均为该用户,此时可以将该用户信息均作为创建者信息和更新者信息进行存储。例如,可以通过调用user.getUsername()获取用户信息中的用户名称,并分别调用管理实体对象中的创建者信息存储函数logTagConfig.setCreateUser()和更新者信息存储函数logTagConfig.setUpdateUser,将用户信息中的用户名称作为创建者信息中的创建者名称和更新者信息中的更新者名称存储至管理实体对象中。
示例性地,本实施例还可以利用三元操作符的方式,将用户信息均作为创建者信息和更新者信息存储至管理实体对象中,以提高开发效率。具体实现可以如下:
logTagConfig.setCreateUser(user==null?"UNKNOWN_USER":user.getUsername())
logTagConfig.setUpdateUser(user==null?"UNKNOWN_USER":user.getUsername());其中,“?”表示可选操作符。
S36、获取***的当前时间,并通过分别调用管理实体对象中的创建时间存储函数和更新时间存储函数,将当前时间均作为创建时间和更新时间存储至管理实体对象中。
具体地,在待存储标签数据对应的标签为首次存储时,标签的创建时间和更新时间均可以为***的当前时间,此时可以将***的当前时间均作为创建时间和更新时间进行存储。例如,可以通过调用***中的当前时间获取函数System.currentTimeMillis()获取当前时间time,并通过分别调用管理实体对象中的创建时间存储函数logTagConfig.setCreateTime(time)和更新时间存储函数logTagConfig.setUpdateTime(time),将当前时间均作为创建时间和更新时间存储至管理实体对象中。
S37、以管理实体对象为输入参数,调用预设业务接口对象中的存储函数,将待存储标签数据和用户信息存储至标签管理表中。
其中,预设业务接口是预先定义的,用于将管理实体类中的待存储标签数据和用户信息存储至标签管理表中的接口。预设业务接口对象可以是预先继承预设业务接口的对象,即预设业务接口对象是预设业务接口类型的对象。示例性地,基于管理实体类LogTagConfig,预设业务接口可以定义为:
Figure BDA0002301430570000141
其中,LogTagConfigRepository可以是指预设业务接口的接口名称。该业务接口可以继承***提供的PagingAndSortingRepository<LogTagConfig,Integer>分页搜索接口,以便可以实现分页搜索的功能。
具体地,可以通过调用预设业务接口对象logTagConfigRepository中的存储函数logTagConfigRepository.save(logTagConfig),将待存储标签数据和用户信息存储至标签管理表中。
S38、通过调用管理实体对象中的更新者信息存储函数,将用户信息作为更新者信息存储至管理实体对象中;
具体地,在待存储标签数据对应的标签并非首次存储时,可以将用户信息仅作为更新者信息进行存储,以便记录历史维护信息。例如,可以通过调用user.getUsername()获取用户信息中的用户名称,并调用管理实体对象中的更新者信息存储函数logTagConfig.setUpdateUser,将用户信息中的用户名称作为更新者信息中的更新者名称存储至管理实体对象中。
S39、获取***的当前时间,并通过调用管理实体对象中的更新时间存储函数,将当前时间作为更新时间存储至管理实体对象中。
具体地,在待存储标签数据对应的标签并非首次存储时,可以将***的当前时间仅作为更新时间进行存储,以便记录历史维护信息。例如,可以通过调用***中的当前时间获取函数System.currentTimeMillis()获取当前时间time,并调用管理实体对象中的更新时间存储函数logTagConfig.setUpdateTime(time),将当前时间作为更新时间存储至管理实体对象中。
S40、以管理实体对象为输入参数,调用预设业务接口对象中的更新函数,对标签管理表中的相应标签数据进行更新。
具体地,可以通过调用预设业务接口对象logTagConfigRepository中的更新函数logTagConfigRepository.update(logTagConfig),对标签管理表中的相应标签数据进行更新,存储最新的标签数据和用户信息。
本实施例可以通过调用预设存储函数的方式,对未存储过的日志标签的标签数据实时存储至标签管理表中,以及对标签管理表中已存储过的日志标签的标签数据进行实时更新,从而利用标签管理表可以更加便捷地进行标签统一管理,提高标签的维护管理效率。
实施例二
图2为本发明实施例二提供的一种标签数据处理方法的流程图,本实施例在上述实施例的基础上,在将标签数据存储至标签管理表中之后,对标签数据的查询操作进行了详细描述。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图2,本实施例提供的标签数据处理方法具体包括如下步骤:
S210、获取用户触发的标签数据存储请求,其中,标签数据存储请求包括日志对应的待存储标签数据。
S220、基于待存储标签数据对第一实体类进行实例化,创建出第一实体对象,以使第一实体对象存储待存储标签数据。
S230、以第一实体对象和会话对象为输入参数,调用预设存储函数,将待存储标签数据和用户信息存储至标签管理表中。
S240、获取用户触发的标签查询请求,其中,标签查询请求包括查询条件信息。
其中,标签查询请求可以是指用户触发的,用于查询所需标签数据的请求。查询条件信息可以用于表征用户所需的标签数据所满足的条件信息。示例性地,查询条件信息可以包括查询页码pageNum、标签查询数量pageCount和标签查询条件;标签查询条件可以包括但不限于:用于查询的日志类型名称typeName、日志类型标识tagType、标签标识tag、标签状态信息tagStatus、操作***标识platform、适配最低版本minVersion、配置详情信息detailsConfig、创建开始时间createStartTime、创建结束时间createEndTime、创建者信息createUser和更新者信息updateUser中的至少一个。其中,查询页码pageNum可以用于表征查询标签管理表中的第几页。标签查询数量pageCount可以用于表征查询页码中所包含的标签数量。
具体地,用户可以在网页端上基于自身需求输入查询条件信息,并在输入查询条件信息完毕后,可以通过点击触发方式使得网页端可以获得用户输入的查询条件信息。在获得查询条件信息时,网页端可以基于查询条件信息生成标签查询请求,并可以将标签查询请求发送至服务端中。
S250、基于查询条件信息对第二实体类进行实例化,创建出第二实体对象,以使第二实体对象存储查询条件信息。
其中,第二实体类是预先定义的,用于封装查询条件信息的实体类。第二实体对象是对第二实体类实例化后获得的对象。第二实体对象可以用于存储用户用于标签查询的查询条件信息。
示例性地,第二实体类可以定义如下:
Figure BDA0002301430570000171
Figure BDA0002301430570000181
其中,第二实体类的名称为LogTagConditionReq,第二实体类中可以包括与每项查询条件信息所对应的字段对象,以便利用该字段对象存储或读取相应的查询条件信息。通过在第二实体类的前方添加一个@Data数据标签,可以在编译时自动生成每个字段对象对应的存储set函数和读取get函数,从而提高开发效率。
具体地,服务端可以通过对标签查询请求进行解析,获得查询条件信息,并基于获得的查询条件信息对第二实体类进行实例化,获得第二实体对象。需要说明的是,本实施例中的查询页码和标签查询数量是两个必须输入的参数,以便准确地确定出标签查找范围,从而在实例化过程中还可以实时检测查询页码是否为空数据以及标签查询数量是否为空数据。当检测到查询页码为空数据,或者标签查询数量为空数据时,可以在网页端的显示界面上展示出该项查询数据不能为空的提示信息,以提示用户输入相应查询数据。例如,在查询页码pageNum为空数据时,显示界面上可以展示出“pageNum不能为空”的提示信息。
S260、以第二实体对象为输入参数,调用预设查询函数,从标签管理表中查询出与查询条件信息相匹配的目标标签数据。
其中,目标标签数据可以是指与查询条件信息相匹配的查询结果。预设查询函数可以是预先定义的,用于查询标签管理表中符合查询条件的标签数据的函数。示例性地,预设查询函数可以定义如下:
ResultVo selectLogTagByCondition(@RequestBody LogTagConditionReqlogTagConditionReq)
其中,预设查询函数的名称为selectLogTagByCondition。ResultVo是返回结果类,用于返回查询到的目标标签数据。@RequestBody标签是用于将JSON(JavaScriptObject Notation)格式的数据转化为java对象。logTagConditionReq是第二实体类LogTagConditionReq参数类型的第二实体参数。
具体地,通过以第二实体对象为输入参数,调用预设查询函数,可以自动查询标签管理表中是否存在与查询条件信息相匹配的目标标签数据,若存在,则将查询出的目标标签数据进行返回,并可以在网页端的显示界面上展示出目标标签数据,以供用户查看,从而可以通过标签管理表实现标签自动查询功能,无需人工手动查询,提高了查询效率,同时进一步提高了标签的维护管理效率。
示例性地,预设查询函数可以通过如下步骤S61-S64实现从标签管理表中查询出与查询条件信息相匹配的目标标签数据的功能:
S61、根据预设排序字段,构建排序规则对象。
其中,预设排序字段可以是指查询出的目标标签数据进行排序时所依据的字段。例如,预设排序字段可以是更新时间updateTime字段,以使查询结果可以按照更新时间进行降序排列。排序规则对象可以是用于表征目标标签数据的排序规则的对象。
具体地,可以利用new的方式构建排序规则对象sort。例如,在预设排序字段为updateTime字段时,可以通过调用Sort sort=new Sort(Sort.Direction.DESC,"updateTime")函数来构建一个排序规则对象sort,该对象的排序规则是以updateTime字段为降序排列。
S62、获取第二实体对象中的查询页码和标签查询数量,并根据查询页码、标签查询数量和排序规则对象,构建分页查询对象。
其中,分页查询对象可以是指用于查询某个特定页的可分页Pageable类型的对象pageable。
具体地,可以通过调用第二实体对象中的查询页码获取函数logTagConditionReq.getPageNum()获得查询页码,以及通过调用第二实体对象中的标签查询数量获取函数logTagCondition Req.getPageCount()获得标签查询数量。以查询页码、标签查询数量和排序规则对象为输入参数,调用分页查询函数,构建出分页查询对象。例如,通过调用Pageable pageable=new PageRequest(PageNum,PageCount,sort)构建出查询类型为Pageable的分页查询对象pageable。
S63、将第二实体对象中处于有效状态的标签查询条件进行封装,确定查询条件对象。
其中,有效状态可以是指非空数据所处于的状态。查询条件对象可以用于存储非空的标签查询条件。
具体地,由于用户输入的标签查询条件可以是日志类型名称、日志类型标识、标签标识、标签状态信息、操作***标识、适配最低版本、配置详情信息、创建开始时间、创建结束时间、创建者信息和更新者信息中的至少一个,从而需要通过检测每个标签查询条件是否为非空数据,来获得有效的标签查询条件,并封装为查询条件对象。例如,可以通过调用Specification<LogTagConfig>spec=(root,query,builder),将第二实体对象中的非空的标签查询条件进行封装,构建出一个查询条件对象spec,获得业务实现体。其中root是***提供的根对象,query是***提供的查询对象,builder是***提供的查询条件组装对象。
示例性地,可以利用拉姆达表达式的方式确定出查询条件对象spec,以便大大简化编码逻辑,提高开发效率。具体地,在业务实现体中,可以调用第二实体对象中的日志类型名称获取函数logTagConditionReq.getTypeName()获得日志类型名称typeName,并判断typeName参数是否不为空,若是,则可以通过builder对象中的模糊函数like实现模糊搜索功能,并将构建出的对象存储到预测对象predicate中。例如,可以通过如下代码将非空的日志类型名称typeName封装至predicate对象中:
Figure BDA0002301430570000211
接着,可以调用第二实体对象中的标签状态信息获取函数logTagConditionReq.getTagStatus()获得标签状态信息tagStatus,并判断tagStatus参数是否不为空,若是,则将非空的tagStatus继续封装至predicate对象中。例如:
Figure BDA0002301430570000212
Figure BDA0002301430570000221
在上述代码中,首先判断tagStatus参数>0是否成立,若成立,则表明tagStatus参数为有效数据,此时通过调用builder对象中的equal比较函数来生成匹配规则对象tagStatusPredicate,再判定此时的predicate对象是否不为空,若是,则通过调用builder.and(predicate,tagStatusPredicate)将上述两个查询对象进行组装并将组装的结果赋值给predicate对象。若为空,则可以直接将查询对象通过predicate=tagStatusPredicate方式来进行赋值处理。
同理可以实现其他的标签查询条件的封装,进而将所有处于有效状态的标签查询条件封装为查询条件对象。
例如,对于日志类型标识tagType的组装,可以通过如下代码进行实现:
Figure BDA0002301430570000222
Figure BDA0002301430570000231
例如,对于创建开始时间createStartTime和创建结束时间createEndTime的组装,可以通过如下代码实现:
Figure BDA0002301430570000232
例如,对于创建者信息createUser的组装,可以通过如下代码实现:
Figure BDA0002301430570000233
Figure BDA0002301430570000241
例如,对于更新者信息updateUser的组装,可以通过如下代码实现:
Figure BDA0002301430570000242
例如,对于操作***标识platform的组装,可以通过如下代码实现:
Figure BDA0002301430570000243
Figure BDA0002301430570000251
例如,对于标签标识tag的组装,可以通过如下代码实现:
Figure BDA0002301430570000252
S64、根据分页查询对象和查询条件对象,调用***提供的查询接口,从标签管理表中查询出与查询条件信息相匹配的目标标签数据。
其中,查询接口可以是指***自带的用于查询数据的接口。具体地,本实施例通过基于***的查询接口的查询标准,构建出符合标准的分页查询对象和查询条件对象,从而可以将分页查询对象和查询条件对象作为输入参数,直接调用***提供的查询接口,使得***可以自动基于分页查询对象和查询条件对象查询出相匹配的目标标签数据,提高了查询效率。
本实施例的技术方案,通过利用预设查询函数,可以查询出标签管理表中与查询条件信息相匹配的目标标签数据,从而实现了标签自动查询功能,并且无需人工手动查询,提高了查询效率,同时进一步提高了标签的维护管理效率。
以下是本发明实施例提供的标签数据处理装置的实施例,该装置与上述各实施例的标签数据处理方法属于同一个发明构思,在标签数据处理装置的实施例中未详尽描述的细节内容,可以参考上述标签数据处理方法的实施例。
实施例三
图3为本发明实施例三提供的一种标签数据处理装置的结构示意图,本实施例可适用于对日志对应的标签Tag数据进行存储的情况,该装置具体包括:标签数据存储请求获取模块310、第一实体对象创建模块320和标签数据存储模块330。
其中,标签数据存储请求获取模块310,用于获取用户触发的标签数据存储请求,其中,标签数据存储请求包括日志对应的待存储标签数据;第一实体对象创建模块320,用于基于待存储标签数据对第一实体类进行实例化,创建出第一实体对象,以使第一实体对象存储待存储标签数据;标签数据存储模块330,用于以第一实体对象和会话对象为输入参数,调用预设存储函数,将待存储标签数据和用户信息存储至标签管理表中。
可选地,待存储标签数据包括:日志类型名称、日志类型标识、标签标识、标签状态信息、操作***标识、适配最低版本和配置详情信息。
可选地,标签管理表中的字段信息包括:主键、日志类型名称、日志类型标识、标签标识、标签状态信息、操作***标识、适配最低版本、配置详情信息、创建者信息、更新者信息、创建时间和更新时间。
可选地,预设存储函数通过如下步骤实现将待存储标签数据和用户信息存储至标签管理表中的功能:
通过调用会话对象中的用户信息获取函数,获取用户信息;对标签管理表对应的管理实体类进行实例化,创建出管理实体对象;通过逐个调用第一实体对象中的每个标签数据获取函数,获取待存储的各个标签数据,并逐个通过调用管理实体对象中相应的标签数据存储函数,将各个标签数据存储至管理实体对象中;若检测到待存储标签数据对应的标签是首次存储,则通过分别调用管理实体对象中的创建者信息存储函数和更新者信息存储函数,将用户信息均作为创建者信息和更新者信息存储至管理实体对象中;获取***的当前时间,并通过分别调用管理实体对象中的创建时间存储函数和更新时间存储函数,将当前时间均作为创建时间和更新时间存储至管理实体对象中;以管理实体对象为输入参数,调用预设业务接口对象中的存储函数,将待存储标签数据和用户信息存储至标签管理表中。
可选地,预设存储函数还通过如下步骤实现将待存储标签数据和用户信息存储至标签管理表中的功能:
若检测到待存储标签数据对应的标签不是首次存储,则通过调用管理实体对象中的更新者信息存储函数,将用户信息作为更新者信息存储至管理实体对象中;获取***的当前时间,并通过调用管理实体对象中的更新时间存储函数,将当前时间作为更新时间存储至管理实体对象中;以管理实体对象为输入参数,调用预设业务接口对象中的更新函数,对标签管理表中的相应标签数据进行更新。
可选地,该装置还包括:
标签查询请求获取模块,用于在将待存储标签数据存储至标签管理表中之后,获取用户触发的标签查询请求,其中,标签查询请求包括查询条件信息;
第二实体对象创建模块,用于基于查询条件信息对第二实体类进行实例化,创建出第二实体对象,以使第二实体对象存储查询条件信息;
目标标签数据查询模块,用于以第二实体对象为输入参数,调用预设查询函数,从标签管理表中查询出与查询条件信息相匹配的目标标签数据。
可选地,查询条件信息包括查询页码、标签查询数量和标签查询条件;标签查询条件包括用于查询的日志类型名称、日志类型标识、标签标识、标签状态信息、操作***标识、适配最低版本、配置详情信息、创建开始时间、创建结束时间、创建者信息和更新者信息中的至少一个。
可选地,预设查询函数通过如下步骤实现从标签管理表中查询出与查询条件信息相匹配的目标标签数据的功能:
根据预设排序字段,构建排序规则对象;获取第二实体对象中的查询页码和标签查询数量,并根据查询页码、标签查询数量和排序规则对象,构建分页查询对象;将第二实体对象中处于有效状态的标签查询条件进行封装,确定查询条件对象;根据分页查询对象和查询条件对象,调用***提供的查询接口,从标签管理表中查询出与查询条件信息相匹配的目标标签数据。
本发明实施例所提供的标签数据处理装置可执行本发明任意实施例所提供的标签数据处理方法,具备执行标签数据处理方法相应的功能模块和有益效果。
实施例四
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的一种标签数据处理方法步骤。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的标签数据处理方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (8)

1.一种标签数据处理方法,其特征在于,包括:
获取用户触发的标签数据存储请求,其中,所述标签数据存储请求包括日志对应的待存储标签数据;
基于所述待存储标签数据对第一实体类进行实例化,创建出第一实体对象,以使所述第一实体对象存储所述待存储标签数据;
以所述第一实体对象和会话对象为输入参数,调用预设存储函数,将所述待存储标签数据和用户信息存储至标签管理表中;
所述以所述第一实体对象和会话对象为输入参数,调用预设存储函数,将所述待存储标签数据和用户信息存储至标签管理表中,包括:
通过调用所述会话对象中的用户信息获取函数,获取用户信息;
对所述标签管理表对应的管理实体类进行实例化,创建出管理实体对象;
通过逐个调用所述第一实体对象中的每个标签数据获取函数,获取待存储的各个标签数据,并逐个通过调用所述管理实体对象中相应的标签数据存储函数,将所述各个标签数据存储至所述管理实体对象中;
若检测到所述待存储标签数据对应的标签是首次存储,则通过分别调用所述管理实体对象中的创建者信息存储函数和更新者信息存储函数,将所述用户信息均作为创建者信息和更新者信息存储至所述管理实体对象中;
获取***的当前时间,并通过分别调用所述管理实体对象中的创建时间存储函数和更新时间存储函数,将所述当前时间均作为创建时间和更新时间存储至所述管理实体对象中;
以所述管理实体对象为输入参数,调用预设业务接口对象中的存储函数,将所述待存储标签数据和用户信息存储至所述标签管理表中;
若检测到所述待存储标签数据对应的标签不是首次存储,则通过调用所述管理实体对象中的更新者信息存储函数,将所述用户信息作为更新者信息存储至所述管理实体对象中;
获取***的当前时间,并通过调用所述管理实体对象中的更新时间存储函数,将所述当前时间作为更新时间存储至所述管理实体对象中;
以所述管理实体对象为输入参数,调用预设业务接口对象中的更新函数,对所述标签管理表中的相应标签数据进行更新。
2.根据权利要求1所述的方法,其特征在于,所述待存储标签数据包括:日志类型名称、日志类型标识、标签标识、标签状态信息、操作***标识、适配最低版本和配置详情信息。
3.根据权利要求1所述的方法,其特征在于,所述标签管理表中的字段信息包括:主键、日志类型名称、日志类型标识、标签标识、标签状态信息、操作***标识、适配最低版本、配置详情信息、创建者信息、更新者信息、创建时间和更新时间。
4.根据权利要求1-3任一所述的方法,其特征在于,在将所述待存储标签数据存储至标签管理表中之后,还包括:
获取用户触发的标签查询请求,其中,所述标签查询请求包括查询条件信息;
基于所述查询条件信息对第二实体类进行实例化,创建出第二实体对象,以使所述第二实体对象存储所述查询条件信息;
以所述第二实体对象为输入参数,调用预设查询函数,从所述标签管理表中查询出与所述查询条件信息相匹配的目标标签数据。
5.根据权利要求4所述的方法,其特征在于,所述查询条件信息包括查询页码、标签查询数量和标签查询条件;所述标签查询条件包括用于查询的日志类型名称、日志类型标识、标签标识、标签状态信息、操作***标识、适配最低版本、配置详情信息、创建开始时间、创建结束时间、创建者信息和更新者信息中的至少一个。
6.根据权利要求5所述的方法,其特征在于,所述预设查询函数通过如下步骤实现从所述标签管理表中查询出与所述查询条件信息相匹配的目标标签数据的功能:
根据预设排序字段,构建排序规则对象;
获取所述第二实体对象中的查询页码和标签查询数量,并根据所述查询页码、所述标签查询数量和所述排序规则对象,构建分页查询对象;
将所述第二实体对象中处于有效状态的标签查询条件进行封装,确定查询条件对象;
根据所述分页查询对象和所述查询条件对象,调用***提供的查询接口,从所述标签管理表中查询出与所述查询条件信息相匹配的目标标签数据。
7.一种标签数据处理装置,其特征在于,包括:
标签数据存储请求获取模块,用于获取用户触发的标签数据存储请求,其中,所述标签数据存储请求包括日志对应的待存储标签数据;
第一实体对象创建模块,用于基于所述待存储标签数据对第一实体类进行实例化,创建出第一实体对象,以使所述第一实体对象存储所述待存储标签数据;
标签数据存储模块,用于以所述第一实体对象和会话对象为输入参数,调用预设存储函数,将所述待存储标签数据和用户信息存储至标签管理表中;
所述标签数据存储模块,还用于:
通过调用所述会话对象中的用户信息获取函数,获取用户信息;
对所述标签管理表对应的管理实体类进行实例化,创建出管理实体对象;
通过逐个调用所述第一实体对象中的每个标签数据获取函数,获取待存储的各个标签数据,并逐个通过调用所述管理实体对象中相应的标签数据存储函数,将所述各个标签数据存储至所述管理实体对象中;
若检测到所述待存储标签数据对应的标签是首次存储,则通过分别调用所述管理实体对象中的创建者信息存储函数和更新者信息存储函数,将所述用户信息均作为创建者信息和更新者信息存储至所述管理实体对象中;
获取***的当前时间,并通过分别调用所述管理实体对象中的创建时间存储函数和更新时间存储函数,将所述当前时间均作为创建时间和更新时间存储至所述管理实体对象中;
以所述管理实体对象为输入参数,调用预设业务接口对象中的存储函数,将所述待存储标签数据和用户信息存储至所述标签管理表中;
若检测到所述待存储标签数据对应的标签不是首次存储,则通过调用所述管理实体对象中的更新者信息存储函数,将所述用户信息作为更新者信息存储至所述管理实体对象中;
获取***的当前时间,并通过调用所述管理实体对象中的更新时间存储函数,将所述当前时间作为更新时间存储至所述管理实体对象中;
以所述管理实体对象为输入参数,调用预设业务接口对象中的更新函数,对所述标签管理表中的相应标签数据进行更新。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的标签数据处理方法。
CN201911223223.3A 2019-12-03 2019-12-03 一种标签数据处理方法、装置和存储介质 Active CN112905405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911223223.3A CN112905405B (zh) 2019-12-03 2019-12-03 一种标签数据处理方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911223223.3A CN112905405B (zh) 2019-12-03 2019-12-03 一种标签数据处理方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN112905405A CN112905405A (zh) 2021-06-04
CN112905405B true CN112905405B (zh) 2022-12-23

Family

ID=76104349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911223223.3A Active CN112905405B (zh) 2019-12-03 2019-12-03 一种标签数据处理方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN112905405B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672633B (zh) * 2021-08-25 2024-05-24 深圳博沃智慧科技有限公司 一种基于环境监测数据的标签管理***和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204863A (ja) * 2009-03-02 2010-09-16 Fujitsu Ltd アノテーションプログラム、アノテーション装置及びアノテーション方法
CN108874971A (zh) * 2018-06-07 2018-11-23 北京赛思信安技术股份有限公司 一种应用于海量标签化实体数据存储的工具和方法
CN109240665A (zh) * 2018-08-24 2019-01-18 北京北信源信息安全技术有限公司 日志记录方法、装置以及电子设备
CN110321348A (zh) * 2019-06-04 2019-10-11 腾讯科技(深圳)有限公司 一种数据处理方法、装置及计算机设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160246849A1 (en) * 2015-02-25 2016-08-25 FactorChain Inc. Service interface for event data store
US11061572B2 (en) * 2016-04-22 2021-07-13 Advanced Micro Devices, Inc. Memory object tagged memory monitoring method and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204863A (ja) * 2009-03-02 2010-09-16 Fujitsu Ltd アノテーションプログラム、アノテーション装置及びアノテーション方法
CN108874971A (zh) * 2018-06-07 2018-11-23 北京赛思信安技术股份有限公司 一种应用于海量标签化实体数据存储的工具和方法
CN109240665A (zh) * 2018-08-24 2019-01-18 北京北信源信息安全技术有限公司 日志记录方法、装置以及电子设备
CN110321348A (zh) * 2019-06-04 2019-10-11 腾讯科技(深圳)有限公司 一种数据处理方法、装置及计算机设备

Also Published As

Publication number Publication date
CN112905405A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
US9953639B2 (en) Voice recognition system and construction method thereof
US7269593B2 (en) Data processing apparatus and method
CN110263317B (zh) 一种生成文档模板的方法及装置
CN112882974B (zh) 一种json数据转换方法、装置、计算机设备和存储介质
US10224034B2 (en) Voice recognition system and construction method thereof
CN111786814B (zh) 一种日志处理方法和装置
CN112148343B (zh) 规则发布方法、装置及终端设备
CN107515866B (zh) 一种数据操作方法、装置和***
CN112905405B (zh) 一种标签数据处理方法、装置和存储介质
CN114490658A (zh) 一种节点展示方法、装置、存储介质及程序产品
CN111083054B (zh) 路由配置处理方法、装置、计算机设备和存储介质
CN113568925B (zh) 一种报文数据的转换方法、装置、电子设备及存储介质
CN116048478B (zh) 一种字典转义方法、装置、设备及计算机可读存储介质
CN113791809B (zh) 应用异常处理方法、装置以及计算机可读存储介质
CN112650600B (zh) 推送消息内容的方法、装置和计算机设备
CN112817782B (zh) 一种数据采集上报方法、装置、电子设备和存储介质
CN111711605B (zh) 一种用于物联网平台的数据协议主动解析方法
CN109241515B (zh) 一种生成报告文件的方法及装置
CN111897832A (zh) 模型部署方法、设备及可读存储介质
US20190026255A1 (en) Generating a semantic diff
CN109905475B (zh) 一种基于sql以规定格式输出云计算监控数据的方法
CN115599657B (zh) 软件设施异常判断方法
CN117931174A (zh) 软件包生效方法、装置、目标电子设备及计算机存储介质
CN114153864A (zh) 一种生成api的方法及装置
CN115905415A (zh) 数据库操作的方法、装置、电子设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant