Activiti工作流引擎核心表结构与注释解析

前言

在企业级业务流程自动化领域,Apache Activiti是一款功能强大的开源BPMN 2.0流程引擎。其数据库设计严谨而高效,包含了一系列用于存储流程定义、运行时数据以及历史记录的表。本文旨在为读者提供一个全面的框架,以便深入了解Activiti核心数据库表的设计及其用途,每张表的详细注释将由作者根据实际探索和实践经验进行撰写。

一、Activiti核心表概览

1. 流程定义相关表
  • ACT_RE_*系列表:主要包括流程定义(Process Definitions)、流程资源(Resources)和其他静态信息的存储。
   
2. 运行时数据表
  • ACT_RU_*系列表:这些表存放了流程实例执行过程中的实时数据,如任务(Tasks)、流程实例(Process Instances)、变量(Variables)、执行对象(Executions)等。
3. 历史数据表
  • ACT_HI_*系列表:当流程实例结束或达到特定条件时,相关的运行时数据会被迁移到历史表中,以供后期审计、报告分析之用。
4. 身份和权限表
  • ACT_ID_*系列表:主要用于存储用户、组以及相关的身份和权限信息。
5. 其他辅助表
  • 包括事件日志表:(Event Log)、作业及定时器表(Job and Timer entities)等,它们服务于调度、异步处理等功能需求。

二、各核心表详细注释

1. act_re_model

act_re_model表是用于存储流程模型(就是流程图)信息的表

序号字段名类型长度是否主键注释
1ID_varchar64主键
2REV_int10数据更新乐观锁
3NAME_varchar255名称
4KEY_varchar255自定义业务主键
5CATEGORY_varchar255分类
6CREATE_TIME_timestamp创建时间
7LAST_UPDATE_TIME_timestamp更新时间
8VERSION_int10模型版本
9META_INFO_varchar4000附加信息
10DEPLOYMENT_ID_varchar64部署ID
11EDITOR_SOURCE_VALUE_ID_varchar64xml文件管理存储的数据ID 关联act_ge_bytearray中的ID
12EDITOR_SOURCE_EXTRA_VALUE_ID_varchar64附加信息存储的数据ID 关联act_ge_bytearray中的ID
13TENANT_ID_varchar255租户ID
2. act_ge_bytearray

在Activiti7底层大字段的存储原则是都存储到act_ge_bytearray表的BYTES_字段中  

序号字段名类型长度是否主键注释
1ID_varchar64主键
2REV_int10数据更新乐观锁
3NAME_varchar255名称
4DEPLOYMENT_ID_varchar64部署ID
5BYTES_longblob4294967295大字段内容
6GENERATED_tinyint3标识是否自动生成的记录
3.  act_re_deployment

act_re_deployment表是用于存储部署流程图信息

序号字段名类型长度是否主键注释
1ID_varchar64主键
2NAME_varchar255名称
3CATEGORY_varchar255分类
4KEY_varchar255业务key
5TENANT_ID_varchar255租户ID
6DEPLOY_TIME_timestamp部署时间
7ENGINE_VERSION_varchar255引擎版本,一般为空
8VERSION_int10部署版本
9PROJECT_RELEASE_VERSION_varchar255项目版本,一般为空
4. act_re_procdef

act_re_procdef表用于存储流程图中解析得到的流程信息

序号字段名类型长度是否必填注释
1ID_varchar64主键
2REV_int10数据更新乐观锁
3CATEGORY_varchar255分类
4NAME_varchar255名称
5KEY_varchar255流程定义key
6VERSION_int10流程定义版本
7DEPLOYMENT_ID_varchar64关联部署ID
8RESOURCE_NAME_varchar4000流程定义存在的资源名称
9DGRM_RESOURCE_NAME_varchar4000流程图文件的资源名称,一般为空
10DESCRIPTION_varchar4000流程定义描述
11HAS_START_FORM_KEY_tinyint3是否启动表单,1是,0否,一般为0
12HAS_GRAPHICAL_NOTATION_tinyint3是否图形标记,1是,0否,可以理解成 xml中节点坐标等信息是否有
13SUSPENSION_STATE_int10挂起状态,1挂起,2未挂起
14TENANT_ID_varchar255租户ID
15ENGINE_VERSION_varchar255引擎版本,一般不用
16APP_VERSION_int10APP版本,一般不用
5. act_ru_identitylink

