掌桥专利:专业的专利平台
掌桥专利
首页

一种快消行业费用控制系统流程归档实现方法

文献发布时间:2024-04-18 19:57:31


一种快消行业费用控制系统流程归档实现方法

技术领域

本发明涉及软件技术领域,具体为一种快消行业费用控制系统流程归档实现方法。

背景技术

归档也叫存档,是指将处理完并且有保存价值的事物整理后保存起来的过程。

现有技术中,在日常生活中,“归档”无处不在:保存大学录取通知书、将珍贵的照片存入相册、将喜欢的书签放入抽屉等等。对于快消行业,每年都会汇总、保留上一年的费用收入、支出,因此快消行业也需要对汇总过的流程进行归档处理。

但是,目前快消行业缺乏一种有效的费用控制系统流程归档实现方法。

发明内容

本发明的目的在于提供一种快消行业费用控制系统流程归档实现方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种快消行业费用控制系统流程归档实现方法,所述方法包括以下步骤:

生成静态页面;

将需要归档的数据发送给后端,后端记录归档状态,再调用前端归档项目中的程序构建静态页面;

后端调用构建程序后会生成构建产物,将构建产物部署到Web服务器中,由Web服务器提供访问。

优选的,使用静态网站生成器生成静态页面,静态网站生成器将模板和内容转换为静态HTML页面。

优选的,对于使用了框架的工程项目,借助框架生态中的一些项目来实现静态化,使用Next.js导出React工程静态HTML页面,Nuxt.js导出Vue工程静态HTML页面。

优选的,代码调用yarn命令,用于构建静态HTML。

优选的,在生成静态页面时将参数传递给前端构建项目。

优选的,用户在访问系统前先登录,获取登录凭证后有权限去访问页面及获取数据,用户登录凭证与请求参数一样都需要传递给构建程序。

优选的,后端将参数传递给前端构建项目的具体操作包括:

为每条归档数据创建一个文件,将参数以某种格式写入文件,构建项目读取对应的参数文件,进行构建,完成后删除参数文件;

将参数写入环境变量,构建项目读取环境变量中的值,对于NodeJS项目,NodeJS实现获取环境变量的API。

优选的,在后端中添加Web服务器部署目录配置,在构建后用来将产物移动到部署目录。

与现有技术相比,本发明的有益效果是:

本发明提出的快消行业费用控制系统流程归档实现方法,通过快消行业费用控制系统流程归档实现方案,实现归档文件访问控制,解决目前快消行业缺乏一种有效的费用控制系统流程归档实现方法的问题。

附图说明

图1为本发明调用程序流程图;

图2为本发明访问校验流程图。

具体实施方式

为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1至图2,本发明提供一种技术方案:一种快消行业费用控制系统流程归档实现方法,所述方法包括以下步骤:

1)生成静态页面

除了数据需要归档以外,也需要对页面进行归档,归档的页面需要“静态化”,也就是生成静态页面。这样做的目的是用户看到的始终是页面,页面比数据更直观;随着版本的迭代,页面和数据结构可能会发生变化,这样是不符合归档原则的,因为变化总在发生,如果保留历史版本,就需要维护每条数据的版本信息;生成的静态页面可以分发到任何地方,即使是在个人电脑上也可以查看;避免在访问时动态渲染页面。归档页面也是有代价的,如果现在用户访问的正是静态页面,那么这一步就可以直接过去了。否则可能需要修改程序代码,用来生成静态页面。

可以使用静态网站生成器生成静态页面。静态网站生成器是一种自动化工具,它可以将模板和内容转换为静态HTML页面。通常,开发者使用模板语言和Markdown文件来创建内容,然后使用静态网站生成器将它们转换为HTML文件。一些流行的静态网站生成器包括Jekyll、Hugo、Gatsby等。

对于一些使用了框架的工程项目,可以借助框架生态中的一些项目来实现静态化,比如使用Next.js导出React工程静态HTML页面,Nuxt.js导出Vue工程静态HTML页面。

