网上商城信息管理系统设计

如今已是2020年,互联网已经成为社会发展不可或缺的是工具,消费者的购物方式也发生了巨大的改变,京东淘宝等商城已经成为消费者购物的聚集地。本设计是在数据管理的基础上设计的购物管理系统,整个系统分为前段和后端两个部分。前段网页实现了热门商品展示

  引言

  在“互联网+”的时代背景下,我国市场经济和信息化水平随着互联网的发展而不断的提高。在这时代背景下的企业也面临着巨大的挑战,所谓“物竞天择,适者生存”,他们只有利于符合社会发展的管理手段和管理方式,才能提高公司企业的管理水平,拓展产品销售途径。以前商店运营的模式,是购买进一些顾客需求的商品,例如:电子数码、服装、食品等商品,销售给周围需要的消费者。这样就产生了三个问题,一是商店空间大小有限,只能存放有限的商品数量,二是管理商店需要大量的服务人员,这样会导致收银利润的下降,三是售卖群体有限,只能销售给周围的消费者,也降低了收银利润。如果将线下商城改为线上商城,就可以扩大商品的存储量,拓展售卖的群体,降低人力资源的浪费,从而提高公司企业的管理水平,提高商品库存效率,增加公司年度利润。
  如今社会,我国大部分人民生活富裕,每家每户都有手机等电子产品,他们的消费模式也逐渐的从线下转变为线上消费模式。像淘宝、京东和拼多多等大型网上商城已经成为网民生活当中必不可少的一部分。根据网络状况统计报告[1]P16中提出,至今已有6.39亿网上购物的用户,比例占全网百分之74.8。又因为抖音、快手等APP横空出世,直播带货直接成为网络销售的新模式。由此可见网上购物已经成为了一种潮流,成为了未来发展的趋势。
  在这科技高速发展的时代,互联网技术已经运用到人类社会中每个领域当中,并对每个领域产生不可替代的作用。商店信息管理系统也将被计算机软件技术所实现。用电脑来管理信息有在人工所无法相比的优势。如:信息查找方便、存储量大、保密性好、运算速度快而准确[2]P16等。这些优点可以提高信息化管理的效率,它们是真正意义上的合理管理资源,也是科学规范的企业管理和与世界接轨的主要条件
  本论文主要考虑了在“互联网+”的时代背景下,商品销售模式的改变,将互联网与销售企业相结合。此次课题包括研究背景、目的意义、实例需求分析等。开发时,需要以用户的角度去考虑各种需求问题,因为最后还是需要用户去使用管理这个网站,一切要为用户考虑,让用户尽可能地有着最简洁方便的操作,能够快速的运用使用商品网站的各个功能。

  1.开发工具及相关技术

  在开发工具及相关技术这一部分主要讲述了关于本系统所需要的开发软件和运行环境,使用的相关java框架[3]P16,数据库和eclipse软件[4]P16等功能的介绍。

  1.1Springmvc框架

  SpringMVC是一种轻量级WEB框架,MVC设计模型是在java上实现的。SpringMVC框架是通过围绕前端控制器来实现的,最后响应给浏览器。这样可以是软件架构清晰化,增强可读性。有利于后期的扩展和维护,并且重复代码可以复用

  1.2MyBatis框架

  MyBatis是一个出色的持久层框架,它支持自定义SQL,存储过程和高级映射[5]P16。Mybatis对jdbc访问数据库进行封装,您可以通过配置文件直接配置连接,通过框架管理这些事情并简化开发过程。

  1.3HTML和JavaScript

  HTML一种标准标记语言,要了构造网页而生,它定义了Web内容的含义和结构。
  JavaScript简称JS,是一门专门嵌入在浏览器中执行的脚本语言,负责实现网页的画面效果。

  1.4网站开发和运行环境

  商城网站使用的是Eclipse开发工具,使用Java语言,在JDK 1.8版本的编译环境下运行,在Google Chrome浏览器上调试和运行。
  1.4.1开发工具
  (1)Eclipse
  Eclipse是做商城系统的必备软件,它是一个基于java的开发软件,可以创建java项目。
  (2)MySQL数据库
  MySQL数据库就是指存储和管理数据的仓库,本次设计中的商城软件系统需要的SQL数据就存入MySQL中。
  该项目在MySQL数据库上执行数据库操作。实现数据的提取,修改和存储[6]P16。其本质是添加,删除,修改和检查数据,对应于数据库执行语句中的四个关键字insert,delete,update和select。只要使用这四个关键字,就可以轻松地处理项目中的数据。
  1.4.2运行环境
  本系统开发的硬件平台:
  (1)内存:16G
  (2)CPU处理器:Intel(R)Core(TM)i5-8300H CPU 2.30GHz
  (3)硬盘容量:1T
  (4)操作系统:Windows 10

  2.系统需求分析

  2.1可行性分析

  2.1.1技术可行性
  商城网站是在互联网上运行的系统,在硬件方面来讲,当前绝大部分计算机的硬件配置都能够满足开发的的需求。从软件方面考虑,商城网站的前端使用JavaScript、HTML和SpringMVC框架,后端采用三层结构,从而有效降低客户端的负荷[7]P16,使运行流畅度增加,降低维护成本。用了Tomcat9.0服务器[8]P16,数据库使用MySQL。MySQL是一种关系数据库管理系统,关系数据库可以将数据保存在不同的表中。
  2.1.2经济可行性
  随着人们对商品的样式质量需求越来越多,但是大多数人并没有大量的时间去挑选商品,并且随着互联网的普及,网上商城系统越来越繁荣,人们更加倾向于在网上商城购物消费,并且手机电脑非常普及,每个人都可以轻松的到网上商城里面去浏览商品。此网上商城网站的开发基于已有的计算机设备进行开发,成本低。所以从经济的角度来看,该系统可行。
  2.1.3操作可行性
  至今2020年,中国在互联网上面也取得了一定的成就,许多人也到可以熟练运用互联网,因此基于互联网的商城网站,对于人们可以轻易上手。管理员可以轻松的分类管理商品、添加删除修改商品和管理商品订单。用户只要注册登录上去,就可以轻松的选择购买商品。因此,开发删除管理系统网站还是可行的

  2.2需求分析

  需求分析是在上述分析及对用户深入调查研究的基础上,从用户的自身角度出发,提炼分析用户的真实需求并逐步细化,而基于这些需求,可以深度挖掘出用户的真正目标功能,并给出符合系统定位的解决方案。本系统需要满足公司和消费者的需求。在公司方面,本系统设计了后台管理模块,后台管理拥有三个大功能,分别是商品管理模块、分类模块和订单管理模块。分类管理可以设置商品类别。例如:电子数码、运动户外等类别,商品管理可以对商品进行增删改查,在增加商品的同时,可以将商品归纳到所属的类别当中。订单管理可以查看消费者购买商品的支付情况。在消费者方面,本系统设计了注册登录、商品分类展示、热门商品和最新商品的展示、购物车和订单管理等模块。这些模块配合起来可以满足大部分消费者的基本需求。

  2.3系统业务流程

  2.3.1系统流程
  商城网站共分为两个系统为用户系统和管理员系统。用户系统的主要流程为:进入商城网站首页,根据使用者是否有账号进行登录注册操作。如果用户忘记密码可以进行密码修改。登录后用户可以进行商品分类的选择[8]P16,也可以选择热门的商品,对于喜欢的商品可以选择加入购物车或者直接支付,支付时可以填写自己的收货地址,手机号等,支付方式可以选择各种银行卡进行支付,管理员系统的主要流程为:管理与用户系统相对应用户数据,分类数据,商品数据,订单数据,订单的已支付和未支付数据和商品数据的增删改查。
  商城网站系统的流程图如图2-1所示。
  图2-1商城网站系统流程图
  2.3.2业务流程描述
  商城网站可以分为七个模块,每一模块都拥有自己的使命,它们既是相互独立的,又是相互合作的关系。
  系统的功能模块如图2-2所示
  图2-2系统功能模块
  每个模块的功能详细介绍如下:
  (1)商品分类
  本模块实现了对商品进行分类,并且展现都每个页面上面。用户可以根据分类的商品进行选择。
  商品分类:管理员先设置一些常用的商品类别,例如手机数码、电脑办公、运动户外等。然后在添加商品时,将商品添加到对应的商品类别中。
  商品详情:展示商品的详情图片及商品参数、价格、颜色、是否缺货、是否热门等。
  (2)注册登录
  该模块主要负责用户的登录注册功能,没有注册的人会提示你注册用户,如果已经注册好的用户忘记密码是可以选择忘记密码进行密码修改功能,密码修改成功后要进行重新登录。在用户注册是需要填写一些个人的基本信息,例如:用户名、手机号、邮箱等[9]P16。
  (3)购物车
  该模块可以实现将物品添加入购物车中,保存下来,点击付款可以进行订单支付。购物车中的商品也可以实现编辑和删除操作。点击付款时会跳转到订单支付页面,在支付订单前需要填写用户的个人信息,例如:收货地址、手机号、收货人姓名等相关信息,最后选择支付方式。
  (4)地址管理
  地址管理:可以修改用户收货地址
  (5)订单管理
  订单管理:已登录的用户在提交订单时,需要填写用户的个人信息,例如:收货地址、手机号、收货人姓名等相关信息,最后选择支付方式。
  (6)后台商品管理模块
  商品管理模块由商品管理和分类管理组成,分类管理可以设置商品类别。例如:电子数码、运动户外等类别,商品管理可以对商品进行增删改查,在增加商品的同时,可以将商品归纳到所属的类别当中。
  (7)订单管理模块
  订单管理:所有订单、未支付订单、已支付订单、已发货订单和已完成订单

  3.系统设计

  3.1系统架构

  根据商城系统的业务、功能的需求分析,对系统的规划有了大概的模型,整个商城系统的架构就是使用LNMP技术去实现服务端,客户端则使用HTML页面[10]P16通过Ajax调用服务端接口开发。整个商城系统分为前端和后端两大部分,后端也会提供一套API接口的服务供前端去使用,页面的渲染让客户端去完成,而不是在服务端直接返回,这样做的一个最大的好处就是,降低服务器CPU和内存的消耗,大流量的情况下,这样做的效果还是很明显的。同时这样做还有利于不同客户端的接入。

  3.2功能模块设计

  功能模块设计由前段和后端组成,前端主要的功能就是面向用户的,让用户可以正常的进行商品购买,后端主要做一些网站的管理操作。

  3.3数据库设计

  数据库设计在商城网站的设计中有着非常重要的作用,因为数据库会直接影响到商城网站的运行速度以及效率,所以网站必须要设计成相对完美的数据库结构体系[11]P16,可以使商城网站能够十分流畅和高效率的运行。因此在网站开发之前就需要根据需求分析来构造最优的数据库模式,建立与购物中心网站相对应的表以有效存储数据将满足用户的应用需求,并为后续的逻辑结构设计奠定基础。
  3.3.1概念数据库设计
  根据商城系统的需求分析,可以规划画出商品、订单和购物车之间的ER图如下:
  图3-1实体之间总体ER图
  3.3.2数据库表设计
  其实现在的绝大多数的网站的本质都是对数据库中的数据进行调用、处理和删除,这些操作都是基于数据本身的。所以对数据的存储方式,数据类型的定义,表的设计这些都是至关重要的[12]P16。因此,根据商城网站的需求分析设计了下面的数据表。
  (1)管理员信息表(lag_manage)用来存储每个管理员信息,管理员信息表如表3-2所示。
  表3-2管理员信息表(lag_manage)
  列名数据类型意义允许为空
  id int管理员ID否
  mname varchar管理员账号否
  mpassword varchar管理员密码否
  (2)用户信息表(user)用来存放用户信息,用户信息表如表3-3所示。
  表3-3用户信息表(user)
  列名数据类型意义允许为空
  uid varchar用户ID否
  username varchar用户名否
  password varchar密码否
  name varchar姓名否
  email varchar邮箱否
  telephone varchar手机号是
  Birthday date生日是
  Sex varchar性别是
  state int是否激活否
  Code varchar编码是
  (3)商品信息表(product)用来商品信息,商品信息如表3-4所示。
  表3-4商品信息表
  列名数据类型意义运行为空
  pid varchar属性id否
  pname varchar产品名称否
  Market_price double正常价格否
  Shop_price double热门价格否
  pimage varchar图片否
  pdate date日期否
  Is_hot Int是否热门否
  pdesc varchar说明否
  pflag int否
  cid varchar属性id否
  (4)商品分类属性表(category)用来存放商品分类信息,商品分类属性表3-5所示。
  表3-5商品分类属性表
  列名数据类型意义允许为空
  cid varchar属性Id否
  Cname varchar分类名称否
  (5)订单表(orders)用来存放订单信息,订单表如表3-6所示
  表3-6订单表
  列名数据类型意义允许为空
  oid varchar订单id否
  ordertime datetime订单状态否
  total double总金额是
  state int激活否
  address varchar详细地址否
  name varchar收货人姓名否
  telephone varchar收货人手机号否
  uid varchar用户id否

  4.系统的功能实现

  根据之前提供的需求分析,数据库的设计和表的属性以及表与表之间的逻辑关系。可以进行商城网站的开发阶段,将之前提出的模块功能进行实现。其主要开发任务是设计开发每个模块的实现算法和模块所需的数据调用查询修改,在接下来的系统实现过程中,将会按流程实现各个模块功能。

  4.1网站首页面设计

  这是进入网站的第一个界面。本商城网站首页应该显示有关该网站的信息,包括网站的主要功能介绍和网站应该如何使用,还有热门商品的展现,最新商品的展示,商品的分类等等。当然首页必不可少有登录注册按钮,点击可以进入登录注册模块。系统首页的运行效果如图4-1所示。
