版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
校园二手交易平台设计实现摘要计算机网络以及信息化社会的数据大爆炸的今天,网络软件应用在世界范围内越来越普及。在众多网络服务中,网络给人耳目一新的感觉。其中,网上购物日益普及,许多人通过网络购物。网上购物的好处是,你可以不用付房租,不用雇佣男生,也可以24小时提供服务。网上交易已成为大学生活中常见的部分。校园二手交易平台目的是为在校大学生提供供需平台。学生可以把不用的东西放到网上,或者在网上找到自己需要的东西。物美价廉,实现双赢。因此,本课题研究的目的是设计和研究如何实现一种能有效满足高并发、高持续扩展的中小企业网上商城,同时从根本上保证用户体验良好、易于维护、简单、快速易用,这本身就是一个综合性的网上商城平台,本文将使用分布式框架结合springboot快速开发和基于springcontainer的分布式框架,使庞大的系统架构易于管理和维护并最终在线部署在阿里云服务器上的项目;关键词:校园回收;springboot分布式;阿里云服务器;前后端分离;目录第1章 绪论 11.1 项目研究背景及与意义 11.2技术选型与架构 2第2章 架构依赖技术的阐述 32.1 技术框架 32.1.1 Spring 32.1.2 Bootstrap 42.3MySQL数据库 42.4服务器 42.5 Maven项目管理 5第3章 系统与功能需求 53.1 系统用户角色分析 53.1.1 普通游客 63.1.2 普通用户 63.1.3 管理员 73.2 系统功能需求分析 73.2.1 后台管理系统 83.2.2 前台用户系统 8第4章 平台系统概要设计 94.1 系统设计原则 94.2 系统架构 94.3 系统功能结构 10第5章 数据库设计 115.1 数据库概念结构的设计 115.2 数据库逻辑结构的设计 13第6章 平台详细设计实现 196.1 软件各个功能模块设计与实现 196.1.1 前台各功能模块 206.1.2 后台个功能模块 26第7章 系统测试 317.1 测试计划 317.2 测试报告 31第8章 结论 35附录A 381绪论项目研究背景及与意义校园二手交易平台是为学生之间、学生与商家之间提供了一种方式,随时随地,线上交流和线下发货,避免了遇到不良商家和商品质量与实际不符的危险,用户可以进入校园二手交易平台,根据他们明确的需求搜索和浏览校园产品,最终确定他们需要的产品。从搜索到确定物品交付,校园二手交易平台的出现,结合了互联网发展的特点,让每个人都成为商家,把自己的闲置物品在网上发布,这也是社会发展的必然结果。线下和线上相结合的商业模式更让用户满意。 本校园二手交易平台设计具备以下意义:为学生和商户提供实时交易平台,使资源得到充分利用,对学校所在地进行区域交易,确保交易的速度和安全。增加用户推荐上报、产品打磨等功能,确保数据信息的准确性、有效性、安全性,提升平台产品的管理和服务增加商品采购专区,进一步发挥互联网优势。学员将发放代购商品,进行线上沟通和定价,通过线下交易完成商品的及时流转。为学生提供方便快捷的二手资源交易服务,全面掌握商品的交易流程和数量,管理学生商品的质量综上所述,在当前的发展趋势下,为区域二手交易平台提供二手资源利用的便利是必然的。最后,以springboot框架为主体,以前端管理为基础,设计并实现一个能满足高并发、高扩展的校园二手网上商城是本文的主要内容。1.2技术选型与架构开发工具:前端开发工具采用VisualStudioCode和google浏览器进行测试,前端技术框架采用bootstrap和freemark模板标签语法以及EasyUI和Jquery框架;后端开发工具采用IntelliJIDEAMaven项目管理、springboot框架、springdataJPA中间件redis和数据库mysql;服务器使用阿里云服务器进行部署,使用Tomcat服务进行项目操作;后端技术栈:技术类型版本Springboot容器2.0.3Maven项目管理工具3.6MybatisORM框架1.3.1Springdata数据库驱动3.1.1Tomcat服务器管理3.6JedisRedis2.9.0前端技术栈:Bootstrap前端模板3.3.7Jquery
JavaScript库2.7.1FreeMarker
模板引擎EasyUI前端组件表STYLEREF1\s1.2二手交易平台技术需求表架构依赖技术的阐述本章主要阐述了校园二手交易平台网络系统的设计和架构所需要依赖的各种数据库和技术软件。主要内容有介绍spring容器框架、Mybatis、Springboot框架、HTML/CSS/JavaScriptJquery等前端技术框架、mysql非关系型数据库、redis关系型数据库、Tomcat服务器部署、Maven项目管理介绍。介绍基于mvc设计模式框架的服务器部署。其中,基于mvc设计模式的介绍和springboot框架的介绍基本上涵盖了springboot与springMVC框架的所有介绍。图STYLEREF1\s2-1项目技术架构依赖图技术框架Springspring内核是轻量级分层,实用化应用全栈轻量级是一个开源框架,具备轻量级反转控制和轻量级面向代理和切线反射编程技术的特点都是基于内核直接调用。AOP技术,使业务程序得以增强,主要通过动态代理和Java反射的技术手段,通过提取公共方法实现功能,而无需触及源代码[15]。spring容器提供的ioc容器和实体对象的依赖是由容器直接控制。spring的优势和特点主要体现在简化事务和解耦的便捷性的开发:对传统aop编程的支持:促进了各个方面的声明性编程,还为AOP编程提供容器支持。许多传统oop系统无法轻松满足的复杂功能,可以很容易地由传统aop处理;对于声明式编程事务的支持和开发;声明式事务可以在很大的程度上提高我们的工作效率。从每个软件平台项目的各个事务模块都需要我们自己手动完成和编写事务的枯燥乏味,结果就是便于应用和开发测试方便集成各种优秀的框架等优点;Bootstrap美国设计师MarkOtto和JacobThornton开发的Bootstrap前端框架是一个简单、直观、功能强大的前端应用型开发框架。Bootstrap不仅仅提供了大量的HTML和CSS规范,而且我们还可以使用它来减少动态CSS语言编写。在国内研究很多企业平台发展以及存在很多中国移动开发者都很熟悉改框架,例如众所周知的WeX5前端开源框架,同样可以基于Bootstrap源代码进行分析其性能和优化。Bootstra功能研究主要内容包含有:基本经济结构,链接进行样式,和北京的基本知识结构,Bootstrap继承Jquery提供了具有不同网格管理系统。此外,Bootstrap还具有以下功能:高可用的可扩展类和高级网格系统,全球CSS样式设置,自定义前端基本HTML元素样式,自定义前端基本的HTML元素样式。此外我们还有很多组件:Bootstrap包含十几个可重复使用的组件,用于企业创建系统前端图像,前端导航,前端下拉菜单,前端弹出框,警告框等。最后,还有丰富的JavaScript插件:Bootstrap包含12个定制的集成jQuery插件。2.3MySQL数据库mysql数据库是大多数应用中最常见的关系型企业数据库。它最大的独特性和优势之一是它支持免费源和开源。因为它支持开源,所以许多企业都可以很容易地加入它,从而形成良好的生态环境,并不断开发和扩展他们的mysql企业社区和群体。此外开源的意义代表的使用免费,因此,基于mysql的数据库受到中小企业的广泛青睐,并成为其开发的首选。此外,mysql由于体积小,灵活性强,不需要占用太多服务器和内存,而且软件运行速度快,因此可以支持大量的sql语句和数据库存储格式。2.4服务器本次校园二手交易平台的服务器软件采用的是Tomcat,它是由阿帕奇、Sun等公司和个人联合开发。并且在软件的后续和更新过程中兼容了最新的JSP规范和Servlet这可以保证服务器始终可以在Tomcat中体现出来,Tomcat服务器进行系统也支持最新的JSP2.0规范和Servlet2.4。在使用此服务器系统的前提下对比了其他服务器软件,Tomcat因其稳定的性能、免费、技术先进、良好的扩展性以及免费等优点,深受Java爱好者和其他语言工程师们的欢迎,它也逐渐得到了其他软件开发者的认可,成为流行的Web应用服务器。并且在一些并发用户不多和中小型系统的情况下,Tomcat是调试器和开发[2]的首选。对于初学者,可以认为,当Apache服务器配置在机器上时。它也可以用于响应HTML页面访问请求,而无需使用后端服务器。Maven项目管理Maven项目管理工具,它主要是指一组标准集、一个项目对象模型和一个项目生命周期、对于一个依赖spring管理的平台系统,在使用Maven管理项目,对于整个软件系统的生命周期阶段,在使用Maven其自身运行插件目标定义的逻辑。Maven,我们可以理解成是一个生命周期,开始调用时,你就已经开始进行mvn系统的按照,后续Maven将这些的目标会编译和创建JAR文件。系统与功能需求校园二手交易平台采用前后两端分离的技术,主要包括后台管理系统、前端用户系统和安卓手机APP。后台管理系统:主要后台相关系统与管理员权限设置、数据监控、数据备份、条目管理、注册学生管理、评论管理、报表管理、新闻公告管理、网站基本设备前台用户系统:作为校园二手交易平台门户网站的首页,提供直接面向外界访问网站系统的页面,可以浏览当前商品等信息,并对商品进行全文搜索,物品展示的分类,个人信息和管理上架和下架的物品,学生用户的登录和注册。安卓手机APP:由于网页上的域名没有被申请的特殊原因,为了方便学生的正常访问和管理员在域名申请期间的正常操作,因此,开发了校园二手交易平台的AndroidAPP版本。下周,APP可以正常通过手机访问平台,或者管理员APP可以正常管理下周的平台管理系统用户角色分析根据来访用户的不同具体情况和需求,校园二手交易平台的接入和管理大致分为三类。后台管理员角色,而后台管理系统可以通过权限控制将不同的管理员角色划分为不同的管理员,如超级管理员、报表管理员、条目推荐管理员等。前台用户可分为:普通游客、注册普通用户普通游客旅游用户也就是通常所说的首次注册浏览网站,不在浏览网站的首页留下注册密码、登录账号等信息的网站用户。游客是网站用户。他的第一个想法是,打开浏览网站各个模块的主页,就能看到网站的轮播和其他模块的信息;同时,也可以通过分类浏览条目查看其他条目的信息,并以关键字索引其他项目的信息,按类别搜索和购买项目。在平台上点击对应商品的详细信息后,可以查看所有商品的详细介绍、价格等相关商品信息,但不能上报,商品上架,对于需要获取学生信息的物品点评等操作,如果需要相应的操作,点击会自动跳转到登录/注册界面。图3-1游客访问主页普通用户一个普通用户是指相关信息已经在平台上注册,而阿里云服务器数据库已经对用户进行了备案,即除了上网浏览自己的商品信息,修改个人信息,评论和报道其他商品,上架你需要销售的商品,查看商品的购买信息,发布购买的商品,并对您发送的信息和评论进行相关修改,推荐您自己的信息并推荐您自己的产品在管理员认可后在网站主页上展示。对于已自行销售的物品,将其下架;下架后,将不在前台展示;图3-2普通用户个人信息统计管理员校园二手交易平台通过对平台不同功能的权限控制方法,可以划分为不同的管理员。首先,有超级管理员,他们拥有平台的所有权限,并添加或删除其他一般管理员,一般管理员可以仔细地将不同的功能划分为每个功能的管理员。超级管理员:拥有校园二手交易平台的全部管理权:系统设置(角色管理、菜单管理、日志管理、数据备份、管理员用户管理)、物品管理(物品分类管理、物品装卸管理、采购物品管理)、学生管理(注册学生的冻结激活或删除)、评论管理、报告管理、新闻公告管理、前台网站设置等。一般管理员:一般管理员是由超级管理员指派的,所以一般管理员的管理权限也是由超级管理员来划分的,可以针对不同的功能来划分。不同的管理员如:注册学生管理员:管理学生账号的冻结、解封和删除等,评估和报告管理员:管理报告和评论的审查;项目管理员:审查学生对自己条目的推荐,最后确定是否显示主页。图3-3管理员后台管理主页系统功能需求分析系统采用前端和后端系统的设计。前端用户系统除了包含购物交易平台的基本功能外,还增加了购买系统和快速货架系统;学生二手交易平台的个人账户快速注册;后台管理系统:包括后台系统的菜单设备、物品、学生管理、条目评论和报告管理,为了使平台系统的学生能够满足商品交易和注册中的相关注意事项,增加了相应的新闻公告系统,通知用户进行相应的修改,此外,平台对应的标识和标签可以动态设置,方便各个学校快速搭建平台后台管理系统后台管理功能主要是运维人员或管理员对校园二手交易平台的前后台进行管理的一系列操作:系统设置:后台具备的系统设置其主要功能是后台管理员所有管理系统共有的,主要包括后台管理系统的管理员角色管理、菜单设置、管理员的划分、管理员权限的增加、修改和删除、日志管理记录后台管理员的操作日志,方便在项目运行过程中发现问题。数据备份:当项目出现问题并更新版本时,恢复项目数据;物品管理:物品是商场系统的灵魂部分。没有商品,商场系统将失去资本。它主要包括内容分类和产品信息管理以及采购项目的管理。管理员可以通过条目管理对条目进行基本的修改和删除。学生管理:当用户在网上商城注册时,用户的信息会显示在后台用户管理中,需要管理员对用户的数据进行管理和操作,其中,不仅仅是对注册人员姓名、性别等简单信息的修改,还包括对有恶意言论、发布非法商品等信息的人的账户进行冻结、删除。评论管理:查看所有商品的评论信息,删除带有敏感信息的评论,确保平台项目的可持续发展举报管理:当用户对商品进行举报时,会统一显示再举报管理列表,管理员可以查看举报物品的真实性,并选择是否对物品进行上下架处理,以及举报的删除等新闻公告:用于帮助用户更详细地了解平台的使用规则,管理员发布最新的活动公告,做出相应的宣传效果。还可以定义新闻公告的顺序、新闻的浏览次数等网站设置:为了方便校园二手交易平台在不同学校部署,新增了网站设置管理,方便快捷地修改平台标识和标题,在不同学校和校园快速部署,友情链接快速变化前台用户系统用户可以利用前台门户的显示功能浏览商城首页、浏览商品的具体信息等。主要包括模块显示和商品信息显示。首页展示:访客访问及校园二手交易平台首页,用于展示平台公告及平台推荐项目、分类展示导航栏、登录/注册界面入口、超链接、广告等展示界面。登录注册:主要用于用户注册和登录。在前台操作时,如果您不登录,您将直接跳转到登录界面个人信息统计:用户发布文章、购买文章、评论和报告等相关信息后,所有数据将被收集到个人信息界面,用户可以使用个人信息统计界面进行物品的装卸、编辑和删除推荐等操作。物品详情展示:点击项目,跳转到项目详情界面。用户可以在条目相亲界面购买、评论、报告等条目。游客浏览时不会显示卖家信息,您需要先登录后才能离线联系卖家发布商品:用户登录后,通过“我要卖”页面进入发布详情页面。用户可以编辑他需要发布的商品的数据:价格、交易场所、商品描述等求购专区:用户和游客可以访问求购区域,查看用户最近购买的物品和预期价格。如果您需要发布产品,请单击首页上的“我想购买”以跳转到购买商品的发布平台系统概要设计系统设计原则整个校园二手交易平台系统的设计原则如下:(1)讲究软件系统的实用性以及用户场景的保证,降低系统不必要的成本支出。(2)在项目开发前进行项目规划和设计,随后在总体规划的指导下逐步开发。(3)项目模块化设计,软件系统架构和功能架构具有良好的可扩展性。(4)人性化设计,保证系统前后台的用户能快速上手,操作简单。系统架构校园二手交易平台系统采用CS架构为辅的原则,B/S架构为主,主要依赖于B/S架构,如图4.1所示:数据库服务器WEB服务器数据库服务器WEB服务器互联网互联网客户机4客户机4客户机1客户机3客户机2客户机1客户机3客户机2图4-1系统运行架构图B/S(浏览器-服务器交互,浏览器-服务器交互)这样的模式也称为B/S架构。在C/S发展过程中,随着我国互联网信息技术的兴起,传统的CS结构需安装企业软件所需的资料,而对于B/S用户来说只需要下载浏览器即可。B/S架构系统的最大优点是维护和操作以及部署都在于服务器,当系统以及软件升级时,用户无需更新,版本直接使用;但是B/S也有一共最大致命缺点是过于依赖企业的服务器网络环境及搭建配置。如果某一天企业的服务器出现问题,那么整个系统将会瘫痪,不过,对于今天的分布式系统,这种问题将会越来越少。B/S结构的优点(1)软件系统扩展简单方便,只需要通过添加对应页面功能来编写服务器功能。(2)可以随时随地查询、分布式扩容、浏览等业务处理和升级。(3)维护简单方便。只需要维护企业自身服务器系统即可(4)共享性强、开发简单。系统功能结构该系统的用户主要大学生或者校区商家。根据对平台的需求的分析,软件平台将分为前后端两大模块。系统前后端功能如下:。系统功能结构如图4.2、图4.3及图4.4所示:前台功能模块前台功能模块后台功能模块校园二手交易平台图4-2系统整体功能结构图前台功能模块前台功能模块物品详情信息模块求购物品搜展示模块用户个人数据模块查看搜索物品模块查看平台公告模块物品详情信息模块求购物品搜展示模块用户个人数据模块查看搜索物品模块查看平台公告模块图4-3前台功能模块结构后台功能模块后台功能模块网站设置管理模块操作日志管理模块求购物品管理模块举报信息管理模块评论信息管理模块物品信息管理模块数据备份管理模块数据监控管理模块系统设置管理模块平台公告管理模块注册学生管理模块网站设置管理模块操作日志管理模块求购物品管理模块举报信息管理模块评论信息管理模块物品信息管理模块数据备份管理模块数据监控管理模块系统设置管理模块平台公告管理模块注册学生管理模块图4-4后台功能模块结构数据库设计数据库是根据前后端实体研究对象的数据进行结构设计和编写、和管理系统数据、存储的仓库。随着经济信息进行技术和时代的发展,数据资源管理不再只是企业管理系统数据和简单的存储数据,二十转变为用户需要的各种数据安全管理方式,也快速的由持续性数据库向非持续性数据库发展。随着互联网的发展它是计算机科学的一个重要分支。。数据库概念结构的设计数据库对象的结构设计是将分析出的用户需求信息抽象为对象概念模型。前后端对象实体概念结构的主要特点是能够快捷地、快捷地、准确反映现实世界,将程序与现实世界合理化,易于软件与用户之间转化、层次结构等各种数据模型的充分理解[12]。E-R模型是引入对象实体概念的一个强大工具。所以根据系统功能的实际主要功能分析有,平台共有实体:学生、管理员、物品、评论、数据备份、友情链接、物品分类、菜单、新闻、日志、购买物品等。系统部分E-R图如下:5-1学生与物品E-R图角色管理员角色管理员mmmmmm拥有拥有图5-2管理员与角色E-R图权限角色权限角色拥有拥有图5-3管理员与角色会议E-R图评论物品评论物品拥有拥有图5-4物品与评论E-R图分类物品分类物品1m1m拥有拥有图5-5物品与分类E-R图超级管理员网站设置超级管理员网站设置mm属于属于图5-6网站设置与超级管理员E-R图超级管理员网站公告超级管理员网站公告mm属于属于图5-7网站公告与超级管理员E-R图数据库逻辑结构的设计概念结构是应用与任何类型的数据模型的信息结构。对于程序而言,就是数据结构加算法的操作,这种逻辑结构设计的主要任务就是是将对象实体概念结构设计阶段,所设计的基本E-R图转换成与所选DBMS产品支持的数据模型一致的逻辑结构[13]。本系统数据库的数据表共有15张,如下:表5.3.1系统数据库结构表数据表功能shop_comment存放各个物品评论信息Shop_database_bak存放数据备份文件信息Shop_friend_link存放首页友情链接信息Shop_goods存放物品信息Shop_goods_category存放物品分类信息shop_menus存放后台菜单信息Shop_news存放平台公告信息shop_operater_log存放后台操作日志信息Shop_report_goods存放举报物品信息Shop_role存放管理员角色信息shop_role_authorities存放管理员权限信息Shop_site_setting存放平台logo超链接信息Shop_student存放前台注册学生信息Shop_user存放后台管理员信息Shop_wanted_goods存放求购物品信息表5.3.2shop_comment字段名数据类型说明允许为空idBigint(20)用户ID否Create_timeDatetime评论时间否Update_timeDatetime更新时间否contentVarchar(1024)评论内容否Reply_toVarchar(64)回复学生是goods_idBigint(20)商品ID是Student_idBigint(20)评论学生ID是表5.3.3Shop_database_bak字段名数据类型说明允许为空idBigint(20)备份文件ID否Create_timedatetime创建时间否Update_timedatetime更新时间否FilenameVarchar(64)备份文件名否FilepathVarchar(128)文件保存地址否表5.3.4Shop_friend_link字段名数据类型说明允许为空idBigint(20)备份文件ID否Create_timedatetime创建时间否Update_timedatetime更新时间否nameVarchar(16)链接名称否SortInt(11)链接排序否urlVarchar(256)链接地址是表5.3.5Shop_goods字段名数据类型说明允许为空idBigint(20)物品ID否Create_timedatetime创建时间否Update_timedatetime更新时间否buy_pricefloat买入价格否ContentVarchar(102)商品描述否flagint(11)是否推荐是NameVarchar(32)商品名称否photoVarchar(128)商品图片否recommentInt(11)商品评论是Sell_priceFloat出售价格否statusInt(11)商品状态否Goods_category_idBigint(20)商品分类否Student_idBigint(11)学生ID否View_numberInt(11)浏览次数否表5.3.6Shop_goods_category字段名数据类型说明允许为空idBigint(20)分类ID否Create_timedatetime创建时间否Update_timedatetime更新时间否IconVarchar(32)分类图标否NameVarchar(18)分类名字否SortInt(11)分类排序否Parent_idBigint(20)父级ID是表5.3.7shop_menus字段名数据类型说明允许为空idBigint(20)分类ID否Create_timedatetime创建时间否Update_timedatetime更新时间否IconVarchar(32)菜单图标否Is_bittonBit(1)是否是按钮否Is_showBit(1)是否显示否NameVarchar(18)分类名字否SortInt(11)分类排序否urlVarchar(128)菜单链接是Parent_idBigint(20)父级ID是表5.3.8shop_news字段名数据类型说明允许为空idBigint(20)ID否Create_timedatetime创建时间否Update_timedatetime更新时间否ContentVarchar(1024)新闻内容否SortInt(11)公告排序否Titlevarchar(16)公告标题否View_namberInt(11)浏览次数是表5.3.9shop_operater_log字段名数据类型说明允许为空idBigint(20)ID否Create_timedatetime创建时间否Update_timedatetime更新时间否ContentVarchar(512)日志内容否Operatervarchar(18)操作人员否表5.3.10Shop_report_goods字段名数据类型说明允许为空idBigint(20)ID否Create_timedatetime创建时间否Update_timedatetime更新时间否ContentVarchar(512)举报内容否Goods_idvarchar(18)举报商品否Student_idBigint(20)举报学生否表5.3.11Shop_role字段名数据类型说明允许为空idBigint(20)ID否Create_timedatetime创建时间否Update_timedatetime更新时间否NameVarchar(512)角色名字否Remarkvarchar(128)角色备注否Statusint(11)举报学生否表5.3.12shop_role_authorities字段名数据类型说明允许为空Role_idBigint(20)角色ID否authoritiesBigint(20)角色权限否表5.3.13Shop_site_setting字段名数据类型说明允许为空idBigint(20)ID否Create_timedatetime创建时间否Update_timedatetime更新时间否All_rightVarchar(256)网站权限否Logo_1Varchar(256)网站logo1是Logo_2Varchar(256)网站logo2是QrcodeVarchar(256)站长微信否Site_nameVarchar(256)网站名字否Site_urlVarchar(256)网站链接否表5.3.14Shop_student字段名数据类型说明允许为空idBigint(20)ID否Create_timedatetime创建时间否Update_timedatetime更新时间否AcademyVarchar(128)学院否GradeVarchar(128)年纪是MobileVarchar(18)手机是NicknameVarchar(32)昵称否QqVarchar(18)QQ否schoolVarchar(256)校区否SnVarchar(18)性别是Head_picVarchar(128)头像是StatusInt(1)状态否passwordVarchar(18)密码否表5.3.15Shop_user字段名数据类型说明允许为空idBigint(20)ID否Create_timedatetime创建时间否Update_timedatetime更新时间否EmailVarchar(128)邮寄否Role_idVarchar(128)管理角色是MobileVarchar(18)手机是usernameVarchar(32)昵称否SexVarchar(18)性别是Head_picVarchar(128)头像是StatusInt(1)状态否passwordVarchar(18)密码否表5.3.16Shop_wanted_goods字段名数据类型说明允许为空idBigint(20)ID否Create_timedatetime创建时间否Update_timedatetime更新时间否ContentVarchar(1024)求购内容否NameVarchar(128)物品名字是Sell_pricefloat出售价格是Trade_placeVarchar(128)交易地点否View_numberInt(11)浏览次数是Student_idbigint(28)学生ID是平台详细设计实现软件各个功能模块设计与实现对于整个响应式软件系统,平台以及软件的功能界面的设计非常重要。前后端的功能界面的设计质量直接影响用户对软件产品的评价。该系统采用JavaBean、Servlet以及Freemaker结构。avaBean对象主要执行业务处理,Freemaker模板解析主要用于信息显示和前景数据分析,JServlet采用springboot框架用于过程控制。本章从前后模块详细介绍了各个模块的设计和测试。前台各功能模块1.主页模块在首页,左边有一个用户登录模块。学生输入账号密码和验证码后即可登录。主页设计如下:图6-1主页设计图2.用户注册模块与密码找回模块(1)用户注册系统用户注册界面的设计主要是为了方便学生或者商家成为平台用户会员,从而享有特定的权限。当用户注册时,前后端会根据用户输入的数据自动将检查用户名是否重复或者是否可用。其页面设计如图所示:图6-2注册页面设计图(2)用户密码找回模块忘记登录密码后,用户可以选择扫描网站主页上的网站管理员二维码,联系管理员进行密码重置。管理员只需要验证自己的个人信息是否相符即可。图5-3密码找回页面设计图3.个人数据模块当用户登录后点击个人头像或昵称时,前台请求分享后会跳转到个人信息页面,页面首先显示个人物品的各种数据,以及个人信息和密码修改;还可以进行自荐、上下处理、修改您发布的商品和要购买的商品的物品等的基本数据。监控个人报告信息;图6-1个人数据详情图1(2)个人信息修改编辑图6-2个人数据详情图2(3)我发布商品数据:用户可以进行商品的装卸,自荐,确认销售等操作图6-3个人发布商品详情(4)商品求购的数据以及举报物品数据加载:图6-4个人信息页面设计图4.求购信息发布功能当前台用户点击求购专区的导航栏时,系统会跳转到我要买购买发布页面,然后用户会写下物品的名称。项目描述。预期交易地点、预期交易价格等信息后可以将商品发布到购买区域进行展示图6-5求购物品发布页面设计图5.求购专区浏览模块当用户在导航栏中点击购买区域时,系统会跳转到购买区域的页面。用户可以查看所有购买物品的详细信息,然后在有相应的可以出售的物品时联系买家出售物品图6-6求购物品页面设计图5.发布商品出售模块当用户点击我要销售的导航栏时,系统会跳转到产品的发布页面,并在页面上填写相关数据,完成产品的上架:图6-7发布商品页面设计图6.商品详情购买模块如果用户单击要查看的项目的图片或数据,它将跳转到项目详细信息页面,如图所示:图6-8物品详情页面设计图如果用户登录后想要购买相应的物品,可以点击联系卖家,显示卖家设置的交易联系信息。该功能只能在登录时显示,如果您没有登录,您将跳转到登录注册页面:图6-9物品购买页面弹框设计图如果用户需要与商品信息或价格进行沟通,他可以在下面发表评论并与卖家讨论:图6-10物品评论回复页面设计图后台个功能模块1.后台登录模块当后台管理员用户在前台页面点击管理员登录时(默认情况下是不允许前台直接可以进入后台,防止后台管理系统的非法攻击),会跳转到后台登录页面,如图所示:图6-11后台登录页面设计图2.平台管理员登录后模块当用户以超级管理员身份登录成功后,会跳转到管理页面,超级管理员显示所有管理权限如下图:图6-12管理员登录后的首页图菜单信息管理模块管理员登录成功后,可以管理后台系统的信息,如后台菜单设置、管理员角色设置、管理员用户添加、日志管理、熟悉备份等,如下图所示:图6-13管理员登录后的菜单管理图6-14管理员数据备份操作超级管理添加其他管理员角色并且分配指定角色对应的权限图6-15超级管理员添加其他管理员权限分配图6-16用户管理即可添加管理员物品管理模块当管理员登录后,不仅仅可以管理平台用户发布的项目。还可以物品的分类管理:添加和修改分类,物品的基础管理将推荐物品的主页,并强制物品上架和下架,删除的基础数据管理等并购买物品:图6-17物品分类管理图6-18物品管理图6-19求购物品管理学生管理模块管理员登录后,可以管理在平台上注册的学生,冻结和激活学生的帐户,并删除帐户图6-20学生账号管理评论管理模块登录后,管理员可以管理平台生发表的意见,删除违反规定的意见:图6-21学生评论管理举报管理模块登录后,管理员可以管理学生在平台上举报的文章评论,判断违法举报信息,是否强制上架下架:图6-22学生举报管理公告管理模块登录后,管理员可以管理首页公告、发布公告、编辑公告、删除公告和监控公告数据等:图6-23平台公告管理网站管理模块登录后,管理员可以管理首页标题和logo等部分,修改logo上下架、超链接、站长微信等操作,方便平台在各个校区和学校快速部署,无需直接修改网站代码:图6-24平台logo等管理图6-25平台友情链接管理系统测试系统测试是结合已确认的开发完成的服务器、软件、网络等必要要素进行软件系统的各种页面以及功能的测试和确认,整个平台系统测试是对整个平台各个功能以及子系统的测试。最主要的目的是确保在上线前平台系统已经完全符合需求设计规范,提早找出系统问题降低开发成本。测试计划一个优秀的软件系统不仅需要良好的开发环境,测试也是必不可少的;在互联网高速发展的过程中,测试工程师这一角色在软件开发过程中一直备受关注。虽然在传统的软件工程中,软件测试占比相对较少,但是整个上线前期也有一个明确和独立的测试阶段。随着软件上线问题以及事故的频频出错,在整个软件开发的生命周期内越早开始测试,测试人员执行测试的频率就越频繁,整个软件开发成本就会下降得越多。测试报告在软件测试过程中为了保证整个平台系统运行更加稳定,软件测试人员会根据以前指定的系统测试计划,一步步对平台的系统功能进行了全面的测试。并且由于软件系统中的子功能模块很多,测试人员会按照其前后顺序列出了系统的一些功能测试过程,具体如下表格所示。其中表7.1前台用户登录以及注册模块功能测试过程。表7.1前台用户登录模块的测试过程表模块测试结果前台登陆模块在用户名一栏中输入“学号:201920160061”,密码:123456登陆成功,前台显示成员所有的功能,后台显示对应角色功能菜单前后端输入未注册的用户名,如201920160061,密码123456登陆失败,提示“用户名及密码错误”修改个人密码输入旧密码,如果新密码和确认密码相同提示修改成功,并使用数据库工具查看数据库中的数据是否更改;输入的旧密码正确123456,但是新密码和确认密码不相同123和321在输入框右侧显示“请确认两次输入密码是否保持一致”输入的旧密码错误123123,新密码和确认密码相同修改失败,提示用户“旧密码错误,请联系管理员”,查看系统数据库,可以看到用户的密码并未更改表7.2是后台管理员管理模块及部分功能测试过程。表7.2后台管理模块及部分功能测试过程模块测试结果系统员设置模块管理员成功登录后,点击“系统”菜单在后端页面左侧会,列出了该校色对应的系统权限菜单。选择一条菜单项点击任意一条菜单即可打开对应的功能界面;物品管理功能选择“物品管理”菜单在右侧的页面中显示物品管理二级菜单,并逐次点击各个子菜单查看功能是否正常在前台页面中添加了一个物品后,再进入后台,再选择物品管理显示刚添加的物品信息,选择“上架”“下架”…等,弹出确认框,确定后,再到表中查到该成员,查看数据库是否发送改变表7.3是后台管理员学生管理模块、评论报告管理和一些功能测试过程。表7.3后台管理员管理模块及部分功能测试过程模块测试结果学生管理管理员成功登录后,点击“学生管理”菜单在右侧的页面中,列出了所有学生的基本信息选择一条记录的“增加”,“修改”,“删除”,“冻结”操作右侧的页面中,列出了所选学生的基本信息,可以修改,修改,删除,冻结,操作完后,查看数据库,可以看到数据库中相关数据已更新评论举报管理超级管理员成功登录后,点击“评论管理”以及”举报管理”菜单在右侧页面中,列出了需要所有的信息,包含学生的评论以及举报物品的信息,点击“删除”按钮后,会提示对应的数据删除成功。再点击点击“评论管理”以及”举报管理”菜单在前台添加对应数据后,再次进入后台点击可以看到刚添加的评论以及举报信息。查看数据库,可以看到数据库中相关数据已更新表7.4是后台管理员公告模块、网站设置管理和一些功能测试过程。表7.4后台管理员其他管理模块及部分功能测试过程模块测试结果公告管理超级管理员成功登录后,点击“公告管理”菜单在右侧的页面中,列出了所有公告的基本信息,包括数据库中所有对应的栏位选择一条记录的“添加”,“编辑“,”删除“操作右侧的页面中,列出了所有的公告基本信息,可以修改,删除,添加,点击保存后,提示“修改成功”,查看数据库,可以看到数据库中相关数据已更新网站设置超级管理员成功登录后,点击“网站设置”菜单在右侧页面中,列出了需要所有的信息,包含友情链接,网站设置再击点击“友情链接”以及”网站设置”菜单在后台添加对应数据后,进入前台点击可以看到刚添加的数据。查看数据库,可以看到数据库中相关数据已更新测试结果:后台不同管理员或者超级管理员的身份登录都能够进入前后端系统、使用前台学生进行登录;并且后台对应的数据修改和增加和查询与数据库中的数据吻合;以超级管理员角色登录平台后台时拥有平台所以的功能,也可以分配其他管理员对应的角色功能。前后端系统的所有用户和功能数据的信息被查看和更改,删除结果均数据库中的数据相吻合。整个校园二手交易平台系统的准确性和及时性得到了很好的验证。至此,该系统的测试工作已顺利完成。结论这个毕业设计给了我一个正式软件开发过程的真实体验。从系统需求分析、系统总体设计、系统数据库设计、系统详细设计等方面一步一步,对形式化的软件开发过程有了更深刻的理解和理解。在系统设计和开发中,系统的需求分析非常重要,系统的需求分析直接影响到您系统的实用性。另外,在系统设计中,首先要对系统的功能进行完善,其次要在功能的基础上对系统的运行性能进行优化,然后自己制作的系统界面要友好,使用户操作方便,易于使用,这对于成功的系统也是必需的。本毕业设计,通过对系统进行需求分析、总体设计,将系统分为多个模块。其中,前台除了基本的货品交易外,还增加了购买区,让二手交易不再是单向交易,大家随时都有卖货的行为;除了基本的平台管理功能,背景部分还提取了相应的标识和友情链接,以便于平台在其他校区的快速部署和建设。当然,由于目前所学的知识有限,另一方面,由于毕业设计时间有限,系统还有很多不足之处,需要进一步完善:比如可以在系统中增加更多的功能,比如日常案例提醒。另外,系统的安全性不是很高。在系统的密码检索功能中,为用户添加密码提示后,可以向用户邮箱发送链接,允许用户修改密码,而不是直接将密码发送到用户邮箱。总之,这个毕业设计锻炼了我的实践发展能力,开阔了我的思路,也让我明白了很多道理:做任何事情,首先要有信心,然后在做事情的时候,要有认真的态度,要有不怕困难的心,敢于挑战,坚持不懈。这样,成功的大门将永远为您打开。[1]贾晓芳,沈泽刚。
Java
Web应用开发中的常见乱码形式及解决方法[J].
软件导刊,2017,(04):214-216.[2]张囡囡[D]面向教育硕士培养的个性化教育资源平台的研究《辽宁师范大学硕士论文》[3]胡蕊蕊。
Java
Web程序运用中泛型DAO的作用[J].
电子测试,2017,(04):46+49.[4]周昱晨,罗向阳,张豪。
基于Java
Web的小型企业自动化办公系统设计与研究[J].
计算机时代,2017,(03):30-33+36.
[5]苏航。
接口的意义及在java
web三层架构中的作用分析[J].
西部皮革,2016,(24):19.[6]赵璞。
Java
Web程序开发中字符乱码的原因与解决办法[J].
电脑编程技巧与维护,2016,(20):24+27.[7]徐茂。
浅析面向SQL数据库注入攻击的Java
Web防御措施[J].
网络安全技术与应用,2016,(10):85-86.[8]贾文潇,叶慧莉。
Java
Web开发中的乱码问题[J].
电子测试,2016,(06):64+62.[9].刘腾红,孙细明.信息系统分析与设计[M].
北京:科学出版社,2003年[6].林邦杰,彻底研究java.北京:电子工业出版社,2002年[10]张丽。
基于Java
Web在线考试系统[M].
江西科学,2016,(04):526-528+550.[11]李鹏博,于立婷,王天琪。
Java
web软件框架技术探析[J].
通讯世界,2016,(14):288.[12]洪奎。
基于Struts框架的Java
Web应用开发研究[M].
通讯世界,2016,(13):14.[13]贾文潇,邓俊杰。
Java
Web应用中常见的错误和异常问题处理[M].
电子测试,2016,(07):60+81.[14]张佳琪。
基于Java
Web的车辆试验管理信息系统的设计与实现[D].北京交通大学,2016.[15]陈涛,黄艳峰。
Java
Web开发中文件上传方法研究与实现[J].
电脑知识与技术,2016,(11):48-49+52.[16]朱柏锡。
SQL数据库注入攻击及Java
Web应用过程中防御措施分析[J].
网络安全技术与应用,2016,(05):63-64.[17]张岩,孙莉,王慧玲,王晨,陈莲莲。
基于Java
Web的医院网上预约挂号系统[J].
淮南师范学院学报,2016,(03):112-114.[18]Irene
Córdoba-Sánchez,Juan
de
Lara.
Ann:
A
domain-specific
language
for
the
effective
design
and
validation
of
Java
annotations[J].
Computer
Languages,
Systems
&
Structures,2016[19]Kebo
Zhang,Junsen
Zuo,Yifeng
Dou,Chao
Li,Hailing
Xiong.
Version
3.0
of
code
Java
for
3D
simulation
of
the
CCA
model[J].
Computer
Physics
Communications,2016,[20]Pablo
Piedrahita-Quintero,Carlos
Trujillo,Jorge
Garcia-Sucerquia.
JDiffraction
:
A
GPGPU-accelerated
JAVA
library
for
numerical
propagation
of
scalar
wave
fields[J].
Computer
Physics
Communications,2016.
附录A后台用户数据备份packagecom.rao.springbootschoolshop.controller.admin;
importcom.rao.springbootschoolshop.bean.CodeMsg;
importcom.rao.springbootschoolshop.bean.PageBean;
importcom.rao.springbootschoolshop.bean.Result;
importcom.rao.springbootschoolshop.entity.admin.DatabaseBak;
importcom.rao.springbootschoolshop.service.admin.DatabaseBakService;
importcom.rao.springbootschoolshop.service.admin.OperaterService;
importmons.lang3.StringUtils;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.beans.factory.annotation.Value;
importorg.springframework.stereotype.Controller;
importorg.springframework.ui.Model;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.RequestMethod;
importorg.springframework.web.bind.annotation.RequestParam;
importorg.springframework.web.bind.annotation.ResponseBody;
importjava.io.File;
/**
*数据库备份管理控制器
*/
@Controller
@RequestMapping("/admin/database_bak")
publicclassDatabaseBakController{
@Autowired
privateOperaterServiceoperaterService;
@Autowired
privateDatabaseBakServicedatabaseBakService;
privateLoggerlog=LoggerFactory.getLogger(DatabaseBakController.class);//启动日志
@Value("${rao.database.backup.dir}")
privateStringbackUpDir;//数据库备份保存路径
/**
*数据库备份文件管理列表页面
*@parammodel
*@parampageBean
*@return
*/
@RequestMapping("/list")
publicStringdataBaseList(Modelmodel,PageBean<DatabaseBak>pageBean,DatabaseBakdatabaseBak){
model.addAttribute("pageBean",databaseBakService.findList(pageBean));
model.addAttribute("title","备份列表");
return"admin/database_bak/list";
}
/**
*数据库备份操作
*@return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
publicResult<Boolean>add(){
databaseBakService.backup();
returnResult.success(true);
}
/**
*删除记录的文件及数据库中的信息
*@paramids
*@return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
publicResult<Boolean>delete(Stringids){
if(!StringUtils.isEmpty(ids)){
String[]split=ids.split(",");
for(Stringid:split){
DatabaseBakdatabaseBak=databaseBakService.find(Long.valueOf(id));//根据id进行查询
if(databaseBak!=null){
//删除数据库中的信息
databaseBakService.delete((long)Integer.parseInt(id));
//删除计算机中对应的文件
Filefile=newFile(databaseBak.getFilepath()+databaseBak.getFilename());
if(!file.exists()){
//文件不存在的话,按照配置文件的路径重新寻找文件
file=newFile(backUpDir+databaseBak.getFilename());
}
file.delete();//删除文件
("删除数据库备份文件:备份id:"+id);
}
}
returnResult.success(true);
}
returnResult.error(CodeMsg.DATA_ERROR);
}
/**
*还原数据库文件
*@paramid
*@return
*/
@RequestMapping(value="/restore",method=RequestMethod.POST)
@ResponseBody
publicResult<Boolean>restore(@RequestParam(value="id",required=true)Longid){
databaseBakService.resorte(id);
returnResult.success(true);
}
}二、后台权限统一拦截packageerceptor.admin;
importcom.rao.springbootschoolshop.config.SiteConfig;
importcom.rao.springbootschoolshop.entity.admin.Menu;
importcom.rao.springbootschoolshop.entity.admin.User;
importcom.rao.springbootschoolshop.util.MenuUtil;
importcom.rao.springbootschoolshop.util.SessionUtil;
importcom.rao.springbootschoolshop.util.StringUtil;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Component;
importorg.springframework.web.servlet.HandlerInterceptor;
importorg.springframework.web.servlet.ModelAndView;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjava.util.List;
/**
*后台登录拦截器
*/
@Component
publicclassAdminLoginInterceptorimplementsHandlerInterceptor{
@Autowired
privateSiteConfigsiteConfig;
privateLoggerlog=LoggerFactory.getLogger(AdminLoginInterceptor.class);//启动日志
@Override
publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{
StringrequestURI=request.getRequestURI();
//普通请求可以重定向到登录页面
Useruser=SessionUtil.getLoginedUser();
if(user==null){
if(StringUtil.isAjax(request)){
//是ajax请求
response.sendRedirect("/system/login");
returnfalse;
}
("Session中不存在User,转发:"+requestURI);
response.sendRedirect("/system/login");
returnfalse;
}
if(!StringUtil.isAjax(request)){
//不是ajax请求,则将菜单信息放入页面模板变量中,用户不同角色显示不能权限菜单
List<Menu>authorities=user.getRole().getAuthorities();
request.setAttribute("userTopMenus",MenuUtil.getTopMenus(authorities));
List<Menu>secondMenus=MenuUtil.getSencondMenus(user.getRole().getAuthorities());
request.setAttribute("siteName",siteConfig.getSiteName());
request.setAttribute("siteUrl",siteConfig.getSiteUrl());
request.setAttribute("userSecondMenus",secondMenus);
request.setAttribute("userThirdMenus",MenuUtil.getChildren(MenuUtil.getMenuIdByUrl(requestURI,secondMenus),authorities));
}
("该请求符合登录要求:"+requestURI);
returntrue;//放行
}
@Override
publicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,ModelAndViewmodelAndView)throwsEx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中煤鄂尔多斯能源化工有限公司面向中国中煤内部及社会招聘7人备考题库及答案详解(网校专用)
- 2026四川高能智盾科技有限公司招聘财务专员1人备考题库附答案详解(综合卷)
- 2026广东技术师范大学招聘教学科研人员75人备考题库含答案详解(达标题)
- 2026安徽淮南市消防救援局政府专职消防员招聘49人备考题库及答案详解(新)
- 2026河南郑州市城市照明和绿化景观服务中心公益性岗位招聘8人备考题库及答案详解(典优)
- 2026浙江宁波市慈城镇人民政府招聘合同制人员11人备考题库及答案详解(名师系列)
- 2026浙江杭州市文三教育集团定山小学招聘语文老师(非事业)1人备考题库及答案详解(典优)
- 2026内蒙古锡林郭勒盟言信人力资源服务有限公司招聘6人备考题库及完整答案详解
- 2026广西贵港桂平市建筑工程质量安全监督站招聘见习人员3人备考题库及答案详解(全优)
- 2026湖南娄底市市直学校公开招聘工作人员15人备考题库及1套参考答案详解
- 2026年岭南版小学二年级美术下册(全册)每课教学设计(附目录)
- 2026届北京市海淀区重点达标名校初三数学试题下学期第一次月考数学试题含解析
- 户外直播安全合同协议书模板
- GB 14881-2025食品安全国家标准食品生产通用卫生规范
- 2026重庆机场集团秋招面笔试题及答案
- 汽车低压线束培训课件
- 实验室安全汇报课件
- 2026年网易游戏开发工程师面试题库
- 给水工程毕业设计模板
- 路灯安装质量评定表
- 07SG531钢网架设计图集-PDF解密
评论
0/150
提交评论