2)调用程序

一般来说,归档是按照时间维度进行的,比如说归档去年一年的数据,归档的数据可能也需要满足其他条件。归档哪些数据由用户去选择,用户选择数据、点击按钮后将需要归档的数据发送给后端,后端记录归档状态,再调用前端归档项目中的程序构建静态页面,用例图图1所示;

很多编程语言都提供了调用本地程序的API,下面以Java代码为例,

上面的代码会调用yarn命令,用于构建静态HTML。包含Java在内的一些编程语言调用本地程序会启动一个新的进程,学习过操作系统的开发人员都知道,进程是比线程更消耗资源的操作系统单元,同时创建多个子进程会使用大量的CPU、内存等,因此在并发调用程序时,需关注并发数量与CPU等资源的情况,找到合适的并发数量参数。同样,销毁进程也会消耗大量资源。进程的创建、销毁是可以进行优化的点,可以参考线程池的思想,考虑使用进程池,减少资源的使用,提高程序的性能。

在访问一些详情页面时,通常会在跳转时将请求参数携带到下一个页面,详情页面获取携带的参数,获取相应的数据,比如在用户列表跳转到用户A的详细信息页,跳转后的地址是/user?username=A。在生成静态页面时也需要将参数传递给前端构建项目。用户在访问系统前,一般需要先登录,获取登录凭证后才能有权限去访问页面及获取数据,用户登录凭证与请求参数一样都需要传递给构建程序。除此之外,可能还需要其他一些参数,这个视项目需求而定,每条需要归档的数据应该都对应一组参数,这些参数可能相同,也可能不同。后端在调用程序生成静态HTML前,需要先获取这些参数。参数只需要在生成静态HTML前获取一次就够了。

后端将参数传递给前端构建项目的方式有几种:

a)为每条归档数据创建一个文件,将参数以某种格式(比如JSON格式)写入文件,构建项目读取对应的参数文件,进行构建,完成后删除参数文件。

b)将参数写入环境变量,构建项目读取环境变量中的值。对于NodeJS项目,这种方式很容易实现,NodeJS已经实现了获取环境变量的API。相比于第一种方式,这种方式更加简单,避免了文件创建、删除、写入、读取等操作。

编者现有项目中就是通过环境变量实现参数传递的。在后端调用命令时设置环境变量即可。在Windows系统上通过命令set命令设置环境变量,在类Unix系统上通过export命令设置环境变量,

3)部署

后端调用构建程序后会生成构建产物,这个产物就是生成的静态HTML和JS、CSS、图片等,我们需要将构建产物部署到Web服务器中,由Web服务器提供访问。在后端中需要添加Web服务器部署目录配置,在构建后用来将产物移动到该部署目录。

数据安全

后端服务在部署完成后,归档功能大抵已经完成,最后是更新归档状态,用来访问静态HTML的URL也需要保存下来。用户可以在已归档数据列表页面上跳转到具体的归档页面,用户访问归档页面只需要一个访问URL,对于有隐秘数据的页面来说这是不安全的。

访问校验可以由Web服务器实现。用户访问URL时,从浏览器中获取登录凭证,作为参数跳转到归档页面,Web服务器获取登录凭证参数,如果没有获取到参数,重定向到401页面,提示用户无权访问。如果有登录凭证,校验登录凭证是否有效,如果有效,判断用户是否有权限访问,有权限,可以访问页面,没有权限重定向到403页面;如果无效,重定向到401页面,流程如图2;

推荐使用OpenResty作为Web服务器。OpenResty基于Nginx,可以使用其LuaJIT引擎运行Lua脚本。OpenResty在处理一个请求时,会经过多个执行阶段,其中有一个阶段是访问校验,因此在OpenResty中很容易就实现访问校验。只需添加配置,

location/archive{

access_by_lua_file访问控制脚本;

root归档目录;

}

编写自己的访问控制lua脚本即可。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术分类

06120116459328