1、毕 业 设 计 (论 文 )题 目 办公用品网上商城的设计与实现 学生姓名 专业班级 所在院系 指导教师 职 称 讲师 所在单位 教研室主任 完成日期 摘 要办公用品是人们日常生活中必不可少的物品,而且随着时代的发展,现代意义上的办公用品扩展到所有与现代办公相关的商品。传统的办公用品采购方式中存在很多缺点与不足,随着互联网和电子商务的发展,通过网络来销售办公用品的办公用品网上商城有着很大的发展前景。本文介绍了办公用品网上商城的设计与实现。该网站在 PHP+MySQL+Apache 开发环境下,使用 Zend Studio 集成开发工具开发而成。在设计过程中综合使用了PHP、CSS 和 Java
2、Script 等技术。该网站采用了基于 MVC 模式的 ThinkPHP 框架。该网站分为前台和后台两个部分。前台面向会员。会员登录后可以查询、订购和评论商品,也可以管理个人信息。后台面向管理员。管理员可以对商品、会员、订单和评论进行管理,也可以发布网站公告。该网站经过运行和测试,实现了设计的功能,可以满足用户的需求,达到了预期的效果。关键字:办公用品 网上商城 PHP MVC ThinkPHPABSTRACTOffice supplies are essential for peoples daily life items. With the development of the times
3、, office supplies has extended to all merchandise which are related to contemporary office mode in the modern sense. There are many shortcomings and deficiencies in traditional office supplies procurement.With the development of Internet and e-commerce,office supplies online store which use the netw
4、ork to sell office supplies has great prospects for development.This article describes the office supplies online store design and implementation. The website is developed by Zend Studio and was based on PHP + MySQL + Apache development environment. It uses a combination of PHP, CSS, JavaScript tech
5、nologies and so on. The site uses ThinkPHP framework, a framework bases on MVC schema. The website consist of two parts, foreground and background. The foreground is designed for members. The logged user can inquiries, orders and reviews commodities, users can also manage personal information. Backg
6、round is designed for administrators. Administrators can manage merchandise, membership, order, and comments. Administrators can publish website announcement.After running and testing, the website can meet the needs of users, and has achieved the desired requirements.Keywords: Office supplies online
7、 store PHP MVC ThinkPHP第一章 绪论1.1 研究背景与意义随着互联网的不断发展,越来越多的行业都在发生巨大的变革。互联网以其便捷的信息传输形式改变着人们的生活方式和消费模式。利用简单、快捷、低成本的电子通信方式,买卖双方不谋面即可在网上直接进行各种商贸活动。IBM 公司在 1996 年提出了电子商业(E-Commerce )的概念。在 1997 年,该公司又提出电子商务( E-Business)的概念。短短几年时间内这些概念就被广泛接受。电子商务可分为企业对企业(B2B ) ,企业对消费者(B2C) ,个人对消费者(C2C) 、企业对政府(B2G) 、线上对线下(O2O)
8、等模式,其中主要模式包括 B2B、B2C 两种模式。随着国内互联网使用人数的增加,利用互联网进行网络购物并以银行卡付款的消费方式已日渐流行,市场份额也在迅速增长,而电子商务网站也层出不穷。本次毕业设计的题目是办公用品网上商城的设计与实现。办公用品是人们日常生活中必不可少的物品。办公用品也是企事业营运成本一项持续性支出,且更替频繁,是一项不少的开支。而传统的办公用品采购方式中存在很多缺点与不足。例如采购过程本身效率较低且消耗较多的劳动力。许多企业的采购部门约有一半的工作是在处理这些价值低并且很频繁的采购订单。该领域内的平均生产力水平极低,并是现代商业中劳动力最密集的地方之一。而且随着时代的发展,
9、现代意义上的办公用品已经不局限于我们过去所使用的纸、笔之类的产品,而扩展到了包括打印机、打印耗材、办公室生活用品等在内的所有与现代办公相关的商品。在这种形势下,随着互联网和电子商务的发展,通过网络来销售办公用品的办公用品网上商城应运而生。人们通过该网站可以比较多种品牌的办公用品,并轻松地订购商品。企事业单位可以在该网上商城上大规模采购办公商品可以使采购办公用品的程序更简化,提高采购办公商品的效率,极大地节约人力成本。而商家也可通过该网上商城增加其商品销售量,提高营业额,并提高销售管理的效率。1.2 国内外应用现状和发展趋势现在中国办公用品的电子商务有了一定的发展。史泰博、欧迪办公等办公用品巨头
10、相继在中国组建子公司,发展办公用品电子商务。以京东商城、卓越亚马逊、一号店为代表的综合性 B2C 网站经营种类丰富的办公用品。此类网站流量大,知名度高,网民在进行个人购物所养成的购物习惯转接到了对办公用品的采购。一些办公用品品牌企业相继在淘宝商城上建立的品牌专卖店。如益而高、得力文具淘宝商城店,利用淘宝商城的巨大流量,以品牌直销的概念进行产品销售。此外,办公行业品牌企业开始建设自身的 B2C 商城,如天威打印耗材的好彩快线商城。2011 年中国办公用品市场销售总额超过 1000 亿,虽然办公用品电子商务所占比例不高,但正面临难得的发展机会。在美国,2010 年 B2C 电子商务排名前十的有三个
11、是办公用品,即史泰博、欧迪办公和 OfficeMax,这说明在电子商务最成熟的美国,办公用品占有十分重要的地位。全球五大办公用品品牌史泰博、欧迪-亚商 OfficeDepot、国誉 KOKUYO-易优百、欧玛特和爱苏极乐 ASKUL 都建立了网上商城并大力发展电子商务。2004 年,史泰博与中国最大的网上办公用品销售企业上海上信电子商务有限公司组建上海史泰博企业发展有限公司,开始正式进入中国办公用品市场。1.3 研究内容和结构本课题旨在设计并实现办公用品网上商城,用来解决传统办公用品销售和采购方式中存在的众多问题。该网站可以给用户提供便利的服务并降低企事业单位用户的采购成本。该网站也提高了商家
12、的管理效率并为商家带来收益。该网站以 Windows XP操作系统为服务平台,采用目前流行的 PHP 技术,后台数据库采用 MySQL,服务器采用 Apache HTTP server。本论文的结构如下:第一章:绪论。主要包括课题的研究背景和意义、国内外应用概况和发展趋势以及论文的结构。第二章:开发工具和方法。包括开发该网站用到的工具和方法。第三章:需求分析。包括可行性分析和需求分析第四章:系统概要设计。第五章:详细设计与实现第六章:测试与维护第二章 开发工具和方法2.1PHP+MySQL+Apache 介绍PHP 是 PHP: Hypertext Preprocessor(PHP 超文本预处
13、理器)的递归缩写,是一种在服务器端执行的跨平台的 HTML 嵌入式的脚本语言。其独特的语法混合了 C 语言、Java 语言和 Perl 语言的特点,是一种被广泛使用的、开源式的多用途脚本语言,尤其适合 Web 开发。PHP 起源于 1995 年,由 Ramus Lerdorf 开发。根据 TIOBE 公布的2013 年 4 月编程语言指数排行榜,PHP 语言名列第六,并呈上升趋势。PHP 具有速度快、支持面向对象、实用性强、功能强大、成本低、开放性和可扩展性良好、版本更新速度快、模块化和应用范围广等特点。MySQL 是最流行的开放源码 SQL 数据库管理系统,由 MySQL AB 开发。MyS
14、QL是一个关系型数据库管理系统。它将数据保存在不同的表中,从而增加了速度并提高了灵活性。MySQL 使用的 SQL 语言是用于访问数据库的最常用标准化语言。由于MySQL 数据库具有体积小、速度快、易于使用、工作模式多、总体拥有成本低且开放源码等特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。MySQL 数据库搭配 PHP 和 Apache 可组成良好的开发环境。Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,是世界使用排名第一的 Web 服务器软件。 Apache 的特点是简单、速度快、性能稳定,并可做代理服务器
15、来使用。它可以运行在几乎所有广泛使用的计算机平台上。由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。2.2HTML+CSS+JavaScript 介绍HTML(Hypertext Markup Language)是超文本标记语言,是用于描述网页文档的一种标记语言。它是网页中的重要构成,主要负责将网页内容进行格式化,使内容更具逻辑性。HTML 是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。HTML 具有简易性、可扩展性和平台无关性。CSS( Cascading Style Sheet)是层叠样式表, ,它是一种用来表现
16、 HTML 或 XML 等文件样式的计算机语言。CSS 语法的目的是让网页内容与视觉呈现分离。一方面可以使页面维护工作更容易,另一方面也可增加页面在不同媒介的呈现效果。CSS 能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS 能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。JavaScript 是一种面向对象的动态类型的基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端 Web 开发的脚本语言,其源代码
17、在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。JavaScript 常用来给 HTML 网页添加动态功能。在 HTML 基础上,使用Javascript 可以开发交互式 Web 网页。Javascript 可以提高了网页的浏览速度和交互能力并使网页增加互动性。2.3Zend Studio 介绍Zend Studio 是专业开发人员在使用 PHP 整个开发周期中唯一的集成开发环境,它包括了 PHP 所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Zend Studio 加速开发周期,并简化复杂的应用方案。 Zend Studio 具备功
18、能强大的专业编辑工具和调试工具,支持 PHP 语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的 PHP 代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。Zend Studio 设计时考虑了商务应用开发的需要,是开发者利用 PHP 创造强有力数据库应用软件的完美开发环境。Zend Studio 具有专业和企业开发者开发、配置、调试和管理关键商务 PHP 应用的易使用性、可伸缩性、可靠性和扩展性,是当今世上最强大的 PHP 集成开发环境。2.4ThinkPHP 框架介绍ThinkPHP 是一个免费开源的、快速简单的面向对象的轻量级 P
19、HP 开发框架,遵循 Apache2 开源协议发布。ThinkPHP 从 Struts 结构移植过来并做了改进和完善,同时借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和 MVC 模式,融合了Struts 的思想和 TagLib(标签库) 、RoR 的 ORM 映射和 ActiveRecord 模式,封装了CURD 和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。ThinkPHP 具有很多实用的特性,如简单易用的 MVC 模式、独创的核心编译和项目编译机制、丰富的查询语言支持、自动编码转换等,这使其越来越受到 PHP 开发人员的认可。第三章 系
20、统分析3.1 可行性分析开发任何网站,都会受到时间和资源上的限制。因此,在开发项目之前需要进行可行性分析,以减少项目的开发风险。可行性分析主要包括经济可行性、技术可行性、操作可行性等。3.1.1 经济可行性经济可行性主要是对项目的经济效益进行评价。本网站开发只需要计算机、相关开发软件和资料的支持。本系统部署对软硬件要求不高,并且开发简单,使用方便,不需要耗费大量的人力物力即可开发出来。本网站操作简单,用户几乎不需要进行专业培训即可使用本系统。该网站投入使用后将方便商家和用户的使用并且可以节约大量人力物力资源,所以本网站的开发在经济上是可行的。3.1.2 技术可行性技术可行性主要考虑现有的硬软件
21、平台能否满足开发者的需要,现有的技术条件能否顺利完成开发工作。本网站采用 PHP+MySQL+Apach 开发环境。PHP 是一种流行的安全稳定的网页开发技术, MySQL 数据库是性能卓越的数据库,非常适合中小型网站的开发。Apach 是功能强大的开源网页服务器。PHP、MySQL 和 Apache 搭配可组成良好的开发环境。本网站使用 Zend Studio 工具开发。 Zend Studio 是 PHP 开发的集成开发环境,包含所有 PHP 必须的开发部件。本网站采用 ThinkPHP 框架。ThinkPHP框架性能优异,适合小型网站的开发现如今硬件的更新速度越来越快,可靠性有了大幅度提
22、高而价 格越来越低。所以 现有的软硬件平台完全满足网站开发的需要,本网站的开发在技术上是可行的。3.1.3 操作可行性随着科学技术的日益发展,互联网技术已经在各个领域得到了广泛地应用。传统的办公用品销售方式存在的问题越来越明显,而信息化、网络化的办公用品网上商城则凸显出巨大的优势。该网站功能强大、操作方便,用户只需熟悉基本的上网操作即可使用该系统。所以该网站的开发在操作上是可行的。综上所述,办公用品网上商城在经济上、技术上和操作上都是可行的,且开发该网站会带来一定的经济效益和社会效益。3.2 需求分析需求分析是指在新建或改变一个系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求
23、分析是软件工程中的一个关键过程,它在系统级需求工程和软件设计间起到桥梁作用。3.2.1 功能需求分析办公用品网上商城的用户主要分为两类:会员和管理员。该网站分为前台和后台两个部分。前台面向会员,后台面向管理员。会员在注册并成功登录后,可以浏览查询商品、订购商品和管理个人信息等操作。管理员登录后台页面后可以对商品、用户、订单和商城信息进行一定的管理。办公用品网上商城前台可以实现以下基本功能:(1)注册功能。在网站首页单击注册标签或按钮,进入注册页面。在注册页面填写基本信息即可成功注册为该网站的会员。(2)登录功能。会员在网站主页单击登录标签进入会员登录页面。会员输入会员名、密码以及验证码后点击登
24、录按钮。若输入信息正确弹出提示信息,并跳转回主页。此时主页显示登录会员信息。若输入信息错误或会员帐号被冻结,则弹出提示信息后跳回主页。管理员在后台管理员登录页面输入正确的管理员名和密码后进入后台管理页面。(3)查询商品。会员在网站主页上可以点击查看部分商品信息,也可以按分类查看各种办公用品。会员在搜索框中输入商品名称,单击搜索按钮后即可实现商品查询。(4)订购商品。会员搜索到满意的商品后,单击加入购物车按钮,即可将商品加入购物车。如需要更改购物车内商品的信息,可以在购物车里修改商品的数目或者直接删除商品。选购完商品后点击进入收银台页面,在该页面填写基本信息后即可提交订单。(5)个人信息修改。会
25、员登录后点击主页上的用户中心标签,进入个人信息界面,在该页面内修改个人信息。办公用品网上商城后台可以实现以下基本功能:(1)用户管理。管理员在后台管理界面可以查看会所有会员信息、删除或者冻结会员。管理员在后台也可以修改自己的信息。(2)订单管理。管理员在后台管理界面查看订单详情并处理订单。 (3)商品管理。管理员在后台可以添加或者删除商品的类别。管理员也可以在后台添加或删除商品、修改商品信息。(4)信息管理。管理员在后台可以添加公告、修改已发布的公告。管理员也可以对会员的评论进行相关处理。3.2.2 非功能需求分析本系统的非功能需求如下:(1)用户界面需求:简洁、易用、易懂,友好和谐的用户界面
26、。(2)硬件需求:Pentium 以上计算机(3)可靠性需求:用户在正常使用本系统时,用户的操作不会产生数据丢失。(4)安全保密性需求:用户登录需要密码验证。3.2.3 用例分析用例是参与者和计算机之间未达到某个目的的典型的交互过程。用例图是由参与者、用例以及他们之间的关系构成的用于描述系统功能的动态视图。它是需求分析中的产物,主要用来描述参与者和用例之间的关系。用例图显示了系统的用户和用户希望提供的功能,有利于用户和软件开发人员之间的沟通。参与者是指存在于系统与系统外部并直接与系统进行交互的外部实体的抽象。在用例图中使用人形图标表示参与者,参与者的名字写在人下面。用例使参与者可以感受到的系统
27、服务或功能单元,它定义了系统如何被参与者使用。用例图中用椭圆符号表示用例。用例和参与者之间的对应关系称为通信关联,它表示参与者使用了系统中的哪些用例。本次设计系统的参与者分为两类,会员和管理员。会员可以进行注册、登录、查询商品、订购商品和管理个人信息。会员如果在登录时忘记密码可以找回密码。管理员可以管理商品信息、管理用户信息、管理订单信息和管理网站信息。办公用品网上商城的用例图如图 3-1 所示。办 公 用 品 网 上 商 城会员管理员登录注册查询商品订购商品管理个人信息管理商品信息管理用户信息管理订单信息管理网站信息找回密码评价商品添加商品添加类别添加公告管理评论图 3-1 用例图3.2.4
28、 E-R 模型分析实体-联系( Entity Ralationship,ER)模型是用来描述现实世界的概念模型。实体-联系模型的基本要素是实体、联系和属性。客观存在并且相互区别的实物称为实体。而具有相同属性的一类实体抽象为一个实体型。实体的某一特性成为属性。而现实世界中事物内部及事物之间的联系抽象为实体型内部的联系和实体型之间的联系。E-R 图也称实体- 联系图。该方法用表示实体型、属性和联系的方法来描述现实世界的概念模型。在 E-R 图中用矩形表示实体型,矩形框内写明实体名。用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来。用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向
29、边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n 或 m:n) 。若实体之间联系有属性,则把属性和联系之间用无向边连上。本次设计抽象出会员、管理员、商品、分类和公告五个实体。管理员和公告、商品、分类三个之间都存在一对多的添加联系。管理员和会员之间存在一对多的管理联系。会员和商品之间存在多对多的订购与评论联系。各实体与联系如下图所示。会员会员名密码 身份证号家庭住址手机号码邮件编号邮编真实姓名Q Q 号码密码提示提示答案表 3-2 会员实体图管理员编号密码 帐号手机号管理员名表 3-3 管理员实体图商品编号名称品牌图片分类市场价价格会员价型号数量等级是否推荐表 3-4 商
30、品实体图公告编号标题内容表 3-5 公告实体图分类编号 类型名表 3-5 公告实体图管理员 添加 公告会员评论商品订购编号标题内容评论时间M添加时间编号数量收货人收货地址联系方式支付方式总价状态添加添加时间管理冻结状态分类添加订单号表 3-6 总 E-R 图第四章 系统概要设计4.1 系统功能设计4.1.1 系统总体结构办公用品网上商城分为前台和后台管理两个模块。前台面向会员,主要分为注册模块、登录模块、查询模块、订购模块和个人信息管理五个模块。后台面向管理员,主要分为会员管理模块、商品管理模块和订单管理模块三个模块。办公用品网上商城的总体结构模块图如下所示:个人信息模块 订单管理模块商品管理
31、模块 用户管理模块浏览商品 搜索商品管理购物车填写个人信息修改密码修改基本信息 管理会员信息管理员信息管理查询订单处理订单添加商品修改商品会员登录找回密码评论商品订购模块查询模块登录模块注册模块前台模块办公用品网上商城后台管理模块信息管理模块添加商品类别商品类别管理公告管理添加公告管理评论图 4-1 系统功能模块图4.1.2 主要模块流程图会员操作流程图如图 4-2 所示。会员登录输入帐号和密码会员已注册 ?注册会员会员被冻结 ?密码正确 ?前台页面查询商品加入购物车 , 填写数量继续购物 ?填写收货人信息提交订单点击个人中心修改会员信息修改密码退出登录忘记密码找回密码图 4-2 会员操作流程
32、图管理员操作流程图如图 4-3 所示。管理员登录输入账户和密码账户和密码都正确 ?后台管理页面商品管理 用户管理 订单管理 信息管理添加商品修改商品添加商品类别管理商品类别管理用户信息修改管理员信息查询订单处理订单管理公告添加公告管理评论操作正确操作正确操作正确退出登录操作成功操作成功操作成功否是是否是否是否图 4-3 管理员操作流程图4.2 数据库设计根据 E-R 图向关系模型转换的原则,本次设计共设计七张表。其中会员、管理员、商品、分类和公告五个实体各转换为一张表。管理员与商品之间的一对多的添加联系合并到商品表中。管理员与公告之间的一对多的添加联系合并到公告表中。会员与商品之间的多对多的订
33、购关系转换为订单表。会员与商品之间的多对多的评论关系转换为订单表。表 4-1 会员表列名 类型 长度 是否为空 是否主键 是否外键 说明id int 4 否 是 否 编号,自增name varchar 25 否 否 否 姓名pwd varchar 50 否 否 否 密码QQ int 11 否 否 否 QQ 号dongjie varchar 4 否 否 否 冻结状态email varchar 25 是 否 否 邮件sfzh varchar 25 是 否 否 地址tel varchar 25 是 否 否 手机tishi varchar 50 是 否 否 提示问题huida varchar 50 是
34、 否 否 答案dizhi varchar 100 是 否 否 地址youbian varchar 25 是 否 否 邮编truename varchar 25 是 否 否 真实姓名表 4-2 管理员表列名 类型 长度 是否为空 是否主键 是否外键 说明id int 4 否 是 否 编号,自增name varchar 25 否 否 否 姓名pwd varchar 25 否 否 否 密码tel varchar 25 否 否 否 手机号realname datetime 25 是 否 否 真实姓名表 4-3 商品表列名 类型 长度 是否为空 是否主键 是否外键 说明id int 4 否 是 否 编号
35、,自增mingcheng varchar 25 否 否 否 名称jianjie text 否 否 否 描述dengji varchar 5 否 否 否 等级xinghao varchar 25 是 否 否 型号tupian varchar 200 是 否 否 图片shuliang int 4 是 否 否 数量tuijian int 4 是 否 否 是否推荐typeid int 4 是 否 是 类型pinpai varchar 25 是 否 否 品牌huiyuanjia varchar 25 是 否 否 会员价shichangjia varchar 25 是 否 否 市场价addtime var
36、char 25 否 否 否 添加时间表 4-4 公告表列名 类型 长度 是否为空 是否主键 是否外键 说明id int 4 否 是 否 编号,自增title varchar 20 否 否 否 标题context text 否 否 否 内容time varchar 50 是 否 否 添加日期表 4-5 分类表列名 类型 长度 是否为空 是否主键 是否外键 说明id int 4 否 是 否 编号,自增typename varchar 50 否 否 否 类型名表 4-6 订单表列名 类型 长度 是否为空 是否主键 是否外键 说明id int 4 否 是 否 编号,自增dingdanhao varch
37、ar 125 否 否 否 订单号spc varchar 125 否 否 是 商品编号slc varchar 125 否 否 否 数量shouhuoren varchar 25 否 否 否 收货人sex varchar 2 否 否 否 性别dizhi varchar 125 否 否 否 地址youbian varchar 10 否 否 否 邮编tel varchar 25 否 否 否 联系电话email varchar 25 是 否 否 邮件shfs varchar 25 是 否 否 送货方式zfff varchar 25 否 否 否 支付方式time varchar 25 否 否 否 时间xi
38、adanren varchar 25 否 否 是 下单人total int 11 否 否 否 总价zt varchar 25 否 否 否 状态表 4-7 评价表列名 类型 长度 是否为空 是否主键 是否外键 说明id int 4 否 是 否 编号,自增userid int 4 是 否 是 会员编号spid int 4 是 否 是 商品编号title varchar 200 是 否 是 标题content text 是 否 是 内容time varchar 否 否 是 添加日期4.2.2 数据库表之间联系图 4-4 数据库表关系图第五章 详细设计与实现5.1 前台模块设计与实现ThinkPHP
39、框架基于 MVC 设计模式。ThinkPHP 中的 MVC 分层体现在:模型(M):模型的定义由 Model 类来完成。控制器(C ):应用控制器(核心控制器 App 类)和 Action 控制器都承担了控制器的角色,Action 控制器完成业务过程控制,而应用控制器负责调度控制。视图(V):由 View 类和模板文件组成,模板做到了 100分离,可以独立预览和制作。根据上文对网上商城的分析,前台模块共设计五个 Action 控制器类:IndexAction类、GonggaoAction 类、ProductAction 类、UserAction 类和 PublicAction 类。这五个控制器
40、类都继承 ThinkPHP 框架 Action 控制器基类 Action 类。其中 IndexAction 类是系统默认的控制器类,而 PublicAction 类用于进行初始化等操作。GonggaoAction 类负责与公告相关的某些操作,ProductAction 类负责与商品相关的一些操作,DingdanAction类负责处理与订单相关的一些操作,UserAction 类负责与会员相关的一些操作。前台模块控制器类图如图 5-1 所示。+ _ _ c o n s t r u c t ( )# i s A j a x ( )+ d i s p l a y ( )+ a s s i g n (
41、 )# n a m e# v i e w# e r r o rA c t i o n C l a s s+ _ i n i t i a l i z e ( )P u b l i c A c t i o n C l a s s+ i n d e x ( )I n d e x A c t i o n C l a s s+ l o o k i n f o ( )+ a d d g o u w u c h e ( )+ g o u w u 1 ( )+ r e m o v e g w c ( )+ s h o w n e w ( )+ s h o w t u i j i a n ( )+ s h o
42、w h o t ( )+ s h o w f e n l e i ( )+ h i g h t f i n d ( )+ d o h i g h t f i n d ( )+ f i n d s p ( )+ s a v e p j ( )+ s h o w p j ( )+ s a v e d d ( )+ s h o w d d ( )+ f i n d d d ( )+ q r d d ( )P r o d u c t A c t i o n C l a s s+ s h o w g g ( )+ s h o w g o n g g a o ( )G o n g g a o A c t
43、i o n C l a s s+ c h k u s e r n c ( )+ s a v e r e g ( )+ c h a n g e i n f o ( )+ c h k p a s s w o r d ( )+ c h k u s e r ( )+ l o g o u t ( )+ m y p w d ( )+ s h o w p w d ( )U s e r A c t i o n C l a s s图 5-1 前台模块控制器类图ThinkPHP 框架中,Model 模型类与数据库中的表或视图一一对应。通过 Model 模型类可直接对数据库中的表尽享增加、删除、修改和查询等操作。由
44、于前台模块不需要与管理员员进行交互,所以前台模块共设计六个模型类:DingdanModel 类、GonggaoModel 类、PingjiaModel 、ShangpinModel 类、TypeModel 类和 UserModel 类。六个模型类都继承 ThinkPHP 框架模型类Model 类。前台模块模型类图如图 5-2 所示。A d m i n M o d e l C l a s s G o n g g a o M o d e l P i n g j i a M o d e l C l a s sS h a n g p i n M o d e l C l a s s T y p e M
45、o d e l C l a s s U s e r M o d e l+ _ _ c o n s t r u c t ( )+ a d d ( )+ s a v e ( )+ d e l e t e ( )+ s e l e c t ( )# d b# n a m e# d b n a m eM o d e l C l a s s图 5-2 后台模块模型类图5.1.1 注册模块设计与实现ThinkPHP 框架基于模块和操作的方式进行访问,网站的所有的模块和操作都通过URL 的参数来访问和执行。单击主页上会员注册标签,系统解析 URL 参数,调用UserAction 类的 reg()方法。由于
46、UserAction 类未定义 reg()方法,系统自动调用模板文件 reg.html,显示会员注册界面。在该界面输入相关信息,点击提交按钮即可完成注册。本次设计运用 JavaScrip 技术对表单输入的内容进行了校验。点击提交按钮后,系统调用 UserAction 类的 savereg()方法。该方法通过 UserModel 模型类从数据库中获取相关信息,判断会员名是否已存在。若不存在则显示注册成功。若会员名已注册,则返回会员注册页面。会员注册页面如图所示图 5-3 会员注册页面5.1.2 登录模块设计与实现已注册会员在首页的登录框内输入会员名、密码和验证码,即完成登录操作。会员点击提交按钮
47、后,系统会调用 UserAction 类的 chkuser()方法。该方法通过接收表单信息对验证码进行校验,通过 UserModel 模型类从数据库中获取相关信息对会员的状态以及会员提交的会员名和密码进行校验。如果会员名、密码或验证码输入错误或者会员已经被冻结,则拒绝会员的登录,弹出相关信息后返回首页。若会员输入信息正确且未被冻结,则开启 session,将会员的相关信息存入 session 中,并显示会员成功登录。会员登录页面如图 5-4 所示。图 5-4 会员注册页面5.1.3 查询模块设计与实现会员可以浏览首页内的相关商品,也可以网页上方的搜索框中输入相关信息,进行模糊搜索或精确搜索。若
48、点击立刻查找按钮,则系统调用 ProductAction 类的 findsp方法。该方法通过 ShangpinModel 模型类对输入的关键字进行模糊查询。然后系统将查询结果注入到模板文件 findsp.html 中,并调用该模板文件显示查询结果。若点击精确查找按钮,系统将调用 ProductAction 类的 hightfind 方法,该方法通过ShangpinModel 类和 TypeModel 类从数据库中查询商品名称、型号和类型等信息。系统将这些注入到模版文件 hightfind.html 中,并调用该模板文件显示精确搜索页面。会员在该页面内选择详细的商品信息,进行精确查找。系统会调用
49、 ProductAction 类的dohightfind 方法,通过 ShangpinModel 类在数据库中对输入的信息进行精确匹配查找。系统将结果注入到模板文件 findsp.html 中,并调用该模板文件显示查询结果。查询结果页面如图 5-5 所示。图 5-5 查询结果页面在网页上点击某一商品的图像、名称后,系统会调用 ProductAction 类的 lookinfo()方法。该方法接收超级链接传来的参数,通过 ShangpinModel 类根据参数从数据库中查询关于该商品的相关信息。系统将查询结果注入到模板文件 lookinfo.html 中,并将调用该文件显示商品的具体信息。商品具体信息页面如图 5-6 所示。图 5-6 商品具体信息页面系统自动判断是否有会员登录。若未登录,则只显示商品的具体信息。若有会员登录,则会继续显示评论框。已登录会员输入评论主题和评论内容后点击提交按钮,完成评论。系统调用 ProductAction 类的 savepj()方法。该方法接收表单传来的参数,从 session 中获取会员名,然后通过 UserModel 模型类从数据库中获取会员编号,最后通过 PingjiaM