当前位置: 首页 > news >正文

青岛网站建设企业asp技校网站

青岛网站建设企业,asp技校网站,建设学校网站论文,图文广告制作软件TOC springboot373驾校预约学习系统--论文pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现#xff0c;改变了几千年以来人们的生活#xff0c;不仅仅是生活物资的丰富#xff0c;还有精神层次的丰富。在互联网诞生之前#xff0c;地域位置往往是人们思想上不可跨域…TOC springboot373驾校预约学习系统--论文pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现改变了几千年以来人们的生活不仅仅是生活物资的丰富还有精神层次的丰富。在互联网诞生之前地域位置往往是人们思想上不可跨域的鸿沟信息的传播速度极慢信息处理的速度和要求还是通过人们骑马或者是信鸽传递这些信息传递都是不可控制的中间很有可能丢失信息的传递水平决定了人们生活的水平。如今大家都在使用互联网软件产品从内部管理设置计算机管理提高内部信息化的管理水准从外部市场也可以用计算机获取相关数据进行处理如今各行各业已经严重依赖于计算机了。 本课题研究和开发驾校预约学习系统管理系统让安装在计算机上的该系统变成管理人员的小帮手提高驾校预约学习系统信息处理速度规范驾校预约学习系统信息处理流程让管理人员的产出效益更高。 1.2 课题意义 传统处理数据必须是一张张纸然后处理完毕又是统计在一张张纸上面不断的重复处理最终有个结果给最高层作为参考这个模式在互联网没有出现之前是一种常见的事情信息管理的效率提不上去人多不一定力量大因为人多肯定更加消耗资源并且因为人类需要休息需要管理思想会不统一会偷懒所以人们研究出专门帮助人们计算的机器就是计算机的前身到了互联网时代人们发现完全可以让程序供应商提供解决方案自己挑选自己合适的方案来提高自己的产出比。所以在日常工作和生活中会发现各种各样方便人们的工具。 本课题研发的驾校预约学习系统管理系统就是提供驾校预约学习系统信息处理的解决方案它可以短时间处理完信息并且这些信息都有专门的存储设备而且数据的备份和迁移都可以设定为无人值守从人力角度和信息处理角度以及信息安全角度驾校预约学习系统管理系统是完胜传统纸质操作的。 1.3 研究内容 本文对驾校预约学习系统管理系统的设计与实现分成六个章节来说明。 第1章研究驾校预约学习系统管理系统的背景以及开发驾校预约学习系统管理系统的意义。 第2章对开发驾校预约学习系统管理系统的环境还有技术进行说明。 第3章分析驾校预约学习系统管理系统的可行性性能流程以及功能。 第4章设计驾校预约学习系统管理系统的功能结构设计数据库E-R图以及对数据表的存储结构进行设计。 第5章实现驾校预约学习系统管理系统的功能并进行功能界面展示。 第6章对系统测试进行阐述以及对本系统部分功能进行检测。 第2章 开发环境与技术 本章节对开发驾校预约学习系统管理系统需要搭建的开发环境还有驾校预约学习系统管理系统开发中使用的编程技术等进行阐述。 2.1 MySQL数据库 MySQL是一种具有安全系数、安全系数、混合开发性、高效化等特征的轻量关联数据库智能管理系统。MySQL由C语言和C语言构成 由C语言和C语言撰写成的由于C语言和C语言 这是混合开发的因此MySQL源码是生命期的。MySQL提供多种多样数据种类常见的数据种类包含[34]。伴随着数据库技术发展MySQL逐步形成数据库管理方法的重要工具之一。它不仅能提供简单实用的操作作用还能实现复杂多变的数据检索方法和查询记录导出方式。因为MySQL具有较好的兼容模式和扩展性因而广泛应用于各行各业。 MySQL在WEB行业越来越受单位和个人开发者的亲睐。大部分大中小型网址都采用MySQL数据库它不仅可以提供简单高效的数据浏览作用还会对数据进行相应的剖析解决。因为Linux电脑操作系统和MySQL数据库全是开源系统免费体验能够为公司节约许多费用让很多企业使用Linux MySQL做为网址数据库体型小启动速度快也不会影响网址性能导致用户体验感极差。 MySQL数据库能够支持各种各样操作系统的运作包含AIX、HP-UX、OS/2 Wrap、Solaris、Mac OS、Linux和Windows等。性能好使用便捷。因而MySQL数据库已成为当下数据库行业最流行产品之一。MySQL数据库系统使用面向对象设计方式客户至上开展编程设计。是利用面向对象观念来达到各项功能。它不仅能管理方法大中型数据表或关系数据库还可以把这种复杂且庞大信息系统集成到一个简单的中小型数据库系统内。现阶段中国很多公司早已运用了这一尖端技术。但是由于该操作系统是根据远程服务器/服务器结构的C/S因而存在一些缺陷最先系统软件不可以提供完备的数据访问接口客户只能依靠浏览器浏览所需要的数据次之系统软件并没有统一的标准不同类型的客户端难以实现数据分享第三系统软件没有很好的权限管理体制。 2.2 Java语言技术 Java语言已经存在了25年有余。通过这些年的发展趋势it行业在市场占有率上仍然占据一半仍然受到了很多程序员的工作钟爱。许多从业者都是在学习培训。近年来随着从业者的提高Java语言的位置并没减少算得上是常青藤。Java语言学习培训比较简单自然它是对于C前辈们的 而言的C 语言非常强劲。Java取消了许多特点如go这种描述也取消了主文件让所有文件夹全是类类是二维数组以及各种对象也使Java处理一些对象的引入和回收利用让开发者只需建立对象应用对象编写代码逻辑不需要留意性能让各种各样文件存储给Java自己解决你能花很多时间科学研究应用软件相互关系使研发更为集中化如同跑车驾驶员一样只要了解各种汽车的性能实际操作不需要科学研究如何生产车轮子使软件开发更为详尽。 2.3 Spring Boot框架 Spring Boot框架是一个SpringMVC架构的快速轻量快速框架能够帮助开发人员迅速搭建靠谱高效率的应用程序。依据自动部署和协议书改善了Spring的研究过程使开发人员可以更加专注于领域模型。 Spring Boot有许多特性当中最主要的是它提供了内置Tomcat、Jetty、Undertow等Web网络服务器能够轻松搭建Web应用程序。除此之外它也提供自动部署、无需撰写XML文件等功能。这种功能使开发人员能够迅速建立和布署应用程序而无需解决繁杂的环境变量和其它繁琐复杂每日任务。 开发系统时Spring Boot能够帮助开发人员完成模块化设计和松耦合的代码结构从而更好地日常维护拓展应用程序。除此之外它也提供了很多常见的库和部件如Spring Data、Spring Security等能够轻松集成化这种部件完成数据库操作、验证、受权等功能。 2.4 其他技术使用 Spring-jdbc联接 这是一个专业生产制造Connection对象工厂类大部分全部用以建立数据库联接框架都是会完成这一插口Springjdbc包就实现了这一插口实现类是DriverManagerdasource、现阶段的项目是由DataSource的getconection方式获得配备MYSQL5.7数据库连接信息。 提交Fileupload文件 项目中应用Fileupload完成文件提交通常是Fileupload前面提交文件提交请求请求形式为POSTform actionuploadServlet methodpost ....请求编码方式等候文件提交启用Fileitem的isformField()方式判断出表格域到底还是不是表格域文件提交到后台管理应用Fileupload接受文件信息并把文件解决包存储在硬盘和库中。 Alibaba驱动 比照各大网站Alibaba.Druid是JAVA语言中比较好的数据库连接池。Druid可提供强有力的拓展和监控功能。该项目应用Alibababa.Druid开展数据库系统连接Druid 0.1.18 以后全部版本号都分享到maven中央仓库在项目pome中.在xml里加入dependency就可以使用。 log4j日志 驾校预约学习系统其全世界错误处理和日志信息纪录应用log4j开展日志日常维护管理与查询其核心优势是错误处理在logback中应用软件里的出现异常不被应用软件认知特性提升关键或没有废弃物体制log4j在很多情况下可采取设计的一套无废弃物体制防止经常日志搜集所引起的jvm gc。操作方法很简单在pom中.新增log4j有关jarxml就可以。 第3章 系统分析 本文作者在确定了研究的课题之后从各大数字图书馆下载文献来阅读并了解同类型的网站具备的大致功能然后具体事务具体分析得出本系统要研究的具体功能与性能。虽然分析系统这一阶段性工作主要是确定功能但它却影响着后面系统开发环节的进展系统分析这个环节是不能少的。 3.1 可行性分析 从三个不同的角度来分析确保开发成功的前提是有可行性分析只有进行提前分析符合程序开发流程才不至于开发过程的中断。 3.1.1技术可行性分析 研发设计程序流程挑选面向对象设计、功能齐全、简单实用的Java编程设计核心理念。MySQL数据库存储数据。IDEA工具作为编程软件Windows 10计算机操作系统作为应用系统以及数据库可视化工具等技术职称。一般来说该程序流程的开发能够从技术上开展是可行的。 3.1.2经济可行性分析 开发的程序并不是向着商业程序方向设计与开发的反而是做为一个新的毕业论文新项目开发的。它主要运用于检测小朋友们在院校所学的知识并锻练客户使用网络、书籍和其他方式自学能力。因而程序软件的开发不容易涉及到边际收益也不会为软件的挑选付钱。你可以在开发软件的官网上下载所需要的软件并依据所需要的安装方法将应用安装到你的电脑里。一般来说开发这一程序并没有社会经济发展花费。 3.1.3运行可行性分析 由于程序软件就是针对大部分一般操作用户考虑到他的知识与文化水准尤其开发了一个可操作度高的程序软件能够轻而易举地让用户应用数据可视化操作页面。一般来说从用户操作程序的角度看这一程序其实并不难操作。只需用户开启程序就能避免专职人员学习培训开展程序作用操作。 3.2 系统流程 驾校预约学习系统管理系统投入使用后使用者如果能看到相应的流程操作图会提高程序的理解能力。 3.2.1 操作流程 使用者在操作驾校预约学习系统管理系统中应该按照本系统提供的操作流程图3.1即为本系统的操作流程图进行操作可以减少操作失误从而节省进入驾校预约学习系统管理系统的时间。 图3.1 系统操作流程 3.2.2 登录流程 驾校预约学习系统管理系统通过登录功能图3.2即为其登录的流程引导使用者进入指定的功能操作区也避免非本系统的用户享受本系统提供的服务以及查看本系统提供的信息进而保证用户安全。 图3.2 登录流程 3.2.3 删除信息流程 驾校预约学习系统管理系统在经过长期使用后会产生很多的数据信息。为了腾出存储空间存放更多的数据本系统数据库中存储的数据一些没有参考价值的数据需要进行删除图3.3即为删除信息的流程删除数据过程中为避免误删使用者要根据系统的提示来决定是否删除数据。 图3.3 删除信息流程 3.2.4 添加信息流程 驾校预约学习系统管理系统提供可视化的功能操作区非常方便使用者进行数据操作当使用者往系统中录入数据时图3.4即为添加信息的流程本系统也会进行数据合法性的判断符合要求的数据才能够在数据库指定表中进行登记。 图3.4 添加信息流程 3.3 性能需求 需求分析少不了对项目用到的硬件设备进行分析这样才符合正常的分析流程。只谈功能需求不谈性能需求是一件很严重的事情可能会导致一些不可控的问题出现。 以下从这几个角度来分析系统性能。 (1)系统数据的容量从数据角度来分析每个表和每个数据库达到的数据量到一定的程度是否需要分表或者是分库超过了数据的设定限度可能会导致数据反映迟钝容错量增加。 (2)数据精度的要求需要对需求分析里面数据设定环节考虑相应的数据精度问题需要发现数据是常用的精度还是非常用的精度进而设定不同的数值。 (3)时间响应要求从用户提交操作到页面反映中间有个数据处理的问题需要考虑预测数据量的大小提前预案分库分表的设计数据量再大就要考虑增加列式数据库的问题这些都不是一拍脑门就能决定的都需要经验和同行业的数据分析研判才能符合用户的要求毕竟响应时间太久操作起来也不舒服。 (4)普适性问题用户使用应该不需要感知服务端的数据量问题或者响应问题只需要任意一台电脑不需要更多的操作打开浏览器就能用太多的设置以及操作不符合普适性操作。 (5)页面设计问题功能符合要求之后肯定是要丰富页面的。页面设计才是用户长时间面对的问题首先考虑数据的整洁性让页面看起来更加的清爽。颜色与数据方面该不同颜色就不同颜色降低用户长时间使用出现的视觉疲劳让用户使用起来心情不至于太差。 (6)系统的稳定性正常用户操作系统页面必须是该提交提交正常输入符合逻辑不能随随便便的就出各种问题导致用户操作疲惫并且输入的数据和回显的数据符合用户的要求。如果正常操作都会出现问题那设计就是不稳定的这一点肯定不行。只要是与数据进行交互的系统都必须稳定。系统稳定从开发部署角度上来分析可以考虑数据的冗余备份功能自动值守功能机房数据同步机房分开的功能这些都可以让系统的稳定性得到提升。 系统的性能需求需要对业务很熟练的情况下判断然后分析再从系统性能需求来逐条实现可以让设计的系统有使用价值。 第4章 系统设计 用户对着浏览器操作肯定会出现某些不可预料的问题但是不代表着系统对于用户在浏览器上的操作不进行处理所以说要提前考虑可能会出现的问题。 4.1 系统设计思想 系统设计肯定要把设计的思想进行统一只有统一的思想才能指导程序的开发并且可以让众多的程序开发人员更快速的进入状态提高开发速度。根据当前系统的既定需求下面将进行本系统设计思想的阐述。 (1)扩展性开发任何一个系统的时候不可避免要考虑这个问题。软件版本的更迭是一种常识任何一个软件都不会一次性开发就成永恒软件是一个不断成长的东西。所以考虑问题的时候需要对当前问题进行数据上的扩大化然后进行归纳整理最终形成具有一定扩展性的程序。程序的可扩展性必然会影响开发进度所以最终需要综合评估程序的可扩展程度进而有的放矢循序开发。 (2)实用性程序设计是一个先高屋建瓴式的设想然后再具体化实用性就是具体化的第一个步骤要充分考虑使用者是不懂程序设计的这一点使用者只是懂得常规性的上网操作步骤并不需要对程序进行理解所以一定要让使用者感觉到便利感觉到实用性的存在如果使用者使用程序过程中没发现使用程序的好处那么程序设计的实用性将大大降低。 (3)安全性当使用者使用的过程中会产生大量的相关数据这些数据必须有安全性的保证否则当使用者发现数据出现问题的原因是程序设计问题的时候将会对程序开发者失去信任甚至可能会产生大量的费用赔偿问题这是一个不可避免的问题。所以安全性关系开发与使用者双方的经济利益程序的安全性是一定要保证的。 (4)先进性程序设计的先进性是开发者进行考虑的必须要在满足系统功能的前提下必须要选择好当下最合适的技术。最合适的技术要从开发成本使用成本以及维护成本里面综合分析经过综合分析后要让技术实现最优解保持先进的技术生产力。 (5)维护性程序开发之初就要考虑以后的维护问题。维护是在程序开发完毕已经上线可以运作进入生产试用过程和使用过程中才会发现需要维护的必要。要通过各方面降低维护成本不是说维护的越少就代表程序开发的越完美程序既然是人类进行设计制造的肯定有很多不可避免的问题产生那么如何维护好程序的正常运作也是一门很重要的学问。 4.2 功能结构设计 图4.1即为设计的管理员功能结构管理员权限操作的功能包括管理公告管理驾校预约学习系统信息包括学习资料管理培训管理考试管理薪资管理等可以管理公告。 图4.1 管理员功能结构 4.3 数据库设计 驾校预约学习系统管理系统运行中产生的数据需要按照提前设置的存储规则进行保存设计出一个符合项目的最优数据存储格式因为它能减少用户的等待时间还可以对系统的请求在最短时间内进行响应。所以对数据库设计时需要对功能需求进行详细的拆分以及对业务状态的细分然后设计具体的存储规则保证数据库能正常运作缩短数据处理时间并在一定程度上降低数据冗余节省存储空间。 4.3.1 数据库概念设计 实体-联系图还有一个名称即E-R图是Entity Relationship Diagram各英文单词首字母的缩写它这种概念模型通常用于对现实世界进行描述。同时它还是一种能够直观表达数据中实体联系属性的有效手段。绘制E-R图能够选择的工具也有很多但是Office Visio 这款软件在E-R图的绘制上一般都是作为首选工具因为它是基于可视化处理使用它创建E-R图非常简单。使用基本的E-R图构成元素比如椭圆菱形矩形还有实线段来表达对应的信息椭圆代表属性即实体的特征矩形代表实体即数据库中的一个具体数据表菱形代表实体中相互关系实线段主要是完成椭圆矩形菱形的连接。 1下图是用户实体和其具备的属性。 用户实体属性图 2下图是考试记录表实体和其具备的属性。 考试记录表实体属性图 3下图是答题详情表实体和其具备的属性。 答题详情表实体属性图 4下图是公告信息实体和其具备的属性。 公告信息实体属性图 5下图是教练实体和其具备的属性。 教练实体属性图 6下图是试卷选题实体和其具备的属性。 试卷选题实体属性图 7下图是学习资料收藏实体和其具备的属性。 学习资料收藏实体属性图 8下图是错题表实体和其具备的属性。 错题表实体属性图 9下图是教练预约实体和其具备的属性。 教练预约实体属性图 10下图是学习资料实体和其具备的属性。 学习资料实体属性图 11下图是留言板实体和其具备的属性。 留言板实体属性图 12下图是学习资料留言实体和其具备的属性。 学习资料留言实体属性图 13下图是试卷实体和其具备的属性。 试卷实体属性图 14下图是试题表实体和其具备的属性。 试题表实体属性图 4.3.2 数据库物理设计 本小节主要任务即是根据上述内容进行数据存储结构的设计实体的属性就用来表示字段名称不同的字段表示的数据类型以及取值都不相同以及该表各个字段是否能够保持空等进行说明设计完成一张数据表的结构之后在保存时同样要命名尽量选择英文名称进行命名并保存还不容易导致系统出错。接下来就对设计的表进行简单说明。 表4.1字典表 序号列名数据类型说明允许空1IdIntid否2dic_codeString字段是3dic_nameString字段名是4code_indexInteger编码是5index_nameString编码名字是6super_idInteger父字段id是7beizhuString备注是8create_timeDate创建时间是 表4.2试卷表 序号列名数据类型说明允许空1IdIntid否2exampaper_nameString试卷名称是3exampaper_dateInteger考试时长(分钟)是4exampaper_myscoreInteger试卷总分数是5kemu_typesInteger科目是6exampaper_typesInteger试卷状态是7zujuan_typesInteger组卷方式是8exampaper_deleteInteger逻辑删除1代表未删除 2代表已删除是9create_timeDate创建时间是 表4.3试卷选题表 序号列名数据类型说明允许空1IdIntid否2exampaper_idInteger试卷是3examquestion_idInteger试题是4exampapertopic_numberInteger试题分数是5create_timeDate创建时间是 表4.4试题表表 序号列名数据类型说明允许空1IdIntid否2examquestion_nameString试题名称是3kemu_typesInteger科目是4examquestion_optionsString选项json字符串是5examquestion_answerString正确答案是6examquestion_analysisString答案解析是7examquestion_typesInteger试题类型是8examquestion_sequenceInteger试题排序值越大排越前面是9create_timeDate创建时间是 表4.5考试记录表表 序号列名数据类型说明允许空1IdIntid否2examrecord_uuid_numberString考试编号是3yonghu_idInteger考试用户是4exampaper_idInteger所属试卷id外键是5total_scoreInteger所得总分是6insert_timeDate考试时间是7create_timeDate创建时间是 表4.6答题详情表表 序号列名数据类型说明允许空1IdIntid否2examredetails_uuid_numberString试卷编号是3yonghu_idInteger用户id是4examquestion_idInteger试题id外键是5examredetails_myanswerString考生答案是6examredetails_myscoreInteger试题得分是7create_timeDate创建时间是 表4.7错题表表 序号列名数据类型说明允许空1IdIntid否2yonghu_idInteger用户id是3exampaper_idInteger试卷外键是4examquestion_idInteger试题id外键是5examredetails_myanswerString考生作答是6insert_timeDate记录时间是7create_timeDate创建时间是 表4.8公告信息表 序号列名数据类型说明允许空1IdIntid否2gonggao_nameString公告名称是3gonggao_photoString公告图片是4gonggao_typesInteger公告类型是5insert_timeDate发布时间是6gonggao_contentString公告详情是7create_timeDate创建时间是 表4.9教练表 序号列名数据类型说明允许空1IdIntid否2jiaolian_nameString教练姓名是3jiaolian_phoneString教练手机号是4jiaolian_id_numberString教练身份证号是5jiaolian_photoString教练头像是6jiaolian_emailString电子邮箱是7create_timeDate创建时间是 表4.10教练预约表 序号列名数据类型说明允许空1IdIntid否2jiaolian_yuyue_uuid_numberString报名编号是3jiaolian_idInteger教练是4yonghu_idInteger用户是5jiaolian_yuyue_textString报名理由是6insert_timeDate教练预约时间是7jiaolian_yuyue_yesno_typesInteger报名状态是8jiaolian_yuyue_yesno_textString审核回复是9jiaolian_yuyue_shenhe_timeDate审核时间是10jiaolian_yuyue_timeDate预约时间是11create_timeDate创建时间是 表4.11留言板表 序号列名数据类型说明允许空1IdIntid否2yonghu_idInteger用户是3liuyan_nameString留言标题是4liuyan_textString留言内容是5insert_timeDate留言时间是6reply_textString回复内容是7update_timeDate回复时间是8create_timeDate创建时间是 表4.12用户表 序号列名数据类型说明允许空1IdIntid否2yonghu_nameString用户姓名是3yonghu_phoneString用户手机号是4yonghu_id_numberString用户身份证号是5yonghu_photoString用户头像是6yonghu_emailString电子邮箱是7create_timeDate创建时间是 表4.13学习资料表 序号列名数据类型说明允许空1IdIntid否2ziliao_nameString学习资料名称是3ziliao_uuid_numberString学习资料编号是4ziliao_photoString学习资料照片是5zan_numberInteger赞是6cai_numberInteger踩是7ziliao_typesInteger学习资料类型是8ziliao_videoString学习资料视频是9ziliao_fileString学习资料下载是10ziliao_contentString学习资料介绍是11ziliao_deleteInteger逻辑删除是12insert_timeDate录入时间是13create_timeDate创建时间是 表4.14学习资料收藏表 序号列名数据类型说明允许空1IdIntid否2ziliao_idInteger商品是3yonghu_idInteger用户是4ziliao_collection_typesInteger类型是5insert_timeDate收藏时间是6create_timeDate创建时间是 表4.15学习资料留言表 序号列名数据类型说明允许空1IdIntid否2ziliao_idInteger商品是3yonghu_idInteger用户是4ziliao_liuyan_textString留言内容是5insert_timeDate留言时间是6reply_textString回复内容是7update_timeDate回复时间是8create_timeDate创建时间是 表4.16管理员表 序号列名数据类型说明允许空1IdIntid否2usernameString儿童名是3passwordString密码是4roleString角色是5addtimeDate新增时间是 第5章 系统实现 编程人员在搭建的开发环境中会让各种编程技术一起呈现出最终效果。本节就展示关键部分的页面效果。 5.1 管理员功能实现 5.1.1 学习资料管理 图5.1 即为编码实现的学习资料管理界面管理员在学习资料管理界面中可以对界面中显示可以对学习资料信息的学习资料状态进行查看可以添加新的学习资料信息等。 图5.1 学习资料管理界面 5.1.2 考试管理 图5.2 即为编码实现的考试管理界面管理员在考试管理界面中查看考试种类信息考试描述信息新增考试信息等。 图5.2 考试管理界面 5.1.3 公告管理 图5.3 即为编码实现的公告管理界面管理员在公告管理界面中新增公告可以删除公告。 图5.3 公告管理界面 5.1.4 公告类型管理 图5.4 即为编码实现的公告类型管理界面管理员在公告类型管理界面查看公告的工作状态可以对公告的数据进行导出可以添加新公告的信息可以编辑公告信息删除公告信息。 图5.4 公告类型管理界面 GonggaoController.java package com.controller;import java.io.File; import java.math.BigDecimal; import java.net.URL; import java.text.SimpleDateFormat; import com.alibaba.fastjson.JSONObject; import java.util.*; import org.springframework.beans.BeanUtils; import javax.servlet.http.HttpServletRequest; import org.springframework.web.context.ContextLoader; import javax.servlet.ServletContext; import com.service.TokenService; import com.utils.*; import java.lang.reflect.InvocationTargetException;import com.service.DictionaryService; import org.apache.commons.lang3.StringUtils; import com.annotation.IgnoreAuth; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.entity.*; import com.entity.view.*; import com.service.*; import com.utils.PageUtils; import com.utils.R; import com.alibaba.fastjson.*;/*** 公告信息* 后端接口* author* email */ RestController Controller RequestMapping(/gonggao) public class GonggaoController {private static final Logger logger LoggerFactory.getLogger(GonggaoController.class);private static final String TABLE_NAME gonggao;Autowiredprivate GonggaoService gonggaoService;Autowiredprivate TokenService tokenService;Autowiredprivate DictionaryService dictionaryService;//字典Autowiredprivate ExampaperService exampaperService;//试卷Autowiredprivate ExampapertopicService exampapertopicService;//试卷选题Autowiredprivate ExamquestionService examquestionService;//试题表Autowiredprivate ExamrecordService examrecordService;//考试记录表Autowiredprivate ExamredetailsService examredetailsService;//答题详情表Autowiredprivate ExamrewrongquestionService examrewrongquestionService;//错题表Autowiredprivate JiaolianService jiaolianService;//教练Autowiredprivate JiaolianYuyueService jiaolianYuyueService;//教练预约Autowiredprivate LiuyanService liuyanService;//留言板Autowiredprivate YonghuService yonghuService;//用户Autowiredprivate ZiliaoService ziliaoService;//学习资料Autowiredprivate ZiliaoCollectionService ziliaoCollectionService;//学习资料收藏Autowiredprivate ZiliaoLiuyanService ziliaoLiuyanService;//学习资料留言Autowiredprivate UsersService usersService;//管理员/*** 后端列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params, HttpServletRequest request){logger.debug(page方法:,,Controller:{},,params:{},this.getClass().getName(),JSONObject.toJSONString(params));String role String.valueOf(request.getSession().getAttribute(role));if(false)return R.error(511,永不会进入);else if(用户.equals(role))params.put(yonghuId,request.getSession().getAttribute(userId));else if(教练.equals(role))params.put(jiaolianId,request.getSession().getAttribute(userId));CommonUtil.checkMap(params);PageUtils page gonggaoService.queryPage(params);//字典表数据转换ListGonggaoView list (ListGonggaoView)page.getList();for(GonggaoView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put(data, page);}/*** 后端详情*/RequestMapping(/info/{id})public R info(PathVariable(id) Long id, HttpServletRequest request){logger.debug(info方法:,,Controller:{},,id:{},this.getClass().getName(),id);GonggaoEntity gonggao gonggaoService.selectById(id);if(gonggao !null){//entity转viewGonggaoView view new GonggaoView();BeanUtils.copyProperties( gonggao , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put(data, view);}else {return R.error(511,查不到数据);}}/*** 后端保存*/RequestMapping(/save)public R save(RequestBody GonggaoEntity gonggao, HttpServletRequest request){logger.debug(save方法:,,Controller:{},,gonggao:{},this.getClass().getName(),gonggao.toString());String role String.valueOf(request.getSession().getAttribute(role));if(false)return R.error(511,永远不会进入);WrapperGonggaoEntity queryWrapper new EntityWrapperGonggaoEntity().eq(gonggao_name, gonggao.getGonggaoName()).eq(gonggao_types, gonggao.getGonggaoTypes());logger.info(sql语句:queryWrapper.getSqlSegment());GonggaoEntity gonggaoEntity gonggaoService.selectOne(queryWrapper);if(gonggaoEntitynull){gonggao.setInsertTime(new Date());gonggao.setCreateTime(new Date());gonggaoService.insert(gonggao);return R.ok();}else {return R.error(511,表中有相同数据);}}/*** 后端修改*/RequestMapping(/update)public R update(RequestBody GonggaoEntity gonggao, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug(update方法:,,Controller:{},,gonggao:{},this.getClass().getName(),gonggao.toString());GonggaoEntity oldGonggaoEntity gonggaoService.selectById(gonggao.getId());//查询原先数据String role String.valueOf(request.getSession().getAttribute(role)); // if(false) // return R.error(511,永远不会进入);if(.equals(gonggao.getGonggaoPhoto()) || null.equals(gonggao.getGonggaoPhoto())){gonggao.setGonggaoPhoto(null);}if(.equals(gonggao.getGonggaoContent()) || null.equals(gonggao.getGonggaoContent())){gonggao.setGonggaoContent(null);}gonggaoService.updateById(gonggao);//根据id更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Integer[] ids, HttpServletRequest request){logger.debug(delete:,,Controller:{},,ids:{},this.getClass().getName(),ids.toString());ListGonggaoEntity oldGonggaoList gonggaoService.selectBatchIds(Arrays.asList(ids));//要删除的数据gonggaoService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 批量上传*/RequestMapping(/batchInsert)public R save( String fileName, HttpServletRequest request){logger.debug(batchInsert方法:,,Controller:{},,fileName:{},this.getClass().getName(),fileName);Integer yonghuId Integer.valueOf(String.valueOf(request.getSession().getAttribute(userId)));SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);//.eq(time, new SimpleDateFormat(yyyy-MM-dd).format(new Date()))try {ListGonggaoEntity gonggaoList new ArrayList();//上传的东西MapString, ListString seachFields new HashMap();//要查询的字段Date date new Date();int lastIndexOf fileName.lastIndexOf(.);if(lastIndexOf -1){return R.error(511,该文件没有后缀);}else{String suffix fileName.substring(lastIndexOf);if(!.xls.equals(suffix)){return R.error(511,只支持后缀为xls的excel文件);}else{URL resource this.getClass().getClassLoader().getResource(static/upload/ fileName);//获取文件路径File file new File(resource.getFile());if(!file.exists()){return R.error(511,找不到上传文件请联系管理员);}else{ListListString dataList PoiUtil.poiImport(file.getPath());//读取xls文件dataList.remove(0);//删除第一行因为第一行是提示for(ListString data:dataList){//循环GonggaoEntity gonggaoEntity new GonggaoEntity(); // gonggaoEntity.setGonggaoName(data.get(0)); //公告名称 要改的 // gonggaoEntity.setGonggaoPhoto();//详情和图片 // gonggaoEntity.setGonggaoTypes(Integer.valueOf(data.get(0))); //公告类型 要改的 // gonggaoEntity.setInsertTime(date);//时间 // gonggaoEntity.setGonggaoContent();//详情和图片 // gonggaoEntity.setCreateTime(date);//时间gonggaoList.add(gonggaoEntity);//把要查询是否重复的字段放入map中}//查询是否重复gonggaoService.insertBatch(gonggaoList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,批量插入数据异常请联系管理员);}}/*** 前端列表*/IgnoreAuthRequestMapping(/list)public R list(RequestParam MapString, Object params, HttpServletRequest request){logger.debug(list方法:,,Controller:{},,params:{},this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);PageUtils page gonggaoService.queryPage(params);//字典表数据转换ListGonggaoView list (ListGonggaoView)page.getList();for(GonggaoView c:list)dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段return R.ok().put(data, page);}/*** 前端详情*/RequestMapping(/detail/{id})public R detail(PathVariable(id) Integer id, HttpServletRequest request){logger.debug(detail方法:,,Controller:{},,id:{},this.getClass().getName(),id);GonggaoEntity gonggao gonggaoService.selectById(id);if(gonggao !null){//entity转viewGonggaoView view new GonggaoView();BeanUtils.copyProperties( gonggao , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put(data, view);}else {return R.error(511,查不到数据);}}/*** 前端保存*/RequestMapping(/add)public R add(RequestBody GonggaoEntity gonggao, HttpServletRequest request){logger.debug(add方法:,,Controller:{},,gonggao:{},this.getClass().getName(),gonggao.toString());WrapperGonggaoEntity queryWrapper new EntityWrapperGonggaoEntity().eq(gonggao_name, gonggao.getGonggaoName()).eq(gonggao_types, gonggao.getGonggaoTypes()) // .notIn(gonggao_types, new Integer[]{102});logger.info(sql语句:queryWrapper.getSqlSegment());GonggaoEntity gonggaoEntity gonggaoService.selectOne(queryWrapper);if(gonggaoEntitynull){gonggao.setInsertTime(new Date());gonggao.setCreateTime(new Date());gonggaoService.insert(gonggao);return R.ok();}else {return R.error(511,表中有相同数据);}}} PoiUtil.java package com.utils;import org.apache.commons.io.FileUtils; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell;import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List;/*** 文件导入到处*/ public class PoiUtil {/*** 导入** param url* return* throws Exception*/public static ListListString poiImport(String url) throws Exception {ListListString list new ArrayList();// 创建Excel 读取文件内容HSSFWorkbook workbook new HSSFWorkbook(FileUtils.openInputStream(new File(url)));/*** 第一种方式读取Sheet页*/ // HSSFSheet sheet workbook.getSheet(Sheet0);/*** 第二种方式读取Sheet页*/HSSFSheet sheet workbook.getSheetAt(0);//获取工作表for (int i 0; i sheet.getLastRowNum()1; i) {HSSFRow row sheet.getRow(i);//获取行ListString rowlist new ArrayList();//行数据for (int j 0; j row.getLastCellNum(); j) {HSSFCell cell row.getCell(j);cell.setCellType(Cell.CELL_TYPE_STRING);String value cell.getStringCellValue();rowlist.add(value);//行中数据添加到行中}list.add(rowlist);//将行数据添加到list中}return list;}// 导出public static void poiExport(ListListString list, String url) throws Exception {//创建Excel工作薄HSSFWorkbook workbook new HSSFWorkbook();//创建一个工作表shheetHSSFSheet sheet workbook.createSheet();for (int i 0; i list.size(); i) {HSSFRow row sheet.createRow(i);ListString dataList list.get(i);for (int j 0; j dataList.size(); j) {HSSFCell cell row.createCell(j);cell.setCellValue(dataList.get(j));}}FileOutputStream stream FileUtils.openOutputStream(new File(url));workbook.write(stream);stream.close();}public static void main(String[] args) {try {//导入ListListString lists PoiUtil.poiImport(C:/Users/Administrator/Desktop/工作1.xls);System.out.println();//导出PoiUtil.poiExport(lists, C:/Users/Administrator/Desktop/工作1.xls);// // ListListString list new ArrayList(); // ArrayListString dataList new ArrayList(); // dataList.add(标题1); // dataList.add(标题2); // dataList.add(标题3); // list.add(dataList); // // 追加数据 // for (int i 1; i 10; i) {// 这里的int 起始是1 也就是第二行开始 // ArrayListString dataList111 new ArrayList(); // dataList111.add(内容 i); // dataList111.add(内容1111111121222222222333333333377777777411111111477777777 i); // dataList111.add(内容 i); // list.add(dataList111); // } // PoiUtil.poiExport(list, C:/Users/Administrator/Desktop/工作1.xls);} catch (Exception e) {e.printStackTrace();}} } ExamredetailsServiceImpl.java package com.service.impl;import com.utils.StringUtil; import com.service.DictionaryService; import com.utils.ClazzDiff; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.lang.reflect.Field; import java.util.*; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; import com.utils.PageUtils; import com.utils.Query; import org.springframework.web.context.ContextLoader; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import org.springframework.lang.Nullable; import org.springframework.util.Assert; import com.dao.ExamredetailsDao; import com.entity.ExamredetailsEntity; import com.service.ExamredetailsService; import com.entity.view.ExamredetailsView;/*** 答题详情表 服务实现类*/ Service(examredetailsService) Transactional public class ExamredetailsServiceImpl extends ServiceImplExamredetailsDao, ExamredetailsEntity implements ExamredetailsService {Overridepublic PageUtils queryPage(MapString,Object params) {PageExamredetailsView page new QueryExamredetailsView(params).getPage();page.setRecords(baseMapper.selectListView(page,params));return new PageUtils(page);}} 声明 本博客适用于广泛的学术和教育用途包括但不限于个人学习、开发设计产品设计。仅供学习参考旨在为读者提供深入理解和学术研究的材料。
http://www.hkea.cn/news/14458924/

