版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
红酒内部信息管理系统的设计与实现
摘要随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识。作为计算机应用的一部分,使用计算机对红酒庄员工和酒品信息进行管理,具有着手工管理所无法比拟的优点。这些优点能够极大地提高企业管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。所以开发一个红酒庄内部信息管理系统很有必要、本系统主要架构为B/S(浏览器和服务器)模式、以Java技术、采用mysql数据库和主流的jQuery框架等开发研究的红酒庄内部信息管理系统。关键词:酒庄、管理系统、Java
Withthecontinuousimprovementofscienceandtechnology,computerscienceisbecomingmature,anditspowerfulfunctionhasbeendeeplyrecognizedbypeople.Asapartofthecomputerapplication,theuseofcomputertowinerystaffandwineinformationmanagement,hastheadvantageofmanualmanagementcannotbecompared.Theseadvantagescangreatlyimprovetheefficiencyofenterprisemanagement,butalsothescientific,standardizedmanagementofenterprises,andtheimportantconditionsoftheworld.Therefore,itisnecessarytodevelopawineryinternalinformationmanagementsystem.ThemainstructureofthissystemisB/S(browserandserver)mode,andthewineryinternalinformationmanagementsystemisdevelopedandresearchedbyusingJavatechnology,MySQLdatabaseandthemainstreamjQueryframework.一、绪论1.1系统研究目的意义随着信息技术的不断发展,我们现在已经步入了信息化的时代了,而信息时代的代表便是网络技术的日渐成熟,而现在网络已经和我们的生活紧密的联系起来了,我们不敢想象没有网络我们的生活会像怎么样,信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。因此,一个好的酒庄信息内部管理系统也以方便、快捷、费用低、绿色环保的优点正慢慢地进入这个行业和领域,将传统的酒庄员工管理方式和酒庄信息的管理彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,加速信息的更新速度,使酒庄管理员或企业管理层第一时间了解到酒庄的具体的信息,从而进一步的进行对酒庄用户、信息、以及酒品信息进行调度等。本次针对这问题设计了这个系统,本着科学化、规范化、系统化的原则,设计和开发了酒庄内部信息管理系统。1.2研究的主要内容
该酒庄内部信息管理系统主要研究内容是实现各级人员对系统各项模块功能的管理、用户信息管理、菜单信息管理、角色信息管理、红酒类型管理、红酒信息管理审核、管理员群发邮件和普通用户发送邮件给管理员以及接受邮件和一些通知公告信息的查看浏览以及发布等。
二、相关技术介绍分析2.1spring技术
Spring框架是Java技术平台上的一种常见开源应用框架,提具有控制反转IOC的容器。尽管长时间以来Spring框架自身对编程没有限制,但是其在Java应用中的频繁使用让它很受青睐,所有后来让它作为EJB(EnterpriseJavaBeans)模型信息补充,javaSpring框架为开发提供了一系列技术解决方案,比如:利用控制反转IOC的特性,通过实现依赖注入来实现管理整个对象生命周期容器化,利用java面向切面编程技术进行声明式事务管理,整合各种持久化技术管理数据的访问,提供了很多优秀的Web框架方便开发、JAVASpring框架具有控制反转IOC特性,IOC主要在方便项目维护和测试时期,它提供了一种通过Java反射机制对Java对象进行统一配置与各种管理的方法。JAVASpring框架通过容器管理对象的整个生命周期,spring容器通过扫描XML配置文件来配置对象,java开发者通过依赖注入查来获得对象或查找对象。javaSpring框架具有面向切面编程(AOP)框架的功能。SpringAOP框架基于经典的java设计模式--代理模式,可以同时运行时可配置;javaAOP框架主要技术针对模块之间得交叉关注点进行模块化管理。Spring框架的AOP功能仅提供基本的AOP特性功能,虽然无法与AspectJ框架相比较,但是通过与AspectJ框架的集成,也可以满足基本功能需求。Spring框架下的事务管理、远程访问等功能均可以通过使用Spring-AOP技术来实现。Spring事务管理为Java平台开发者带来了一种抽象的机制,使本地事物和全局事务、嵌套事务能够与保存点在一起工作,而且可以在Java平台的任何环境中工作、Spring集成了多种事务,系统可以通过事务、XML以及Java注解进行事务配置,而且事务框架集成了消息传递和功能和缓存的功能。Spring的数据访问解决了开发者在应用程序中使用数据库时遇见的常见困难。它不仅对Java:JDBC、iBATS、MyBATIs框架、Hibernate框架、Java数据对象(JDO)、和ApacheCayne等流行的数据访问框架中提供技术支持。并且可以与Spring事务管理一起来使用,提供数据访问抽象。javaSpring框架最开始是没有打算构建一个自己的WebMVC的框架,但是开发人员在开发设计过程中认为现有的Struts框架的表现层和请求处理层之间、请求处理层和模型之间的分离还不够彻底,所有创建了经典的SpringMVC框架。
2.2SpringMVC技术
SpringMVC框架是一个经典的MVC流程框架,通过实现ModelView以及Controller处理器来很好地将数据和业务以及展现层进行完全分离。从这样的一个角度来说的话,SpringMVC、Struts以及Struts2非常的类似。SpringMVC总体设计是围绕DispatcherServlet前端控制器来展开的,DispatcherServlet负责将前端请求发送到特定的handler映射。通过配置的handlermappingsviewresolutionlocale以及themeresolution来处理收到的请求并且转到对应的视图处理器。SpringMVC请求业务处理的整体流程如下展示:
2.3mybatis技术MyBatis框架是底层JDBC访问数据库的封装,它使得底层访问数据库的操作是透明的。MyBatis的操作是基于一个SQLSessionFactory实例。MyBatis框架通过各种配置文件与特定对象实体类的映射Mapper文件相关联,并且Mapper文件配置了每个对象到数据库的SQL映射。当与数据库交互时,通过SQLSessionFactory实例获取SQLSession对象并执行SQL命令。访问数据库。
2.4JSP技术技术JSP(全称JavaServers)是由Sun领导并创建的一种动态Web页面JAVA技术。JSP部署在Web服务器上,动态生成HTML、XML和其他JAVAWeb页面,以响应客户端发送的特定请求。并将数据返回给请求者根据发送的内容request.JSP技术是基于JAVA语言的脚本语言,为用户的HTTP、HTTPS请求提供服务,并能处理复杂的业务数据和请求与其他JAVA相关程序在服务器上。JSP是将JAVA相关代码和特定内容更改嵌入到静态页面中,以静态页面为模板,动态生成部分内容。JSP引入XML标记,用于JSP动作调用函数。您还可以创建JSP动态标记库,并像使用标准HTML或XML标记那样使用它们。动态标记库可以增强功能和服务器性能,而不受跨平台问题的限制。JavaJSP文件在运行时被编译器转换为更多原始的Servlet底层代码。JSP编译器可以将JSP文件编译为用Java代码编写的Servlet低级代码。然后编译成计算机二进制代码,可以由Java编译器统一快速执行,或直接编译成二进制代码数据。
2.5jQuery技术JQuery框架是一个快速、经典和简单的JavaScript前端框架计划。它是继Prototype之后的又一个优秀的JavaScript代码基础框架。jQuery设计的目的是写的少,做的多,也就是说写的代码少。它做的事情越多,就封装了常见的JavaScript功能和代码,并提供了一个简单的JavaScript设计相关的模式,用于优化HTML文档操作、事件处理、CSS样式化、动画设计和Ajax请求交互。jQuery的核心特性包括:独特的链接语法、简短清晰的多功能对接接口、高效灵活的CSS选择器以及对各种CSS选择器的扩展和扩展能力、方便的插件扩展机制和丰富的插件管理功能。JQuery兼容IE8.0+、Firefox、谷歌等主流浏览器。2.6Mysql技术MySQL数据库是与PHP、Java、c++/c#等主流编程语言技术紧密结合的安全、跨平台、高效的轻量级数据库系统。MySQL数据库系统是由瑞典公司MySQLAB开发、发布和支持的。它于1995年由MySQL的最初开发者DavidAxmark和MichaelMontyWdenius创建。目前,MySQL数据库在互联网网站上被广泛使用。由于MySQL数据库体积小、速度快、整体拥有成本很低,尤其是在开源的特点上,很多互联网公司都采用了MySQL数据库来降低开发系统的成本。MySQL数据库是世界上最快的SQL数据库之一。因为它有许多其他数据库没有的特性,MySQL数据库也是免费和开源的。用户可以通过网络直接从网站上下载MySQL数据库并使用,无需支付任何费用。MySQL的特点下面是对MySQL特性的概述。1)强大的MySQL提供了多种数据库存储引擎,每个引擎都有自己的优势,适合不同的应用,用户可以选择最合适的引擎来获得最高的性能,可以处理每天访问数亿次以上的高强度搜索网站。MySQL5支持事务、视图、存储过程、触发器等。2)跨平台支持MySQL支持至少20个开发平台,包括Linux、Windows、FreeBSD、IBMAx、AIX、FreeBSD等。这允许在任何平台上编写的程序无需对程序进行任何更改就可以进行移植。3)运行速度快速度是MySQL的一个显著特征。在MySQL中,使用了极快的b树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多个连接,可以极快地实现连接;SQL函数使用高度优化的类库实现,运行速度极快。4)支持面向对象PHP支持混合编程。编程方法可分为三种:纯面向对象、纯面向过程、面向面对象和面向过程混合。5)高安全灵活和安全的权限与密码系统,允许基本的主机身份验证。连接服务器时,所有的密码传输都是加密的,以保证密码的安全性。6)成本低MySQL数据库是一个完全免费的产品,用户可以直接通过网络下载。支持多种开发语言MySQL支持多种流行的编程语言,包括PHP,ASP。NET,Java,Eiffel,Python,Ruby,Tcl,C,c++,Perl,等等。8)数据库存储容量大MySQL数据库的最大有效表大小通常是由操作系统对文件大小的限制决定的,而不是由MySQL的内部限制。InnoDB存储引擎将InnoDB表保存在一个可以从多个文件创建的表空间中。表空间的最大大小是64TB,它可以轻松处理拥有数千万条记录的大型数据库。9)支持强大的内置功能PHP提供了大量内置函数,这些函数几乎涵盖了Web应用程序开发的每个方面。它具有内置的数据库连接操作、文件上传和下载功能,MySQL数据库支持大量的扩展库和插件,MySQLI等,可以为JavaWeb应用程序的快速开发提供很好的便利。MySQL数据库的应用MySQL数据库是专门用于管理系统数据资源的计算机系统。数据可以以多种形式呈现,如符号、图形、图像、文字、数字和声音等。数据是所有计算机系统的对象。我们熟悉的方式处理是使一个文件,这个过程被编译成一个程序文件,将参与程序的数据根据需求数据文件,然后使用程序调用、数据文件和程序文件保持一定的关系。随着计算机应用的迅速发展,这种档案管理方法也暴露出其不足之处。例如,它使数据大众化,不易迁移,在不同的网络文件中存储大量重复信息,浪费存储空间,更新不便等。而数据库系统可以解决上述基本问题。MySQL数据库系统并不是从具体应用出发,是基于数据本身进行管理,它将数据保存在数据库中,组织科学的管理,并借助数据库管理系统进行管理。以它为桥梁,与各种应用程序和应用系统接口,方便快捷地使用数据库中的数据。其实总体说来简单,数据库其实就是一组计算机语言指令整理后的数据,存储在一个或多个文件域内,而管理数据库的软件就叫做数据库管理系统软件。一个数据库系统它可以分为数据库、数据库管理系统和数据库管理系统。主流数据库软件包括Oracle、Informix、Sybase、SQLServer、PostgreSQL、MySQL、Foxpro、Teradata等。数据库在Web开发中的重要地位归根结底,动态网站是数据的操作,我们平时浏览网页的时候,会发现网页的内容会经常变化,而页面的主体结构却没有变化,新闻是典型的。这是因为我们将新闻存储在数据库中。当用户浏览时,程序会根据用户请求的新闻号从数据库中读取相应的新闻,然后以特定的格式响应用户。Web系统的开发基本上离不开数据库,因为一切都必须存储在数据库中。所谓动态网站就是基于数据库开发的系统,最重要的是数据管理,或者是我们在数据库的开发过程中围绕编写的程序。因此,作为一名Web程序员,只有掌握了数据库,才能开发软件。三、需求分析和可行性分析3.1系统运行环境开发系统:Windows7。JDK版本:JavaJDK1.8开发工具:springboot数据库版本:mysql5数据库可视化工具:navicatformysql服务器:apachetomcat7
其他工具:谷歌浏览器控制台调整网页布局
Postman接口工具进行接口测试3.2总体技术设计此系统需要java面向对象编程基础,数据库知识和功能分析。根据目前阶段所掌握的相关专业知识,以及这学期和之前学习掌握的java编程知识和数据库应用知识以及前端知识做出一个这样的基于、springmvc轻量级框架网页版的酒庄内部信息管理系统平台。3.3社会可行性分析在互联网技术高速发展的今天,通过互联网的传播会让企业更容易的创造更多的经济效益以及对红酒信息需求的更好掌控以便及时求援,通过网页版红酒庄内部信息管理平台的实现,有了更大的市场和信息,在这样一个大环境下把资源统筹规化起来,就会获得高效的信息和效益。3.4安全性可行性分析人们在使用网络的时候越来越重视信息的安全性,这也促进了加密技术的发展,同时应用加密技术能够有效提升网络信息的安全性。红酒庄内部信息管理平台平台采用了加密保护、页面发送请求获取数据采用关键部分采用post请求对数据传输的保护机制、避免请求数据暴露在浏览器上面、以及不同用户具有不同权限操作通过这些安全性操作,保证系统的稳定性以及可靠性。3.5经济可行性分析服务器端的安装简洁明了,客户机无需再装任何软件,通过浏览器就可以直接访问,可以直接接入Internet,无论您身在何处只要您可以访问Internet都可以使用本系统。本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要、所以在经济上具有完全的可行性。3.6法律可行性分析本系统是自行研究开发的网络版红酒庄内部信息管理平台,它是很有实际意义操作的系统,java开发环境软件和使用的mysql数据库都是开源代码,开发这个红酒庄内部信息管理平台不同于开发普通的系统软件,不存在侵权等问题,所有在法律上是允许可行的。
四、系统设计分析4.1系统模式架构本系统经典的采用B/S架构(浏览器、服务器),是采用浏览器和服务器架构模式设计的架构,随着Internet技术的兴起,对C/S架构模式的一种改变升级或改进。目前,在该架构的应用下,用户通过WWW.浏览器实现数据访问和操作。一小部分事务逻辑在前端页面实现,主要业务事务逻辑在服务器端实现,形成三层结构MVC。B/S架构是Web兴起后主流的网络架构设计模式。Web浏览器是目前最重要的客户端应用软件之一。该模式形成了一个统一的客户端,将系统功能的所有核心部分集中在服务器上实现。简化系统开发和维护。只要客户端安装了浏览器就可以操作,服务器端安装了Oracle、MySQL、Sybase等数据库。浏览器通过WebServer和数据库获取数据。简化客户端计算机的负载,降低系统维护和升级的成本和工作量,降低用户的成本。
4.2系统层次架构根据上述逻辑结构,系统大致可分为三层。根据处理过程的层次,将系统依次分为(1)显示层:处理用户界面、数据传输、信息采集等数据显示。(2)应用层:系统功能的逻辑处理层。它主要处理表示层发送的请求,在后台进行处理,并将处理结果返回给表示层。(3)核心层:是系统运行核心层和应用层的基础,提供应用层权限控制、拦截器和数据读取等功能。4.3用户需求分析用户主要分为管理员和普通用户管理员:管理员可以对后台数据进行管理、拥有最高权限、具体权限有登录后进行用户管理、角色管理、菜单管理、邮件群发管理、红酒类型管理、红酒信息管理以及通知公告的发布和修改密码退出系统等操作。普通用户:普通用户只能联系系统管理员添加账户信息、可以查看酒品信息、接收管理员发送的邮件以及发送邮件给管理员和查看通知公告信息
4.3系统功能详情设计本系统主要设计采用Java语言开发教务系统、采用springmvc、spring为后台框架、数据库框架采用mybatis框架、前端采用jsp、jquery、js、css等技术主要模块设计如下:用户登录管理模块:用户输入账号和密码或手机号登录按钮进行登录、根据输入的账号和密码以及角色来判断是否登录成功以及给出对应提示信息角色管理模块:管理员可以对角色进行添加、修改、删除和浏览、配置用户角色和权限菜单显示。部门管理模块:管理员登录后可以对部门进行管理、添加、输入对应的部门名称等数据点击完成添加、修改以及删除操作。红酒类型管理模块:管理员登录后可以对红酒类型进行管理、添加、输入对应的红酒类型名称和备注说明完成添加、修改以及删除红酒类型等操作。红酒信息管理模块:管理员登录后可以对红酒信息进行管理、添加、输入对应的红酒类型、名称、存放时间、温度、湿度、光线等完成添加、修改以及删除红酒信息等操作。邮件管理模块:管理员登录后可以对邮件信息进行管理、管理员可以群发邮件信息、可以接收平台用户发送的邮件、普通用户可以接收管理员群发的邮件以及发送邮件给管理员通知公告模块:管理员和登录后可以对抗通知公告进行查看、修改、添加、输入、公告标题以及内容等具体数据点击添加完成申请、以及修改和删除通知公告数据等操作、普通用户可以查看通知公告。修改密码和退出管理模块:管理员登录后可以对自己的账号密码进行修改、输入原密码验证成功后连续2次数据相同新密码就可以修改成功。管理员点击注销退出跳转到登录页面重新登陆。4.4数据整体流程分析
4.5源码主要架构
五、程序设计和实现5.1程序主要类4.1.1用户管理员类/***用户ID*/ @TableId privateLonguserId; /***用户名*/ @NotBlank(message="用户名不能为空",groups={AddGroup.class,UpdateGroup.class}) privateStringusername; /***密码*/ @NotBlank(message="密码不能为空",groups=AddGroup.class) @JsonProperty(access=JsonProperty.Access.WRITE_ONLY) privateStringpassword; /***盐*/ privateStringsalt; /***邮箱*/ @NotBlank(message="邮箱不能为空",groups={AddGroup.class,UpdateGroup.class}) @Email(message="邮箱格式不正确",groups={AddGroup.class,UpdateGroup.class}) privateStringemail; /***手机号*/ privateStringmobile; /***状态0:禁用1:正常*/ privateIntegerstatus; /***角色ID列表*/ @TableField(exist=false) privateList<Long>roleIdList; /***创建时间*/ privateDatecreateTime; /***部门ID*/ @NotNull(message="部门不能为空",groups={AddGroup.class,UpdateGroup.class}) privateLongdeptId;;4.1.2菜单路径类/***菜单ID*/ @TableId privateLongmenuId; /***父菜单ID,一级菜单为0*/ privateLongparentId; /***父菜单名称*/ @TableField(exist=false) privateStringparentName; /***菜单名称*/ privateStringname; /***菜单URL*/ privateStringurl; /***授权(多个用逗号分隔,如:user:list,user:create)*/ privateStringperms; /***类型0:目录1:菜单2:按钮*/ privateIntegertype; /***菜单图标*/ privateStringicon; /***排序*/ privateIntegerorderNum; /***ztree属性*/ @TableField(exist=false) privateBooleanopen; @TableField(exist=false) privateList<?>list;;4.1.3菜单角色类/***角色ID*/ @TableId privateLongroleId; /***角色名称*/ @NotBlank(message="角色名称不能为空") privateStringroleName; /***备注*/ privateStringremark; /** *部门ID*/ @NotNull(message="部门不能为空") privateLongdeptId; /***部门名称*/ @TableField(exist=false) privateStringdeptName; @TableField(exist=false) privateList<Long>menuIdList; @TableField(exist=false) privateList<Long>deptIdList; /***创建时间*/ @JsonFormat(pattern="yyyy-MM-ddHH:mm:ss",timezone="GMT+8") privateDatecreateTime;;4.1.4红酒类型类@TableIdprivatestaticfinallongserialVersionUID=1L;@TableIdprivateIntegerid;privateStringname;privateStringbz;4.1.5红酒信息类@TableIdprivateIntegerid;privateStringmatterType;privateStringname;privateStringytu;privateintnum;privateStringzyss;privateStringscTime;privateStringsccj;4.1.6邮件详情类@TableIdprivateIntegerid;privateStringsendUsername;privateIntegersendUserid;privateIntegerreceiptUserid;privateStringreceiptUsername;privateDatesendTime;privateStringsendTitle;privateStringcontent;privateStringty;5.2主要功能设计实现5.2.登录模块和系统首页:用户输入网址http://localhost:8080/renren-admin/login.html跳转到登录页面、输入登录账号和密码以及验证码前端js登录布局输入框和代码编写。发送loginajax请求跳转到后台<pclass="login-box-msg">用户登录</p><divv-if="error"class="alertalert-dangeralert-dismissible"><h4style="margin-bottom:0px;"><iclass="fafa-exclamation-triangle"></i>{{errorMsg}}</h4></div><divclass="form-grouphas-feedback"><inputtype="text"class="form-control"v-model="username"placeholder="账号"><spanclass="glyphiconglyphicon-userform-control-feedback"></span></div><divclass="form-grouphas-feedback"><inputtype="password"class="form-control"v-model="password"placeholder="密码"><spanclass="glyphiconglyphicon-lockform-control-feedback"></span><divclass="form-grouphas-feedback"><inputtype="text"class="form-control"v-model="captcha"@keyup.enter="login"placeholder="验证码"><spanclass="glyphiconglyphicon-warning-signform-control-feedback"></span><divclass="form-grouphas-feedback"><imgalt="如果看不清楚,请单击图片刷新!"class="pointer":src="src"@click="refreshCode">
后台主要代码实现:/** *登录 */ @ResponseBody @RequestMapping(value="/sys/login",method=RequestMethod.POST) publicRlogin(Stringusername,Stringpassword,Stringcaptcha){ Stringkaptcha=ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY); if(!captcha.equalsIgnoreCase(kaptcha)){ returnR.error("验证码不正确"); } try{ Subjectsubject=ShiroUtils.getSubject(); UsernamePasswordTokentoken=newUsernamePasswordToken(username,password);//md5+Jiayan subject.login(token); }catch(UnknownAccountExceptione){ returnR.error(e.getMessage()); }catch(IncorrectCredentialsExceptione){ returnR.error("账号或密码不正确"); }catch(LockedAccountExceptione){ returnR.error("账号已被锁定,请联系管理员"); }catch(AuthenticationExceptione){ returnR.error("账户验证失败"); } returnR.ok(); 登录完成之后跳转到系统首页5.3用户添加:点击系统管理》》用户添加。点击添加按钮执行添加。录入选择添加的相关信息前端页面主要样式代码设计:后台代码设计:/** *保存用户 */ @SysLog("保存用户") @RequestMapping("/save") @RequiresPermissions("sys:user:save") publicRsave(@RequestBodySysUserEntityuser){ ValidatorUtils.validateEntity(user,AddGroup.class); sysUserService.saveUser(user); returnR.ok(); }5.4红酒信息列表展示:前段主要设计代码:colModel:[{label:'id',name:'id',index:'id',width:30},{label:'红酒类型',name:'matterType',index:'matterType',width:100},{label:'红酒名称',name:'name',index:'name',width:180},{label:'存放时间',name:'ytu',index:'ytu',width:100},{label:'库存数量',name:'num',index:'num',width:80},{label:'温度',name:'zyss',index:'zyss',width:120},{label:'湿度',name:'scTime',index:'scTime',width:120},{label:'光线',name:'sccj',index:'sccj'},5.5添加红酒详情:后台主要代码设计:@RequestMapping("/save")publicRsave(@RequestBodyMattermatter){MatterService.save(matter);returnR.ok();}5.6邮件列表展示:前段代码分析:datatype:"json",colModel:[{label:'id',name:'id',index:'id',width:30},{label:'邮件标题',name:'sendTitle',index:'sendTitle',width:100},{label:'邮件内容',name:'content',index:'content',width:100},{label:'发送人',name:'sendUsername',index:'sendUsername',width:80},{label:'发送时间',name:'sendTime',index:'sendTime',width:80},],}5.7邮件发送:前端主要样式:<divclass="form-group"><divclass="col-sm-2control-label">id</div><divclass="col-sm-10"><inputtype="text"class="form-control"v-model="matterApply.id"placeholder="id"/></div></div><divclass="form-group"><divclass="col-sm-2control-label">请选择申请区域</div><divclass="col-sm-10"><selectclass="form-control"name="applyArea"id="applyArea"><option>请选择</option></select></div></div><divclass="form-group"><divclass="col-sm-2control-label">请选择红酒类型</div><divclass="col-sm-10"><selectclass="form-control"name="name"id="name"><option>请选择</option></select></div></div><divclass="form-group"><divclass="col-sm-2control-label">红酒名称</div><divclass="col-sm-10"><inputtype="text"class="form-control"v-model="matterApply.matterName"placeholder="红酒名称"/></div></div><divclass="form-group"><divclass="col-sm-2control-label">申请数量</div><divclass="col-sm-10"><inputtype="text"class= 5.8红酒类型列表@AutowiredMatterTypeServiceImplMatterTypeServiceImpe;@RequestMapping("/list")publicRlist(@RequestParamMap<String,Object>params){PageUtilspage=MatterTypeService.queryPage(params);returnR.ok().put("page",page);}
5.9红酒类型添加后台代码实现:@RequestMapping("/list_purchaseApply")publicRlist_purchaseApply(@RequestParamMap<String,Object>params){params.put("ty","2");PageUtilspage=MatterApplyService.queryPage(params);returnR.ok().put("page",page);}5.8红酒类型添加后台代码实现:@RequestMapping("/save")publicRsave(@RequestBodyMatterTypematterType){MatterTypeService.save(matterType);returnR.ok();}5.8通知公告列表后台代码实现:@Override@AutowiredprivateInformmServiceinformmService;@RequestMapping("/list")publicRlist(@RequestParamMap<String,Object>params){PageUtilspage=informmService.queryPage(params);returnR.ok().put("page",page);}returnnewPageUtils(page);}5.9修改密码/** *修改登录用户密码 */ @SysLog("修改密码") @RequestMapping("/password") publicRpassword(Stringpassword,StringnewPassword){ Assert.isBlank(newPassword,"新密码不为能空"); //原密码 password=ShiroUtils.sha256(password,getUser().getSalt()); //新密码 newPassword=ShiroUtils.sha256(newPassword,getUser().getSalt()); //更新密码 booleanflag=sysUserService.updatePassword(getUserId(),password,newPassword); if(!flag){ returnR.error("原密码不正确"); } returnR.ok(); } 5.10数据库连接配置spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedruid:driver-class-name:com.mysql.jdbc.Driverurl:jdbc:mysql://localhost:3306/renren_kywz?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername:rootpassword:123456initial-size:10max-active:100min-idle:10max-wait:60000pool-prepared-statements:truemax-pool-prepared-statement-per-connection-size:20time-between-eviction-runs-millis:60000min-evictable-idle-time-millis:300000#Oracle需要打开注释#validation-query:SELECT1FROMDUALtest-while-idle:truetest-on-borrow:falsetest-on-return:falsestat-view-servlet:enabled:trueurl-pattern:/druid/*#login-username:admin#login-password:adminfilter:stat:log-slow-sql:trueslow-sql-millis:1000merge-sql:falsewall:config:multi-statement-allow:true六、数据库设计6.1数据三范式:一、第一范式1NF是对属性的原子性,要求属性具有原子性,不可再分解;二、第二范式2NF是对记录的唯一性,要求记录有唯一标识,即实体的唯一性,三、第三范式3NF是对字段的冗余性,要求任何字段不能由其他字段派生出来,数据库采用mysql5版本、满足数据库设计三范式。编码采用utf8--UTF-8Unicode排序规则采用utf8_general_ci6.2表ER图6.3用户表设计名称字段名数据类型长度可否为空是否主键用户iduser_idint8否是用户名称usernamevarchar50否否密码passwordvarchar500否否密码加盐saltvarchar500否否手机号mobileblob500否否部门iddept_idint500否否6.4菜单表设计名称字段名数据类型长度可否为空是否主键菜单idmenu_idint11否是父级idparent_idint50否否菜单名称namevarchar255否否菜单路径urlvarchar255否否权限permsblob255否否类型typeint11否否排序orderint11否否6.5角色表设计名称字段名数据类型长度可否为空是否主键角色idrole_idint11否是角色名称role_namevarchar50否否备注信息remarkvarchar255否否部门iddept_idint11否否创建时间create_timedate0否否6.6红酒类型表设计名称字段名数据类型长度可否为空是否主键类型ididint11否是类型名称name否255否否备注信息bzvarchar255否否6.7红酒表设计名称字段名数据类型长度可否为空是否主键ididint11否是红酒类型matter_type varchar255否否红酒名称namevarchar255否否存放时间ytuvarchar255否否存款数量numvarchar255否否温度zyssvarchar255否否湿度sc_timevarchar255否否光线sccjvarchar255否否6.8邮件信息表设计名称字段名数据类型长度可否为空是否主键ididint11否是发送者姓名send_usernameint255否否发送者idsend_useridvarchar255否否接受者姓名receipt_useridvarchar255否否接受者idreceipt_usernamevarchar255否否发送时间send_t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度大棚蔬菜种植与农业休闲农业项目合作协议2篇
- 二零二五年度南京市房地产经纪行业劳务派遣及销售服务合同
- 2025年度猪场生物安全防护与防疫物资供应合同4篇
- 二手房地产交易安全保障与监管合同
- 2025年水果采摘与农家乐特色农产品销售合同3篇
- 二零二五年度企业股权激励计划转让合同
- 2025年大数据处理与分析软件服务采购协议3篇
- 二零二五年建筑资质挂靠与工程进度调整服务协议3篇
- 2025年度二手房买卖合同附加物业管理费结算协议3篇
- 二零二五年度大型商业综合体工程分包管理协议2篇
- 四川省高职单招电气技术类《电子基础》历年考试真题试题库(含答案)
- 中级半导体分立器件和集成电路装调工技能鉴定考试题库(含答案)
- 2024年江西生物科技职业学院单招职业技能测试题库带解析答案
- 桥本甲状腺炎-90天治疗方案
- (2024年)安全注射培训课件
- 2024版《建设工程开工、停工、复工安全管理台账表格(流程图、申请表、报审表、考核表、通知单等)》模版
- 部编版《道德与法治》六年级下册教材分析万永霞
- 酒店人防管理制度
- 油田酸化工艺技术
- 上海高考英语词汇手册列表
- 移动商务内容运营(吴洪贵)任务五 其他内容类型的生产
评论
0/150
提交评论