版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Java的宠物店管理系统的设计与实现目录3320摘要 I摘要:随着生活水平的提高,养宠物成为了很多人的一种娱乐消遣的方式,在全球信息化的发展浪潮下,宠物实体店经受着一轮又一轮的冲击。这时,宠物店的信息化管理和商品管理系统呼之欲出,因此,构建一个方便快捷的宠物店管理系统进行网上销售管理以及推广是大势所趋,宠物店管理系统的设计方案,可以采用thymeleaf技术,为宠物店的管理和发展提供强有力支持。网站的前端功能主要涉及了宠物狗与宠物猫的信息展示,可以帮助用户了解他想要的产品的详细信息,如果用户想要购买,可以通过页面底部提供的信息联系我们,后端功能包含了对用户信息和宠物信息的管理,对普通用户进行管理员赋权等功能,实现了宠物店信息管理从手工到电子的进步。关键词:宠物店管理thymeleaf技术宠物信息引言随着人们的消费能力以及消费观念的转变,还有整个社会的快速发展,宠物行业将成为经济增长的另一个制高点。随着宠物市场大爆发的到来,宠物行业未来几年超过千亿市场已经不是一个什么大的问题,可以撬动国民经济的一个板块。像欧美国家一样,宠物行业将会对GDP的增长做很大的贡献。养宠物已经成为一种流行趋势,遛狗是傍晚时候最亮丽的风景线,宠物成为人们饭后娱乐以及谈论的焦点,丰富了人类的精神生活。让老年人有了精神寄托,不再感到孤独。我国信息技术发展起步比较晚,经过后期慢慢的不断地优化和改革,才让我们的信息技术上升到新的阶段。现在计算机控制着我们日常生活中所有重要工作,可以说,人们离开了计算机,将寸步难行。再说信息,不得不感叹现在人们的各种信息都在迅速流通,信息资源利用充分。信息背后的软件支持也得到广大范围的宣传和使用。软件开发团队愈来愈专业,开发技术愈来愈成熟。有了软件的存在,信息处理效率得到大幅度提升,帮助信息处理者省去了大部分时间。对于宠物店方面来讲,传统的人工管理方式,已经无法满足用户的需求,因此需要我们利用软件技术开发宠物店管理系统来实现宠物售卖管理功能,宠物店管理系统的主要目的是实现对宠物信息的快速检索,方便管理者网上登记宠物可售状态、管理者对用户的管理等一系列功能,从而减轻宠物店管理人员的工作负担,提高工作效率,避免不规范工作,从而加强对宠物以及用户的管理。宠物店管理系统主要用Java语言,采用SSM(spring+springmvc+mybatis)框架,应用thymeleaf技术进行开发,后台数据库使用mysql数据库管理系统,web应用服务器选用Tomcat,开发工具采用lntellij
idea,网页编程语言为HTML、CSS、javascript。相关技术介绍Thymeleaf技术简单来说,thymeleaf技术可以完全代替jsp。Thymeleaf可以在有网络的情况下运行,也可以在无网络的情况下运行,可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持html原型,然后在html标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释html时会忽略未定义的标签属性,所以thymeleaf的模板可以静态地运行;当有数据返回到页面时,Thymeleaf标签会动态地替换掉静态内容,使页面动态显示。Thymeleaf有一个开箱即用的特性,它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、OGNL表达式效果,避免了每天套模板、改jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。Thymeleaf提供spring标准方言和一个与SpringMVC完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。Mysql数据库所谓数据库,实际上就是一个容器,按照数据结构来组织、存储和管理。数据库的作用就是为大量的信息进行管理并提供高效的解决方案。MySQL是典型的关系数据库系统,拥有开源免费、稳定、高效等特点,一直是中小型web项目的最佳数据库选择。MySQL作为当今IT领域使用人数最多的开源关系型数据库软件之一,在2018年的数据库使用率排名中位居第二,仅次于目前为止最成功的商业版数据库Orcle,MySQL最大的优势之一就是无偿使用,这也是它成功的关键。MYSQL支持标准化数据库查询语言SQL。MYSQL是一款非常适合个人开发者或小型组织开发团体的数据库管理系统,因为它是开源并且免费的,体积小、速度快、成本低以及其最重要的一点开放源码,深受程序设计人员的喜爱,这也让它成为了许许多多中小型开发网站数据库的首选,同时提供了多种开发的连接API。MYSQL将数据的存放按照记录之间的关系存放到了不同的表中,减少了数据的冗余并且提高了开发的工作效率。MYSQL支持开发中需要用的大型数据库,并能处理数以万计的记录。因为MYSQL是开源的软件,所以在项目的预算中的时候不用花费额外的资金,大大降低了开发的总体成本,这也是MYSQL数据库在中小型企业和独立的开发者中广泛流行的原因。B/S结构B/S(浏览器/服务器)结构是目前主流的网络化的结构模式,它能够把系统核心功能集中在服务器上面,可以帮助系统开发人员简化操作,便于维护和使用。B/S最大的优点就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的客户端处理就解决部分问题,开发出来的程序跟用户交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。基于C/S架构的系统只可以被使用在本地电脑上,不能通过计算机网络来进行使用和操作,在使用地理位置等方面都没有B/S架构使用方便,B/S模式三层结构图如图2-1所示。图2-1B/S模式三层结构图spring+springmvc+mybatis(SSM)框架Ssm其实是JavaEE的一个开发套件Spring,Springmvc和mybatis,其实可以不太准确的对应javaweb开发的三个层,web层(springmvc),service层(spring)和DAO层(mybatis)Spring是一个开发框架,解决的问题就是尽可能的业务代码归业务代码,基础设施代码(日志、事务,异常,对外接口等)归基础设施代码,搞定解耦的问题,目前该框架应用十分广泛且活跃。Springmvc是控制层框架,一种新型的,易拓展的web技术框架,Springmvc是Spring框架中用于创建javaweb应用的模块,构建在mvc设计模式基础上,无需整合即可与Spring一同工作,组件作用十分明确,可以完美支持请求的映射,完完全全满足mvc的设计需求,实现代码的复用功能,灵活适配控制器,还实现mvc设计模式,本质上,Springmvc使用servlet进行处理以及打包,以此可以使开发的过程简单化,将系统代码管理逻辑变得非常清晰。在Spring的控制器将用户的请求处理结束后,它会将视图对象返回到前端控制器中。然后视图解析器会将视图对象中的数据装配到View对象中,完成视图的渲染之后将视图呈现给用户。MyBatis框架是一个轻量级使用简单的开源框架,支持xml用于配置和映射,它可以从数据库当中实例化java对象。本框架的核心表现是可以对sql语句进行灵活的操作。可以通过表达式来进行有效的判断,还可以对sql进行灵活拼接和组合。系统分析可行性分析通过对宠物店管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、操作可行性、经济可行性三方面进行分析。技术可行性本宠物店管理系统采用thymeleaf和MYSQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握。经济可行性由于自己本身就是学生,还没有正式参加工作,金钱上面一直都处于缺乏状态。所以在开发程序过程中,我是不会花太多经济成本在上面的。针对开发软件和数据库,在百度上面就可以直接下载,然后根据各种安装视频进行安装,这些资源都是免费的,程序编码阶段使用的源代码在百度上面可以轻松获得,在有网络的环境下就能下载下来,不需要支付任何费用,经济成本很低。操作可行性本人自己就是学生,程序开发经验不足,在界面设计上面不会设计太复杂,要讲究简单好看,操作上要方便,不能让用户觉得不流畅。用户一旦进入操作界面,界面上就会有相应提示,跟着操作提示就可以找到对应的功能操作模块,对于用户来说免培训就能使用。从上面几个部分的可行性分析得出,这次开发的宠物店管理系统在开发上面没有什么大问题,值得开发。系统功能分析本宠物店管理系统主要包括用户管理功能模块、宠物管理功能模块和管理员功能模块三大部分。下面将对这三大功能模块分别进行功能分析。用户:用户可以查看系统首页界面信息,包括首页,宠物信息,用户可以进行注册登录,登录后功能有个人信息,绑定手机,绑定微信,绑定qq,绑定邮箱,安全退出。管理员:管理员管理员登录后也可以查看系统首页界面信息,宠物信息,与普通用户不同之处在于管理员主要功能还包括了宠物管理,小宠管理,用户管理。本宠物店管理系统具体系统框架图如图3-1所示:图3-1系统框架图系统设计系统结构设计本宠物店管理系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:图4-1系统工作原理图系统的设计和划分是系统的核心研究问题,该系统的结构化设计思想,是自顶向下的方式将系统分成若干个子系统,以及反过来的子系统分成模块,其被划分成子模块,层划分各计算机可执行模块可迄今用作一个单独的程序。本宠物店管理系统采用的是MYSQL数据库,数据存储快,因为我做的这个宠物店管理系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确。E-R图设计E-R图是一种描述显示数据类型间的关系的数据描述方法,E-R图可以完整地映射出现实模型的关系。E-R图中的三个最为重要的元素就是实体、属性、关系。E-R图就是由这三点组成。实体:E-R图中数据的实体,用矩形表示上面为实体名,下面为实体属性,实体包含主外键等关系。属性:E-R图中的属性,是指实体的属性,实体由多条属性所构成,属性拥有自己的数据类型,数据大小。属性的优劣决定了E-R图中实体的健全性、完整性。关系:E-R图中的关系是指实体之间的关系,用菱形来表示实体间的关系,这些菱形关系的联系上有着一对多或多对多的数据联系,这些构成了E-R图的关系,E-R图的关系紧密连接了实体,使实体间的关联性更加的显著、易懂。本宠物店管理系统的E-R图如图4-2所示:注册时间宠物名图片密码编号注册时间宠物名图片密码编号是否会员生日编号姓名是否会员生日编号姓名宠物健康状态浏览电话用户宠物健康状态浏览电话用户品种名微信品种名微信介绍品种性格邮箱qq介绍品种性格邮箱qq管理管理密码姓名密码姓名管理员用户管理员用户qq编号微信qq编号微信电话邮箱电话邮箱图4-2系统E-R图数据库表设计表4-1pet_type宠物种类信息表字段名数据类型是否允许空字段含义idint(11)NOTNULL编号Type_namevarchar(255)NULL种类名introvarchar(255)NULL介绍Img_urlvarchar(255)NULL照片Video_urlvarchar(255)NULL视频表4-2pet_breed宠物品种信息表字段名数据类型是否允许空字段含义idint(11)NOTNULL编号Breed_namevarchar(255)NULL品种名shapevarchar(255)NULL体型Img_urlvarchar(255)NULL图片Sell_statevarchar(255)NULL是否可出售naturevarchar(255)NULL性格introvarchar(255)NULL介绍Type_idint(11)NOTNULL种类表4-3pet_ifmtion宠物信息表字段名数据类型是否允许空字段含义idint(11)NOTNULL编号Pet_namevarchar(255)NULL宠物名Birth_timevarchar(255)NULL生日Img_urlvarchar(255)NULL图片Heal_statevarchar(255)NULL健康状态naturevarchar(255)NULL性格introvarchar(255)NULL介绍Breed_idint(11)NOTNULL品种Manage_namevarchar(255)NULL品种名表4-4user用户信息表字段名数据类型是否允许空字段含义idint(11)NOTNULL编号emailvarchar(255)NOTNULL邮箱passwordvarchar(255)NOTNULL密码headshot_urlvarchar(255)NULL头像phonevarchar(255)NULL电话namevarchar(255)NULL姓名weibovarchar(255)NULL微博qqvarchar(255)NULLqqvxvarchar(255)NULL微信memb_stateTinyintNULL是否会员Register_timeDatetimeNULL注册时间系统详细设计与实现前台功能模块的实现管理员、商家和用户均可查看系统首页界面信息,包括首页,宠物信息,最新宠物咨询等,其界面展示如图5-1所示。图5-1首页界面图注册界面界面未有账号的用户和商家可在注册界面进行注册。注册界面展示如图5-2所示。图5-2注册界面图用户登录界面用户可以输入账号和密码进行登录,登录界面展示如图5-3所示。图5-3用户登录界面图用户信息界面用户可以查看以及修改个人资料,绑定微信,手机,qq,详情界面展示如图5-4所示。图5-4用户信息界面图用户修改密码以及修改头像详情界面如图5-5、5-6所示图5-5用户修改密码界面图图5-6用户修改头像界面图宠物详情界面用户可以查看店内所有宠物的可售状态与详细信息,宠物详情界面如图5-7所示。图5-7宠物详情界面图后台功能模块的实现登陆界面管理员和商家可以输入用户名,密码,验证码进行登录,登录界面如图5-3相同,用管理员和商家的用户名与密码登陆即可,注册的都是普通用户,没有管理员权限。用户管理界面管理员可以在后台看到所有已注册用户,并且可以对普通用户进行管理员赋权与销权。详情如图5-8所示。图5-8用户管理详情界面图品种管理界面管理员可以进行宠物的上架和下架,宠物信息的修改和删除,添加宠物品种和具体小宠。详情如图5-9、图5-10、图5-11所示。图5-9品种管理详情界面图图5-10品种信息修改详情界面图图5-11品种添加详情界面图5.2.4小宠管理界面具体小宠与之类似,管理员可以完成小宠的上架和下架,小宠信息的修改和删除如图5-12,5-13所示。图5-12小宠详情界面图图5-13小宠信息界面图系统测试测试定义系统测试主要是判断系统是否可以正常运行,功能模块是否可以实现操作。程序代码中是否有错误出现。测试程序是开发过程中的一个主要问题。就算系统完成的再好,再进行程序测试时也会也会发现一个重来没有被发现的错误信息。测试不仅是系统开发的开始,而且应该贯穿整个系统的整个生命周期。评估系统质量的方法不局限于系统编码和过程,应该与软件设计工作和历史需求分析密切相关。系统错误,不一定是代码错误,可能是阶段的设计摘要和设计细节存在问题,问题也可能出现在需求分析阶段。从实际情况来看,最初的问题很可能是一个小错误,根据按钮的原理,按钮后的按钮位错将是所有位错。该系统的原因也同样适用,随着后续的开发工作,误差将越来越严重。所以越早发现问题,更好的将是解决问题的早期阶段,为了避免问题在后续编码,测试和设计,避免扩大问题。在测试系统中,开发人员应该站在客户的角度来处理测试工作,而现在主要的测试方法是黑盒测试。测试的目的可以概括为以下几点:首先,用户界面和客户需求是一致的,设置界面和设计风格统一;第二,创新设计接口规范设计标准,具有独特的审美特征;最后,人类传统的接口以满足审美需求,不能盲目地追求一种独特的,合理的规划布局,符合审美标准。测试用例用户登录功能测试与宠物品类添加功能测试,如下表所示。表6-1功能测试用例表用例名称测试功能操作操作过程预期结果测试结果用户登录模块测试正确输入用户信息,用户成功登录。输入用户的信息1.在密码框输入用户的密码。2.点击登录按钮。跳转到各角色的界面正确宠物品种添加模块测试正确输入宠物信息,完成宠物的上架。输入宠物的基本信息商家点击发布后根据填写宠物信息,然后点击“提交保存”按钮。提示成功正确测试方案对测试计划的把握是测试方案最重要的部分。所有的技术难点应该都被包含在这个测试计划之中。而且我们要保证能与目标形成一致性,以至于能够测试出一些主要存在的错误和一些错误的漏洞。可以完美解决这些问题就只有白盒测试或者黑盒测试。构造测试是白盒测试的另一个名字,了解与分析程序的结构以及性能功用的,从而我们可以得到最终想要的结果并且观察出是不是每一条程序都能得到。性能测试是黑盒测试别称,程序本身的运作通过程序的进程来观察,主要是看一下程序是不是能够像我们预期的目标那样发展,看一看我们的程序最终能不能完整的得到我们最后想要的功能和储存想得到的数据,到最后再看一下我们的这个程序完整性能不能达到要求。(1)模块测试单元测试就是模块测试,顾名思义就是测试每个模块所承担的功能是否能够实现,这个测试就是为了找出代码在实际的设计运转中某一些小的程序所出现的偏差,很好地改正这些错误,就说明我们模块测试进行很成功过。(2)集成测试集成测试就是对系统的测试以及对他子系统的一些性能测试,他检查的事系统的包装程序信息。找出其中的问题。他的优势主要有以下这几点:软件耗费比较少。可以提前发现端口的错误。更好的地位系统中错误的位置。从底部往上面进行的方案针对于偏下层的结构,而中间的结构就采用折中的方法。(3)界面测试界面测试可以包括但不限于一下几个方面:页面是否风格统一,美观页面布局是否合理,重点内容和热点内容是否突出控件是否正常使用对于必须但未安装的控件,是否提供自动下载并安装的功能文字检查(4)性能测试性能测试一般从压力测试;负载测试;强度测试几个方面考虑:数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。安全性测试:基本的登录功能的检查;是否存在溢出错误,导致系统崩溃或者权限泄露;相关开发语言的常见安全性问题检查,如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持。兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性。(5)验收测试终于到了结尾性的工作了。就是为了给用户看一下我们的系统功能是否达到了预期的效果。我采用了性能测试也就是黑盒测试对系统进行测试。其结果是分别是:有一定的差异在用户的需求。再者就是结果与之差不了多少。到了最后,我们发现的问题都是与用户的需求存在一定的关联。测试结论经过对上述的测试结果分析,宠物店管理系统满足用户浏览宠物,管理员管理商品的需求。基本功能齐全,操作简单,系统运行性能良好,是一个值得推广的系统。测试的时候要考虑到每个细节功能,除了要输入正确的数据进行测试,还要进行错误数据,这就需要我们有足够的耐心和细心,因为设计的这个网站是我个人设计的,所以难免会有很多问题和不足,希望在以后的使用中,老师和同学多提意见。总体来说,软件通过测试。结论:经过半年时间的努力,终于完成了宠物店管理系统的设计与实现,宠物店管理系统提供了一个非常方便快捷的渠道,为人们的日常生活提供了很大的便利,半年之中经过了很多的有效数据的测试和无效数据的测试,最终网站一切工作顺利,是得来不易的成果。在网站开发的早期,对于技术的学习是最大的难关,我首先对系统开发的流程与软件编程的相关知识进行了初步的了解,一步一步从面对编程软件云里雾里到对整体设计有了很大的把握,然后开始了编码,不停的测试,测试过程中从错误不断到最后测试成功,整个过程十分充实,过程是折磨的,但努力的成果带来的成就感和满足感足以安慰自己这半年来的辛苦奋斗。在本次毕业设计中,我不仅学到了很多知识,拓宽了自己对于计算机网站这方面的思路,还提高了自身解决问题的能力,锻炼了实际应用水平,让我体会到了成功的喜悦,这对我来说是一笔受益终身的财富,我相信本次毕业设计的经历将会是我今后工作岗位上一份重要的经验。参考文献:刘高原,张国平,胡建红.基于MVC模式的WEB管理信息系统的实现[J].华东交通大学学报,2016,(01):87-90.叶显中.基于J2EE平台的MVC框架的研究[J].工业控制计算机.2016,4.68刘帅,基于B/S架构图书管理系统的设计与实现[D].北京工业大学.2018.5.23姜文,刘立康.软件原型系统在软件项目开发中的应用[J].计算机技术与发展.,2019,29(4):110-115.许为.三论以用户为中心的设计:智能时代的用户体验和创新设计方法[J].应用心理学,2019,25(1):3-17.赵玮.基于黑盒测试的软件测试策略研究与实践[J].中小企业管理与科技,2017(01):144-145王永和,张劲松,邓安明,等.Springboot研究和应用[J].信息通信,2016.王越.JAVA编程语言在计算机软件开发中的应用[J].电子技术与软件工程,2019.黄智聪.JAVA编程语言在计算机软件开发中的应用研究[J].信息与电脑(理论版),2020,32(02):71-72.[10]周傲英.感悟大数据--从数据管理和分析说起[J].大数据,2017,(02):3-18.[11]乔岚.基于MyBatis和Spring的JavaEE数据持久层的研究与应用[J].信息与电脑(理论版),2017(08):73-76.[12]白元.基于SSM的客户关系管理系统的设计与实现[D].北京:北京交通大学,2016.[13]葛萌,黄素萍,欧阳宏基.基于SpringMVC框架的JavaWeb应用[J].计算机与现代化,2018(08):97-101[14]邹红霆.基于SSM框架的Web系统研究与应用[J].湖南理工学院学报:自然科学版,2017,30(1):39-43.[15]汪冰倩.宠物行业多元化的跨界创新[J].中国工作犬业,2020.11
附录:用户主要功能代码实现验证登录@PostMapping("/checkLogin")@ResponseBodypublicResponseResultcheckLogin(Useruser){ResponseResultresult=newResponseResult(-1,"fail");if(StrUtil.isEmpty(user.getEmail())||StrUtil.isEmpty(user.getPassword())){returnresult;}UserdbUser=userService.login(user);if(dbUser==null){returnresult;}result.setRcode(1);result.setMessage("ok");returnresult;}登录@PostMapping("/login")publicStringlogin(Useruser,StringautoLogin,HttpSessionsession){if(StrUtil.isEmpty(user.getEmail())||StrUtil.isEmpty(user.getPassword())){return"error";}UserdbUser=userService.login(user);if(dbUser!=null){session.setAttribute("login_user",dbUser);}return"redirect:/";}退出登录@GetMapping("/logout")publicStringlogout(HttpSessionsession){session.removeAttribute("login_user");return"redirect:/";}注册@PostMapping("/regist")publicStringregist(Useruser,HttpSessionsession,Stringvcode){StringsVcode=(String)session.getAttribute("sessionVcode");if(StrUtil.isEmpty(vcode)||!sVcode.equals(vcode)){return"error";//thrownewUserException("验证码错误");}if(StrUtil.isEmpty(user.getEmail())||StrUtil.isEmpty(user.getPassword())){return"error";//thrownewUserException("参数异常");}booleanemailMatch=ReUtil.isMatch("[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?",user.getEmail());booleanphoneMatch=ReUtil.isMatch("1[3456789]\\d{9}$",user.getPhone());booleanpasswordMatch=ReUtil.isMatch("^(?![\\d]+$)(?![a-zA-Z]+$)(?![^\\da-zA-Z]+$).{6,20}$",user.getPassword());if(!phoneMatch||!emailMatch||!passwordMatch){thrownewUserException("注册信息不符合规范");}intresult=userService.regist(user);if(result!=1){thrownewUserException("注册失败");}return"redirect:/";}邮箱验证@GetMapping("/checkEmail")@ResponseBodypublicResponseResultcheckEmail(Stringemail){ResponseResultresult=newResponseResult(-1,"fail");if(StrUtil.isEmpty(email)){thrownewUserException("参数异常");}Useruser=userService.existEmail(email);if(user==null){returnresult;}result.setRcode(1);result.setMessage("ok");returnresult;}验证码@GetMapping("/vcode")publicvoidgetVcode(HttpServletRequestrequest,HttpServletResponseresponse){BufferedImagebufferedImage=newBufferedImage(90,35,BufferedImage.TYPE_INT_ARGB);Graphics2Dgd=bufferedImage.createGraphics();gd.drawRect(0,0,90,35);Fontfont=newFont("宋体",Font.BOLD,25);gd.setFont(font);StringBuilderbuilder=newStringBuilder();for(inti=0;i<4;i++){StringrdStr=String.valueOf(vcodeSequence[RandomUtil.randomInt(10)]);builder.append(rdStr);gd.setColor(newColor(RandomUtil.randomInt(255),RandomUtil.randomInt(255),RandomUtil.randomInt(255)));gd.drawString(rdStr,(i+1)*16,27);}HttpSessionsession=request.getSession();session.setAttribute("sessionVcode",builder.toString());response.setContentType("image/jpeg");response.setDateHeader("Expires",-1);response.setHeader("Pragma","no-cache");try{ServletOutputStreamous=response.getOutputStream();ImageIO.write(bufferedImage,"jpeg",ous);ous.flush();ous.close();}catch(IOExceptione){e.printStackTrace();}}验证码正误@GetMapping("/checkVcode")@ResponseBodypublicResponseResultcheckVcode(Stringvcode,HttpSessionsession){ResponseResultresult=newResponseResult(-1,"fail");StringsessionVcode=(String)session.getAttribute("sessionVcode");if(StrUtil.isEmpty(vcode)||StrUtil.isEmpty(sessionVcode)){returnresult;}if(!sessionVcode.equals(vcode)){returnresult;}result.setRcode(1);result.setMessage("ok");returnresult;}模糊查询品种@PostMapping("/admin/crudBreed/exquery")publicStringbreedExquery(Modelmodel,HttpSessionsession,Stringbname){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}if(StrUtil.isEmpty(bname)||"".equals(bname)){return"redirect:/admin/crudBreed";}char[]charArr=bname.toCharArray();for(chara:charArr){if(a==''){return"redirect:/admin/crudBreed";}}List<PetBreed>petBreeds=breedService.findPetBreedByBreedName(bname);if(petBreeds.isEmpty()){return"redirect:/admin/crudBreed";}model.addAttribute("breeds",petBreeds);return"adminCrudBreed";}模糊查询宠物@PostMapping("/admin/crudPet/exquery")publicStringpetExquery(Modelmodel,HttpSessionsession,Stringpname){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}if(StrUtil.isEmpty(pname)||"".equals(pname)){return"redirect:/admin/crudPet";}char[]charArr=pname.toCharArray();for(chara:charArr){if(a==''){return"redirect:/admin/crudPet";}}List<PetIfmtion>pets=IfmtionService.findPetBreedByPetName(pname);if(pets.isEmpty()){return"redirect:/admin/crudPet";}model.addAttribute("pets",pets);return"adminCrudPet";}管理员主要功能代码实现增删改查用户@GetMapping("/admin/crudUser")publicStringcrudUser(Modelmodel,HttpSessionsession){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}List<User>users=userService.queryAll();model.addAttribute("users",users);return"adminCrudUser";}设置管理员@GetMapping("/admin/crudUser/setManger")publicStringsetManger(Stringuid,HttpSessionsession){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}char[]charArr=uid.toCharArray();for(chara:charArr){if(a==''||StrUtil.isEmpty(uid)){return"error";}}UserdbUser=userService.findUserByIds(Integer.parseInt(uid));if(dbUser==null){return"error";}dbUser.setMembState(1);intcode=userService.update(dbUser);if(code!=1){return"error";}if(sessionUser.getId().equals(Integer.parseInt(uid))){session.setAttribute("login_user",dbUser);}return"redirect:/admin/crudUser";}取消管理员@GetMapping("/admin/crudUser/dltManger")publicStringdltManger(Stringuid,HttpSessionsession){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}char[]charArr=uid.toCharArray();for(chara:charArr){if(a==''||StrUtil.isEmpty(uid)){return"error";}}UserdbUser=userService.findUserByIds(Integer.parseInt(uid));if(dbUser==null){return"error";}dbUser.setMembState(0);intcode=userService.update(dbUser);if(code!=1){return"error";}if(sessionUser.getId().equals(Integer.parseInt(uid))){session.setAttribute("login_user",dbUser);}return"redirect:/admin/crudUser";}更新用户信息@GetMapping("/admin/crudUser/toUpdate")publicStringtoUserUpdate(Stringuid,HttpSessionsession,Modelmodel){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}if(StrUtil.isEmpty(uid)||"".equals(uid)){return"redirect:/admin/crudUser";}UserdbUser=userService.findUserByIds(Integer.parseInt(uid));if(dbUser==null){return"error";}model.addAttribute("dbUser",dbUser);return"adminUserUpdate";}@PostMapping("/admin/crudUser/update")publicStringuserUpdate(HttpSessionsession,Useruser){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}UserdbUser=userService.findUserByIds(user.getId());if(dbUser==null){return"error";}dbUser.setName(user.getName());dbUser.setPassword(user.getPassword());dbUser.setHeadshotUrl(user.getHeadshotUrl());dbUser.setPhone(user.getPhone());dbUser.setWeibo(user.getWeibo());dbUser.setQq(user.getQq());dbUser.setVx(user.getVx());intcode=userService.update(dbUser);if(code!=1){return"error";}if(sessionUser.getId().equals(user.getId())){session.setAttribute("login_user",dbUser);}return"redirect:/admin/crudUser";}删除用户@GetMapping("/admin/crudUser/delete")publicStringuserDelete(HttpSessionsession,Stringuid){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}intcode=userService.deleteUserById(Integer.parseInt(uid));if(code!=1){return"error";}if(sessionUser.getId().equals(Integer.parseInt(uid))){session.removeAttribute("login_user");}return"redirect:/admin/crudUser";}模糊查询用户@PostMapping("/admin/crudUser/exquery")publicStringuserExquery(Stringuid,HttpSessionsession,Modelmodel){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}if(StrUtil.isEmpty(uid)||"".equals(uid)){return"redirect:/admin/crudUser";}char[]charArr=uid.toCharArray();for(chara:charArr){if(a==''){return"redirect:/admin/crudUser";}}UserdbUser=userService.findUserByIds(Integer.parseInt(uid));if(dbUser==null){return"redirect:/admin/crudUser";}List<User>users=newArrayList<>();users.add(dbUser);model.addAttribute("users",users);return"adminCrudUser";}增删改查品种@GetMapping("/admin/crudBreed")publicStringcrudBreed(Modelmodel,HttpSessionsession){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}List<PetBreed>breeds=breedService.findPetOfAll();model.addAttribute("breeds",breeds);return"adminCrudBreed";}更新品种@GetMapping("/admin/crudBreed/toUpdate")publicStringtoBreedUpdate(Modelmodel,HttpSessionsession,Stringbid){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}if(StrUtil.isEmpty(bid)||"".equals(bid)){return"error";}PetBreedbreed=breedService.findPetBreedById(Integer.parseInt(bid));if(breed==null){return"error";}model.addAttribute("breed",breed);model.addAttribute("bid",bid);return"adminBreedUpdAndAdd";}@PostMapping("/admin/crudBreed/update")publicStringbreedUpdate(Modelmodel,HttpSessionsession,PetBreedbreed){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}PetBreeddbBreed=breedService.findPetBreedById(breed.getId());dbBreed.setBreedName(breed.getBreedName());dbBreed.setShape(breed.getShape());dbBreed.setImgUrl(breed.getImgUrl());dbBreed.setSellState(breed.getSellState());dbBreed.setNature(breed.getNature());dbBreed.setIntro(breed.getIntro());dbBreed.setTypeId(breed.getTypeId());intcode=breedService.update(dbBreed);if(code!=1){return"error";}return"redirect:/admin/crudBreed";}添加用户@GetMapping("/admin/crudBreed/toAdd")publicStringbreedToAdd(Modelmodel,HttpSessionsession){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}return"adminBreedUpdAndAdd";}@PostMapping("/admin/crudBreed/add")publicStringbreedAdd(Modelmodel,HttpSessionsession,PetBreedbreed){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}intcode=breedService.addBreed(breed);if(code!=1){return"error";}return"redirect:/admin/crudBreed";}删除品种@GetMapping("/admin/crudBreed/delete")publicStringbreedDelete(Modelmodel,HttpSessionsession,Stringbid){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}if(StrUtil.isEmpty(bid)||"".equals(bid)){return"redirect:/admin/crudBreed";}intcode=breedService.deleteBreed(Integer.parseInt(bid));if(code!=1){return"error";}return"redirect:/admin/crudBreed";}上架@GetMapping("/admin/crudBreed/shelves")publicStringbreedShelves(Modelmodel,HttpSessionsession,Stringbid){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())||StrUtil.isEmpty(bid)||"".equals(bid)){return"error";}PetBreedbreed=breedService.findPetBreedById(Integer.parseInt(bid));breed.setSellState(1);intcode=breedService.update(breed);if(code!=1){return"error";}return"redirect:/admin/crudBreed";}下架@GetMapping("/admin/crudBreed/offShelves")publicStringbreedOffShelves(Modelmodel,HttpSessionsession,Stringbid){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())||StrUtil.isEmpty(bid)||"".equals(bid)){return"error";}PetBreedbreed=breedService.findPetBreedById(Integer.parseInt(bid));breed.setSellState(0);intcode=breedService.update(breed);if(code!=1){return"error";}return"redirect:/admin/crudBreed";}增删改查宠物@GetMapping("/admin/crudPet")publicStringcrudPet(Modelmodel,HttpSessionsession){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equals(sessionUser.getMembState())){return"error";}List<PetIfmtion>pets=IfmtionService.findPetIfmtionAll();model.addAttribute("pets",pets);return"adminCrudPet";}更新修改宠物@GetMapping("/admin/crudPet/toUpdate")publicStringtoPetUpdate(Modelmodel,HttpSessionsession,Stringpid){UsersessionUser=(User)session.getAttribute("login_user");if(sessionUser==null||newInteger(0).equ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国珠宝首饰制造行业市场供需求形势与投资发展评估报告
- 2026微生物组治疗临床试验进展及监管审批路径与生物制药投融资
- 2026高端装备制造产业数字化转型路径与投资价值评估报告
- 2026中国智慧城市建设现状与未来发展方向专题报告
- 2026中国商业航天产业发展现状及投资策略报告
- 2026中国微型电机技术创新与高端应用领域拓展报告
- 2026虚拟现实市场分析及未来趋势与投融资发展研究报告
- 2026元宇宙概念落地实践及虚拟资产交易与数字产权保护研究
- 2026高等教育行业市场发展分析及前景趋势与投融资发展机会研究报告
- 2026自动驾驶技术产业链布局与市场前景研究报告
- 量化投资入门全景进阶课件
- 2026年秋统编版九年级语文上册期中真题卷02含作文范文
- 医疗质量安全十八项核心制度(国家卫健委版)
- 2026苏教版二上数学第二单元第6课时《练习四》课件
- 2026年广东东莞市初二地理生物会考真题试卷(含答案)
- 建筑物消防安全疏散设计规范2025版
- 高三运动会课件
- 药械化监管培训课件
- 生态学基础概念知识点试题及答案
- 《家庭教育智慧宝典》详细资料
- 电池规格书模板
评论
0/150
提交评论