bookStore商城开发文档

bookStore商城开发文档

一、项目演示

    看课堂笔记。

二、需求分析

  2.1系统体系结构

      基于BS结构进行开发。(浏览器与服务器:瘦客户端)

  2.1系统总体流程

    

  2.3功能描述

       对于本系统,用户一共分成三种,普通用户(游客)、注册会员(注册用户)、管理员。

       用户通过访问http://www.bookStore.com页面可能访问到书城首面。

       对于普通用户可以浏览商品,查找商品,也可以注册成会员。

    注册成会员后的用户,不仅可以完成普通用户具有的功能,还可以添加商品到购物车,并对购物车中的商品进行操作,并可以下订单。通过会员操作页面,查看与修改会员信息,对没有支付的订单进行支付操作及取消订单操作。

    管理员可以添加查看商品,并修改商品信息,.可以查看所有订单,并对订单进行管理。并能下载销售榜单。

      下面我们通过一个用例图来描述每一个角色可以具有的功能,如下图所示:

    

  2.4系统界面

      美工:第一版的页面可能是美工做的,用ps做的,会经过多次修改。

      前端:前端开发人员做成静态网页。

      后端:后端开发人员实现动态网页。

   2.4.1前台界面
    商城首页

    

    注册页面

    

    登录页面

    

    图书浏览页面

    

    图书详细信息页面

     

    购物车页面

        

    用户管理页面

    

    用户信息修改页面

    

    订单管理页面

    

   2.4.2后台页面
    后台首页

     

    商品操作页面

     

    商品添加页面

     

    下载榜单页面

     

    订单管理页面

     

