智能问卷系统、问卷开发方法及装置的制作方法

文档序号:6571022阅读:294来源:国知局
专利名称:智能问卷系统、问卷开发方法及装置的制作方法
技术领域
本发明涉及计算机及信息处理技术,具体涉及一种智能问卷系统、问卷开发方法及装置。
背景技术
问卷系统作为多种信息系统都需要的功能,随着信息系统的发展,对问卷的要求也越来越高,通过问卷辅助完成各类业务功能已经成为一种非常重要的手段。问卷可以使得离散的业务能够很好地连成一条清晰的路线,因此不但要求问卷系统能够成为一个通用的公共组件,同时也要求问卷具有智能能力,根据各个使用系统的特有信息实现问卷中的逻辑跳转功能,这对问卷系统的集成性、扩展能力以及业务逻辑变更适应能力都提出了很高的要求。
在现有技术中,通常采用以下两种方式开发问卷1.直接将问题、选项的定义保存在数据库中,对于逻辑控制跳转,直接根据业务固化在代码中。
这种问卷只支持简单的逻辑控制,基本无法结合业务数据进行跳转控制或者只能与特有业务逻辑绑定,处理范围有限;而且扩展和集成都不方便,如果需要与使用系统业务数据结合,则必须重新开发对应的处理逻辑和规则,因而适应性差,开发周期长。
2.通过脚本实现的智能问卷,其原理在于通过查找已经配置的数据,调用相应的事件处理脚本,通过脚本解释器进行解释,绑定了事件与要触发的动作之间的响应。其关键是使用配置文件定义和扩展问卷内支持的事件和动作。在使用者操作问卷的时候,执行不同的操作,即可触发不同的事件,并根据绑定关系执行事件处理脚本中的问卷、子问卷、问题及选项等。
如图1所示为现有技术中通过脚本实现智能问卷的流程,包括以下步骤步骤101开发人员使用脚本引入数据对象/服务对象;步骤102编写脚本中定义的事件,并完成事件和要触发的动作之间逻辑绑定的编写;步骤103根据用户定义的问卷(包括问卷下的问题和选项,以及答卷过程的事件),选择已有的事件,完成问卷的开发。
当用户需要新的问卷时,需要修改脚本中定义的事件,并重新完成事件和要触发的动作之间逻辑绑定的编写。
脚本的一大优点是可以如同写代码一样完成脚本的编写,而不必在运行前编译它,只需通过脚本引擎解释执行即可,因此采用脚本可以方便地类似写代码引用对象一样新增对象。脚本中可以直接编写事件触发的逻辑动作,可以类似修改代码一样新增或修改已有的逻辑,达到扩展的目的,而不用修改核心的代码和重新编译;在这些逻辑中,事件和要触发的动作声明了一定的条件绑定关系,即事件只能触发部分固定的动作,且触发具体动作的判断逻辑是由开发人员完成的,用户不能自行定义规则。可见,这种方式开发的问卷虽然通过较为简单的脚本语言可以进行部分业务逻辑的扩展,而不必修改已有软件代码,但仍存在以下缺点(1)对于控制和跳转,总是需要事先定义对应控制事件类型的环节,即需要预先将事件与动作进行绑定,在功能扩展时需要定义的工作量很大;(2)问卷没有版本控制,不便于将历史数据和现有数据连贯起来进行分析;(3)对于数据对象的规则匹配是传统的配置叠加,嵌套逻辑相当复杂;(4)规则匹配的效率受匹配对象的影响较大,匹配效率较低。

