[原创]对公文会签流程设计的补充

状态机工作流实例:实现抢签与会签功能 定义一个高效的抢签流程需要考虑多方面因素,以下是流程设计中需要遵循的关键步骤:需求分析:首先明确业务场景和用户需求,确定哪些情况需要触发抢签操作。流程设计:设计抢签流程时,需要考虑用户界面的响应性和后端处理的速度,确保用户在提交抢签请求时能即时获得反馈。并发控制:设计一个能够处理高并发请求的机制,常见的方法包括使用锁机制、消息队列、分布式缓存等。数据同步:确保在抢签过程中数据的一致性和准确性,通常需要采用事务或锁来保证。结果反馈。 阅读详情

                     对"公文会签流程设计"的补充


   2005年的时候,我曾经在网上发表过一篇名叫“公文会签流程处理设计”的短文,文中用几副图表和简短的语言比较详细的描述了在如何在工作流系统中对公文会签这一业务进行处理以及相关的一些设计思想,时隔3年,由于工作的关系,我又需要对此设计再次进行补充,这次的关键点是:"嵌入式脚本与会签逻辑"。

由于其中的技术是涉及到产品与商业上的问题,我在这里仅仅是把相关设计思想提出来和大家讨论一下,(面对日新月异的国外的软件架构设计思想和产品的挑战,我们国内的同行们要坚定信心,不断突破,脚踏实地的努力,我坚信我们一定会不断缩小和国外先进水平的差距并超越他们,这不是技术问题,是信心和理想的问题)
(补充一下,如果大家要使用嵌入式的条件表达式和公式解析器来增强工作流引擎的设计,我建议大家可以使用 ---下面这个地址里面的公式解析器-IK EXPRESSION
  http://www.javaeye.com/topic/337069   )
 
过去在涉及到类似技术的时候,我们往往需要针对具体的流程应用开发具体的应用代码和程序,但是现在我们可以在一个流程中嵌入一个事先由流程设计者预先编制好的脚本,该脚本在流程运行过程中由流程引擎驱动,使流程具备一定的逻辑判断和逻辑处理能力,那么类似下面的会签流程就完全可以采取上述方式来实现。。。。。。。。

==============================05年的原文=============================
  
         会签应用逻辑设计
      (主要应用在公文处理模式)
  

会签流程表现
一个会签流程实际上要涉及下面的三个点
1: 会签的入口(在此处确定会签的通过标准)
2: 会签(在此处执行)
3: 会签的出口(在此处判断)



会签的策略

全部平等、个人特权 、比例特权



流程处理逻辑设计



对上图的描述

(1): 处理人态度---处理态度 1,2,3,4,5.态度有对应数值

      态度1是+10,态度2是+6,态度3是-10,态度4是-6,态度5是0

(2): 会签策略(1,2,3)

       策略1(所有参与人权利平等)

(3): 处理人权限(1,2)--普通权限

       逻辑1==继续

       逻辑2==终止

       逻辑3==回退

在策略1的情况下
当全部人员处理后,数据库中保存的态度数值之合大于,等于,小于一个预先设置的标准数值(会签通过标准数),则把会签的流程状态置为 继续,终止,或者回退

在策略2情况下
如果某人具有特殊权限,则在统计会签态度数值的时候,把该处理人的态度数值乘以加权值W,再做合计,这样就能够保证该处理人的特殊权限

在策略3的情况下
当预设比例为30%的情况下,取所有处理者的人数的30%,合计这些处理者的态度数值,与通过标准做比较,大于,等于,小于会签则继续,终止,回退
=====================================================================

更加复杂一些的流程引擎设计思路,将会是通过把人工智能与自动控制的相关理论和架构有机的融合到流程系统的设计中,从系统论的角度,站在更高和更广的视野来设计和实现工作流系统,具体的思想将陆续和大家见面,希望业界的同志们大家一起来讨论,丰富和完善这个我认为刚刚起步的技术领域。。。。





  • 大小: 22.4 KB
  • 大小: 21.2 KB
  • 大小: 33.3 KB

Activiti实现会签功能程序Demo.docx 1、会签是什么? 会签功能指多个人员针对同一个事务进行协商处理,共同签署决定一件事情。 在工作流中会签,是指多个人员在同一个环节进行处理,同一环节的有多个处理人并行处理,按照配置规则,固定比例的人员办理完成后即可继续流转至下一环节。 立即下载

相关推荐

文件会签(制度范本、DOC格式)

文件会签(制度范本、DOC格式)具有很重要的作用,一份合理的制度能够提供团队的凝聚力与向上力,需要文...该文档为文件会签(制度范本、DOC格式),是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看

(流程引擎)activiti6的使用,或签,会签,顺签

activiti6的使用,或签,会签,顺签

qq_19891197的博客 8614

嵌入式GUI显示驱动配置实战:从emWin硬件接口到SPI屏驱动优化

在嵌入式系统开发中,显示驱动是连接GUI库与物理屏幕的核心底层模块,其本质是CPU与显示控制器之间的数据“翻译”与“传输”系统。其工作原理是通过实现特定的硬件抽象层接口,将GUI生成的图形数据转换为屏幕能识别的时序和协议。这项技术的核心价值在于,它允许开发者在资源受限的MCU上,通过适配不同的硬件接口,以最小的硬件开销实现稳定的图形输出。其典型应用场景包括智能家居面板、工业HMI、可穿戴设备等嵌入式图形界面开发。本文将深入解析emWin GUI库的驱动框架,重点探讨如何针对SPI、I2C等串行接口进行高效的

weixin_29159711的博客 343

会签是什么,何时使用会签,如何设计使用会签

会签是一种多方共同签署的审核机制,适用于公文签发、会议决议等重要场景,强调签字人对内容的连带责任。与加签不同,会签是多人同时处理,常见于BPM流程中的多实例任务模式。文章通过三个案例说明会签的应用:项目立项会签(并行处理、多轮次)、政府发文会签(顺序处理、可驳回)以及海域审批会签(组长主导、成员协同)。这些案例展示了会签在流程控制中的灵活运用,包括并行/顺序处理、人员选择和结果判定等功能。

4万+

海量Embedding进行相似度查询和比较的方法

这个是在科研中的现实需求。例如每一个源代码文件,我们可以生成一个embedding,如果有超过5000万个embedding(例如用BERT生成5000万个embedding),怎么样有效地计算相似性呢(例如有5000个positive的embedding,想在5000万个中找到类似的)。 简单介绍一下我尝试的结果:如果直接用torch.cosine_similarity,我手里的数据估计至少要处理两个月。这时候就想到了用LSH -- Locality Sensitive Hashing,但是我之前并没怎

qysh123的专栏 4567

从零到一:Ollama工具在RK3588上的深度优化实践

本文详细介绍了如何在RK3588开发板上深度优化Ollama工具,以高效运行DeepSeek模型。通过CPU与NPU负载平衡、模型量化、温度控制等策略,显著提升性能并降低功耗,适用于边缘计算场景。文章提供了具体的配置命令和优化方案,帮助开发者充分发挥RK3588的硬件潜力。

rgv23456789的博客 315

基于jeecgboot的支持flowable的排它网关之后的会签功能(二)

基于jeecgboot的支持flowable的排它网关之后的会签功能(二)

宁波阿成的博客 672

ARM一致性总线CMN600AE

是基于Mesh拓扑结构,对外支持AMBA CHI/ACE-LITE等接口,内部改用路由结构转发数据,并提供硬件一致性和系统缓存,还支持多芯片互联。CMN600在T16FFC上可以做到2Ghz,另外AE版本增加了车规芯片的安全功能,总线内部采用EDC检查,接口采用的奇校验。CMN-600AE具有以下特点:该网络符合功能安全标准,例如ISO 26262(汽车电子领域的功能安全标准)或IEC 61508(工业自动化领域的功能安全标准)等。

weixin_50518899的博客 3504

基于jeecgboot的flowable复杂会签加用户选择流程实现

因为flowable流程对于会签流转过程控制都是自动的,但要进行人为中间或后期干预,必须要用到执行监控器,在监控器中进行流程过程与监控,对满足要求进行处理。

宁波阿成的博客 1302

如何借助GPT- 6 写好一篇论文:从引言到参考文献完整步骤(附专业提示词)

七哥就结合这篇文章的写作思路,依次拆解引言、方法、结果、讨论、摘要、标题和参考文献分别应该怎么写,同时也聊聊,在每一个环节里,我们可以怎样合理借助 GPT-6,让论文写作变得更清晰、更高效。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。8、不修改、不补写、不猜测任何样本量、阈值、剂量、设备型号、参数或统计方法,所有缺失但影响方法完整性的信息统一标记为【待作者确认】、检查方法中设定的每一个分析项目能否在后续结果章节找到对应位置。

智能AI让学术科研更容易 114

一文读懂 SAP ICF Services:从 SICF 激活到 ABAP OData V2/V4 安全与实战

本文系统化介绍了ABAP系统中ICF服务的关键概念及实践要点。主要内容包括:ICF服务的核心安全机制,需显式激活才能响应HTTP请求;在SICF中正确激活服务的操作步骤;OData V2/V4服务所需的不同ICF节点配置,如V4统一入口节点/sap/opu/odata4;典型问题如default_host未激活会导致HOST_INACTIVE错误;安全实践包括CSRF防护机制和权限对象(S_ICF_ADM)配置;以及实际案例分析和常见ICF服务节点的功能说明。文章为ABAP开发者与运维人员提供了ICF服务管

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 472

CnOpenData 线上招聘网站信息数据

CnOpenData线上招聘网站信息数据库是一个覆盖中国主流招聘平台、时间跨度长、更新频率高的劳动力市场需求侧大数据集合。本数据库汇集了,为学术界和业界提供了一扇实时观察中国劳动力市场动态的窗口。

CnOpenData_wj的博客 2666

SAP Fiori Launchpad 概述

SAP Fiori launchpad 是托管 SAP Fiori 应用程序的 shell,并为应用程序提供导航、个性化、嵌入式支持和应用程序配置等服务。SAP Fiori Launchpad 是移动和桌面设备上 SAP Fiori 应用程序的入口点。启动板显示带有图块的主页,其中可以显示实时状态指示器,例如打开的任务数量。每个图块代表用户可以启动的业务应用程序。这包括 SAP Business Suite 事务应用程序和 SAP Smart Business 分析应用程序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 934

flowable-ui 的会签功能实现

场景:在进行智慧保时通开发时,有个协作合同入围功能,这个功能的流程图里有个评审小组,这个评审小组就需要进行会签操作,会签完成后,需要依据是否有不通过的情况选择下一步走的流程。元素变量(多实例): flowable-ui 工作流中数据库中用到, 必须与分配用户的名称一样。当前活动的(尚未完成的)实例数量。对于串行多实例来说,这个值始终是 1。完成条件(多实例):固定写死,应该是内部判断。这里的集合多实例:配置节点的审批角色。已经完成的实例的数量。

刚哥的博客 730

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

基于jeecgboot的flowable流程综合会签功能演示平台已经发布

基于jeecgboot的flowable流程综合会签功能演示平台已经发布

宁波阿成的博客 648

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

基于jeecgboot的支持flowable的排它网关之后的会签功能(一)

基于jeecgboot的支持flowable的排它网关之后的会签功能(一)

宁波阿成的博客 1200

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Activiti 工作流会签开发设计思路

Activiti 工作流会签开发设计思路   在流程业务管理中,任务是通常都是由一个人去处理的,而多个人同时处理一个任务,这种任务我们称之为会签任务。这种业务需求也很常见,如一个请款单,领导审批环节中,就需要多个部门领导签字。在流程业务中,我们可以把每个领导签字的环节都定义为任务,但若这样,这个流程业务有一点是固定的,就是签批人是固定的。而任务是由一个领导签完再到另一领导,当然也可以由多个...

man1900 2041

activiti工作流,驳回问题详细解析(尤其会签的驳回问题)

最近因为项目需要,所以研究了一下工作流,然而,我们都知道,国外的工作流框架,是不支持驳回问题的!这是其一!第二!项目的工作流要实现任意节点的流转,这也是国外工作流框架所不具备的!因此,国外的工作流框架是没有一个可以真正满足我们的业务要求的,然而国内的工作流架构,我也没有听说过哪个可以支持中国式工作流!因此,在技术选型上面选择了相对比较火的activiti框架!当时我们的原则就是尽可能的不改变框架,而

zhangpan_soft的博客 4万+

activiti设计工作流——任务派遣配置

在配置任务结点时,任务派遣配置有3个项目:Assignee、Candidate users、Candidate groups。 1. Assignee 受让人; 受托人,代理人; 被指定人; 这个只能指定单个人,不能用逗号分开指定多人。 如果指定了这个人,那么等价于 生成任务后,指定的这个人执行了 签收 操作。taskService.claim(taskId, cur

xiaozaq的博客 6417

jeecg流程梳理学习

jeecg 流程梳理 角色admin 管理员 fgld学校分管领导 bgs学校办公室 xbld系部领导 xbky系部科员jxky bmld部门领导 发文申请applyUserIdadmin${assigneeUserId} 并行cgAutoListController.do?list&id=jfrom_huiq顺会签cgAutoListController.do?list&...

weixin_30794499的博客 871

jbpm4实现会签功能(转)

会签可以分为单步会签(只有一个审批环节),及多步会签(每一个子审批流有多个审批环节)。对于单步会签,可以直接用TaskService来进行动态任务实例的创建,其中的 newTask()方法即可用来动态创建多个任务实例,然后再调用addTaskParticipatingUser()或 addTaskParticipatingGroup()方法实现动态增加任务办理人,此时即实现了单步会签功能。

a651944226的专栏 2356

java

开发环境为MyEclipse8.5 jbpm4.4。  根据会签的一票否决制编写。   流程的XML文件 process.jpd.xml   view plain &lt;?xml version="1.0" encoding="UTF-8"?&gt;      &lt;process name="会签实例" xmlns="http://jbpm.org/4.3/...

lvdong5830的专栏 212

[学习笔记]超越超级大循环与原生RTOS:事件驱动架构如何改变嵌入式固件的可扩展性

RTC:事件处理器一旦开始,全部状态迁移、进出动作、输出事件必须全部执行完毕才返回;同一个组件,当前处理没结束,不会开始下一条事件。这不是架构给状态机额外施加的限制,这是UML状态图等全部状态机形式化本身固有的语义要求。如果迁移中途可以被打断,状态机会停留在未定义的中间状态。RTC保证两次事件之间,状态机永远处于明确定义的合法状态,便于分析与测试。

MiKiJT的博客 240
上一篇: [原创]JWFD工作流引擎开发状况(二)
下一篇: [原创]工作流系统设计的层次和目标
comsci
博客等级 码龄22年 412粉丝 397原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值