三、概要设计

  3.1运行环境

      操作系统:Windows环境下运行

      软件需求:MySql5.x

                  Tomcat7.x

  3.2基本功能需求

      本系统在实现上应该具有以下功能:

      普通用户可以通过系统浏览商品信息
      普通用户可以进行查询完成商品的查找
      普通用户可以进行注册成为会员
      会员可以浏览及查找商品
      会员可以添加商品到购物车
      会员可以查看购物车中商品并进行操作
      会员可以下订单
      会员可以浏览自己的商品
      会员可以查看及修改个人信息
      管理员可以添加商品
      管理员可以下载销售榜单

   管理员可以查看并管理订单

  3.3功能模块设计

        项目一共有以下几个模块:

    用户模块

          用户注册

          用户登录

          用户激活

          用户信息修改

    商品模块

          商品浏览

          商品查找

          商品添加

          商品删除

          商品修改

    订单模块

          订单创建

          订单查看

          订单删除

    购物车模块

          添加商品到购物车

          购物车商品数量修改

          购物车商品删除

  3.4程序流程图

    3.4.1用户模块
    注册流程

     

    登录流程

    

    激活流程

     

    用户信息修改流程

     

    3.4.2商品模块
    商品浏览

     

    商品查找

     

    商品添加

     

    商品删除

     

    商品修改

     

    3.4.3购物车模块
    添加商品到购物车

     

    购物车商品数量修改

     

    购物车商品删除

     

    3.4.4订单模块
    订单创建 订单查看

     

    订单删除

     

 

  3.5数据库设计

    3.5.1ER(实体关系图)

     

    3.5.2表设计

      根据ER(实体关系图),我们分析当前系统具有以下几个模块:

      用户,商品,订单,购物车

 

      用户与订单之间存在一对多关系

      (一个用户可以有多个订单)

      商品与订单之间存在多对多关系

      (一个订单中包含多个商品,一个商品被多个订单下单)

      购物车我们暂时不将信息存储到数据库中,所以不用生成表。

 

    创建数据库 create database productstore;

    使用数据库 USE productstore;

    

    

        用户表
        CREATE TABLE `user` (
          `id` INT(11) AUTO_INCREMENT,
          `username` VARCHAR(20) ,
          `PASSWORD` VARCHAR(20) ,
          `gender` VARCHAR(10) ,
          `email` VARCHAR(50) ,
          `telephone` VARCHAR(20) ,
          `introduce` VARCHAR(100),
          `activeCode` VARCHAR(50) ,
          `state` INT(11) ,
          `role` VARCHAR(10) DEFAULT '普通用户',
          `registTime` TIMESTAMP ,
          PRIMARY KEY (`id`)
        )

        商品表
        CREATE TABLE `products` (
          `id` VARCHAR(100) ,
          `name` VARCHAR(40) ,
          `price` DOUBLE ,
          `category` VARCHAR(40) ,
          `pnum` INT(11) ,
          `imgurl` VARCHAR(100) ,
          `description` VARCHAR(255) ,
          PRIMARY KEY (`id`)
        )

        订单表

        CREATE TABLE `orders` (
          `id` VARCHAR(100) ,
          `money` DOUBLE ,
          `receiverAddress` VARCHAR(255) ,
          `receiverName` VARCHAR(20) ,
          `receiverPhone` VARCHAR(20) ,
          `paystate` INT(11) ,
          `ordertime` TIMESTAMP ,
          `user_id` INT(11) ,
          PRIMARY KEY (`id`),
          FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
        )

        订单项表

        CREATE TABLE `orderitem` (
          `order_id` VARCHAR(100) ,
          `product_id` VARCHAR(100),
          `buynum` INT(11) ,
          PRIMARY KEY (`order_id`,`product_id`),
          FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`),
          FOREIGN KEY (`product_id`) REFERENCES `products` (`id`)
        )

四、系统设计

  4.1开发环境

    开发本系统我们所使用的工具与技术有:

        Myeclipse10    

        tomcat7.x    

        mysql5.x  

        jst标签库 

        EL表达式 

        jsp 

        servlet 

        javabean

        Filter 

        Listener 

        javaMail 

        commons-dbutils 

        commons-fileupload 

        commons-beanutils 

        c3p0 

        jdk1.6  

        jdbc

  4.2架构设计

    采用javaweb开发的三层架构

        Web

        Service

        Dao

五、详细设计

  5.1问题处理机制

  5.1.1功能问题

      使用自定义异常来描述问题。

          UserException来描述关于用户的操作问题。

          ProductException来描述关于商品操作问题。

          OrderException来描述关于订单操作问题。

  5.1.2权限问题

      对于普通用户(游客),不可以操作购物车、下订单。

      对于会员(注册用户),不可以添加商品、下载销售榜单。

 

  5.2前台功能

  5.2.1用户操作:
    用户注册
    
    用户激活
    
    用户登录
    
    用户信息修改
      
  5.2.2商品操作
    查看全部商品(分页)

     

    根据分类查看商品(分页)

        与查看全部商品信息操作步骤一样,只是需要在传递一个类别信息进行查找。

    搜索商品

      

    查看商品详细信息

    

  5.2.3购物车操作
    添加商品到购物车

    

    查看购物车中商品

    

    修改购物车中商品数量

        

   删除购物车中商品

       删除购物车商品,我们可以通过修改购物车中商品数量来完成,只需要将数量设置为0就可以。

  5.2.4订单操作
    生成订单
    
    查看订单

     

    删除订单(未支付订单)

     

    删除订单(已支付订单)

        对于已经支付的订单,我们在删除订单时,不需要再修改商品的数量。

    订单的在线支付

     

  5.3后台功能

    5.3.1商品操作
    查看商品列表

     

    商品添加

     

    修改商品信息

    修改商品信息分成两个步骤:

        1. 根据id查找商品信息回显

     

        2.修改商品信息

     

    多条件商品查找

     

    商品删除

     

    下载销售榜单

     

  5.3.2订单操作
    查看订单列表(查看所有订单)

     

    订单查询(多条件查询)

     

    订单详细信息查看

     

    订单的删除(只能删除支付后的订单)

     

六、编码实现

  6.1环境搭建

    导入jar包 

        导入mysql驱动 

        导入c3p0 

        导入dbutils

        导入beanutils

        导入fileupload 

        导入javamail mail.jar

        导入jstl jstl.jar standard.jar

 

    建立package结构 按照JavaEE 三层结构

        cn.itcast.bookStore.dao

 

        cn.itcast.bookStore.service

 

        cn.itcast.bookStore.web.servlet

        cn.itcast.bookStore.web.filter

        cn.itcast.bookStore.web.listener

 

        cn.itcast.bookStore.domain

        cn.itcast.bookStore.util

        cn.itcast.bookStore.exception

    domain类编写 
        User类
        private int id; // 用户编号
        private String username; // 用户姓名
        private String password; // 用户密码
        private String gender; // 用户性别
        private String email; // 用户邮箱
        private String telephone; // 用户联系电话
        private String introduce; // 用户介绍
        private String activeCode; // 激活码
        private String role; // 用户角色
        private int state; // 用户状态
        private Date registTime; // 注册时间 

        Product类
        private String id; // 商品编号
        private String name; // 商品名称
        private double price; // 商品价格
        private int pnum; // 商品数量
        private String category; // 商品分类
        private String description; // 商品描述
        private String img_url; // 商品图片路径

        Order类
        private String id; // 订单编号
        private double money; // 订单总价
        private String receiverAddress; // 送货地址
        private String receiverName; // 收货人姓名
        private String receiverPhone; // 收货人电话
        private int paystate; // 订单状态
        private Date ordertime; // 下单时间

        private User user; 
        private List<OrderItem> orderitems; // 表示一个order对象,对应多个orderitem

        OrderItem类
        private Order order; // 订单
        private Product product; // 商品
        private int buynum; // 购物数量 

        PageBean类
        private int currentPage; // 当前页码
        private int totalPage; // 总页码数    

        private int pageSize; // 每页条数
        private int count; // 总条数     

        private List<Product> products; // 每页显示的数据
        private String category; //分类

 

  6.2功能实现

    用户注册
    用户激活
    用户登录
    商品添加
    商品显示
    商品修改
    商品删除
    添加商品到购物车
    购物车商品数量修改
    购物车商品删除
    生成订单
    订单查看
    订单删除
    下载榜单
    权限控制
    系统重构

 

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值