相关文章:

  • 如东做网站的公司qq网站临时会话
  • 该网站在工信部的icp ip地址合肥网站快速排名优化
  • 门户网站和网站的区别上海做网站那家好
  • 郑州餐饮网站建设哪家好试用网站空间
  • 网站pv uv漳州城乡建设局网站
  • ups国际快递网站建设教育机构网站建设公司
  • 做教学的视频网站图片制作软件带字
  • 网站开发网站开发新网站百度seo如何做
  • 建立校园网站电商网站制作方案
  • 展示网站建设软件开发费用明细
  • 房屋装修设计费一般多少网站框架优化
  • 办网站如何备案wordpress手机端样式
  • 做自己的视频网站wordpress amp自动
  • 网站如何换空间网站跟域名是什么关系
  • 做一下网站需要什么条件志愿者网站时长码怎么做
  • 门户网站建设自查报告网站建设的核心是什么
  • 长沙网站制作工作室知名公司ps手绘网站有哪些
  • 伪原创php网站镜像同步程序合肥有多少建网站公司
  • 在阿里巴巴做网站多少钱2019科技创新作文
  • 昆山网站建设推荐外包网站建设报价
  • 福州企业公司网站建设百家号权重查询站长工具
  • wordpress网站seo网页游戏怎么开发
  • 网站设计实用实例网络网站建设的意义
  • 网站策划书案例北京怎样做网站推广
  • 网站开发设备费用计入什么科目大宗交易查询平台
  • 网站域名改了以后新域名301泉州免费网站制作
  • 17网站一起做网店池尾百度关键词工具在哪里
  • 佛山网站开发广州企业电话大全
  • 淄博周村网站建设方案有那些做自媒体短视频的网站
  • 珠海中企网站建设公司东莞樟木头网站建设公司