网上商城信息管理系统设计
  图4-1网站首页界面图

  4.2用户登录注册模块的实现

  4.2.1用户注册的实现
  新用户首先需要进入本网站的首页进行注册,需要填写用户名,密码以及电子邮箱,注册界面如图4-2所示。
  图4-2用户注册界面图
  用户在注册过程中,注册用户名,登陆密码和电子邮件为必填项,有一个密码二次输入进行验证,填写完相关信息,点击注册即注册成功。
  4.2.2分类管理的实现
  为了便于前台用户相对快速的找到自己想要浏览的商品,设计商品分类的功能,将一些类别相同的商品放入一个指定的类别中。这样在此分类下创建商品的话,就需要按照这个分类的属性的模板去填写商品相关的属性这样就为后台商品管理定义了一种规范,使流程更加清晰。商品分类包含分类名,描述,图标等一些信息,分类管理如图4-3所示
  图4-3分类管理界面
  4.2.3商品管理的实现
  点击商品可以查看到商品的详细信息,如:商品的价格,颜色,参数,评价等等,商品管理如图4-4所示
  图4-4商品管理界面图
  4.2.4购物车管理的实现
  用户在浏览商品后,对于比较满意的商品添加到购物车,购物车界面如图4-5所示:
  图4-5购物车界面
  4.2.5商品订单的管理
  在商品订单页面,可以填写用户的收货地址,联系方式,用户支付的方式等订单管理页面如图4-6所示:
  图4-6订单管理页面
  4.2.6后台商品管理
  管理员拥有管理后台商品管理界面的权限,可以进行对基础数据维护操作,管理员可以对商品进行增删改查的权限。管理员数据操作界面如图4-7所示:
