版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着信息技术的发展的来临,人类迎来了全新的时代。其中,作为最重要的产物—互联网已经在默默改变着人们的生活习惯。随着互联网时代的降临,人们以前认知的许多事物都跟着时代在潜移默化。尤以人们离不开的购物来讲,随着时代的改变,以前的一些行为方式已经被时代所抛弃,迎之而来的是全新的领域与方式—线上消费,与之前所经历的传统模式相较,线上消费具有很多传统方式所不能拥有的有点,如线上交易把交易的客体变得更加地方透明,可以让用户更加了解所选购的商品;同时,线上交易也越来越方便,与之前相比,足不出户就可以办好一些事情,既节省了人力也节约了物力;而且线上交易的商品数量之巨,无可披靡,天南地北不分地域的就可以买到用户喜欢的商品。总而言之,作为现在的开发人员必须要作出一个即安全又方便的系统就显得尤为重要了。本次设计的系统与以前使用的系统相比较而言,此系统让用户使用更方便,信息更安全,商品数量巨大等优势。而且在分析阶段我们综合考虑了之前系统的生存现状,全面分析了开发此系统需要用到的技术与知识,努力将我们所学的理论与实践进行完美的结合,完成此次开发任务。需要完成的任务主要包括如下几方面:(1)系统的登陆页面的与众不同,(2)所需开发系统的技术与知识(3)系统数据库的搭建与填充(4)用户的各种私人功能,同时保护用户隐私,(5)管理员对系统的监察(6)安全并稳定的的系统。全文分为一下几个部分:(1)技术以及原理(2)系统的需求性分析(3)系统的分析与设计(4)系统实现(5)系统测试关键词:网上购物;SSM;Mysql数据库 前言由于时代在不停的发展与进步,人们以前所拥有的的某些生活方式必定会被时代所抛弃的,现在人们通过某种方式来达到自己某种目的的方式也充实起来,但伴之而来的是安全问题,如今安全是人们考虑的头等大事。以以前的购物习惯来说,人们在购物的过程中不仅麻烦,而且隐私安全也没有保障,而我们在分析系统的时候就已经考虑到这一点,开发一个既方便又安全的新系统来代替以前原始且落后的旧系统就显得尤为重要了。首先我们需要考虑技术的因素,通过时代的进步,现在的我们所使用的计算机的各种配置足够支撑我们自行开发一个安全、便利的新系统。本次主要通过开发一个全新的系统来满足现代人的购物方式,这样做不但可以大幅度改善国家的环保问题,还能满足现代人的需求,争取做到货物无国界。本次开发的新系统主要有如下功能:(1)普通用户的信息管理;(2)商品的展览;(3)管理员管理系统的后台与用户信息安全。本文大致分为六大部分,第一部分为主要讲述开发新系统所需要的各种技术与系统开发所需要的环境;第二章主要为对系统的各种需求进行彻底的分析,以此来了解系统开发之前需要准备的工作;第三章主要是对新系统的功能进行了全面的分析与设计,为系统的实现做铺垫;第四章是系统的实现部分,主要是作出系统的初级模型,以备后来的系统的面世;第五章是对系统进行各种压力测试,主要是为了确保新系统在复杂的生存环境中做到安全自己的同时也能保护客户信息安全;最后则为总结性内容,主要是为了对本次开发的一个总结与心理感悟,通过对此次开发的总结经验,可以明确知道自己的不足与优势,为以后的开发打下基础。1.技术及原理1.1系统的开发环境开发系统所需要的环境:以现存且已投入使用的Windows10版本的计算机。系统的数据库:使用安全、储存量大的Mysql数据库。JDK版本:利用最新的JDK1.8来加大系统的稳定性。开发系统所需的Tomcat版本:使用对系统的内存占用较小的Tomcat8.x。开发系统所使用的工具:IntelliJIDEA2019.2.4x641.2开发任务本次的开发任务是要设计出一个包括线下购物所需的所有工序的全方位的购物平台的同时也要实现管理员对系统,用户的实时管理管理与监控,努力做到比线下体验感更好的系统。1.3开发所需技术1.3.1Spring
Spring就像是一个大容器用来承载新系统的一些文件,在系统中可以选择一些参数去调用,也可以是在开发过程中一些代码的桥梁来连接双方。Spring的核心是控制反转,从之前的需要开发人员自己去新建对象到让Spring自主的创建新对象,方便了开发人员的人力与物力。
1.3.2SpringMVC
SpringMVC在系统的使用中会有拦截用户的一些请求的功能,以此来可以拦截用户的无用请求,既节省了系统的资源,也缓解了管理员的压力,同时还会让系统变得干净且安全,一举多得。1.3.3Mybatis
Mybatis不但可以用来包装待开发的系统,还可以让整个系统的的数据库低变得透亮,方便了开发人员。2.需求性分析2.1需求性分析时代的潮流冲击了现代人的生活习惯与思维方式,与之前简单的生活方式相比,现在复杂的国际环境与巨大的生活压力让人们自主的向便利、安全的生活方式靠拢。随着网上购物越来越便利且安全,对许多打工族来说简直就是福音,于是,人们的需求力推动着网上购物的发展,最终网上购物成为了最热门的生活习惯之一。本系统的目标是先将现实生活中人们的购物行为进行了虚拟化,然后让人们在线上就可以体会线下购物带来的快感的同时也不用考虑用户的安全问题,因为系统已经为用户做好强大的系统。2.2可行性分析:可行性分析也叫为可行性研究,对待开发的系统进行分析,深度分析开发系统的可行性和必要性。(1)技术可行性分析:技术可行性分析是分析中最重要的一步。主要分析的是存在某些特定的环境,分析开发新系统所消耗的技术能力等方面是否能够实现。在查找问题与系统是否能够投入使用的研究中,跟系统初步分析时相差无几,但开发新系统时考虑到开发新系统的目的、待开发系统的承载力和待开发系统的功能的不定性会给技术可行性分析增加阻碍。技术可行性的考虑主要是在已经开发并且投入使用的计算机能否支持待开发系统所需的环境,开发人员首先考虑的应该是准备使用的计算机的系统是否有开发新系统所需的的软件和硬件能够处理新系统的程序。其次应该考虑的是在已经选择好并且准备使用的平台之上,利用已经掌握的成熟技术是否能够搭建新系统,但随着计算机的迅速发展,为此为系统的建模提供了强大的技术的支持。(2)经济可行性分析:主要考量开发新系统所消耗的人力物力,计算待开发的系统一直到面世这段时间开发系统时所消耗的所有人力物力与新系统投入使用后给开发人员带来的经济效益。总的来说就是分析新系统投入使用后给开发人员带来的利润。这个分析的过程可以当做是开发系统的的成本与系统使用时带来的利润的分析。更通俗一点来说,经济可行性分析就是确定新系统与旧系统相比的带来的净利润,如果新系统所获得的净利润大于旧系统,则开发一个新系统是值得的;否则的话,这个新系统将是不值得开发的。(3)运行可行性分析:主要说的是开发人员的操作而不是说计算机系统操作是否可行,也就是正在使用的计算机系统需要的操作是否能够支持。(4)社会可行性分析:指的是开发中的新系统能否在双方约定的期限内测试成功并投入使用。基于待开发的系统,经过一些分析,可以在约定的时间内投入使用。2.4功能性需求:(1)商品的管理功能:商品列表、商品的类别、上架新商品、商品下线、管理商品的库存、分配商品、商品属性、图片管理。商品列表:商品的名称、商品独有的编号、商品上架时设置的价格、商品所属的类别、商品的详细内容、商品的宣传图片。商品的属性:商品属性所属类别、商品库存数量、商品所属状态、商品可支持的操作(属性列表、添加、编辑、移除)。商品上下架:商品名称。(2)订单管理:包含了未处理的订单列表和已处理的订单列表。未处理的订单:查看未处理的订单经过一系列操作后可将其状态改为已处理的订单。(3)用户管理:用户列表。用户类表:可对普通用户的信息完成查看、添加、修改以及删除操作。(4)个人信息管理:可以对个人信息进行查看与修改的操作。查看个人信息:可查看管理员自己设置的一些相关信息。修改个人信息:可修改管理员账户自己设置的秘钥。(5)权限管理:管理员、用户所拥有的功能。管理员包括:管理员设置的名称、管理员设置的邮箱地址、管理员使用系统的时间、管理员最后进入系统的时间、管理员的操作权限、管理员的操作。用户:用户注册账号时设置的名称、用户的描述、用户的操作(添加、编辑、移除)。2.5系统用例图图2.5网上购物系统管理员用例图图2.5.网上购物系统普通用户用例图2.6系统数据字典2.6.1商品信息(1)"商品信息"数据结构①商品名称:用户搜索商品时使用的第一信息。②商品的别名:商品的详细信息(用户搜索类似商品时使用)。③商品描述:管理员可以登录系统后台来编辑商品的详细信息以后选择上线,设置好商品应有的属性。④商品的定义:商品的详细信息由商品的编号、商品的第一名称、商品所属的类别、商品的价格、线上商品所剩余的数量、商品的宣传图片、商品的详细介绍、商品的销售量、商品上线的时间、商品状态的更新时间。2.6.2订单信息(1)“订单信息”数据结构①订单名字:订单所属的商铺名称。②订单类别:订单中商品的属性。③订单描述:用户支付成功后会创建订单,之后用户和管理员每次对订单状态的改动都会自动的上传。④订单定义:订单信息可以时由订单的编号、用户下单时预留的名称、订单的状态、购买商品的数量、商品的合计价格、快递单号、创建订单的时间、更新订单的时间。2.6.3用户信息(1)“用户信息”数据结构①用户的名字:用户账号名称。②用户别名:用户的详细信息(收件人姓名)。③用户描述:用户通过注册、修改账号和管理员进行锁定、解锁和删除。④用户定义:用户登录系统时自己设置的名称、用户登录系统的秘钥、用户的交易秘钥、用户注册账号的全部的时间、用户最后登陆系统的时间。2.6.4日志信息(1)"日志信息"数据结构①日志名字:日志目录的大概信息。②日志别名:日志记录的详细信息。③日志描述:系统后台通过自动采集管理员的登陆和操作信息以及系统的各种故障信息后生成日志信息后自动入库保存。④定义:日志信息由日志编号、日志类型、管理员编号、管理员操作、日志自动同步、日志模块、日志记录结果、日志记录时间。3.系统分析与设计3.1系统总体分析3.1.1流程图管理员通过登录系统后进行商品的管理与订单的管理的操作3.3.1管理员功能流程图3.1.2用户首次登录次系统通过注册功能获得凭证后进入系统对商品进行操作图3.1.2普通用户功能流程图3.2各功能详细分析3.2.1首页-顶部指引栏(登录成功时)(1)指引栏的内容:"首页"、"个人中心"、"我的订单"、"购物车"、"退出登录"。(2)指引栏的位置:位于系统页面顶部的位置。(3)指引栏的功能:既可以作为系统页面的导航入口,又可以有到"首页"、"个人中心"、"我的订单"、"购物车"和"退出登录"页面的进入方式。其中"我的订单"中又提供了"待支付订单"、"待发货订单"、"待收货订单"、"待评价订单"、"已完成订单"和"全部订单"等几种不同进度订单的界面,每个界面会显示自己不同进度的订单列表,并且还会提供给用户对所有状态的订单的对应的操作。3.2.2首页-顶部指引栏(未成功登录时)(1)指引栏的内容:"网站首页"、"登陆页面"、"注册页面"。(2)指引栏的位置:系统所有页面顶部(3)、指引栏的功能:既可以作为系统所有界面的入口,又可以提供到"首页"、"登陆页面"和"注册页面"的入口。3.2.3首页-轮播图(1)轮播图的内容:可以查看系统推荐商品。(2)轮播图的位置:位于系统首页的中间的位置。(3)轮播图的功能:可以为用户展示当前系统中一些最近比较火的商品。3.2.4首页-搜索框(1)搜索栏的内容:可以查找相关产品的信息与类别。(2)搜索栏的位置:网站首页上部。(3)搜索栏的功能:当用户不了解商品的具体特征时,那就可以使用搜索栏来精确定位来满足用户的需求。3.2.5首页-按类商品列表(1)商品列表的内容:随机排列的商品。(2)商品列表的位置:中部位置。(3)商品列表的功能:帮助商品按照商品的自有属性分组。3.2.6购物车(1)购物车的内容:用户添加的商品。(2)购物车的入口:位于系统界面的右上角的位置上。(3)购物车的功能:帮助用户暂时储存神往的商品。3.2.7个人中心(1)用户个人中心的内容:用户注册账号时填写的信息。(2)用户个人中心的入口:右上角“个人中心”。(3)用户个人中心的功能:帮助用户增删改自己的信息。3.2.8商品详细信息(1)商品详细信息的内容:可以了解商品的一些信息和购买商品等操作。(2)商品详细信息的入口:商品信息下部。(3)商品详细信息的功能:帮助用户了解商品与商家的信息。3.2.9订单列表(1)订单列表的内容:用户购买的货品。(2)订单列表的链接:用户中心里面。(3)订单列表的功能:帮助用户了解自己购买商品的情况并且可以让系统了解用户的喜好来给用户推荐用户喜欢的商品。3.2.10后台管理(1)“普通用户管理”:系统会自动的提供给管理员一些普通用户的一些相关信息。(2)“管理员管理”:系统会赋予管理员一些权力来帮助系统管理用户。(3)“关于上架商品”:通过此界面还可以提供给系统一些商品的相关信息。如商品的名称、商品所属类型、商品上架时设定的价格、商品的剩余量、商品的相关介绍等,之后完成对商品的上架。(4)“商品列表”:主要包括了三个类别。即系统中存在的所有的商品、已上市的商品和未上市的商品,进行分类的依据是商品所属类型。以及可以对商品进行更多的操作:查看详细情况、修改和上架和下架商品。“详情”:可以查看到商品的所有详细的信息,以及一些商品的相关评价,同时也提供了修改商品信息的入口。(5)“订单管理”:这部分主要根据订单的处理进度来将设计。主要分为:待发货订单、待收货订单、待评价订单、已完成和全部订单。且每个模块都提供了订单的编号、订单的状态、订单中商品的总件数、订单的总金额、运单号(未发货订单此处为“暂未发货”)、订单的创建时间和订单的最后更新时间等信息。同时针对不同模块也提供了许多不同的操作选项,支持查看订单的更多相关信息“待发货”订单中管理员可以完成订单的发货状态,即填写运单号然后确认订单已经发货来更新订单的状态。(6)“关于日志管理”:日志管理主要包含三大部分:登陆日志、操作日志和系统日志。“登陆日志”记录的是管理员的使用系统的情况。“操作日志”记录了管理员在系统的后台管理中对各个功能的操作情况。“系统日志”则是对系统使用过程中发生的事情进行存储。3.3系统的概念设计图3.3系统的概念设计图3.4购物系统功能模块的设计购物系统3.4.1总体功能模块图购物系统后端前端后端前端图3.4.1系统总体模块图3.4.2用户端页面设计图3.4.2用户端页面设计图3.4.3后台页面设计:图3.4.3后台页面设计图3.5数据库结构设计(1)用户信息包括用户的编号,用户的姓名、用户的通讯地址、用户的状态、用户的昵称,用户的暗码(登陆暗码与交易暗码)、用户注册系统账号时的时间、用户最后登录时间),代码实现如下:用户表(user),其属性对应的意义:用户的编号、用户的姓名、用户的通讯地址、用户的状态、用户的昵称、用户的暗码、用户注册系统账号时的时间、用户最后使用系统的时间。createtableuser(idintnotnullauto_incrementprimarykey,namevarchar(20)notnull,phonevarchar(11)notnull,emailvarchar(100),statusvarchar(20)notnull,addressvarchar(200)notnull,nicknamevarchar(50)notnull,passwordvarchar(200)notnull,create_timedatetime,last_logindatetime)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARACTERSETutf8;(2)管理员的详细信息(管理员的编码,管理员姓名,管理员预留的电话,管理员账户密码,管理员所拥有的权限),具体代码实现如下:管理员表(administrator),其属性所对应的意义:管理员的编号,管理员的姓名,管理员预留电话,管理员账户密码,管理员所拥有的权限。createtableadministrator(idintnotnullauto_incrementprimarykey,namevarchar(20)notnull,phonevarchar(11)notnull,passwordvarchar(200)notnull,permissionintdefault1notnull)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARACTERSETutf8;(3)商品种类的信息(商品的编号,商品种类名称),具体代码实现如下:商品种类表(commodity_category):其属性所对应的意义:商品种类编号,商品种类名称。createtablecommodity_category(idintnotnullauto_incrementPRIMARYKEY,namevarchar(20)notnull)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARACTERSETutf8;(4)商品表(commodity),其属性所对应的意义:商品编号、商品名称、商品种类编号、商品价格、商品库存、商品图片、商品简介、商品详细介绍、商品销量、商品商家的创建时间、商品更新时间、商品状态、商品上架时间。createtablecommodity(idintnotnullauto_incrementPRIMARYKEY,namevarchar(50)notnull,type_idintnotnull,pricefloatnotnull,stockintnotnull,imagevarchar(200),introductionvarchar(200),detailed_introductiontext,sales_volumeintdefault0,create_timedatetime,update_timedatetime,statusvarchar(10),added_timedatetime)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARACTERSETutf8;altertablecommodityaddconstraintFK_IDforeignkey(type_id)REFERENCEScommodity_category(id);(5)订单信息(订单编号、用户编号、订单状态、商品的数量、商品的总价、商品运单号、订单创建时间、订单更新时间),具体代码实现如下:订单表格,其属性所对应的意思:订单编号、用户编号、订单状态、商品的数量、商品总价、运单号、订单的创建时间、订单的更新时间。createtablecommodity_order(idintnotnullauto_incrementprimarykey,user_idintnotnull,statusvarchar(20)notnull,commodity_quantityintnotnull,total_amountfloatnotnull,waybill_numbervarchar(100),create_timedatetime,update_timedatetime)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARACTERSETutf8;(6)订单的明细信息(订单明细编号、订单的编号、所购货物的编号、所购货物的名称、所购货物的价格、所购货物的数量),具体代码实现如下:订单明细表,其属性所对应的意义:编号,订单编号,所购货物的编号,所购货物的名称,所购货物的价格,所购货物的数量。createtablecommodity_order_detail(idintnotnullauto_incrementprimarykey,order_idintnotnull,commodity_idintnotnull,commodity_quantityintnotnull)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARACTERSETutf8;altertablecommodity_order_detailaddconstraintFK_ID_2foreignkey(order_id)REFERENCEScommodity_order(id);altertablecommodity_order_detailaddconstraintFK_ID_3foreignkey(commodity_id)REFERENCEScommodity(id);订单处理记录信息(顺序号,订单的编号,管理者编号,订单更新后状态,订单处理的时间),具体代码实现如下:(7)订单处理记录表,其属性所对应的意义:顺序号,订单的编号,管理者编号,订单更新后状态,订单处理的时间。createtableorder_processing_record(idintnotnullauto_incrementprimarykey,order_idintnotnull,operator_idintnotnull,statusvarchar(20)notnull,timedatetime)ENGINE=InnoDBDEFAULTCHARACTERSETutf8;altertableorder_processing_recordaddconstraintFK_ID_5foreignkey(order_id)REFERENCEScommodity_order(id);altertableorder_processing_recordaddconstraintFK_ID_6foreignkey(operator_id)REFERENCESadministrator(id);(8)评价信息(顺序号,订单的明细编号,评价的星级,评价商品的内容,图片,评价的时间),具体代码实现如下:评价表,其属性所对应的意义:顺序号,订单的明细编号,评价的星级,评价商品的内容,图片,评价的时间。createtableevaluation(idintnotnullauto_incrementprimarykey,order_detail_idintnotnull,gradeint,contenttext,imagevarchar(200),timedatetime)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARACTERSETutf8;altertableevaluationaddconstraintFK_ID_7foreignkey(order_detail_id)REFERENCEScommodity_order_detail(id);系统的实现4.1本系统结构图4.1系统的结构4.2配置applicationContext.xml图3.6.2配置applicationContext.xml文件4.3配置mybatis-config.xml,具体代码实现如下:图4.3配置mybatis-config.xml4.4配置spring-mvc.xml,图4.4配置spring-mvc.xml,4.5注册界面用户通过本系统注册一个私有的的账号来提供给用户进行私有的操作,具体代码实现如下:publicStringregisterAdd(Stringname,Stringpassword,Modelmodel)throwsException{
Stringmsg=null;
if(!HtmlUtils.htmlEscape(name).equals(name)){
msg="用户名含有特殊字符,无法注册,请重新输入";
}
if(userService.isExist(name)){
msg="用户名已存在,无法注册,请重新输入";
}
if(msg!=null){
model.addAttribute("msg",msg);
return"register";
}
Useruser=newUser();
user.setName(name);
user.setPassword(password);
user.setGroup(User.Group.user);
userService.add(user);
return"registerSuccess";
}图4.5注册界面4.6登陆界面用户注册完账号以后,可以通过注册时所获得的账号与自己设置的密码登录系统,具体代码实现如下:@RequestMapping("loginIn")
publicStringloginIn(Stringname,Stringpassword,Modelmodel,HttpSessionsession,Stringrefer){
UseruserFromDB=userService.get(name,password);
if(userFromDB==null){
Stringmsg="用户名密码错误,请重试";
model.addAttribute("msg",msg);
return"login";
}
session.setAttribute("user",userFromDB);
return"redirect:"+refer;
}图4.6登陆界面4.7搜索功能用户登录成功后选择心意的产品,如果想买模糊的东西,可以通过搜索框进行模糊查找,直至找到心仪的产品,具体代码实现如下:@RequestMapping("search")
publicStringsearch(Stringkeyword,@NullableStringsort,Modelmodel)throwsException{
if(keyword.length()==0){
return"search";
}
List<Product>products=productService
.list("name_like",keyword,"order",handleSort(sort),"stock_gt",0);
model.addAttribute("products",products);
model.addAttribute("keyword",keyword);
return"search";
}图4.7搜索界面4.8购物车功能4.8.1添加购物车用户找到产品以后可以通过加入购物车的方式来收藏商品,等到用户找到所有心意的商品一起下单,具体代码实现如下:@RequestMapping("addCart")
publicStringaddCart(Integerpid,Integernum,Modelmodel,HttpSessionsession)throwsException{
Productproduct=(Product)productService.get(pid);
Useruser=(User)session.getAttribute("user");
Stringmsg;
//获取原来就在购物车的数据
CartItemcartItem=(CartItem)cartItemService
.getOne("uid",user.getId(),"pid",product.getId());
BooleanisInDB=cartItem!=null;
//判断是否超出库存
if(isInDB){
num+=cartItem.getNumber();
}else{
cartItem=newCartItem();
cartItem.setProduct(product);
cartItem.setUser(user);
}
图4.8.1添加购物车功能4.8.2删除购物车用户可以在添加完购物车以后,将暂时不喜欢的产品删除,具体代码实现如下:@RequestMapping("deleteCartItem")
publicStringdeleteCartItem(Integerid,Modelmodel,HttpSessionsession)throwsException{
Useruser=(User)session.getAttribute("user");
CartItemcartItemFromDB=(CartItem)cartItemService.get(id);
checkUser(user,cartItemFromDB.getUser());
cartItemService.delete(cartItemFromDB);
model.addAttribute("msg","success");
return"msg";
}图4.8.2删除购物车功能4.9购买功能用户可以选择自己心意的产品以后下单,具体代码实现如下:@RequestMapping("buy")
publicStringbuy(Integer[]ciid,Modelmodel,HttpSessionsession)throwsException{
List<CartItem>cartItems=newArrayList<>();
Useruser=(User)session.getAttribute("user");
inttotalNum=0;
BigDecimalsum=newBigDecimal(0);
for(Integerid:ciid){
CartItemcartItem=null;
if(id==-1){
//由buyOne跳转而来
cartItem=(CartItem)session.getAttribute("tempCartItem");
}else{
//由购物车跳转而来
cartItem=(CartItem)cartItemService.get(id);
}
//检查
checkUser(user,cartItem.getUser());
totalNum+=cartItem.getNumber();
sum=sum.add(cartItem.getSum());
cartItems.add(cartItem);
}
session.setAttribute("cartItems",cartItems);
model.addAttribute("totalNum",totalNum);
model.addAttribute("sum",sum);
return"buy";
}图4.9购买功能4.10订单用户可以查看自己已经购买的产品或未支付的产品,具体代码实现如下:@RequestMapping("createOrder")
publicStringcreateOrder(Stringaddress,Stringpost,Stringreceiver,
Stringmobile,
StringuserMessage,
HttpSessionsession)throwsException{
List<CartItem>cartItems=(List<CartItem>)session.getAttribute("cartItems");
Useruser=(User)session.getAttribute("user");
//简单校验下手机
Patternpattern=Ppile("1[0-9]{10}");
if(!pattern.matcher(mobile).matches()){
thrownewParameterException("手机号填写错误");
}
Orderorder=newOrder();
order.setAddress(address);
order.setPost(post);
order.setReceiver(receiver);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度产业园企业入驻产业园区品牌形象设计合作协议4篇
- 2025年度产品陈列效果评估与市场反馈协议4篇
- 临时活动板房建设标准化协议样本版B版
- 个人信用担保协议:2024年专属贷款保障协议一
- 个人与健身俱乐部会员服务合同20245篇
- 2024艺术品买卖合同具体描述了书画作品的交易细节
- 2024版全新房屋买卖车位协议下载
- 2024施工员劳务聘用合同
- 2024版云端服务器购买协议范例版B版
- 2025年度产权明确车位租赁合同纠纷调解员服务合同4篇
- 统编版六年级语文上册专项 专题13记叙文阅读-原卷版+解析
- 2023-2024学年物理九年级第一学期期末复习检测模拟试题
- 教师培训课件信息技术与数字素养教育
- 外观专利授权协议书
- 全套消防管理记录本
- 浙大一院之江院区就诊指南
- 离婚协议书电子版下载
- 完整版供应商质量审核检查评分表(供应商审核表)
- 项目日程表模板
- 质量评估报告(光伏)
- 农村个人房屋抵押借款合同
评论
0/150
提交评论