act_ru_identitylink表用于存储资源(比如:流程定义、流程实例、任务等资源)授权信息,拥有授权信息才可以使用对应资源

序号字段名类型长度是否主键注释
1ID_varchar64主键
2REV_int10数据更新乐观锁
3GROUP_ID_varchar255授权的分组ID
4TYPE_varchar255授权类型
5USER_ID_varchar255授权的用户ID
6TASK_ID_varchar64任务资源ID
7PROC_INST_ID_varchar64流程实例资源ID
8PROC_DEF_ID_varchar64流程定义资源ID
6. act_ru_execution

act_ru_execution用于存储运行中流程的节点信息。不仅存储流程实例信息,还存储流程实例的待执行节点信息

序号字段名类型长度注释
1ID_varchar64主键
2REV_int10数据更新乐观锁
3PROC_INST_ID_varchar64流程实例ID
4BUSINESS_KEY_varchar255业务自定义key
5PARENT_ID_varchar64父执行ID
6PROC_DEF_ID_varchar64流程定义ID
7ROOT_PROC_INST_ID_varchar64根流程实例ID
8ACT_ID_varchar255正在活跃的活动ID,节点可以任务是时间或任务,ID对应画图时的ID
9IS_ACTIVE_tinyint3是否激活,1激活,2挂起
10IS_CONCURRENT_tinyint3是否是并行分支,1是,0否
11IS_SCOPE_tinyint3是否独立执行,1是,0不是,独立空间执行会有独立的变量等信息
12IS_EVENT_SCOPE_tinyint3是否独立事件执行,1是,0不是
13IS_MI_ROOT_tinyint3是否多实例,1是,0不是
14SUSPENSION_STATE_int10挂起状态,1激活,2挂起
15CACHED_ENT_STATE_int10缓存实体状态
16TENANT_ID_varchar255租户ID
17NAME_varchar255流程实例名称
18START_TIME_datetime开始时间
19START_USER_ID_varchar255开始用户
20LOCK_TIME_timestamp锁住的时间
21IS_COUNT_ENABLED_tinyint3是否能够计数
22EVT_SUBSCR_COUNT_int10订阅的事件数量
23TASK_COUNT_int10任务数量
24JOB_COUNT_int10作业数量
25TIMER_JOB_COUNT_int10定时作业数量,activiti自带定时作业功能
26SUSP_JOB_COUNT_int10挂了的作业数量
27DEADLETTER_JOB_COUNT_int10延迟任务数量
28VAR_COUNT_int10变量数量
29APP_VERSION_int10应用版本
7. act_ru_task

act_ru_task用于存储需要办理的任务信息

序号字段名类型长度注释
1ID_varchar64主键
2REV_int10数据修改乐观锁
3EXECUTION_ID_varchar64执行实例ID
4PROC_INST_ID_varchar64流程实例ID
5PROC_DEF_ID_varchar64流程定义ID
6NAME_varchar255当前任务名称
7BUSINESS_KEY_varchar255业务自定义KEY
8PARENT_TASK_ID_varchar64父任务ID
9DESCRIPTION_varchar4000任务描述,对应画图时的document
10TASK_DEF_KEY_varchar255任务定义KEY,流程图中的id字段值
11OWNER_varchar255任务拥有者
12ASSIGNEE_varchar255任务办理人
13DELEGATION_varchar64任务委托状态,任务被委托时,为PENDING,委托任务被解决后为RESOLVED
14PRIORITY_int10优先级,默认50
15CREATE_TIME_timestamp创建时间
16DUE_DATE_datetime截止时间
17CATEGORY_varchar255任务类别
18SUSPENSION_STATE_int10挂起状态,1激活,2挂起
19TENANT_ID_varchar255租户
20FORM_KEY_varchar255表单key,一般不用
21CLAIM_TIME_datetime任务被认领的时间
22APP_VERSION_int10应用版本
8. act_ru_variable

act_ru_variable用于存储运行中流程的变量信息

