楼主
方小琪   发表于 2019-10-16 13:24:20 |栏目: |分类:其他源码
一、需求分析
1.功能需求
本系统主要涉及到3中对象:游客(未登录)、商城注册用户、管理员。


游客(未登录):可以登录、注册、商品查看,能在线浏览商城中已有的书籍。不能直接购买和添加到购物车。


商城注册用户:可以进行商品查看、添加商品到购物车、购物车管理、生成订单、订单管理、在线支付。实体书购买则需要通过添加购物车,设置收货地址,填写相关收货信息,确认一切无误后,生成订单再在线支付,等待图书管理员以邮递的形式将实体书寄给用户。


管理员:可以添加商品、商品管理、查看订单 、榜单查看(导出)。管理员可以添加新的书籍和将出售完的书籍下架,系统还需要统计一段时间内各类书籍网络版和实体版的出售数量,并建立榜单来吸引用户。


2.功能分析
本系统目前设定12大功能:


1、用户注册     2、用户登录      3、管理员添加商品     4、查看商品列表     5、查看商品详情      6、将商品添加购物车


7、查看购物车    8、修改购物车     9、生成订单    10、订单查看(取消)   11、在线支付     12、下载销售榜单


1.用户注册
       用户需要填写用户名、密码、确认密码、昵称、邮箱、验证码。需要用户填写一次性的验证码,验证码输入正确,其他信息不为空,且邮箱格式输入正确,才可以注册,用户点击注册按钮,系统会向用户发送激活邮件,用户需要在限定时间内点击激活邮件内的激活链接进行激活,激活成功则注册成功,可以进行登录操作。


2.用户登录
       当用注册成功后才可以进行登录操作,如果登录成功,判断是否勾选了记住用户名,系统设置Cookie保存用户名7天;判断是否勾选自动登录,如果勾选了,系统设置Cookie保存用户名和密码7天,7天内自动登录。如果登录失败,显示用户名或密码错误。如果用户未激活,则无法登录成功。如果用户名不存在,则登录不成功。


      用户登录成功后会有一个注销按钮,点击注销按钮,可以注销用户。


3.添加商品
      管理员有权限添加商品,添加商品时需要添加一个商品图片,我们使用文件上传。添加商品时需要输入商品名称、商品价格、商品类别、商品数量、商品图片、商品描述。非管理员添加商品上传文件会显示权限不足。图片添加成功后会跳转到主页面。


4.查看商品列表
        可以以列表的形式查看所有商品的简略信息,商品会以图片的形式显示,通过点击商品名称或者商品图片,可以查看商品的详细信息。也可以根据商品id查找相应商品。


5.查看商品详情
       点击商品名称或者商品图片,可以查看商品的详细信息,商品详情页面会显示商品名称、商品价格、商品类别、商品数量、商品描述、商品图片以及添加到购物车等信息。


6.添加到购物车
        本系统对购物车功能进行了简化,没有使用到数据库,直接使用session存储信息。添加商品到购物车流程:点击添加到购物车,将商品id传递Servlet ,从Session中取出购物车对象,判断商品是否已经在购物车中,如果不在,添加商品到购物车数量 +1 。如果商品不在购物车中,需要根据商品 id 查询商品所有信息,添加购物车。


7.查看购物车
       当点击查看购物车中商品时,会跳转到一个jsp页面,购物车是存储在session中的,那么在jsp页面上就可以直接得到session中的商品信息,包括商品名称、商品单价、可购买数量、购买数量、总价等信息。在购物车页面还可以清空购物车,删除购物车中单项商品,删除一项后,判断购物车是否为空,如果为空,移除购物车对象 。在删除商品时会有删除确认操作,确认删除后才可以删除。还可以修改购买的数量, 通过JavaScript 控制购物数量修改。可以点击+ -按钮完成商品数量修改操作,也可以直接在文本框中输入相应数量进行修改。


8.修改购物车信息
       在购物车页面还可以清空购物车,删除购物车中单项商品,删除一项后,判断购物车是否为空,如果为空,移除购物车对象 。在删除商品时会有删除确认操作,确认删除后才可以删除。还可以修改购买的数量, 通过JavaScript 控制购物数量修改。可以点击+ -按钮完成商品数量修改操作,也可以直接在文本框中输入相应数量进行修改。


9.生成订单
       在购物车页面,点击结算会出生成订单,跳转到订单页面,显示订单信息,需要填写收货地址。当订单生成后,需要对以下的表进行操作:1.订单表中要插入数据; 2.商品表中的商品数量要进行修改(修改商品的库存) 3.订单与用户之间也存在关系,添加订单时,也需要得到当前用户的id。


10.订单查看(取消)
       查看订单时,会根据用户的权限显示不同的信息,管理员可以查看做所有的订单,注册用户只能查看当前用户的订单。查询订单基本信息时,可以查询下单用户昵称和用户名,查询订单项信息时,可以查询商品的名称和单价。订单取消 : 删除订单表信息时,同时删除订单项信息 (订单项信息依赖 订单信息 ,必须先删除订单项)。注意事项 :1) 可以取消未支付的订单,如果订单已经支付,将无法取消 ;2) 管理员不能取消任何用户未支付订单,普通用户只能取消 自己的未支付的订单。


