基于区块链的流程管理方法、系统和存储介质与流程

文档序号:26904825发布日期:2021-10-09 13:48阅读:161来源:国知局
基于区块链的流程管理方法、系统和存储介质与流程

1.本发明涉及区块链领域,特别涉及一种基于区块链的流程管理方法、系统和存储介质。


背景技术:

2.流程引擎的使用可为用户提供对流程节点的管理的功能,例如对流程节点接入管理和操作管理。但使用流程引擎对流程节点进行管理的过程中,仍存在因各种原因导致流程引擎中的流程实例出现流程停滞或者流程中断的问题。
3.目前,暂时没有针对流程实例出现上述问题的解决方案。


技术实现要素:

4.鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种基于区块链的流程管理方法、系统和存储介质。
5.第一方面,一种基于区块链的流程管理方法,包括:
6.第一联盟链上的第一超级节点获得所述第一联盟链上的第一流程节点对于第一流程实例的第一操作信息;
7.所述第一超级节点将所述第一操作信息存储至旧版json文件,从而得到新版json文件,其中,所述旧版json文件中至少存储有除了所述第一流程节点外的其它流程节点对所述第一流程实例的其它操作信息,所述其它流程节点为在所述第一流程节点之前的对所述第一流程实例进行操作的流程节点;
8.流程引擎确定当前节点监控结果,其中,所述流程引擎为管理所述第一流程实例的流程引擎,所述当前节点监控结果为所述第一流程节点对所述第一流程实例的操作结果,所述当前节点监控结果包括:流程异常或者流程正常;
9.若所述当前节点监控结果为流程异常,则所述流程引擎控制所述第一超级节点将所述新版json文件中的所述第一操作信息删除,使得所述新版json文件恢复为所述旧版json文件;
10.所述流程引擎根据所述旧版json文件,控制所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态。
11.结合第一方面,在某些可选的实施方式中,所述方法还包括:
12.若所述当前节点监控结果为流程异常,则所述流程引擎记录所述第一流程实例的标识和所述第一流程节点的标识。
13.结合上一个实施方式,在某些可选的实施方式中,所述方法还包括:
14.若所述当前节点监控结果为流程异常,则所述流程引擎将所述流程异常对应的所述第一流程节点的第一操作信息备份至异常流程操作信息表中;
15.所述流程引擎根据所述旧版json文件,控制所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态,包括:
16.所述流程引擎根据所述旧版json文件,控制所述第一超级节点将所述第一流程实例回滚到所述第一流程节点进行操作之前的流程状态。
17.结合第二个实施方式,在某些可选的实施方式中,所述流程引擎控制所述第一超级节点将所述新版json文件中的所述第一操作信息删除,包括:
18.所述流程引擎解析所述新版json文件,获得所述新版json文件中的各流程节点的操作信息;
19.所述流程引擎根据记录的所述第一流程实例的标识和所述第一流程节点的标识,控制所述第一超级节点将所述新版json文件中的所述第一流程节点的第一操作信息删除。
20.结合第一方面,在某些可选的实施方式中,所述流程引擎确定当前节点监控结果的过程,包括:
21.所述流程引擎中获得所述第一流程节点对所述第一流程实例的操作时间;
22.所述流程引擎根据所述操作时间确定所述当前节点监控结果。
23.结合上个实施方式,在某些可选的实施方式中,所述流程引擎根据所述操作时间确定所述当前节点监控结果,包括:
24.若所述操作时间不超过预先设置的时间阈值,则所述流程引擎确定所述当前节点监控结果为流程正常,否则确定所述当前节点监控结果为流程异常。
25.结合第一方面,在某些可选的实施方式中,在所述流程引擎根据所述旧版json文件,控制所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态之后,所述方法还包括:
26.所述第一超级节点通过所述第一联盟链,将所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态作为节点更新结果发送给所述第一联盟链上的其它流程节点。
27.结合第一方面,在某些可选的实施方式中,在所述第一联盟链上的第一超级节点获得所述第一联盟链上的第一流程节点对于第一流程实例的第一操作信息之前,所述方法还包括:
28.所述第一联盟链上的第一流程节点对所述第一流程实例进行操作,并且所述第一流程节点记录对所述第一流程实例的第一操作信息;
29.所述第一流程节点将所述第一操作信息上传至所述第一联盟链,以使得所述第一联盟链上的第一超级节点通过所述第一联盟链获得所述第一操作信息。
30.第二方面,一种基于区块链的流程管理系统,包括:流程引擎和第一超级节点;
31.所述第一超级节点包括:第一操作信息获得单元和第一操作信息存储单元;
32.所述流程引擎包括:监控结果确定单元、控制信息删除单元和控制流程恢复单元;
33.所述第一操作信息获得单元,被配置为执行获得所述第一联盟链上的第一流程节点对于第一流程实例的第一操作信息;
34.所述第一操作信息存储单元,被配置为执行将所述第一操作信息存储至旧版json文件,从而得到新版json文件,其中,所述旧版json文件中至少存储有除了所述第一流程节点外的其它流程节点对所述第一流程实例的其它操作信息,所述其它流程节点为在所述第一流程节点之前的对所述第一流程实例进行操作的流程节点;
35.所述监控结果确定单元,被配置为执行确定当前节点监控结果,其中,所述流程引
擎为管理所述第一流程实例的流程引擎,所述当前节点监控结果为所述第一流程节点对所述第一流程实例的操作结果,所述当前节点监控结果包括:流程异常或者流程正常;
36.所述控制信息删除单元,被配置为执行若所述当前节点监控结果为流程异常,则控制所述第一超级节点将所述新版json文件中的所述第一操作信息删除,使得所述新版json文件恢复为所述旧版json文件;
37.所述控制流程恢复单元,被配置为执行根据所述旧版json文件,控制所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态。第三方面,一种存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的基于区块链的流程管理方法。
38.第三方面,一种存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的基于区块链的流程管理方法。
39.借由上述技术方案,本发明提供的一种基于区块链的流程管理方法、系统和存储介质,可以通过第一联盟链上的第一超级节点获得所述第一联盟链上的第一流程节点对于第一流程实例的第一操作信息;所述第一超级节点将所述第一操作信息存储至旧版json文件,从而得到新版json文件,其中,所述旧版json文件中至少存储有除了所述第一流程节点外的其它流程节点对所述第一流程实例的其它操作信息,所述其它流程节点为在所述第一流程节点之前的对所述第一流程实例进行操作的流程节点;流程引擎确定当前节点监控结果,其中,所述流程引擎为管理所述第一流程实例的流程引擎,所述当前节点监控结果为所述第一流程节点对所述第一流程实例的操作结果,所述当前节点监控结果包括:流程异常或者流程正常;若所述当前节点监控结果为流程异常,则所述流程引擎控制所述第一超级节点将所述新版json文件中的所述第一操作信息删除,使得所述新版json文件恢复为所述旧版json文件;所述流程引擎根据所述旧版json文件,控制所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态。由此可以看出,本发明的流程引擎可以监控各个流程节点的操作结果,当某个流程节点的操作结果流程异常时,流程引擎可以控制超级节点删除相应出现流程异常的流程节点的操作信息,使得超级节点的json文件恢复为之前的json文件版本,并且流程引擎可以根据之前的json文件版本将流程实例回退到出现流程异常的流程节点进行操作之前的流程状态。即,本发明可以通过超级节点备份流程节点的操作信息,并在出现流程异常时,根据流程节点的操作信息及时将流程实例回退到出现流程异常之前的流程状态,避免流程实例长时间保持在异常状态,提高系统安全性和可靠性。
40.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
41.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
42.图1示出了本发明提供的一种基于区块链的流程管理方法的流程图;
43.图2示出了本发明提供的一种基于区块链的流程管理系统的结构示意图;
44.图3示出了本发明提供的一种电子设备的结构示意图。
具体实施方式
45.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
46.如图1所示,本发明提供了一种基于区块链的流程管理方法,包括:
47.s100、第一联盟链上的第一超级节点获得所述第一联盟链上的第一流程节点对于第一流程实例的第一操作信息;
48.可选的,第一联盟链可以为区块链领域中的其中一种联盟链,本发明所说的第一超级节点和第一流程节点均位于第一联盟链上,且第一联盟链上的各超级节点和流程节点之间建立了认证共识,本发明对此不做限制。
49.可选的,本文所述的第一超级节点可以参见区块链领域对于超级节点的定义和解释,本发明对此不做过多描述。
50.可选的,第一联盟链上除了可以有第一超级节点还可以有其它任意数量的超级节点,除了可以有第一流程节点还可以有其它任意数量的流程节点,本发明对此不做限制。
51.可选的,本文所说的第一流程实例可以参见流程引擎领域对于流程实例的定义和解释,本文对此不做过多描述。
52.可选的,流程定义运行之后可以转化为流程实例。流程实例是指一个业务流程的一次独立的实际运行过程。每一个流程实例代表一个能独立控制执行的具有内部状态的线程,每一个流程实例具有自己对内对外的独立性。
53.可选的,第一流程节点作为对第一流程实例进行操作的一个节点环节,可以配置第一流程节点的处理人或处理角色、判断条件、审批结果(影响下一步网关分支的走向)、关联表单编号(即自定义流程节点的界面)、自动审批超时时间等,本发明对此不做限制。
54.可选的,第一流程节点加入第一联盟链时可以与第一超级节点达成认证共识,即第一超级节点对第一流程实例的每个流程节点的操作信息都有记录,并且记录的信息可以在第一联盟链上进行广播。超级节点还可以对第一流程节点的每个操作动作进行控制,本发明对此不做限制。
55.s200、所述第一超级节点将所述第一操作信息存储至旧版json文件,从而得到新版json文件,其中,所述旧版json文件中至少存储有除了所述第一流程节点外的其它流程节点对所述第一流程实例的其它操作信息,所述其它流程节点为在所述第一流程节点之前的对所述第一流程实例进行操作的流程节点;
56.可选的,在第一超级节点中可以有一个json文件,对应存储其连接的所有流程节点的操作信息,包括第一流程节点的操作信息,本发明对此不做限制。当然,也可以是一个流程节点对应一个json文件,本发明对此不做限制。
57.可选的,json文件中可以存储第一流程节点对第一流程实例进行各种操作的操作信息,包括第一流程节点之前对第一流程实例的操作的操作信息,本发明对此不做限制。
58.可选的,本文所说的新版json文件可以理解为增加了新的操作信息的json文件,
旧版json文件可以理解为增加新的操作信息之前的json文件,本发明对此不做限制。
59.s300、流程引擎确定当前节点监控结果,其中,所述流程引擎为管理所述第一流程实例的流程引擎,所述当前节点监控结果为所述第一流程节点对所述第一流程实例的操作结果,所述当前节点监控结果包括:流程异常或者流程正常;
60.可选的,本文所说的流程引擎可以提供对流程实例的流程节点管理、流向管理、流程样例管理等重要功能,本发明对此不做限制。
61.可选的,本文所述的流程引擎中可以嵌入一个监控模块,该监控模块可以监控每个流程节点对流程实例的操作过程和操作结果,包括第一流程节点对第一流程实例的操作过程和操作结果,本发明对此不做限制。
62.可选的,若在第一流程节点对第一流程实例操作后,第一流程实例出现流程停滞、流程中止或者配置信息被篡改等情况,则所述当前节点监控结果为流程异常,否则,所述当前节点监控结果为流程正常,本发明对此不做限制。
63.s400、若所述当前节点监控结果为流程异常,则所述流程引擎控制所述第一超级节点将所述新版json文件中的所述第一操作信息删除,使得所述新版json文件恢复为所述旧版json文件;
64.可选的,若所述当前节点监控结果为流程异常,则说明第一流程节点对第一流程实例的操作有问题,相应生成的第一操作信息也是异常的信息,所以可以删除所述第一操作信息删除,使得所述新版json文件恢复为所述旧版json文件,本发明对此不做限制。
65.例如,若所述当前节点监控结果为流程异常,则说明第一流程节点的操作不准确、或者不符合要求、或者导致流程坏死等。这情况下,第一超级节点可以拒绝第一流程节点及其他流程节点对第一流程实例的操作,并根据json文件,将第一流程实例恢复到修改前,本发明对此不做限制。
66.s500、所述流程引擎根据所述旧版json文件,控制所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态。
67.结合图1所示的实施方式,在某些可选的实施方式中,所述方法还包括:
68.若所述当前节点监控结果为流程异常,则所述流程引擎记录所述第一流程实例的标识和所述第一流程节点的标识。
69.可选的,记录导致出现流程异常的第一流程实例的标识和导致第一流程实例出现流程异常的第一流程节点的标识,以便于在需要的时候及时查找到相应的json文件和相应的操作信息,本发明对此不做限制。
70.结合上一个实施方式,在某些可选的实施方式中,所述方法还包括:步骤101;
71.步骤101、若所述当前节点监控结果为流程异常,则所述流程引擎将所述流程异常对应的所述第一流程节点的第一操作信息备份至异常流程操作信息表中;
72.所述s500,包括:步骤102;
73.步骤102、所述流程引擎根据所述旧版json文件,控制所述第一超级节点将所述第一流程实例回滚到所述第一流程节点进行操作之前的流程状态。
74.可选的,若所述当前节点监控结果为流程异常,则将会删除json文件里相应节点的操作信息,那么可以在异常流程操作信息表备份json文件里删除掉的操作信息,以便于在需要的时候有迹可循,本发明对此不做限制。
75.可选的,流程引擎中的监控组件通知第一超级节点回滚,回滚是根据旧版json文件和记录的操作信息进行回滚。每个流程实例的json文件里的操作信息,记录了当前所在的流程节点,回滚就是将当前的流程节点改为上一个流程节点,本发明对此不做限制。
76.结合第二个实施方式,在某些可选的实施方式中,所述s400中的流程引擎控制所述第一超级节点将所述新版json文件中的所述第一操作信息删除,包括:步骤201和步骤202;
77.步骤201、所述流程引擎解析所述新版json文件,获得所述新版json文件中的各流程节点的操作信息;
78.可选的,流程引擎解析新版json文件可以得到各流程节点的操作信息,其中就包括了第一流程节点的第一操作信息,本发明对此不做限制。
79.步骤202、所述流程引擎根据记录的所述第一流程实例的标识和所述第一流程节点的标识,控制所述第一超级节点将所述新版json文件中的所述第一流程节点的第一操作信息删除。
80.可选的,前述的实施方式中已经记录了所述第一流程实例的标识和所述第一流程节点的标识,所以可以根据所述第一流程实例的标识快速查找到相应的新版json文件,并且可以根据第一流程节点的标识快速定位到新版json文件存储的第一流程节点的第一操作信息,本发明对此不做限制。
81.结合图1所示的实施方式,在某些可选的实施方式中,所述流程引擎确定当前节点监控结果的过程,包括:步骤301和步骤302;
82.步骤301、所述流程引擎获得所述第一流程节点对所述第一流程实例的操作时间;
83.可选的,本文所说的操作时间可以是第一流程节点对所述第一流程实例进行操作的开始时刻或者是终止时刻,也可以是第一流程节点对所述第一流程实例进行操作持续时间长度,本发明对此不做限制。
84.步骤302、所述流程引擎根据所述操作时间确定所述当前节点监控结果。
85.可选的,一般具体的流程节点对流程实例的操作时间是在小范围变动或者几乎不变的,若操作时间出现大幅度变化,则说明相应的流程节点对流程实例进行操作导致了流程异常,本发明对此不做限制。
86.例如,结合上一个实施方式,在某些可选的实施方式中,所述步骤302,包括:
87.若所述操作时间不超过预先设置的时间阈值,则所述流程引擎确定所述当前节点监控结果为流程正常,否则确定所述当前节点监控结果为流程异常。
88.结合第一方面,在某些可选的实施方式中,在所述s500之后,所述方法还包括:
89.所述第一超级节点通过所述第一联盟链,将所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态作为节点更新结果发送给所述第一联盟链上的其它流程节点。
90.可选的,流程实例可回滚到上一个流程节点,使得流程实例可以继续运行之前的坏死节点,避免流程堵死,本发明对此不做限制。
91.结合第一方面,在某些可选的实施方式中,在s100之前,所述方法还包括:步骤401和步骤402;
92.步骤401、所述第一联盟链上的第一流程节点对所述第一流程实例进行操作,所述
第一流程节点记录对所述第一流程实例的第一操作信息;
93.步骤402、所述第一流程节点将所述第一操作信息上传至所述第一联盟链,以使得所述第一联盟链上的第一超级节点通过所述第一联盟链获得所述第一操作信息。
94.如图2所示,本发明提供了一种基于区块链的流程管理系统,包括:流程引擎100和第一超级节点200;
95.所述流程引擎100包括:监控结果确定单元110、控制信息删除单元120和控制流程恢复单元130;
96.所述第一超级节点200包括:第一操作信息获得单元210和第一操作信息存储单元220;
97.所述第一操作信息获得单元210,被配置为执行获得所述第一联盟链上的第一流程节点对于第一流程实例的第一操作信息;
98.所述第一操作信息存储单元220,被配置为执行将所述第一操作信息存储至旧版json文件,从而得到新版json文件,其中,所述旧版json文件中至少存储有除了所述第一流程节点外的其它流程节点对所述第一流程实例的其它操作信息,所述其它流程节点为在所述第一流程节点之前的对所述第一流程实例进行操作的流程节点;
99.所述监控结果确定单元110,被配置为执行确定当前节点监控结果,其中,所述流程引擎100为管理所述第一流程实例的流程引擎100,所述当前节点监控结果为所述第一流程节点对所述第一流程实例的操作结果,所述当前节点监控结果包括:流程异常或者流程正常;
100.所述控制信息删除单元120,被配置为执行若所述当前节点监控结果为流程异常,则控制所述第一超级节点200将所述新版json文件中的所述第一操作信息删除,使得所述新版json文件恢复为所述旧版json文件;
101.所述控制流程恢复单元130,被配置为执行根据所述旧版json文件,控制所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态。
102.结合图2所示的实施方式,在某些可选的实施方式中,所述流程引擎100,还包括:记录子单元;
103.所述记录子单元,被配置为执行若所述当前节点监控结果为流程异常,则记录所述第一流程实例的标识和所述第一流程节点的标识。
104.结合图2所示的实施方式,在某些可选的实施方式中,所述流程引擎100,还包括:备份子单元;
105.所述备份子单元,被配置为执行若所述当前节点监控结果为流程异常,则将所述流程异常对应的所述第一流程节点的第一操作信息备份至异常流程操作信息表中;
106.所述控制流程恢复单元130,包括:控制流程恢复子单元;
107.所述控制流程恢复子单元,被配置为执行根据所述旧版json文件,控制所述第一超级节点200将所述第一流程实例回滚到所述第一流程节点进行操作之前的流程状态。
108.结合图2所示的实施方式,在某些可选的实施方式中,所述控制信息删除单元120执行控制所述第一超级节点200将所述新版json文件中的所述第一操作信息删除时,具体包括:解析子单元和删除子单元;
109.所述解析子单元,被配置为执行解析所述新版json文件,获得所述新版json文件
中的各流程节点的操作信息;
110.所述删除子单元,被配置为执行根据记录的所述第一流程实例的标识和所述第一流程节点的标识,控制所述第一超级节点200将所述新版json文件中的所述第一流程节点的第一操作信息删除。
111.结合图2所示的实施方式,在某些可选的实施方式中,所述监控结果确定单元110执行确定当前节点监控结果时,具体包括:监控子单元和确定子单元;
112.所述监控子单元,被配置为执行获得所述第一流程节点对所述第一流程实例的操作时间;
113.所述确定子单元,被配置为执行根据所述操作时间确定所述当前节点监控结果。
114.结合上一个实施方式,在某些可选的实施方式中,所述确定子单元,包括:第一确定子单元和第二确定子单元;
115.所述第一确定子单元,被配置为执行若所述操作时间不超过预先设置的时间阈值,则所述流程引擎100确定所述当前节点监控结果为流程正常;
116.所述第二确定子单元,被配置为执行若所述操作时间超过预先设置的时间阈值,则确定所述当前节点监控结果为流程异常。
117.结合图2所示的实施方式,在某些可选的实施方式中,所述第一超级节点200,还包括:结果发送子单元;
118.所述结果发送子单元,被配置为执行在所述流程引擎100根据所述旧版json文件,控制所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态之后,通过所述第一联盟链,将所述第一流程实例恢复到所述第一流程节点进行操作之前的流程状态作为节点更新结果发送给所述第一联盟链上的其它流程节点。
119.结合图2所示的实施方式,在某些可选的实施方式中,所述流程管理系统,还包括:第一流程节点;
120.所述第一流程节点,包括:操作子单元和上传子单元;
121.所述操作子单元,被配置为执行在所述第一联盟链上的第一超级节点200获得所述第一联盟链上的第一流程节点对于第一流程实例的第一操作信息之前,对所述第一流程实例进行操作,并且记录对所述第一流程实例的第一操作信息;
122.所述上传子单元,被配置为执行将所述第一操作信息上传至所述第一联盟链,以使得所述第一联盟链上的第一超级节点200通过所述第一联盟链获得所述第一操作信息。
123.本发明提供了一种存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的基于区块链的流程管理方法。
124.如图3所示,本发明提供了一种电子设备70,所述电子设备70包括至少一个处理器701、以及与所述701处理器连接的至少一个存储器702、总线703;其中,所述处理器701、所述存储器702通过所述总线703完成相互间的通信;所述处理器701用于调用所述存储器702中的程序指令,以执行上述任一项所述的基于区块链的流程管理方法。
125.在本技术中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括
没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
126.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
127.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
128.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1