序号字段名类型长度注释
1ID_varchar64主键
2REV_int10乐观锁
3TYPE_varchar255变量类型json\string\integer
4NAME_varchar255变量名
5EXECUTION_ID_varchar64执行ID
6PROC_INST_ID_varchar64流程实例ID
7TASK_ID_varchar64任务ID
8BYTEARRAY_ID_varchar64二进制数据管理的ID,关联BYTEARRAY表
9DOUBLE_double22存储变量类型为Double
10LONG_bigint19存储变量类型为long
11TEXT_varchar4000存储变量值类型为String 如此处存储持久化对象时,值jpa对象的class
12TEXT2_varchar4000此处存储的是JPA持久化对象时,才会有值。此值为对象ID0
9. act_hi_actinst

act_hi_actinst用于存储流程实例每个节点信息,在activiti中把每个节点都称为活动,因此此表也叫活动信息表

序号字段名类型长度是否主键注释
1ID_varchar64主键
2PROC_DEF_ID_varchar64流程定义ID
3PROC_INST_ID_varchar64流程实例ID
4EXECUTION_ID_varchar64执行ID
5ACT_ID_varchar255xml中活动节点id
6TASK_ID_varchar64任务ID
7CALL_PROC_INST_ID_varchar64调用的流程实例ID
8ACT_NAME_varchar255xml中活动节点的name
9ACT_TYPE_varchar255xml中活动节点的元素名
10ASSIGNEE_varchar255办理人
11START_TIME_datetime开始时间
12END_TIME_datetime结束时间
13DURATION_bigint19耗时
14DELETE_REASON_varchar4000删除原因
15TENANT_ID_varchar255租户ID
10. act_hi_detail

act_hi_detail表记录了整个流程运行过程中,对流程变量、表单数据、备注等操作的操作明细。被称为流程运行明细表

序号字段名类型长度是否主键注释
1ID_varchar64主键
2TYPE_varchar255操作类型支持变量、表单数据、备注
3PROC_INST_ID_varchar64流程实例
4EXECUTION_ID_varchar64执行ID
5TASK_ID_varchar64任务ID
6ACT_INST_ID_varchar64活动实例ID
7NAME_varchar255变量名
8VAR_TYPE_varchar255变量类型
9REV_int10数据更新乐观锁
10TIME_datetime操作时间
11BYTEARRAY_ID_varchar64大字段关联act_ge_bytearray表的ID
12DOUBLE_double22double类型的变量值
13LONG_bigint19long类型的变量值
14TEXT_varchar4000String类型的变量值
11. act_hi_identitylink

act_hi_identitylink比act_ru_identitylink表少了一个REV_字段,其它字段都一样

序号字段名类型长度是否主键注释
1ID_varchar64主键
2PROC_DEF_ID_varchar64流程定义资源ID
3GROUP_ID_varchar255授权的分组ID
4TYPE_varchar255授权类型
5USER_ID_varchar255授权的用户ID
6TASK_ID_varchar64任务资源ID
7PROC_INST_ID_varchar64流程实例资源ID
12. act_hi_procinst

act_hi_procinst流程实例信息表,此表和之前act_ru_execution不一样,只存储了流程实例的信息,流程实例节点的信息没像act_ru_execution表一样存储

序号字段名类型长度是否主键注释
1ID_varchar64主键
2PROC_INST_ID_varchar64流程实例ID
3BUSINESS_KEY_varchar255业务自定义KEY
4PROC_DEF_ID_varchar64流程定义ID
5START_TIME_datetime开始时间
6END_TIME_datetime结束时间
7DURATION_bigint19耗时
8START_USER_ID_varchar255发起人ID
9START_ACT_ID_varchar255开始活动xmlID
10END_ACT_ID_varchar255结束活动xmlID
11SUPER_PROCESS_INSTANCE_ID_varchar64父流程实例ID
12DELETE_REASON_varchar4000删除原因
13TENANT_ID_varchar255租户ID
14NAME_varchar255流程名称
13. act_hi_taskinst

act_hi_taskinst基本和act_ru_taskinst表相同,但又改变了一些字段比如结束时间、耗时等,记录了更明细的task任务信息