网上商城信息管理系统设计
  图4-7后台商品管理界面
  4.2.7后台商品分类管理
  管理员拥有管理后台商品分类管理界面的权限,可以对商品的类型添加分类。管理员数据操作界面如图4-8,4-9所示:
  图4-8后台商品分类管理
  图4-9后台商品分类管理
  4.2.8后台商品订单管理
  管理员进入后台商品订单管理中可以查看商品所有的订单,已支付、未支付、已发货和已完成的订单,以及可以查看每个订单的详细情况,后台商品订单管理如4-10,4-11所示:
网上商城信息管理系统设计
  图4-10后台商品订单管理界面
  图4-11后台商品订单管理界面

  总结

  本次设计的课题是网上商城信息管理系统,从选题、任务书、开题报告到中期检查再到初稿,经过这些过程的检查和这几个月以来的准备、思考及完善,基本上已经完成了预期的任务。在这个过程当中,我查看了大量的有关资料,仔细的阅读了老师所发送的有关文献资料。在刚开始的时候,可以来说对本次设计是无从下手,连一点设计的方向都没有,存在着很多的问题,感觉是非常的困难的。但是呢,困难并不可怕,经过不懈努力之后,它是够是被解决的,所以,在思考了一些办法之后便开始着手面对这个问题。
  毕业论文是在我们在毕业之前所要完成的最后一项作业,它是对我们整个大学四年所学到的知识的一种综合应用。通过此次毕业设计能够反应出我们对知识的了解程度到底有多少,从刚开始接触到题目到慢慢的有了自己的思想,然后对问题进行分析思考并提出了解决问题的方法等等,这都在培养我独立思考、解决问题的能力,不仅对知识的总结有用而且对我以后的学习和生活也产生了影响,这都将是我成长的路上的宝贵财富。
  本文主要研究java和数据库的知识,利用SpringMVC架构技术把所有的技术都应用到商城系统的设计和实现中。通过对系统的设计,全面了解了商城网站系统所需求的相关功能,并且利用系统能够解决现实当中的实际问题,帮助人民降低操作成本和工作难度,提高营业利润。
  通过对系统的需求进行了详细的分析,画出了业务详细的流程图,然后确定系统分为哪几个模块,并对各个模块进行了详细的阐述,为后续的设计与实现中打下了比较好的基础。
  在本商品信息管理系统中,管理员可以有效实现面对各种商品进行管理操作,可以对商品的种类进行分类管理,对于顾客的订单状态进行分类管理,消费者可以对于喜欢的商品进行添加到购物车的操作,对于购买商品进行订单信息的填写等。
  在该系统的实现过程中,由于受到本人技术有限制,在开发思想和技术上还存在一些局限性,也由于时间的限制,一些新的功能没有来得及实现,例如订单支付功能等。在移动互联网高速发展的今天,网上购物的消费方式已经成为大部分人民的选择,电子商城在未来需要提高系统的信息管理功能和新增新的一些功能,尽力满足绝大部分用户的需求,这也是一个重要的教育和挑战,也会抓住这个难得的机遇来研究更完善的商品信息管理系统。

  参考文献

  [1]杨清兰.基于J2EE的图书管理系统分析与功能模块划分[J].内蒙古科技与经济,2014(07).
  [2]甄海涛杨卓林赵寒涛.基于SSM架构的项目管理平台设计[J].自动化技术与应用,2019(05).
  [3]吴兰岸.常用交互性在线练习题实现技术研究[J].中国教育信息化,2013(08).
  [4]涂剑波.电子商务平台用户购买意愿的影响因素研究[J].管理观察,2015(02).
  [5]李帅力.基于SpringMVC及MyBatis框架的智慧园区访客管理系统的设计与实现[J].中国优秀硕士学位论文全文数据库,2016(06).
  [6]许鹏.基于SSM框架的高校教师业绩考核系统设计与实现[J].攀枝花学院学报,2019(02).
  [7]李晨张震.基于NET的电子商务系统平台构建[J].产业与科技论坛,2010(09).
  [8]李海军赵立双.基于thinkphp的课外活动选课平台的设计与实现[J].电脑与信息技术,2018(2).
  [9]程欲1张捷平1王玉杰2张霁辉2施红.不同程度美拉德反应下石斛合剂对糖尿病治疗的影响[J].中国科技纵横,2017(24).
  [10]李维虎景中昌郭光建.“五大”体系业务流程管控与绩效评价系统设计与应用[J].电力信息化,2013(02).
  [11]刘志平.高职院校学生成绩管理系统的应用[J].商业文化(学术版),2008(08).
  [12]王安国.基于ASPNET的大学生团购网站[J].技术与市场,2012(11).

  致谢

  行文至此,也意味着我的大学四年即将结束。时间飞速而逝,疫情突发,不知不觉大四的下半学期就在家里度过了,还未来的及和学校、老师和同学道别,回想往事,皆是依依不舍的美好回忆。
  为了完成毕业设计,我们总结了大学四年所学习的知识,也认清了自己的能力。同时,也我们改变一些处理事情时懒散的习惯。从最开始的搜集资料,整理资料,到方案选择,确定方案,再到着手开始进行商城网站基础设施、添加功能和优化页面的设计,每一步都是环环相扣,衔接紧密,其中任何一个步骤产生遗漏或者疏忽,就会对以后的设计带来很多的不便。学生的动手能力和资料搜集能力在设计中也有所提升。毕业设计中很多代码、注解、设计方法都需要我们去耐心地查阅书籍,浏览资料,设计中需要用到软件,也需要我们耐心的学习。掌握其使用的要领,运用到设计当中去。最后汇总的时候,需要将前期各个阶段的工作认真整理,在设计中运行起来。
  我做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节导师都给予了我悉心的指导。这几个月以来,导师不仅在学业上给我以精心指导,同时还在思想给我以无微不至的关怀,在此谨向我的导师致以诚挚的谢意和崇高的敬意。

  附录

  /**
  *和用户注册相关*/
  public class UserServlet extends BaseServlet{
  public String registUI(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
  return"/jsp/register.jsp";
  }
  public String regist(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.封装数据
  User user=new User();
  //注册自定义转化器
  ConvertUtils.register(new MyConventer(),Date.class);
  BeanUtils.populate(user,request.getParameterMap());
  //1.1设置用户id
  user.setUid(UUIDUtils.getId());
  //1.2设置激活码
  user.setCode(UUIDUtils.getCode());
  //1.3加密密码
  //user.setPassword(MD5Utils.md5(user.getPassword()));
  //2.调用service完成注册
  UserService s=(UserService)BeanFactory.getBean("UserService");
  s.regist(user);
  //3.页面请求转发
  request.setAttribute("msg","用户注册已成功,请去邮箱激活~~");
  return"/jsp/msg.jsp";
  }
  public String active(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.获取激活码
  String code=request.getParameter("code");
  //2.调用service完成激活
  UserService s=(UserService)BeanFactory.getBean("UserService");
  User user=s.active(code);
  if(user==null){
  //通过激活码没有找到用户
  request.setAttribute("msg","请重新激活");
  }else{
  //添加信息
  request.setAttribute("msg","激活成功");
  }
  //3.请求转发到msg.jsp
  return"/jsp/msg.jsp";
  }
  public String loginUI(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
  return"/jsp/login.jsp";
  }
  public String login(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.获取用户名和密码
  String username=request.getParameter("username");
  String password=request.getParameter("password");
  //password=MD5Utils.md5(password);
  //2.调用serive完成登录操作返回user
  UserService s=(UserService)BeanFactory.getBean("UserService");
  User user=s.login(username,password);
  //3.判断用户
  if(user==null){
  //用户名密码不匹配
  request.setAttribute("msg","用户名密码不匹配");
  return"/jsp/login.jsp";
  }else{
  //继续判断用户的状态是否激活
  if(Constant.USER_IS_ACTIVE!=user.getState()){
  request.setAttribute("msg","用户未激活");
  return"/jsp/login.jsp";
  }
  }
  //4.将user放入session中重定向
  request.getSession().setAttribute("user",user);
  response.sendRedirect(request.getContextPath()+"/");///store
  return null;
  }
  public String logout(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
  //干掉session
  request.getSession().invalidate();
  //重定向
  response.sendRedirect(request.getContextPath());
  //处理自动登录
  return null;
  }
  }
  /**
  *查询所有的分类
  */
  public String findAll(HttpServletRequest request,HttpServletResponse response)
  throws ServletException,IOException{
  //1.调用categoryservice查询所有的分类返回值list
  CategoryService cs=(CategoryService)BeanFactory.getBean("CategoryService");
  List<Category>clist=null;
  try{
  clist=cs.findAll();
  }catch(Exception e){
  e.printStackTrace();
  }
  //2.将返回值转成json格式返回到页面上
  //request.setAttribute("clist",clist);
  String json=JsonUtil.list2json(clist);
  //3.写回去
  response.setContentType("text/html;charset=utf-8");
  response.getWriter().println(json);
  return null;
  }
  /**
  *商品
  */
  public class ProductServlet extends BaseServlet{
  private static final long serialVersionUID=1L;
  /**
  *通过id查询单个商品详情
  * throws Exception
  */
  public String getById(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.获取商品的id
  String pid=request.getParameter("pid");
  //2.调用service
  //ProductService ps=new ProductServiceImpl();
  ProductService ps=(ProductService)BeanFactory.getBean("ProductService");
  Product p=ps.getByPid(pid);
  //3.将结果放入request中请求转发
  request.setAttribute("bean",p);
  return"/jsp/product_info.jsp";
  }
  /**
  *分页查询数据
  * param request
  * param response
  * return
  * throws Exception
  */
  public String findByPage(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.获取类别当前页设置一个pagesize
  String cid=request.getParameter("cid");
  int currPage=Integer.parseInt(request.getParameter("currPage"));
  int pageSize=12;
  //2.调用service返回值pagebean
  ProductService ps=(ProductService)BeanFactory.getBean("ProductService");
  PageBean<Product>bean=ps.findByPage(currPage,pageSize,cid);
  //3.将结果放入request中请求转发
  request.setAttribute("pb",bean);
  return"/jsp/product_list.jsp";
  }
  }
  /**
  *购物车模块
  */
  public class CartServlet extends BaseServlet{
  private static final long serialVersionUID=1L;
  /**
  *获取购物车
  * param request
  * return
  */
  public Cart getCart(HttpServletRequest request){
  Cart cart=(Cart)request.getSession().getAttribute("cart");
  //判断购物车是否为空
  if(cart==null){
  //创建一个cart
  cart=new Cart();
  //添加到session中
  request.getSession().setAttribute("cart",cart);
  }
  return cart;
  }
  /**
  *添加到购物车
  * param request
  * param response
  * return
  * throws Exception
  */
  public String add(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.获取pid和数量
  String pid=request.getParameter("pid");
  int count=Integer.parseInt(request.getParameter("count"));
  //2.调用productservice通过pid获取一个商品
  ProductService ps=(ProductService)BeanFactory.getBean("ProductService");
  Product product=ps.getByPid(pid);
  //3.组装成CartItem
  CartItem cartItem=new CartItem(product,count);
  //4.添加到购物车
  Cart cart=getCart(request);
  cart.add2Cart(cartItem);
  //5.重定向
  response.sendRedirect(request.getContextPath()+"/jsp/cart.jsp");
  return null;
  }
  /**
  *从购物车中移除购物车项
  * param request
  * param response
  * return
  * throws Exception
  */
  public String remove(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.获取商品的pid
  String pid=request.getParameter("pid");
  //2.调用购物车的remove方法
  getCart(request).removeFromCart(pid);
  //3.重定向
  response.sendRedirect(request.getContextPath()+"/jsp/cart.jsp");
  return null;
  }
  /**
  *清空购物车
  * param request
  * param response
  * return
  * throws Exception
  */
  public String clear(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //获取购物车清空
  getCart(request).clearCart();
  response.sendRedirect(request.getContextPath()+"/jsp/cart.jsp");
  return null;
  }
  /**
  *后台商品管理
  */
  public class AdminProductServlet extends BaseServlet{
  /**
  *查询所有商品
  * param request
  * param response
  * return
  * throws Exception
  */
  public String findAll(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.调用service查询所有返回一个list
  ProductService ps=(ProductService)BeanFactory.getBean("ProductService");
  List<Product>list=ps.findAll();
  //2.将list放入request域中请求转发
  request.setAttribute("list",list);
  return"/admin/product/list.jsp";
  }
  /**
  *跳转到添加商品的页面
  * param request
  * param response
  * return
  * throws Exception
  */
  public String addUI(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //查询所有的分类返回list
  CategoryService cs=(CategoryService)BeanFactory.getBean("CategoryService");
  List<Category>clist=cs.findAll();
  //将list放入request
  request.setAttribute("clist",clist);
  return"/admin/product/add.jsp";
  }
  }
  /**
  *后台分类管理
  */
  public class AdminCategoryServlet extends BaseServlet{
  /**
  *展示所有分类
  * param request
  * param response
  * return
  * throws Exception
  */
  public String findAll(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.调用categoryservice查询所有的分类信息返回值list
  CategoryService cs=(CategoryService)BeanFactory.getBean("CategoryService");
  List<Category>list=cs.findAll();
  //2.将list放入request域中请求转发即可
  request.setAttribute("list",list);
  return"/admin/category/list.jsp";
  }
  /**
  *跳转到添加页面上
  * param request
  * param response
  * return
  * throws Exception
  */
  public String addUI(HttpServletRequest request,HttpServletResponse response)throws Exception{
  return"/admin/category/add.jsp";
  }
  public String add(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.接受cname
  String cname=request.getParameter("cname");
  //2.封装category
  Category c=new Category();
  c.setCid(UUIDUtils.getId());
  c.setCname(cname);
  //3.调用service完成添加操作
  CategoryService cs=(CategoryService)BeanFactory.getBean("CategoryService");
  cs.add(c);
  //4.重定向查询所有分类
  response.sendRedirect(request.getContextPath()+"/adminCategory?method=findAll");
  return null;
  }
  /**
  *通过id获取分类信息
  * param request
  * param response
  * return
  * throws Exception
  */
  public String getById(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.接受cid
  String cid=request.getParameter("cid");
  //2调用service完成查询操作返回值:category
  CategoryService cs=(CategoryService)BeanFactory.getBean("CategoryService");
  Category c=cs.getById(cid);
  //3.将category放入request域中,请求转发/admin/category/edit.jsp
  request.setAttribute("bean",c);
  return"/admin/category/edit.jsp";
  }
  /**
  *更新分类信息方法
  * param request
  * param response
  * return
  * throws Exception
  */
  public String update(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.获取cid cname
  //2.封装参数
  Category c=new Category();
  c.setCid(request.getParameter("cid"));
  c.setCname(request.getParameter("cname"));
  //3.调用service完成更新操作
  CategoryService cs=(CategoryService)BeanFactory.getBean("CategoryService");
  cs.update(c);
  //4.重定向查询所有
  response.sendRedirect(request.getContextPath()+"/adminCategory?method=findAll");
  return null;
  }
  /**
  *删除分类
  * param request
  * param response
  * return
  * throws Exception
  */
  public String delete(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.获取cid
  String cid=request.getParameter("cid");
  //2.调用service完成删除
  CategoryService cs=(CategoryService)BeanFactory.getBean("CategoryService");
  cs.delete(cid);
  //3.重定向
  response.sendRedirect(request.getContextPath()+"/adminCategory?method=findAll");
  return null;
  }
  }
  /**
  *后台订单模块
  */
  public class AdminOrderServlet extends BaseServlet{
  private static final long serialVersionUID=1L;
  /**
  *查询订单
  * throws Exception
  */
  public String findAllByState(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.接受state
  String state=request.getParameter("state");
  //2.调用service
  OrderService os=(OrderService)BeanFactory.getBean("OrderService");
  List<Order>list=os.findAllByState(state);
  //3.将list放入域中请求转发
  request.setAttribute("list",list);
  return"/admin/order/list.jsp";
  }
  /**
  *查询订单详情
  * param request
  * param response
  * return
  * throws Exception
  */
  public String getDetailByOid(HttpServletRequest request,HttpServletResponse response)throws Exception{
  response.setContentType("text/html;charset=utf-8");
  //1.接受oid
  String oid=request.getParameter("oid");
  //2.调用serivce查询订单详情返回值list<OrderItem>
  OrderService os=(OrderService)BeanFactory.getBean("OrderService");
  List<OrderItem>items=os.getById(oid).getItems();
  //3.将list转成json写回
  //排除不用写回去的数据
  JsonConfig config=JsonUtil.configJson(new String[]{"class","itemid","order"});
  JSONArray json=JSONArray.fromObject(items,config);
  //System.out.println(json);
  response.getWriter().println(json);
  return null;
  }
  /*
  *修改订单状态
  */
  public String updateState(HttpServletRequest request,HttpServletResponse response)throws Exception{
  //1.接受oid state
  String oid=request.getParameter("oid");
  String state=request.getParameter("state");
  //2.调用service
  OrderService os=(OrderService)BeanFactory.getBean("OrderService");
  Order order=os.getById(oid);
  order.setState(2);
  os.update(order);
  //3.页面重定向
  response.sendRedirect(request.getContextPath()+"/adminOrder?method=findAllByState&state=1");
  return null;
  }
  }
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.sbvv.cn/chachong/14777.html,

(0)
写文章小能手的头像写文章小能手游客
上一篇 2021年11月3日
下一篇 2021年11月3日

相关推荐

My title page contents