00:03
好,下面我们准备来做下一个功能,叫导入市场活动,导入和导出基本上是一个相反的一个过程,是一对互动,基本上来讲的话,那用户提出这种需求的时候,基本上能导出,基本上也能导入知道,像这个功能也是以后经常会遇到的一个功能,知道。啊,那它的应用场景呢,包括它的做法都跟导出正好相反啊,那导出我们前面给大家讲,那这个呢,导出的它的应用场景就是说用户是就数据在我们系统里边,用户想脱离系统。来拿到数据知道,那么导入呢,它的应用场景呢,是这样,数据本来的嘛,不在不在系统里边,是在他自己电脑中,就是用户自己设计了一些数据,就像我们这个市场活动,他自己设计了一些市场活动。他自己在家里边,或者在别的地方,或者通过别的途径得到一些市场活动。
01:04
然后他想录入到系统里边。这种枪是吗?脱离系统创建一些数据,然后呢,想录入到系统里边,正好是这么个这么一个逆过程,知道吗?那你说录入系统上不就录不在这创建不就行了吗?由于他创建的数据比较多,他一条一条创建比较麻烦,所以他就什么了,他就想把他这个那些市场中自己脱离系统创建那些市场活动一下都录入到系统里边,这叫导入知道正好是个逆过程,知道吧。这时候我们说从需求,从这个应用场景来讲,是正好是个逆子,好,那么从这个需求上面,从这个需求这个流程上面来讲的话,也是正好一个逆过程。导出这个用数据在系统里边,用户一点这个导出按钮,向后台发一个导出的请求,那我们这个做的代码的话,就从数据库把数据查出来,然后生成这种办公文档,生成生成文件,然后向他下载到他自己电脑。
02:03
然后呢,但是导入呢,正好它是个逆过程,什么逆过程数据在他自己电脑上边,在他自己电面以什么形式存在,那肯定也是以办公为脑的形式存在,为什么它设计的数据肯定也用办公文件来设置,那也是办公文档,什么办公文档那要word PDF Excel等,但咱们就以Excel为例了。假如他在他自己电脑设计了一些市场活动,都放到一个Excel文件里边了,他想一下录入到系统里边,那他怎么办呢?导出的时候一点它下载到他自己电脑导入呢。把他自己电脑文件一点弹出来一个模大窗口,然导上文件上传的一个表格,你知道吗?然后他一点这个地方,让他让他选择他要导入的文件,假如说这假如说这是个Excel文件,好一选中行了这样。这是他让他自己选他自己电脑的文件,然后选完之后一点导入,向后台发个请求,以前一点导出按钮,发一个文件下载的请求,这个地方一点导入,发一个什么文件上传的请求,然后呢,把这个文件随着请求一起发到后台了,后台我们的Java代码CL了,接收到之后,把这个文件呢,以前是生成文件,现在直接接收的就是文件,那干什么,以前是生成文件,把数据写到文件里边,现在呢,拿到文件了,把文件里边数据解出来。
03:27
解出来干什么?封装成实体类对象,插入到数据库表中,这就行了。是录入到系统,这这又录入到系统里边,正好是个相反的过程,知道吗?然后呢,导入成功之后,弹出来一个成功导入了多少条记录,然后呢,把它关了,下边应该刷一下。刚刚导入了这几条数据就应该都刷出来了,当然如果导入失败提示信息不用关,下边也不用刷了,这是大概他这个应用场景,还有它这个需求,就这样子。啊,正好给导导出正好是个逆过程,知好这是我们这样,那他这个需求文档上也有相关的一些描述,大家可以可以简单看一下,它这上面描述的更这个更详细一些,他说让用户在市场活度主页面点击导入按钮,就他在这个地方,他假如他自己设计了,在他自己在在家里边,或者通过别的途径,然后设计了一些市场活动。
04:20
都在一个Excel文件里边,那么他想导入入到系统中,一条一条入太麻烦了,在这创建的一条路太麻烦,他想一下导入进来,他就一点它弹了一个导入市场的一个摩擦窗口,知道吗?然后在这个摩擦窗口上面,我说用户什么这个,他说在导入市场红摩擦窗口选择要上传的文件,知道吧,你选去选它,选择它那个Excel文件,选完之后知道吧,一点导入按钮向后台发请求,发个导入的请求。然后后台拿到之后呢,然后呢,把这些数据都解出来,插入到数据库里边就行,然后呢,大哥这个是什么?插入到数据库时,然后就完成导入市场中的这种功能。
05:01
这是他这种需求。好,下面它有一个特殊要求,他说这种只支持Excel文件。那只支持这种格式的文件,如你要是随便导入一个word文件,或者导出一个PDF文件,或者导入一个视频、音频或者一些压缩包,它不支持,只能导入Excel文件,就为什么不支持,因为我们后台肯定只解析Excel文件,你要随便给我导别的文件,我没法解析是吧?那这这个电脑上面存在这么多的文件,我按什么文件进行解析?他这肯定是约定好的,只支持Excel文件,那你说老师他就导别的文件,导别的文件一点,这个表不让点,在前台做验证请求都不让你发,知道吧,因为你发别的请求也没意义知道,所以只支持Excel,再一个文件的大小不能超过五兆,那你怎么不能超过五兆,但你想你要符合常理啊,怎么符合常理,但你想他这个市场,他这个文件里边规划都有一些市场活动。那你能多少市场活动,你能超过五兆,那一条市场活动可能可能连1K都不到。
06:05
那你要导入市场活动,导入好几兆的市场活动,假如导入几十兆甚至几百兆的市场活动,那有多少市场活动?你能设计多少市场活动?所以不符合常理了。那如那我那那那你说老师我就涉及了几百兆的市场活动,那这个时候你可能我就怀疑你别有用心当中,你可能攻击我的系统,怎么攻击我的系统,因为我解析到时候我要把这些,我要把这我要解析这些Excel文件解析到时候我要把它读到内存里边啊,你要给我上传一个几百兆的一个市场活动,那我读到内存,这我占我的内存,你导入他也导入,那这个我内存可能就占满了,那占满我的服务器可能宕机了,所以大家这个地方他说了,从常理上来讲不能超过五兆,为什么五兆已经足够他用了。那五兆得导入多少,得导入多少市场活动啊。所以足够他用了,如果你再大再大有攻击系统的嫌疑了,这个时候一点导入,不让不让点从前台做表达验证,他选择的文件太大,不让点有攻击系统的嫌疑了,就这样吗?所以这些都是他这个有些这些做这些验证知吗?下边还有导入成功之后,提示成功导入的条数,关闭模特窗口,刷新市场活动列表,显示第一页的数据,保持每页显示条数不变。
07:21
这是导入,导入成功,导入失败,提示信息模态窗口不关闭,列表也不刷新。这是跟刚才我们说的这个流程基本上一样的,这样好,这是我们他说的这种,他这个需求基本上就是这样的。所以大家对这种需求明确之后呢,下边我们一块分析一下,看如何做导入市场活动。
我来说两句