序号字段名类型长度是否必填注释
1ID_varchar64主键
2PROC_DEF_ID_varchar64流程定义ID
3TASK_DEF_KEY_varchar255任务定义KEY,流程图中的id字段值
4PROC_INST_ID_varchar64流程实例ID
5EXECUTION_ID_varchar64执行实例ID
6NAME_varchar255任务名称
7PARENT_TASK_ID_varchar64父任务ID
8DESCRIPTION_varchar4000任务描述,对应画图时的document
9OWNER_varchar255归属人
10ASSIGNEE_varchar255办理人
11START_TIME_datetime开始时间
12CLAIM_TIME_datetime认领时间
13END_TIME_datetime结束时间
14DURATION_bigint19耗时
15DELETE_REASON_varchar4000删除理由
16PRIORITY_int10优先级
17DUE_DATE_datetime截止时间
18FORM_KEY_varchar255表单KEY
19CATEGORY_varchar255分类
20TENANT_ID_varchar255租户ID
14. act_hi_varinst

act_hi_varinst存储了流程实例过程中的所有变量数据,比act_ru_variable多了CREATE_TIMELAST_UPDATED_TIME两个字段

序号字段名类型长度注释
1ID_varchar64主键
2REV_int10乐观锁
3TYPE_varchar255变量类型json\string\integer
4NAME_varchar255变量名
5EXECUTION_ID_varchar64执行ID
6PROC_INST_ID_varchar64流程实例ID
7TASK_ID_varchar64任务ID
8BYTEARRAY_ID_varchar64二进制数据管理的ID,关联BYTEARRAY表
9DOUBLE_double22存储变量类型为Double
10LONG_bigint19存储变量类型为long
11TEXT_varchar4000存储变量值类型为String 如此处存储持久化对象时,值jpa对象的class
12TEXT2_varchar4000此处存储的是JPA持久化对象时,才会有值。此值为对象ID
13CREATE_TIME_datetime创建时间
14LAST_UPDATED_TIME_datetime更新时间

补充

Flowable

