版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-2-图5.17翻页数据实现该功能的关键代码如下。//订单支付@RequestMapping("updates")publicStringupdates(Ordersorders,HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{System.out.println(orders);if(!orders.getO_status().equals("待报价")){ordersService.updatesta(orders);return"redirect:/findorders";}else{req.setAttribute("message","请等待商家报价后再付款!");req.getRequestDispatcher("/findorders").forward(req,resp);}returnnull;}//订单分页查看@RequestMapping("findorders")publicStringfindorders(HttpServletRequestreq,@RequestParam(defaultValue="1")Integerpagenum,Modelmodel){ServletContextservletContext=req.getServletContext();Accountaccount=(Account)servletContext.getAttribute("account");List<Orders>orders=ordersService.findOrders(account);PageHelper.startPage(pagenum,3);inttotal=orders.size();List<Orders>orders1=ordersService.findOrders(account);PageInfo<Orders>ordersPageInfo=newPageInfo<>(orders1);req.setAttribute("list",ordersPageInfo);intlast=total/3==0?total/3:total/3+1;if(pagenum<1){pagenum=1;}elseif(pagenum>last){pagenum=last;}model.addAttribute("info",ordersPageInfo);model.addAttribute("pagenum",pagenum);model.addAttribute("first",1);model.addAttribute("last",last);return"service_user_ordermanager";}5.3管理员功能模块5.3.1信息推送管理模块在这个功能里可以推送消息给用户看到,比如新加一条信息图5.19新增保养知识点击查看保养知识后和用户的效果一样图5.20查看保养信息点击标题后弹出信息图5.21查看信息详情5.3.2用户信息管理模块在这个功能模块里可以对用户的信息进行管理。可以查看用户的姓名、账号和密码,也能够协助忘记密码的用户修改密码。图5.22用户信息管理5.3.3查看车辆信息模块在这个模块可以查看用户车辆信息,点击查看即可图5.23查看用户车辆信息下面就是看到的对应用户的信息图5.24展示查看到的车辆信息5.3.4订单信息管理模块当登录的是管理员账号时,会被过滤器过滤到管理员页面。点击订单信息处理后,可以查看订单的订单编号、订单类型、车辆名称、故障描述、预约日期、用户名、真实姓名、联系电话、订单状态、支付情况。图5.25管理员订单信息管理实现该功能的关键代码如下。//更改订单处理进度@RequestMapping("updatehandle")publicStringupdatehandle(Ordersorders){ordersService.updatehandle(orders);return"redirect:/findAll_order";}@RequestMapping("updatestatus")publicStringupdatestatus(Ordersorders){orders.setO_status("待支付:"+orders.getO_status()+"元");ordersService.updatestatus(orders);return"redirect:/findAll_order";}在预约界面首先要给对应的订单增加服务项目。图5.26添加服务项目然后可以进行该订单的业务与总价。图5.27服务项目查看实现该功能的关键代码如下。@RequestMapping("checkservice_admin")publicStringcheckservice_admin(HttpServletRequestreq,Pickcarservice){List<Service>byOid=serviceService.findByOid(service);System.out.println(byOid);req.setAttribute("sList",byOid);doubleprise=0;for(inti=0;i<byOid.size();i++){prise+=byOid.get(i).getS_money();}req.setAttribute("prise",prise);return"service_admin_checkservice";}在预约界面可以确认的预约情况,并且生成对应的接车表单,点击确认生成即可并且会根据当前的服务项目生成定价。图5.28接车表单生成实现该功能的关键代码如下。@RequestMapping("updatehandle")publicStringupdatehandle(Ordersorders){ordersService.updatehandle(orders);Usersaccountbyphone=usersService.findAccountbyphone(orders.getU_phone());Accountaccount=newAccount();account.setId(accountbyphone.getA_id());List<Cars>findcarsbyaccount=carsService.findcarsbyaccount(account);Carscars=newCars();for(inti=0;i<findcarsbyaccount.size();i++){if(orders.getC_name().equals(findcarsbyaccount.get(i).getC_name())){cars=findcarsbyaccount.get(i);System.out.println(cars);}}Pickcarpickup=newPickcar();pickup.setU_name(orders.getU_name());pickup.setU_phone(orders.getU_phone());pickup.setC_name(orders.getC_name());pickup.setO_type(orders.getO_type());pickup.setO_date(orders.getO_date());pickup.setO_desc(orders.getO_desc());pickup.setO_id(orders.getO_id());pickup.setC_color(cars.getC_color());pickup.setC_model(cars.getC_model());pickupService.insertinit(pickup);Stringo_id=orders.getO_id();Pickcarpickcar=newPickcar();pickcar.setO_id(o_id);List<Service>byOid=serviceService.findByOid(pickcar);doubleprise=0;for(inti=0;i<byOid.size();i++){prise+=byOid.get(i).getS_money();}orders.setO_status("定价"+prise+"元");ordersService.updatestatus(orders);return"redirect:/findAll_order";}在生成订单后进入接车表单处理,即可处理刚刚生成的表单,完成指派修理人员维修。图5.29接车表单管理点击查看并完善详情信息即可进行更改图5.30完善接车表单信息实现该功能的关键代码如下。@RequestMapping("updatepickcar")publicStringupdatepickcar(HttpServletRequestreq,Pickcarpickcar){System.out.println(pickcar);if(pickcar.getO_repairman()!=null){pickcar.setO_status("进行中");}else{pickcar.setO_status("未委派");}pickupService.updatePickCar(pickcar);List<Pickcar>pickcars=pickupService.listAll();req.setAttribute("pickList",pickcars);return"service_admin_pickcar";}在历史订单管理页面可以看到历史订单信息。图5.31管理员历史订单管理实现该功能的关键代码如下。//修改接车表单信息@RequestMapping("updatepickcar")publicStringupdatepickcar(HttpServletRequestreq,Pickcarpickcar){System.out.println(pickcar);if(pickcar.getO_repairman()!=null){pickcar.setO_status("进行中");}else{pickcar.setO_status("未委派");}pickupService.updatePickCar(pickcar);List<Pickcar>pickcars=pickupService.listAll();req.setAttribute("pickList",pickcars);return"service_admin_pickcar";}点击查看详细结单表,即可查看关于订单的大部分重要信息,如车主信息、订单信息和车辆信息等。具体的服务项目可以在服务查询看到。图5.32查看订单结算详情5.3.5维修配件管理模块在新增配件信息页面,我们可以增加新的配件信息。图5.33配件信息增加新增后即可在配件信息查看里进行查询图5.34配件信息查看在新增配件类别可以添加新的配件类别图5.35配件类别增加点击查看配件类别即可查看配件类别信息图5.36配件类别查看5.4维修员功能模块5.4.1保养维修管理模块在查看我的委派限流页面,可以查看指给自己的工作订单图5.37查看我的委派修理在这里可以进行维修/保养服务项目的添加,会绑定到当前订单图5.38保养/维修服务添加点击查看服务项目后可以查看添加的服务内容并进行修改和删除图5.39维修保养服务项目查看实现该功能的关键代码如下。//查看指派给我的订单@RequestMapping("mypickcar_e")publicStringmypickcar_e(HttpServletRequestreq){ServletContextservletContext=req.getServletContext();Accountaccount=(Account)servletContext.getAttribute("account");Usersfinduserbyaid=usersService.finduserbyaid(account);List<Pickcar>findbyname=pickupService.findbyname(finduserbyaid);for(inti=0;i<findbyname.size();i++){Pickcarpickcar=newPickcar();pickcar=findbyname.get(i);List<Service>byOid=serviceService.findByOid(pickcar);pickcar.setO_scount(byOid.size());findbyname.set(i,pickcar);}req.setAttribute("pickList",findbyname);return"service_repair_pickcar";}在完成后即可提交,由管理员确认后系统自动生成总价图5.40委派订单提交实现该功能的关键代码如下。//提交委派订单@RequestMapping("commit_e")publicStringcommit_e(HttpServletRequestreq){ServletContextservletContext=req.getServletContext();Accountaccount=(Account)servletContext.getAttribute("account");Usersfinduserbyaid=usersService.finduserbyaid(account);List<Pickcar>findbyname=pickupService.findbyname(finduserbyaid);for(inti=0;i<findbyname.size();i++){Pickcarpickcar=newPickcar();pickcar=findbyname.get(i);List<Service>byOid=serviceService.findByOid(pickcar);pickcar.setO_scount(byOid.size());findbyname.set(i,pickcar);}req.setAttribute("pickList",findbyname);return"service_repair_commit";}第6章系统测试终于进入到了系统开发的最后步骤系统测试了,这个环节也是系统开发中尤为重要的一环,如果不对系统进行测试,就没办法保障产品的质量,没有进行过系统测试的系统的性能和质量是一个定时炸弹,如果在交付的时候出现bug,那就无比尴尬了,直接关系到客户的满意度。在测试过程中,一定要秉承严谨、规范的原则对系统进行测试,毕竟在系统测试中,其目的就是看是否会出现BUG,然后尽可能的解决、处理BUG,虽然一般不可能完全消除BUG,但是越解决,BUG出现的概率就越低,也使客户使用起来更方便和安全。如果想要确认一个程序是否满足交付要求,肯定是要投入很多精力去进行系统测试的,因为只有保证系统质量,才能确保系统在真正投入生产后,能够正常工作,这不仅仅是一个程序员需要坚守的职责,也是对客户的负责。尽管在开发中小心翼翼的考虑到各种情况,但是产生的不应该出现的状况也就是BUG仍然是不乐观的,这些问题虽然在代码上看来只是区区几段字母组成的句子,但是如果放任不管的话极有可能会造成现实中人们的经济损失,一旦设计到金钱观念上,就不得不认真的对待这件事情的,也是为了避免在未来的系统运作中造成更大的损失之前挽回。各个研究表明,在一个系统的开发中,系统测试部分要占用整个系统开发时间至少40%,系统测试的意义有很多,上述的减少系统漏洞带来的经济损失就是一方面,还有就是能够正确的评估风险,为开发人员和使用者提供建议,来保证系统的使用质量。在开发过程中肯定可不能空手测试,因为一点点的调试是相当浪费时间的,而且效率不高,要借助一些外在的工具,比如Jmeter来模拟请求,Postman等。6.1系统测试的意义系统测试其实就是为了保证管理系统的质量,毕竟一个系统看上去再花枝招展,如果质量不过关,做的再好也没用,因为当前时代并不缺乏稳定好用的系统,要想在市场占有一席之地,就要保证自己的产品质量过关,如果开发出的系统频频报错,bug成堆,那么后期的损耗就会无限加大,甚至被淘汰,质量在网络技术市场上是人们关注的重点,所以,一定要认真合理的做系统测试。6.2测试用例系统测试一共做了三类,使用了模拟环境测试的方法,先加入一些测试数据,然后运行业务,将跑起来的数据保存下来,并且关注在运行过程中是否报错,参照预期结果,找出问题所在。6.2.1注册测试用例注册测试用例这里采用黑盒测试方法,且注册系统依据需求进行设计,下面共有三条注册测试用例信息:如表6.1所示。表6.1注册测试用例表测试编号测试目的操作步骤预期结果实际结果1注册测试输入正确格式的个人信息注册成功注册成功2注册测试输入长度不符合要求的密码注册失败注册失败3注册测试输入错误的手机号格式注册失败注册失败6.2.2车辆信息添加测试用例车辆信息添加部分有非空等验证,车辆的类型、型号、颜色、照片、状态都有各自的填写格式,如未按照要求填写,应插入失败,下面共有三条车辆信息添加测试用例信息:如表6.2所示。表6.2车辆信息添加测试用例表测试编号测试目的操作步骤预期结果实际结果1车辆信息添加测试输入正确格式的车辆信息添加成功添加成功2车辆信息添加测试不输入车辆型号添加失败添加失败3车辆信息添加测试上传错误的照片格式添加失败添加失败6.2.3订单支付测试用例用户要进行订单支付,有个前提就是这个订单以被管理员修改订单状态,应该为完成状态,并且根据服务进行业务报价,在报价完成后,再由用户进行订单支付,下面共有三条订单支付测试用例信息:如表6.3所示。表6.3订单支付测试用例表测试编号测试目的操作步骤预期结果实际结果1订单支付测试报价后支付支付成功支付成功2订单支付测试订单完成前支付支付失败支付失败3订单支付测试订单报价前支付支付失败支付失败6.3测试分析本汽车4S店汽车维修管理系统在设计时考虑很多方便用户使用的点,也在测试中尽量的排除了错误,并且当出现操作错误时,都有对应的提示语句,这样十分方便用户使用,而且界面简单易懂,没有繁杂的按钮和跳转,当用户登录后,动态显示业务的功能完善,会根据登录账号类型显示不同的业务,而且系统的基本功能完整可靠,系统运行稳定性高,能够在多个系统上运行发展前景广阔。结论本次设计中,主要使用了JAVA编程语言、MYSQL数据库和SSM框架,并且从硬件与软件两个方向来阐述了本系统,基于SSM的汽车4S店维修保养管理系统的可行性。本文的结论以及研究成果如下:实现了JAVA与MYSQL相结合构建的服务管理系统,网站可以响应式展示。通过这次系统设计,我大有感悟,首先就是系统设计经验上的不足,以及在编程过程中遇到了种种技术性困难,比如日期类型转换问题等等,都印证了学海无涯,我的不足之处还有很多,比如对功能设计上可能还有一些不周全的地方,其中页面美化也是主要使用了BootStrap在线引入技术,希望能够多多进行系统开发,积累经验,完善自己的能力。在开发中,所用的大部分都是已经学会的知识,更好的情况是应该采用一些新技术并且融合网上那些大佬们的思路,因为写过的小Demo比较多,对JAVA基础知识也比较牢固,所以在开发前期遇到的问题还是比较少的,几乎是一帆风顺,但是后面就开始问题频出,比如页面显示的分辨率问题,让我意识到了前端能力上的不足,因为我的梦想就是做一名JAVA开发程序员嘛,所以一直将重心放在后端实现上,前端的知识了解是十分有限的,但是中途也在CSDN上查询了很多资料,尽可能的解决问题,如果实在解决不了,也换方位思考采用了其他方法实现,因为这次系统开发需要处理的数据量比较小,所以在数据处理上还是不会乱套的,在网上查询的资料给了我很多启发,虽然说每个人编程的思路可能会有很多不用,但是技术上要学习的细节还是很多的,而且正因为思路不同,在看到其他人的思路时才会产生碰撞,这个对自己能力的提升也是大有裨益,在下次进行业务开发时,就能够权衡多种方法的利弊,从而可以选择的方法就更多了,以避免碰到问题时捉襟见肘。在通过不断学习,我也逐渐完善了这个维修保养管理系统,无论是在后端实现上还是前端美化上,都下了很大的功夫,会的东西一点点扣,不会的东西就,慢慢学,最终开发出了这样的一套系统,功能完善,界面漂亮,使用方便。参考文献[1]马芯.基于微信平台的4S店智能管理系统的设计与实现[D].辽宁:大连海事大学,2020.[2]赵文静.汽车4S店客户关系管理系统的设计与实现[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江宁波市余姚市信访局招聘编外人员1人备考题库附答案详解(达标题)
- 2026江西赣州市龙南市殡葬服务中心招聘会计人员1人备考题库含答案详解(夺分金卷)
- 2026贵州铝业集团双元新材料有限责任公司招聘6人备考题库含答案详解(黄金题型)
- 2026浙江温州市瑞安市城市照明设施建设管理中心招聘临时人员1人备考题库完整答案详解
- 2026黑龙江齐齐哈尔市龙沙区南航街道公益性岗位招聘1人备考题库及参考答案详解
- 2026江西赣州市第三人民医院招募第一批青年见习46人备考题库及答案详解1套
- 浙商银行嘉兴分行2026年一季度社会招聘备考题库附参考答案详解(培优)
- 2026重庆科学城驿都实验学校招聘3人备考题库附答案详解(巩固)
- 2026湖北事业单位联考松滋市招聘203人备考题库含答案详解(轻巧夺冠)
- 互动式学习平台构建-洞察与解读
- 2025年律师事务所党支部书记年终述职报告
- 2025-2026 学年第一学期大一高等数学期末考试试卷
- 2025年高考(新高考Ⅱ卷)数学试题及答案
- 医院外联部主任述职报告
- 2025年广东省高考语文试卷(含标准答案)
- 2025年驾照三例测试题及答案
- 《机械制图》 期末考试试题(附标准答案)
- new s-pro系列提案书海信日立空调营销股份
- 停课不停教隔空云教学
评论
0/150
提交评论