发明内容
本发明的目的是提供一种智能问卷系统,以克服现有技术中通过脚本实现的智能问卷系统开发工作量大、效率低及扩展性差的缺点,提高系统灵活性,方便系统的扩展及集成。
本发明的另一个目的是提供一种问卷开发方法及装置,使用户可以根据自己的需求进行简单的配置即可获得所需的要的问卷,提高问卷开发效率,并提高问卷系统的扩展性,加快系统满足新业务的能力。
为此,本发明实施例提供如下的技术方案一种智能问卷系统,包括规则包存储单元,用于存储规则包,每个规则包对应一个问卷,包括至少一条规则;问卷交互单元,提供用户接口,通过所述用户接口获取用户提交的问卷及答案数据;规则引擎单元,用于根据所述问卷交互单元获取的问卷从所述规则包存储单元中加载所述问卷对应的规则包,并根据所述答案数据触发所述规则包中的动作;问题处理单元,用于执行规则引擎单元触发的动作的具体处理过程。
一种问卷开发方法,包括确定问卷的内容及答卷过程中动作触发的逻辑规则;利用预先设定的问卷基本元素及关系符建立符合所述逻辑规则的问卷规则;利用所述问卷规则生成问卷。
一种问卷开发装置,包括数据库,用于存储设定的问卷的基本元素及关系符;问卷单元,提供用户接口,用于获取用户输入的问卷信息,所述问卷信息包括问卷的内容及答卷过程中动作触发的逻辑规则;
规则建立单元,用于根据所述问卷信息从所述数据库中获取对应的基本元素及关系符,并利用所述基本元素及关系符建立符合所述逻辑规则的问卷规则;规则包存储单元,用于保存由所述问卷规则组成的规则包,每个规则包对应一个问卷。
由以上本发明实施例提供的技术方案可以看出,本发明由开发人员设定问卷的基本元素及关系符,并将包括数据对象、服务对象、常量、变量、动作等这些基本元素由数据库来管理,当用户定需要定制问卷时,首先由用户设定问卷的内容及答卷过程中动作触发的逻辑规则,然后由用户利用这些基本元素及关系符即可建立起符合所述逻辑规则的问卷规则,然后由这些问卷规则组成所需的问卷。因此,利用本发明,定制开发问卷及简单集成时无需重新开发,即不需要修改代码,只需要做相对开发较简单的配置(即建立问卷规则)就能很好地支撑业务的发展变化。
另外,本发明在智能问卷系统中引入了规则引擎,将答卷过程中对规则的解析,以及复杂的匹配过程交由规则引擎处理,从而加快了业务的适应能力,并且提高了对象匹配的效率。