act_app_appdef 应用程序定义相关的流程定义。
act_app_databasechangelog 应用程序的数据库变更日志。
act_app_databasechangeloglock 应用程序的数据库变更锁定信息。
act_app_deployment 应用程序的部署信息。
act_app_deployment_resource 应用程序部署资源信息。
act_cmmn_casedef 案例定义相关的流程静态资源。
act_cmmn_databasechangelog 案例的数据库变更日志。
act_cmmn_databasechangeloglock 案例的数据库变更锁定信息。
act_cmmn_deployment 案例的部署信息。
act_cmmn_deployment_resource 案例部署资源信息。
act_cmmn_hi_case_inst 历史案例实例数据。
act_cmmn_hi_mil_inst 历史手动实例数据。
act_cmmn_hi_plan_item_inst 历史计划项目实例数据。
act_cmmn_ru_case_inst 运行中的案例实例数据。
act_cmmn_ru_mil_inst 运行中的手动实例数据。
act_cmmn_ru_plan_item_inst 运行中的计划项目实例数据。
act_cmmn_ru_sentry_part_inst 运行中的条件分支实例数据。
act_co_content_item 内容项相关的数据。
act_co_databasechangelog 数据库变更日志。
act_co_databasechangeloglock 数据库变更锁定信息。
act_dmn_databasechangelog DMN决策表的数据库变更日志。
act_dmn_databasechangeloglock DMN决策表的数据库变更锁定信息。
act_dmn_decision_table DMN决策表相关的流程静态资源。
act_dmn_deployment DMN决策表的部署信息。
act_dmn_deployment_resource DMN决策表部署资源信息。
act_dmn_hi_decision_execution DMN决策执行的历史数据。
act_evt_log 事件日志数据。
act_fo_databasechangelog 表单定义的数据库变更日志。
act_fo_databasechangeloglock 表单定义的数据库变更锁定信息。
act_fo_form_definition 表单定义相关的流程静态资源。
act_fo_form_deployment 表单定义的部署信息。
act_fo_form_instance 表单实例运行中的数据。
act_fo_form_resource 表单资源信息。
act_ge_bytearray: 通用数据中的二进制数组,表示流程定义或模型中的二进制数据,例如流程图或表单的二进制表示。
act_ge_property: 通用数据中的属性,表示流程定义或模型中的属性信息,例如流程定义的一些元数据或配置。
act_hi_actinst: 历史数据中的行动或任务实例,表示历史流程实例中的具体行动或任务实例的信息,例如执行的操作、任务的状态或完成情况等。
act_hi_attachment: 历史数据中的附件或文件,表示历史流程实例中的附件或文件信息,例如流程文档或相关文件的存储位置等。
act_hi_comment: 历史数据中的注释信息,表示历史流程实例中的注释信息,例如对特定步骤或操作的解释或说明。
act_hi_detail: 历史数据中的细节信息,表示历史流程实例的详细信息,例如操作的执行时间、执行者、异常信息等。
act_hi_entitylink: 历史数据中的实体链接信息,表示历史流程实例中的实体链接信息,例如不同实体之间的关联关系。
act_hi_identitylink: 历史数据中的身份链接信息,表示历史流程实例中的身份链接信息,例如用户或组与任务之间的关联关系。
act_hi_procinst: 历史数据中的流程实例,表示历史流程实例的信息,例如流程的启动时间、完成时间、状态等。
act_hi_taskinst: 历史数据中的任务实例,表示历史流程实例中的任务实例的信息,例如任务的名称、描述、状态等。
act_hi_tsk_log: 历史任务日志,表示任务执行过程中的详细信息,例如任务的执行时间、执行者、结果等。
act_hi_varinst: 历史数据中的变量实例,表示历史流程实例中的变量实例的信息,例如变量的名称、值等。
act_id_bytearray: 用户或组中的二进制数组,表示用户或组的二进制数据,例如用户头像或组的图标等。
act_id_group: 用户或组的信息,表示用户或组的详细信息,例如组的名称、描述等。
act_id_info: 用户或组的额外信息,包含其他与用户或组相关的信息,例如联系信息、地址等。
act_id_membership: 用户或组的成员关系信息,表示用户或组与其成员之间的关系信息,例如成员的名称、角色等。
act_id_priv: 用户或组的权限信息,包含与用户或组相关的权限信息,例如权限级别、访问控制等。
act_id_priv_mapping: 权限映射的信息,表示不同用户或组之间的权限映射关系,例如哪些用户或组具有哪些权限等。
act_id_property: 用户或组的属性信息,包含与用户或组相关的属性信息,例如创建时间、修改时间等。
act_id_token: 用户令牌的信息,包含与用户令牌相关的信息,例如令牌的生成时间、过期时间等。
act_id_user: 用户的信息,包含用户的详细信息,例如用户名、密码等。
act_procdef_info: 流程定义的信息,包含与流程定义相关的详细信息,例如流程的名称、版本、描述等。
act_re_deployment: 流程定义的部署信息,包含与流程定义部署相关的信息,例如部署时间、部署者、部署状态等。
act_re_ext: 流程定义的扩展信息,包含与流程定义相关的扩展信息,例如自定义的字段、查询条件等。
act_re_model: 流程定义的模型信息,包含与流程定义模型相关的信息,例如流程图的XML表示、流程实例的图形化展示等。
act_re_procdef: 流程定义的过程定义信息,包含与流程定义过程相关的信息,例如节点的定义、流程步骤的顺序等。
act_re_user_device: 用户设备的信息,包含与用户设备相关的信息,例如设备的唯一标识符、设备类型、设备状态等。
act_ru_actinst: 运行中的行动或任务实例,表示正在执行的操作或任务实例的状态信息,例如操作的执行状态、任务的完成情况等。
act_ru_deadletter_job: 运行中的死信队列任务,表示在消息传输过程中被丢弃的任务信息,例如任务的ID、执行时间、异常信息等。
act_ru_entitylink: 运行中的实体链接信息,表示正在执行的操作与实体之间的关联关系,例如操作的实体ID、操作的类型等。
act_ru_event_subscr: 运行中的事件订阅信息,包含与事件订阅相关的信息,例如事件类型、订阅者、订阅时间等。
act_ru_execution: 运行中的执行信息,表示正在执行的操作或任务的状态信息,例如操作的执行时间、执行者、异常信息等。
act_ru_history_job: 历史任务队列的任务信息,包含历史任务队列中任务的相关信息,例如任务的ID、执行时间、结果等。
act_ru_identitylink: 运行中的身份链接信息,表示正在执行的操作或任务与用户或组之间的关联关系,例如操作者的用户ID、操作者的角色等。
act_ru_job: 运行中的任务信息,表示正在执行的任务的详细信息,例如任务的名称、描述、状态等。
act_ru_suspended_job: 挂起任务的信息,表示挂起任务的状态信息,例如任务的ID、执行时间、异常信息等。
act_ru_task: 运行中的任务信息,表示正在执行的任务的详细信息,例如任务的名称、描述、状态等。
act_ru_timer_job: 计时器任务的信息,表示计时器任务的状态信息,例如任务的ID、执行时间、异常信息等。
act_ru_variable: 运行中的变量信息,表示正在执行的流程实例的变量值,例如变量的名称、值等。
flw_channel_definition: 工作流通道的定义信息,包含与工作流通道相关的定义信息,例如通道的类型、参数等。
flw_ev_databasechangelog: 数据库变更日志的事件信息,包含数据库变更日志的事件相关信息,例如事件的ID、类型、执行时间等。
flw_ev_databasechangeloglock: 数据库变更日志锁定事件的信息,包含数据库变更日志锁定事件的相关信息,例如锁定的ID、状态等。
flw_event_definition: 事件定义的信息,包含与事件相关的定义信息,例如事件的类型、触发条件等。

