《毕业设计-论文电信网上营业厅用户自服务系统的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计-论文电信网上营业厅用户自服务系统的设计.doc(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华中科技2014届毕业设计说明书1 引言1.1 开发电信网上营业厅用户自主模块课题的背景改革开放以来,我国经济高速发展,在国家大力推进信息化建设的背景下,计算机技术得到了突飞猛进的发展,计算机的应用也普及到了经济和社会生活等各个领域。特别是近年来,随着互联网的发展,人们对互联网的技术要求不仅仅满足于浏览网页了,日益忙碌的人们开始追求足不出户的利用互联网这一强大的平台来实现网上缴费。网上缴费的方式的兴起,让大部分消费者缴费过程变得更加简单、方便、低廉、安全、快捷。 开发电信网上营业厅服务系统会给我们的生活和工作带来很大的好处:一是网上缴费的费用比较低,可以参加各种活动,只需要一个银行卡或者支付宝
2、、微信账户即可完成足不出户的缴费。二是没有时间的限制,可以24小时营业,店主只需将产品详细信息公布在网上,就可以实现24不打烊。三是没有区域限制,只要是上网的消费者都可以看到信息。因此,电信网上营业厅系统是一种具有交互功能的商业交互平台,是在网络上建立的虚拟商城,这种虚拟商城给消费者的购物带来了放便、快捷,是消费者的购物变得更加安全,网上缴费是一大特色其次是用户还可以在网上查看最新上架的套餐业务,实现足不出户的在线订购套餐;同时用户之间可以通过网上交流功能模块里的在线论坛系统发布最新的帖子盒查看最新的帖子,实现了用户之间的交流社区功能。1.2 国内外研究现状、发展动态经过多年发展以后,人们对于
3、网络的依赖越来越强烈,网络在不知不觉中改变了大众、团体的工作、生活方式。伴随着Web2.0的出现和发展,网络应用日益丰富,受众需求日益扩展。他们要求以自我为中心来重新整合内容、商务、娱乐、通信及其他种种组织、个人应用,以最大程度地满足个性化的需求。现在的业务办理系统主要有手机话费查询和缴费、套餐申请、无线宽带、手机功能办理、网上选号、新业务办理。研究发现,按客户群进行信息组织是国外主流电信运营商网站通常的做法,如BT、AT&T、NTT、KDDI等公司。它们通常在网站首页提供醒目的客户群入口,用户点击客户群,即可进入相应的客户群页面,客户群页面提供针对该客户群的信息与服务。 随着网上购物平台的发
4、展和完善,越来越多的人将加入网上缴费的行列中,它是一个具有很好发展潜力的市场,将成为中国市场经济不可或缺的一部分,更有助于推动中国经济的发展,提高中国的综合竞争力。为人们提供方便便宜的同时,也给自身增加了收益。1.3 系统目标本系统主要为那些用互联网进行消费的和工作繁忙没时间去营业厅的消费者所使用,系统有完整的前后台,商家可以利用系统的后台进行角色管理和用户管理,论坛板块的管理,模块的管理:其中包括:投诉信息的管理,套餐业务的管理,缴费信息的管理,以及个人信息的维护包括查看个人信息和修改自身的密码,还有对不同的用户组角色分配不同的权限等。不同的用户角色可以在系统前台根据管理员对用户分配的不同权
5、限进入不同的功能菜单进行对管理员发布的论坛板块信息的查看和发帖,回复等功能,同时可以实现在前台的套餐业务的查看与订购,在线缴费,在线投诉等。在设计时应满足如下几个目标:(1)查询信息方便、灵活,数据存储准确、安全;(2)可以方便对用户的个人信息的查看和修改,包括密码的修改等;(3)可以方便实现在线查看套餐业务,订购自己的套餐业务;(4)能够实现在线缴费的功能;(5)能够实现在线投诉的功能;(6)实现论坛的发布和查看,并能实现回帖功能;(7)用户可以根据管理员对不同用户角色的分配登录系统实现不同的功能模块;1.4 课题研究的意义传统的电信业,业务办理都是在前台进行,客户浪费了大量的时间去排队办理
6、业务,而电信公司花了大量的人力物力去开设办理业务网点。这样就造成了极大的浪费,因此我们想要创建网上营业厅来解决此问题。电信网上营业厅是各大运营商为了方便客户办理查询各类业务而开办的专业网站,用户通过登录网上营业厅可以自主办理各种交易业务,查询业务清单,查询业务记录,获知最新动态,投诉建议等功能。这一点有点类似于网上银行。网上营业厅可以使用户免去劳动之苦,不用再为办理业务而奔波,在营业厅排队,随着网络技术和用户需求的发展,互联网的内涵已经并且突破传统的基于PC模式,向多样化终端,多手段接入多媒体网络演进,而整个系统优化的结果将导致应用和网络的日趋紧密结合。这种网络架构的变更将对电信运营商的运营模
7、式产生深刻的影响,中国电信门户网站也应势而生。既汲取了国外的成功经验又在实际应用中融合了中国客户的消费特点和服务需求。2 系统关键技术2.1 MVC模式MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而达到更好的开发和维护效率。在MVC模式中,应用程序被划分成模型(Model)、视图(View)和控制器(Controller)三个部分。其中,模型部分包含了应用程序的业务逻辑和业务数据;视图部分封装了应用程序的输出形式(页面、界面);而控制器部分负责协调模型和视图,根据用户请求来选择要调用哪个模型来处理业务,以及最终由哪个视图为用
8、户做出应答。MVC模式的这三个部分的职责非常明确,而且相互分离,每个部分都可以独立的改变而不影响其他部分,大大提高了应用的灵活性和重用性。2.1.1 MVC模式基础在MVC模式中,一个应用被划分成了模型(Model)、视图(View)和控制器(Controller)三个部分。2.1.2 模型、视图、控制器各部分的作用模型(Model):负责封装应用的状态,并实现应用的功能。通常分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息、用户信息等;而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等。视图(View):用来将模型的内容展现给用户,用户可以通过视图来请求模型进行更新
9、。视图从模型获得要展示的数据,然后用自己的方式展现给用户,相当于提供界面来与用户进行人机交互;用户在界面上操作或者填写完成后,会点击提交按钮或是以其它触发事件的方式,来向控制器发出请求。控制器(Controller):用来控制应用程序的流程和处理视图所发出的请求。当控制器接收到用户的请求后,会将用户的数据和模型的更新相映射,也就是调用模型来实现用户请求的功能;然后控制器会选择用于响应的视图,把模型更新后的数据展示给用户。2.1.3 MVC模式作用在早期开发的时候不遵守MVC模式。结果程序结构划分不明确,各个部分功能混乱,在业务功能发生变更时,无论是业务逻辑修改还是显示形式修改,都要修改很多的类
10、,“牵一发而动全身”,导致软件的开发和维护效率低下,错误百出。而遵循MVC模式来开发系统,就会极大的避免上述问题的出现。MVC模式的核心手段是解耦,MVC模式通过仔细的划分功能,把整个应用程序划分成模型、视图、控制器三个部分,然后严密控制三个部分之间的通信,从而得到一个结构清晰、功能分布合理、可重用、可扩展、可维护的应用程序。因此,使用MVC模式,可以获得以下好处:低耦合性:在MVC模式中,模型和视图是解耦的,模型不会依赖于视图,视图仅仅从模型中获取需要展示的数据,不会与模型的逻辑处理相关联。更低的开发成本:MVC模式帮我们清楚的划分了各部分的职责,让程序员各司其职,Java程序员只关心业务逻
11、辑的实现,也就是模型部分;而界面程序员只关心页面展示,也就是视图部分。更好的可维护性:MVC模式划分出明晰的模型和视图,并使其解耦,在软件需求发生变更的时候,就可以各自独立的改变而不会相互影响,使得程序更容易维护和扩展。2.2 轻量级Java EE开发平台:S2SH轻量级JavaEE应用,以传统的JSP作为表现层技术,以系列来源框架作为MVC层、中间层、持久层解决方案,并将这些开源的框架有机地组合在一起,使得javaEE应用具有高度的可扩展性、可维护性。2.2.1 Struts 2Struts2是以Webwork的设计思想为核心的MVC框架。Struts 2 与Struts 1相比,确实有很多
12、革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts 1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2.因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证。Struts2框架的处理流程如图2.1所示:图2.1 Struts2框架处理流程通过上面对Struts2体系结构的了解,我们发现Struts2对Struts1进行了巨大的改进。主要表现在如下几个方面:(1) 在A
13、ction的实现方面:Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的POJO。(2) 线程模型方面:Struts1的Action工作在单例模式,一个Action的实例处理所有的请求。Struts2的Action是一个请求对应一个实例。没有线程安全方面的问题。(3) Servlet依赖方面:Struts1的Action依赖于Servlet API,比如Action的execute方法的参数就包括request和response对象。这使程序难于测试。Struts2中的Action不再依赖于Servlet API,有利于测试,并且实现TDD。(4) 封装请求参数
14、:Struts1中强制使用ActionForm对象封装请求的参数。Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。(5) 表达式语言方面:Struts1中整合了EL,但是EL对集合和索引的支持不强,Struts2整合了OGNL(Object Graph NavigationLanguage)。(6)绑定值到视图技术:Struts1使用标准的JSP,Struts2使用“ValueStack”技术。(7) 类型转换:Struts1中的ActionForm基本使用String类型的属性。Struts2中使用OGNL进行转换,可以更方便的使用。(8) 数据校验:S
15、truts1中支持覆盖validate方法或者使用Validator框架。Struts2支持重写validate方法或者使用XWork的验证框架。(9) Action执行控制的对比:Struts1支持每一个模块对应一个请求处理,但是模块中的所有Action必须共享相同的生命周期。Struts2支持通过拦截器堆栈为每一个Action创建不同的生命周期。2.2.2 Hibernate传统的Java应用都是采用JDBC来访问数据库的,但传统的JDBC采用的是一种基于SQL的操作方式,这种操作方式与Java语言的面向对象特征不太一致,所以Java EE应用需要一种技术,通过这种技术能让Java以面向对
16、象的方法操作关系数据库。 这种特殊的技术就是ORM (Object Relation Mapping),最早的ORM是Entity EJB(Enterprise JavaBean),EJB就是经典Java EE应用的核心,从EJB l.0到EJB 2.X,许多人觉得EJB非常烦琐,所以导致EJB备受诟病。 在这种背景下,Hibernate框架应运而生,Hibernate框架是一种开源的、轻量级的ORM框架,它允许将普通的、传统的Java对象(POJO)映射成持久化类,允许应用程序以面向对象的方式来操作POJO,而Hibernate框架则负责将这种操作转换成底层的SQL操作。Sun公司引入了JP
17、A规范。JPA规范其实是一种ORM规范,因此它的底层可以使用Hibernate、TopLink等任意一种ORM框架作为实现。很明显,如果应用程序面向JPA编程,将可以让应用程序既可利用Hibernate的持久层技术因为可以用Hibernate作为实现:也可以让应用程序保持较好的可扩展性因为可以在各种ORM技术之间自由切换。Hibernate体系结构如图2.2所示:图2.2Hibernate体系结构2.2.3 Spring 3Spring框架里充满了各种设计模式的应用,如单例模式、工厂模式、抽象工厂模式、命令模式、职责链模式、代理模式等,Spring框架的用法、源码则更是一道丰盛的Java大餐。
18、Spring框架号称Java EE应用的一站式解决方案,Spring本身提供了一个设计优良的MVC框架:SpringMVC,使用Spring框架则可直接使用该MVC框架。但实际上,Spring并未提供完整的持久层框架这可以理解成一种“空”,但这种“空”正是Spring框架的魅力所在.Spring能与大部分持久层框架无缝整合:Hibernate,JPA,iBATIS,TopLink更甚至直接使用JDBC。无论选择哪种持久层框架,Spring都会提供无缝的整合以及极好的简化。Spring框架主要由7个定义良好的、相互独立的模块组件构成。Spring系统框架如图2.3所示:图2.3Spring系统框
19、架2.3 Jquery简介jQuery11由美国人John Resig创建,至今已吸引了来自世界各地的众多JavaScript高手加入其中,包括来自德国的Jrn Zaefferer,罗马尼亚的Stefan Petre等等。jQuery是继Prototype之后又一个优秀的JavaScript框架。其宗旨是WRITE LESS,DO MORE,写更少的代码,做更多的事情。使用jQuery有如下特点:(1) 提供了强大的功能函数:使用jQuery提供的强大的函数库能够帮助我们快速完成各种功能, 而且会让我们的代码异常简洁。(2) 解决浏览器兼容性问题:对于普通的JavaScript脚本往往是不同的
20、浏览器需要编写不同的JavaScript脚本。有了jQuery我们就不需要再重复的编写JavaScript代码了,因为jQuery对于各种浏览器是兼容的,使用jQuery并不需要考虑浏览器兼容性问题。(3) 实现丰富的UI:jQuery为我们提供了界面美观且有兼容各种浏览器的各种UI,使用开发web页面更加容易。(4) 丰富的插件:jQuery为我们提供了各种插件,使我们只要懂得jQuery基本语法就能够编写出漂亮的功能完善的Web页面。3 系统需求分析3.1 需求定义电信网上营业厅用户自服务系统平台是面向用户的电信网上营业厅网,下设用户管理,角色管理,论坛管理,在线论坛,在线缴费信息管理,套
21、餐业务的管理,在线投诉的管理,以及可以实现在线缴费,在线投诉,在线查看套餐业务,在线订购套餐业务等特色栏目。其各个模块的大致内容如下:1. 在线缴费用户可以根据自己管理员分配的不同的角色信息进入不同的模块,实现不同的功能。在线缴费功能模块类似于目前主流的电子商务平台,用户可以通过输入自己想要缴纳的电话号码并选择自己的缴费方式和缴费金额实现足不出户的在线网上上缴费功能。2. 套餐业务的变更套餐业务的变更模块包括查看所使用的套餐计划以及近期人气指数暴涨的套餐业务,并能根据需要申请自己满意的套餐业务,同时也能取消自己不想要的套餐业务等内容。这样使用户可以随时查看各种套餐业务的动态信息,并根据自己的需
22、求实现足不出户的在线申请订购自己想要的套餐业务。3. 在线投诉求购模块包括求购信息发布、求购信息搜索、求购信息筛选等内容。其中求购信息发布是指有意购车的用户可以在二手车交易平台上发布自己的购车意向,并留下自己的联系方式,等待有意出售符合该求购条件的卖家线下联系。求购信息搜索和求购信息筛选是有意出售车源的卖家通过该功能查找是否有用户想要购买自己现有的车源类型。4. 个人信息管理模块用户可以实现简单的注册功能,通过个人信息模块可以对自己己经注册的简单个人详细信息进行修改,为了安全性,用户还可以进行对密码的修改操作。5. 网上交流模块类似于现在主流的交流社区,每个网站都存在属于自身的论坛模块,用户可
23、以查看最新的论坛板块信息,方便了解最新的电信信息,同时用户可以查看不同板块的帖子与回复的内容,可以就不同的板块信息进行在线发帖,以及可以对别人的评论进行回复功能。为用户在网上交流提供了一个平台,形成了一个电信网上营业厅网上交流的社区。6. 权限分配这是本系统.电信网上营业厅用户自主模块的一大特色,管理员可以所有的用户信息进行管理,对不同的用户添加不同的角色,并对不同的角色信息分配相对应的权限。现在的权限管理与分配已经成为许多网站和系统必备的模块。这样就可以把不同的用户划分为不同的角色组,然后每个角色都有自己的权限,当不同的用户登录的时候,系统会根据此用户所分配的不同权限,进入不同用户角色的功能
24、菜单模块。如下为不同的角色所展示的不同功能模块:普通用户主要有对电信网上营业厅最基本功能的实现权限,如最新套餐业务的查看、在线投诉,在线发帖,在线回复,在线缴费功能等,同时还拥有自己的个人信息管理模块,实现对自己的详细信息的编辑与修改,并可以修改个人密码等。营业员用户除了具有普通用户所具有的功能外,还拥有为普通用户订购套餐业务,对用户的缴费信息进行查看,套餐业务的查看与变更.包括定制与取消等信息。系统管理员是对电信网上营业厅所有信息的管理,但系统管理员分为不同的角色,只有超级管理员admin才有对站内所有信息的管理权限,超级管理员可以创建不同角色的普通系统管理员,并分配相应的权限。3.2 需求
25、功能用例本文在需求分析和可行性分析的基础上,建立了系统的各个用例。由于系统功能复杂,从大局上把握系统角色与系统用例的关系,分别有系统管理、网上交流模块、模块管理、网上交流模块、个人掌上营业厅等每个模块下有诸多子模块为extends关系,系统管理模块下主要有:用户管理模块,角色管理模块;网上交流模块具有论坛和版块管理模块;模块管理分别有:缴费信息管理,套餐业务管理,投诉信息管理;而相对于个人掌上营业厅有缴费功能,套餐业务的变更,在线投诉的功能。而不同的功能模块中又包含不同的功能,不同的角色用户具有不同的功能,对于超级管理员具有所有的权限,而相对于普通的用户有用户缴费,查看套餐业务,在线投诉,论坛
26、模块的在线发帖和在线回复功能,还有就是能等登陆,注册修改个人信息,修改密码等功能。而相对于营业员角色具有在线查看用户的投诉信息,对套餐业务的变更与修改预定,还能查看对板块信息的管理,以及对模块管理中的缴费信息进行统计,投诉信息的查看;还有对论坛的在线发帖在线回复信息的查看,还有就是能等登陆,注册修改个人信息,修改密码等功能。3.2.1 网上交流模块用例网上交流模块是作为一个可以在网上随时随地的发表帖子,在线回复的一个交流性平台,不同的角色用户之间存在不同的权限,对论坛具有不同的功能模块,现就两个不同的角色用户:普通用户和营业员做一阐述:对于普通用户来说:可以查看各个板块的主体信息,以及可以对不
27、同主题发表自己的新贴,以及就对自己做以回复的内容进行回复;而相对于营业员对比与普通用户来说:新增的权限有:可以对板块信息进行管理,对板块的内容进行上移和下移操作,同时也可以发布不同的版块内容。为不同的用户角色之间提供了一个良性的交流平台。其用例图见图3.1:图3.1 网上交流模块用例图3.2.2 电信掌上营业厅用例电信掌上营业厅是为用户提供了一个在线的缴费,在线投诉,在线查看套餐业务的平台,用户可以通过此平台进行足不出户的缴费,投诉,和查看最新的套餐业务。其用例图见图3.2:图3.2 电信掌上营业厅用例图4 系统设计4.1 系统架构设计4.1.1 系统逻辑结构设计本系统是基于B/S模式开发的J
28、AVA EE多层体系结构WEB应用。系统开发主要分为以下几层:表示层、业务层、DAO层、持久层。业务层和DAO层都通过接口与其它层进行连接从而减小了各层之间的耦合度,实现高内聚、低耦的思想。分层结构图如图4.1所示:图4.1 系统体系结构图系统采用了轻量级MVC框架Struts2,关于Struts2的介绍已经在第二章提及到,这里不做具体介绍。这里主要介绍Struts2的分层原理。Struts 2框架将应用分成了Model,View,Control三个部分。三个部分以最少的耦合协同工作,从而提高应用的可扩展性和维护性。这三个部分之间的相互作用如图4.2:控制器(Controller)接收并验证请
29、求的数据,将用户数据与模型的更新相映射选择用于响应的视图视图(View)解析模型的数据产生HTML响应请求模型的更新发送用户输入给控制器模型(Model)封装应用状态响应状态查询暴露应用功能通知视图改变用户请求视图选择状态改变状态查询通知改变表示方法调用表示事件图4.2 Struts2分层原理4.1.3 系统开发视图1开发环境o 开发语言:Java、JavaScript、Htmlo 数据库:Oracle 10go 应用服务器:Tomcat o 其他软件:JUnit等2分层策略分层是架构的基础,不管是经典的J2EE架构,还是轻量级的J2EE架构,一般大致分为5层(见图4.3)。图4.3 系统分层
30、策略o 数据持久层:也叫领域对象层(Domain Object),由POJO(Plain Old Java Object)组成。o DAO组件层:由DAO(Data Access Object)组件组成,一般封装了对数据库的CRUD原子操作。o 业务逻辑组件层:一般由Service对象组成,实现系统所需要的业务逻辑处理。o 控制器层:控制器用于拦截用户请求,调用业务逻辑组件,根据处理结果转发到不同的表现层组件。o 表现层:一般由JSP组成,负责接收用户请求,反馈处理结果。3目录结构图4.4 目录结构摘要图如图4.4,Source目录下一级目录包括:o View.action:存放action的
31、源文件。o domain:存放由数据库表映射来的实体类。o service:存放各模块的业务逻辑组件。o dao:存放各模块的DAO组件。o base:存放基本的抽象的泛型Action和Dao层,用来被继承。o util:存放各种工具类,如字符串处理,文件处理,日期处理等。o service和dao目录下分别存放它们的实现类目录impl。o Config:config目录下存放的是Spring+Hibernate+struts2的配置文件WebRoot目录下存放系统视图部分,包括Jsp页面,HTML页面和css、js等资源文件。4.2 系统类结构设计4.2.1 Domain Object层设计
32、Domain Object是指那些包含需要被透明持久化的属性,以及相关业务逻辑(体现在Use Case中)的POJO。如图4.5所示:为系统domain的总体类设计图:其中包括论坛模块的类结构设计UML图,也包括用户与角色,权限之间的类结构UML图,以及用户与个人掌上营业厅的功能类图,包括缴费模块,在线投诉,在线查看套餐业务的UML图。图4.5 系统总体Domain Model图4.6为个人掌上营业厅Domain Model层的类结构示意图。个人掌上营业厅是指对用户在网上的处理业务的分类。具体模块包括在线缴费Payment,在线投诉Complaint,在线查看办理变更个人套餐业务Busines
33、s。图4.6个人掌上营业厅Domain Model 图4.7为用户,角色,权限Domain Model层的类结构示意图。其中用户与角色之间存在多对多的关系,而相对应的角色与权限之间也是多对多的关联关系。图4.7 用户角色权限Domain Model 图4.8是网上交流模块论坛模块Domain Model层的类结构示意图。论坛包括板块信息,主题信息,回复信息,文章信息Article文章存放了论坛的基本信息,而相对应的主题和回复信息同时继承了文章的基本信息。板块与主体之间存在一对多的关系,同时板块与主体之间就上次发表的主题与板块之间存在一对一的关系,主题与回复存在一对多的关系,同时主题与上次回复存
34、在一对一的关系,同时文章Article与Author(User)用户之间存在多对一的关系。图4.8 网上交流论坛模块Domain Model4.2.2 DAO层类设计DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。该系统的DAO层类结构如图4.9所示:图4.9 DAO层类结构图BaseDao类是一个接口,它实现了对数据库几乎所有常见的操作,如增删查改,分页查找,批量删除,批量添加等,并定义了两个抽象方法。每一个POJO对应一个DAO,如User类对应UserDao类,而UserDao是继承了BaseDao类并实现了两个抽象方法。由于每个DAO都与UserDao类似,
35、此处不再一一列举。4.2.3 Domain Service层类设计Domain Service层主要负责处理业务逻辑,根据WEB端输入的数据进行相关逻辑处理,如果需要与数据库进行交互,则调用DAO层接口进行数据库操作,将DAO层返回的数据与WEB层输入的数据一起作为Service的输入部分,经过处理后输出最终结果返回给WEB层。该系统的Domain Service层类结构如图4.10所示:图4.10 Domain Service层类结构图DaoSupport类是一个接口,DaoSupportImpl是一个抽象类,对于常见的业务逻辑处理在DaoSupportImpl中已经提供了通用实现方法。其他
36、service层的接口继承Daosupport,实现类继承此抽象类DaoSupportImpl,要是有别的需求可以在service接口中重写其方法并在实现类中实现。4.3 数据库设计在系统体系结构设计和系统类结构设计的基础上,进行了本系统的数据库设计。然后确定entities及relationship,并进行细化行为,确定业务规则。随后确定需求数据,考量关系,最后检验设计。在设计数据库时,应该注意以下几点:(1)数据库的具体用途,根据用途设计符合用途的数据库;(2)数据库的规范化设计,防止设计中出现错误;(3)数据完整性的保护;(4)权限的安全性;(5)数据库维护性。本系统中采用Oracle数
37、据库建立数据库。4.3.1 数据分析本系统中的数据库主要是用于信息的提供、更新、保存和查询等等。因此,需要分析本系统中的功能所隐含的数据应用,从而确定出数据库的结构。1.用户注册、登录功能,需要对用户建立数据表,表中包含的数据项有用户名、密码、真实姓名、性别、联系电话、E.mail等;2.用户套餐业务办理的功能,需要建立套餐业务数据表,表中包含的数据项有套餐业务ID、业务套餐名称、业务套餐内容、套餐创建时间、套餐业务收费、套餐人气指数等;3.对用户缴费功能信息管理,需要缴费ID、缴费金额、缴费方式、缴费时间;4.对用户投诉信息管理时,需要建立投诉信息数据表,表中包含的数据项有投诉信息ID、投诉
38、标题名称、投诉内容、投诉时间等;5.当用户实现网上交流的论坛模块时,用户具有发帖和回帖的功能,则需要建立板块信息表,主题信息表,回复信息表,文章信息表等;6.论坛的主题信息表包括主题ID,主题标题,主题内容等继承着文章信息表。7.论坛的板块实现了用户方便的查看最新的板块信息,表中包括板块ID、板块标题、版块内容、文章数量、上次回复主题、回复数量等。8.论坛的回复信息表实现了用户更好的对论坛主题内容的进行恢复功能,表中包含的数据项有回复ID、回复标题、回复内容、回复时间等。综上所述,要建立的数据表和数据项如下:(1)用户信息表,包括用户ID、用户名、密码等数据项;(2)投诉信息表,包括投诉ID、
39、投诉内容、用户ID等;(3)套餐业务信息表,包括套餐业务ID、套餐名称、套餐描述等数据项;(4)缴费信息表,包括ID、缴费电话号码、缴费方式等数据项;(5)论坛主题信息表,包括主题ID、用户编号等数据项;(6)论坛回复信息表,包括回复ID、回复标题、日期、内容等数据项;(7)论坛板块信息表,包括板块ID、名称、内容等数据项。(8)用户角色信息表,包括用户user_id、角色role_id数据项。(9)角色信息表,包括角色ID、角色名称、内容等数据项。(10)用户权限信息表,包括权限ID、权限名称、权限内容等数据项。(11)用户角色权限信息表,包括角色role_id、权限privilege_id
40、数据项。4.3.2 数据库详细设计 1.用户缴费信息表 此表用于用户缴费的基本信息,为用户缴费和管理员管理缴费信息提供方便。如下表4.11所示。表4.11 itcast_payment(用户缴费信息表)序号名称别名类型长度(字符)1id缴费信息编号Long102Postdate缴费时间Timestamp503Paynum缴费金额Long104Type缴费方式varchar2505phoneNumber缴费电话号码Varchar2506paymentId用户IDLong102.用户信息表此表用于记录用于记录用户的注册信息,可以为用户的维护和管理员对用户进行管理提供信息。如下表4.12所示表4.1
41、2 itcast_user(用户信息表)序号名称别名类型长度(字符)1id 用户IDLong102Loginname登录用户名Varchar2503Password用户密码Varchar2504Name真实姓名Varchar2505Gender性别Varchar2506phoneNumber联系电话Varchar2507Description用户备注varchar2508departmentId部门IDLong103.用户投诉信息表 此表记录用户投诉的基本信息。如下表4.13所示。表4.13itcast_complaint(用户投诉信息表)序号名称别名类型长度(字符)1Id投诉IDLong10
42、2Topic投诉标题Varchar2503Content投诉内容Text655364Posttime投诉时间Timestamp505complaintId用户IDLong104.业务信息表 此表记录套餐业务基本信息,方便用户查看并订购自己的套餐业务信息,也为管理员管理套餐业务提供信息。如下表4.14所示。表4.14 itcast_business(业务信息表)序号名称别名类型长度(字符)1id套餐业务IDLong102Name套餐业务名称Varchar2503content套餐业务内容Text655364postTime套餐创建时间Timestamp505charge 套餐费用 varchar
43、2506Count套餐人气指数Int47business_id用户IDLong105.论坛主题信息表 此表记录用户的论坛主题详细信息,方便用户了解最新的论坛主题信息,如下表4.15所示。表4.15itcast_topic(论坛主题信息表)序号名称别名类型长度(字符)1id论坛主题编号Long102Title主题标题varchar2503content主题内容text655364postTime 主题创建时间Timestamp505ipAddr主题创建IPVarchar2506authorId主题创建作者Long107Type主题创建类型Varchar2508replyCount主题回复数量In
44、t49lastUpdateTime上次更新时间Timestamp5010forumId板块IdLong1011topicId回复IdLong1012lastReplyId上次回复IdLong106.论坛板块信息表 此表记录论坛板块的基本信息,方便用户了解本系统的最新论坛板块信息。如下表4.16所示。表4.16 itcast_forum(公告信息表)序号名称别名类型长度(字符)1id板块编号Long102name板块标题Varchar2503descrption板块内容Varchar2655364position板块创建位置号Int45topicCount 主体数量Int46articleCou
45、nt 文章数量Int47lastTopicId上次回复主题Long108formId关联主题的外键Long107.用户角色信息表此表记录记录用户的角色基本信息,一对本系统的用户赋予角色的信息表。如下表4.17所示。表4.17 itcast_role(角色信息表)序号名称别名类型长度(字符)1id角色idLong102Name角色名称Varchar2503Description角色描述Varchar2504 Roleid用户id外键Long108.用户权限信息表此表记录记录权限的基本信息,用户或者管理员会根据不同的权限进行登录,进入主界面显示不同的功能,以及为管理员给不同角色用户分配不同的角色。如下表4.18所示。表4.18 itcast_privilege(权限信息表)序号名称别名类型长度(字符)1id权限idLong102Url权限urlVarchar2503Name权限名称Varchar2504Parentid上下级权限Long109.角色权限桥表此表记录记录角色权限的联合主键,角色和权限存在多对的关系,此表为两者之间的桥表。如下表4.19所示。表4.19 itcast_role_privilege(角色权限桥表)序号名称别名类型长度(字符)1Roleid角色idLong102Privilegeid权限idLong1010.用户角色