11.在线支付
       本系统的支付操作,使用了在线支付操作epay第三方支付平台,在显示订单页面上,显示的订单信息中,包含了当前支付状态。会显示  "已支付"  "未支付",如果是未支付,会有一个连接访问支付页面,并将当前订单的id,以及当前订单的金额传递到支付页面。在支付页面上可以选择银行,表单提交时,将订单编号,金额,以及银行进行提交。借助第三方支付工具进行支付,支付成功后,修改订单状态,修改订单状态要根据订单编号修改。


1) 网站进行支付,根据易宝支付接口请求规范,生成易宝需要数据,将数据提交到易宝指定网址 https://www.yeepay.com/app-merchant-proxy/node


* 在提交支付请求给易宝,需要将请求中数据,使用易宝提供密钥和算法进行加密,获得数字签名 hmac码 ,将hmac码发送给易宝


2) 易宝会连接银行,进行支付


3) 支付后,浏览器会以重定向方式访问 网站回调程序,易宝在收到银行转账后,会以Socket方式通知网站


* 在浏览器重定向通知后,提供给用户支付成功显示页面 (不要去修改订单状态)


* 在网站收到易宝点对点通知后,回复易宝success,修改订单状态


数字签名原理:将数据 使用密钥和算法加密后 获得数字签名hmac,将数据和数字签名hmac一起发送给易宝,易宝采用同样密钥和算法对数据进行加密获得数字签名hmac,比较请求中数字签名hmac与加密后获得数字签名hmac是否一致,如果一致 签名hmac有效 (数据没有被篡改 )


流程入口: 未支付订单可以进行支付,管理员不允许支付  


在线支付


1) pay.jsp 银行选择页面


2) OnlinePayServlet 准备易宝支付参数


* 提供密钥和算法  商家编号  真实的  将PaymentUtil 复制 utils包  , 将 merchantInfo.properties 复制 src


* responseURL 支付成功后 回调地址 ,该地址会收到 浏览器重定向和服务器点对点两次通知 ,确保该地址 可以被易宝访问  (estore项目必须要配置缺省虚拟主机)


将OnlinePayServlet准备易宝参数,传递JSP 确认


3) confirm.jsp 通过form的隐藏域,提交参数给易宝网址 https://www.yeepay.com/app-merchant-proxy/node


4) CallbackServlet 回调程序,收到浏览器重定向和服务器点对点两个通知 ,浏览器重定向,显示支付成功,不要修改订单状态。服务器点对点,修改订单状态,回复success 。


在显示订单的页面上,会提供一个删除订单的连接。删除订单注意事项 :1.删除订单要将orders表中数据删除---根据id删除。2.需要删除orderItem表中数据。 3.需要修改商品的数量 ,也就是说需要对products表进行update操作。


以上操作,都需要进行事务控制。


12.下载销售榜单
       导出销售榜单,可以获得商品销售情况,统计已支付订单项内容。榜单中包括销售信息、销售数量、订单支付情况等。榜单文件可以使用 POI类库导出为Excel。


附:
资料+源码:链接:https://pan.baidu.com/s/1Hn-F98exx6pNXNLOwmLPMQ
提取码:ekw3


说明:本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!如有侵犯您的版权,请及时联系我们,我们将尽快处理。


小坏源码社区 - 论坛版权1、本站源码全部来自于互联网,如有侵权,请联系网站客服或者发送邮件到xhymsq@qq.com删除
2、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和小坏源码社区的同意
3、本站源码仅供会员测试研究技术使用,禁止从事商业用途,如有违者,自行承担法律责任
4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
5、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
6、小坏源码社区管理员和版主有权不事先通知发贴者而删除本文

回复 只看该作者 使用道具 举报

langlef

中级会员

沙发
langlef   发表于 2019-10-16 14:19:51 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

啊是恐

论坛元老

板凳
啊是恐   发表于 2019-10-16 16:22:12 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

dsiiho5fgv

淘宝客户

地板
dsiiho5fgv   发表于 2019-10-17 02:06:42 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

973540069

论坛元老

5#
973540069   发表于 2019-10-17 07:42:22 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

bkubmdcrejww

一级小白兔

6#
bkubmdcrejww   发表于 2019-10-17 08:59:30 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

流年

荣誉VIP

7#
流年   发表于 2019-10-19 19:43:26 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

对方答复

论坛元老

8#
对方答复   发表于 2019-10-20 17:42:53 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

全球速卖

论坛元老

9#
全球速卖   发表于 2019-10-26 08:57:41 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

按时的撒旦

论坛元老

10#
按时的撒旦   发表于 2019-10-29 21:36:17 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

作者相关信息

更多discuzx模板

精品推荐

极品资源

原创模板

下载排行

热门标签

  

     
您需要 登录 后才可以回复,没有帐号?立即注册 使用QQ帐号登录 使用新浪微博帐号登录
高级模式意见反馈自定内容自定内容
 
 
技术支持
加入VIP
链接失效
VIP交流群
源码建站交流
源码合买群
源代码合买
免费源码交流群
小坏源码社区交流群
工作时间:
9:00-21:00
 
快速回复 返回顶部 返回列表