引用原创:木头左


表分类表名解释
一般数据
[ACT_GE_BYTEARRAY]通用的流程定义和流程资源
[ACT_GE_PROPERTY]系统相关属性
流程历史记录
[ACT_HI_ACTINST]历史的流程实例
[ACT_HI_ATTACHMENT]历史的流程附件
[ACT_HI_COMMENT]历史的说明性信息
[ACT_HI_DETAIL]历史的流程运行中的细节信息
[ACT_HI_IDENTITYLINK]历史的流程运行过程中用户关系
[ACT_HI_PROCINST]历史的流程实例
[ACT_HI_TASKINST]历史的任务实例
[ACT_HI_VARINST]历史的流程运行中的变量信息
流程定义表
[ACT_RE_DEPLOYMENT]部署单元信息
[ACT_RE_MODEL]模型信息
[ACT_RE_PROCDEF]已部署的流程定义
运行实例表
[ACT_RU_EVENT_SUBSCR]运行时事件
[ACT_RU_EXECUTION]运行时流程执行实例
[ACT_RU_IDENTITYLINK]运行时用户关系信息,存储任务节点与参与者的相关信息
[ACT_RU_JOB]运行时作业
[ACT_RU_TASK]运行时任务
[ACT_RU_VARIABLE]运行时变量表

结论

通过对Activiti核心数据库表的深度剖析,我们能够更清晰地了解其内部机制,从而更好地利用Activiti进行高效的流程建模与实施。每一张表背后蕴含的逻辑都值得我们细细品味,结合实际的注释解读,无疑将有助于提升我们在业务流程管理领域的技术能力和实践水平。

  • 66
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
工作引擎Activiti是一个开源的、基于Java开发的工作引擎。它通过定义、执行和管理工作程,实现业务程的自动化。 Activiti结构主要包括以下几个: 1. ACT_RE_*:存储程定义和其相关静态信息,如程定义、程定义属性等。 2. ACT_RU_*:运行时的,存储程实例、任务、事件等运行时数据。 3. ACT_ID_*:存储身份认证相关的,如用户、组、角色等。 4. ACT_HI_*:历史数据,存储程实例、任务实例、变量、任务参数、作业、身份认证相关的历史数据。 5. ACT_GE_*:通用数据,存储通用的数据,如数据源配置、引擎属性等。 代码方面,使用Activiti可以通过以下步骤实现工作的定义和执行: 1. 引入Activiti的相关依赖。 2. 配置数据库连接信息、引擎属性等。 3. 创建程定义文件,使用BPMN 2.0规范定义程。 4. 使用Java代码部署程定义文件,将程定义文件部署到工作引擎中。 5. 创建程实例,通过调用工作引擎的API启动一个程实例。 6. 处理任务,根据程定义中定义的任务节点,执行相关的操作。 7. 完成任务,通过调用工作引擎的API完成当前的任务。 8. 监听程事件,根据需要可以注册一些监听器来监听程的执行情况。 9. 查询历史数据,可以通过API查询历史程实例、任务实例、变量等历史数据。 总之,工作引擎Activiti结构对于工作的定义和执行非常重要,而相应的代码则通过API的调用实现了工作程的定义、部署、执行和监控等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值