图1是现有技术中通过脚本实现智能问卷的流程图;图2是本发明智能问卷系统的优选实施例的原理框图;图3是本发明中问卷的结构层次示意图;图4是图2所示本发明智能问卷系统实施例对问卷的处理流程图;图5是本发明问卷开发方法的一个优选实施例的流程图;图6是本发明中问卷与问卷规则的关系示意图;图7是本发明问卷开发装置第一实施例的原理框图;
图8是图7所示本发明问卷开发装置中各单元的交互流程图;图9是本发明问卷开发装置第二实施例的原理框图。
具体实施例方式
本发明由通过设定问卷的基本元素及关系符,并将包括常量、变量、动作等这些基本元素定义由数据库来存储,当用户定需要定制问卷时,根据用户提交的问卷请求,利用这些基本元素及关系符即可建立起符合所述逻辑规则的问卷规则,然后由这些问卷规则组成所需的规则包。在智能问卷系统中引入了规则引擎,将答卷过程中对规则的解析,以及复杂的匹配过程交由规则引擎处理,以提高规则匹配效率。
所谓规则引擎是一种嵌入在应用程序中的组件,它的任务是将当前提交给引擎的数据对象与加载在引擎中的业务规则进行测试和比对,激活那些符合当前数据状态下的业务规则,根据业务规则中声明的执行逻辑,触发应用程序中对应的操作。规则引擎的优点是匹配效率高,比如,Rete(快速的模式匹配)算法,易于适应规则变化,易于开发客户操作界面。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
参照图2所示本发明智能问卷系统的一个优选实施例的原理框图在该实施例中,本发明智能问卷系统包括问卷交互单元20、规则包存储单元21、规则引擎单元23、问题处理单元24。其中,规则包存储单元21用于存储规则包,每个规则包对应一个问卷,包括至少一条规则;问卷交互单元20提供用户接口,通过所述用户接口获取用户提交的问卷及答案数据;规则引擎单元23用于根据问卷交互单元20获取的问卷从规则包存储单元21中加载所述问卷对应的规则包,并根据所述答案数据触发所述规则包中的动作;问题处理单元24用于执行规则引擎单元23触发的动作的具体处理过程。
问卷的结构层次如图3所示,一个问卷由其编号及版本号唯一标识,每个问卷中包含一个或多个问题,每个问题下有多个选项。在规则包存储单元21中保存了对问卷、问题、选项之间依赖关系的描述,这些数据是由用户根据问卷定制界面进行配置的,这些配置数据用于动态生成问卷。对于问卷的生成过程将在后面详细描述。
规则引擎单元23采用规则引擎的基本机制,对提交给引擎的数据对象进行检索,根据这些对象的当前属性值和它们之间的关系,从加载到引擎的对应用户提交的问卷的规则包中发现符合条件的规则,创建这些规则的执行实例。这些实例将在引擎接到执行指令时,依照各实例的优先顺序依次执行。
规则引擎内部由下面几个部分构成工作内存,用于存放被引擎引用的数据对象集合;规则执行队列,用于存放被激活的规则执行实例;静态规则区,用于存放所有被加载的业务规则,这些规则将按照某种数据结构组织,当工作区中的数据发生改变后,引擎需要迅速根据工作区中的对象现状,调整规则执行队列中的规则执行实例。
规则引擎单元23可以采用基于Java或C++程序语言环境的规则引擎组件,当然,也可以采用其他的规则引擎组件。
在该实施例中,规则引擎单元23包括加载子单元231、匹配子单元232、触发子单元233。其中,加载子单元231用于根据问卷交互单元获取的问卷从规则包存储单元中加载问卷对应的规则包;匹配子单元232用于根据答卷的数据对象匹配所述规则包中定义的条件;触发子单元233用于触发所述匹配的条件对应的动作。
图4示出了本发明智能问卷系统对问卷的处理过程,包括以下步骤步骤41、问卷交互单元通过用户接口获取用户提交的问卷(问卷包括问题,问题包括选项);步骤42、规则引擎单元根据提交的问卷从规则包存储单元加载当前问卷对应的规则包;步骤43、向问卷交互单元返回加载结果;步骤44、用户通过问卷交互单元输入答案数据;步骤45、规则引擎单元根据答卷的数据对象集合,匹配规则包中定义的条件,并根据匹配的条件触发相应的动作(访问数据对象或服务对象的方法),可以是跳转到第N道题目,也可以是打开某个特定的服务页面等;步骤46、规则引擎单元调用问题处理单元执行触发的动作的具体处理过程;步骤47、规则引擎单元将下一道问题返回给问卷交互单元,进行新一轮交互。
当所述问卷有多个问题时,需要重复上述步骤44至步骤46,以完成所有问题的处理。
步骤48、所有问题处理完成后,将最终执行结果返回给问卷交互单元。
对于这种以规则包方式形成的问卷,本发明还提供了相应的开发方法及开发系统,以开发出使用灵活方便的问卷,解决使用问卷引入数据对象困难的问题,使问卷如同一个公共组件般易于使用,在进行系统集成或者需要引入已有新数据对象或服务对象作为规则因子时,不需要修改代码逻辑,只需要做相对开发较简单的配置就能够很好地支撑业务的发展变化。
参照图5所示本发明问卷开发方法的一个优选实施例的流程,包括以下步骤步骤501、确定问卷的内容及答卷过程中动作触发的逻辑规则;所述问卷的内容包括问题、选项,还包括问卷信息、在问卷各层次上设定的规则等。问卷的结构层次在前面已有详细描述,在此不再赘述。
步骤502、利用预先设定的问卷基本元素及关系符建立符合所述逻辑规则的问卷规则。
问卷的基本元素包括数据对象、服务对象、常量、变量、动作。为了使问卷可以作为公共组件提供给各种业务系统使用,也就是说要和业务结合,在本发明中引入了各种业务的数据和服务对象,即变量、变量、动作等。例如可以想象定义问卷时,开发前基本可以确定客户基本的信息,包括名字、性别、电话号码,这些公共信息可以事前定义作为问卷的动态显示内容和跳转逻辑选项。首先由用户利用所述关系符定义所述基本元素间的条件及符合所述条件触发的动作;然后就可以由这些条件及动作组成问卷规则。一组问卷规则组成一个规则包,这个规则包完整地描述了该问卷的所有规则。
步骤503、利用建立的问卷规则生成问卷。
利用本发明方法,可以在问卷开发时,由用户根据问卷基本元素及关系符建立符合所需逻辑规则的问卷规则,这些问卷规则组成了一个完整的问卷。可见,利用本发明,只需用户理解提供给用户的问卷基本元素及关系符,就可以使用户简单、方便地定制所需问卷。
图6示出了本发明中问卷与问卷规则的关系问卷规则中描述了规则条件和符合条件的动作,一个问卷一般对应多个规则,规则的集合就是规则包。为了便于管理,问卷和规则包为一一对应的管理关系,即将一个问卷相关的问卷规则都集中于一个规则包进行管理。变量和常量以及关系符都是组成条件的元素,它们的组合形成完整的问卷规则描述。
例如,以.drl格式文件描述的问卷规则的部分内容如下import com.test.examples.Person;import com.test.examples.Pension;rule″Find the retired person″when(Person.sex==″f″,Person.age>60)||Person.sex==″m″,Person.age>55)then
sendPension(personID,200);end对上述文件内容按非空行解释如下1)引入一个数据对象,数据对象包含了人的信息,如性别、年龄;2)引入一个服务对象,服务对象包含了方法sendPension,该方法的作用是根据用户ID发送退休金;3)规则寻找退休的人;4)如果条件满足;5)性别(sex)是“男”(f),年龄(age)大于60岁或者性别是“女”(m),年龄大于55岁;6)条件满足;7)发放退休金,接收人编号为(personID),发放金额为(200);8)规则结束。
对照图6,上述文件中的性别(sex)、年龄都是变量,“男”(m)、“女”(f)为常量,“==”、“>”都属于条件关系符。
为了使用户更好地利用本发明方法开发自己所需的问卷,可以将问卷规则的描述文件使用的语言翻译为解释语言,在数据库中保存变量、常量、条件、动作的同时,保存这些信息的来源关系绑定以及对应的客户语言,通过配置界面呈现给用户客户化的描述语句,从而使一般的用户不需要理解开发人员设定的问卷的基本元素及关系符,即可简单、方便地进行问卷规则的配置。
可见,在本发明中,结合规则引擎解决了数据对象、服务对象的引入问题。
规则引擎支持原生的规则语言,通常支持Import语句的使用,很像Java语言中的import语句,它的含义是“引入”,即只要在规则中使用的对象,指定完整的路径和类名,规则引擎自动从相同命名的Java包中引入所需的类。下面举例进行说明
例如,建立如下的规则import com.test.examples.Person;rule″Find the retired person″when(Person.sex==″f″,Person.age>60)||(Person.sex==″m″,Person.age>65)thennextQuestion(6);end其中,com.test.examples.Person是一个数据对象,它包含了答卷用户的个人信息,包括性别、年龄等。因为有了该对象,所以条件中就可以引用相关的信息。这样,当答复问卷的用户的性别(sex)是“男”(f),年龄(age)大于60岁或者性别是“女”(m),年龄大于55岁的时候,就跳转到第6题,这里目的是根据用户的信息,按照预设的轨迹进行引导答卷。
对上述规则进行扩展,建立如下的规则import com.test.examples.Person;import com.test.examples.Pension;rule″Find the retired person″when(Person.sex==″f″,Person.age>60)||(Person.sex==″m″,Person.age>65)thensendPension(personID,pension(Person.age));end与前面所建立的规则的区别是,在该规则中,com.test.examples.pension是一个服务对象,它包含了两个新的可用方法,即根据人的年龄计算应该发放的退金。其中,pension(Person.age)的目的是根据退休人员的年龄算出应该获得的退休金;sendPension(personID,pension(Person.age))是根据退休人员的帐号发送退休金。
由以上描述可见,规则引擎提供了原生语言描述来支撑动态扩展,在运行时进行动态解析,无需像编写程序一样在运行前必须经过编译。可见,利用本发明在问卷开发过程中,可以方便地扩展动作、变量和常量,大大提高了问卷的扩展和集成的效率。
当系统从数据库中读取出问卷、问卷包括的问题、针对每个问题的选项等信息时,可以根据不同应用场景初始化为问卷或答卷。问卷作为展示内容的定义,可以根据用户的设定的结果变更修改问卷的内容,例如题目的数量、新增选项、问卷逻辑控制规则的制定等。答卷则用于和用户进行交互并保存交互信息,在答卷结束时将用户的交互信息保存到数据库中。
由于答卷的信息常常需要保存一段时间以便长期分析,但随着业务的发展,问题的内容一般会有相应的变化,为了保证一定的持续性,方便对问卷的管理,还可以将对应一个问卷、包含一组问卷规则的规则包保存到数据库中时,设定该规则包的版本号。当用户修改问卷的内容后将其保存到数据库时,为修改后的问卷设定新的版本号。
版本管理保存了问卷和问题之间的版本对应关系,可以保证历史数据可以正确地显示和分析,新版本的问卷又可展示新的内容,极好地适应了当前的业务需要。
例如,一个问卷A,存在1、2、3、4、5个问题,使用了一段时间后发现问题3中问及的问题选项由于业务的变化,使得问题的选项也需要产生变化,但是如果直接在原有问卷上修改,会导致原来已经存储的答卷信息可能无法正常显示,因为原有的定义已经改变,此时如果要保证旧的数据能够正常显示,而往后的问卷又要以新的定义进行展示,则对新定义的问卷产生一个新的版本号,例如旧的问卷对应的是1.0的问题3,新的问卷对应的是1.1的问题3,问题3的选项不同,这样旧的数据采用1.0版本的问卷定义进行展示,新的问卷采用1.1版本的问卷定义进行展示,每个版本的数据对应该版本的问卷,保证了问卷数据总能正常显示。
参照图7,图7示出了本发明问卷开发装置第一实施例的原理框图在该实施例中,本发明问卷开发装置包括数据库70、问卷单元71、规则建立单元72、规则包存储单元73。其中,数据库70用于存储设定的问卷的基本元素及关系符,还存储了对应问卷的规则;问卷单元71提供用户接口,用于获取用户输入的问卷信息,所述问卷信息包括问卷的内容及答卷过程中动作触发的逻辑规则;规则建立单元72用于根据所述问卷信息从数据库70中获取对应的基本元素及关系符,并利用所述基本元素及关系符建立符合所述逻辑规则的问卷规则;规则包存储单元73用于保存由所述问卷规则组成的规则包,每个规则包对应一个问卷。
规则建立单元72包括条件设定子单元721和规则生成子单元722。其中,条件设定子单元721用于根据所述关系符定义所述基本元素间的条件及符合所述条件触发的动作;规则生成子单元722根据所述条件及所述动作组成所述问卷规则。
图8示出了图7所示本发明问卷开发装置中各单元的交互流程,包括以下步骤步骤81、问卷单元获取用户提交的问卷请求;步骤82、问卷单元从用户提交的问卷请求中取得问卷的基本信息,并提取问题信息和选项信息;步骤83、问卷单元请求规则建立单元进行问卷规则配置;步骤84、规则建立单元根据问卷的基本信息从数据库中获取相应的对象、变量、常量、关系符和动作的定义;步骤85、规则建立单元向问卷单元返回用户配置界面,在该配置界面将从数据库中获取相应的对象、变量、常量、关系符和动作的定义展示给用户;步骤86、用户通过配置界面进行问卷规则配置;步骤87、规则建立单元将用户配置的问卷规则保存到数据库中;步骤88、规则建立单元根据用户的配置生成问卷规则文件;步骤89、规则建立单元将生成的问卷规则文件保存到规则包存储单元中;步骤90、规则建立单元向问卷单元中的用户配置界面返回配置成功消息(该步骤为可选步骤)。
在配置界面用户上可以利用关系符定义对象、变量、常量间的条件关系,并设定符合该条件触发的动作;用户配置界面上的配置举例如下规则1条件1性别=男与年龄>60或 条件2性别=男与年龄>65结果发送退休金数据库中保存如下相关内容com.test.examples.Person;com.test.examples.Pension;rule″Find the retired person″(Person.sex==″f″,Person.age>60)||Person.sex==″m″,Person.age>55)sendPension(personID,200);生成的规则文件包含以下内容import com.test.examples.Persionimport com.test.examples.Pension;rule″Find the retired person″when
(Person.sex==″f″,Person.age>60)||Person.sex==″m″,Person.age>55)ThensendPension(personID,200);end参照图9,图9是本发明问卷开发装置第二实施例的原理框图与图7所示实施例不同的是,在该实施例中,在规则建立单元72和规则包存储单元73之间还设置有版本号添加单元74,用于为所述问卷规则组成的规则包添加版本号。版本号的添加过程及方式在前面本发明方法的描述中已有详细介绍,在此不再赘述。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
权利要求
1.一种智能问卷系统,其特征在于,包括规则包存储单元,用于存储规则包,每个规则包对应一个问卷,包括至少一条规则;问卷交互单元,提供用户接口,通过所述用户接口获取用户提交的问卷及答案数据;规则引擎单元,用于根据所述问卷交互单元获取的问卷从所述规则包存储单元中加载所述问卷对应的规则包,并根据所述答案数据触发所述规则包中的动作;问题处理单元,用于执行规则引擎单元触发的动作的具体处理过程。
2.根据权利要求1所述的系统,其特征在于,所述规则引擎单元包括加载子单元,用于根据所述问卷交互单元获取的问卷从所述规则包存储单元中加载所述问卷对应的规则包;匹配子单元,用于根据所述答卷的数据对象匹配所述规则包中定义的条件;触发子单元,用于触发所述匹配的条件对应的动作。
3.一种问卷开发方法,其特征在于,包括确定问卷的内容及答卷过程中动作触发的逻辑规则;利用预先设定的问卷基本元素及关系符建立符合所述逻辑规则的问卷规则;利用所述问卷规则生成问卷。
4.根据权利要求3所述的方法,其特征在于,所述问卷基本元素包括数据对象、服务对象、常量、变量、动作。
5.根据权利要求3所述的方法,其特征在于,所述问卷的内容包括问题和选项。
6.根据权利要求3所述的方法,其特征在于,所述利用预先设定的问卷基本元素及关系符建立符合所述逻辑规则的问卷规则的步骤包括利用所述关系符定义所述基本元素间的条件及符合所述条件触发的动作;由所述条件及所述动作组成所述问卷规则。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括设定所述问卷的版本号,并将所述问卷保存到数据库中;当用户修改所述问卷的内容后将其保存到数据库时,为修改后的问卷设定新的版本号。
8.一种问卷开发装置,其特征在于,包括数据库,用于存储设定的问卷的基本元素及关系符;问卷单元,提供用户接口,用于获取用户输入的问卷信息,所述问卷信息包括问卷的内容及答卷过程中动作触发的逻辑规则;规则建立单元,用于根据所述问卷信息从所述数据库中获取对应的基本元素及关系符,并利用所述基本元素及关系符建立符合所述逻辑规则的问卷规则;规则包存储单元,用于保存由所述问卷规则组成的规则包,每个规则包对应一个问卷。
9.根据权利要求8所述的装置,其特征在于,所述规则建立单元包括条件设定子单元,用于根据所述关系符定义所述基本元素间的条件及符合所述条件触发的动作;规则生成子单元,根据所述条件及所述动作组成所述问卷规则。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括版本号添加单元,分别与所述规则建立单元和所述规则包存储单元耦接,用于为所述问卷规则组成的规则包添加版本号。
全文摘要
本发明公开了一种智能问卷系统,包括规则包存储单元,用于存储规则包;问卷交互单元,提交问卷及答案数据;规则引擎单元,根据问卷交互单元提交的问卷从规则包存储单元中加载所述问卷对应的规则包,并根据答案数据触发规则包中的动作;问题处理单元,用于执行规则引擎单元触发的动作的具体处理过程。本发明还公开了一种问卷开发方法及装置,所述装置包括数据库,存储设定的问卷的基本元素及关系符;问卷单元,支持用户输入的问卷信息;规则建立单元,根据问卷信息从数据库中获取对应的基本元素及关系符,并利用所述基本元素及关系符建立符合逻辑规则的问卷规则;规则包存储单元,用于存储规则包。利用本发明,可以提高开发效率,方便业务及系统扩展。
文档编号G06Q10/00GK101017540SQ20071000265
公开日2007年8月15日 申请日期2007年1月24日 优先权日2007年1月24日
发明者简春安 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1