电信计费系统的设计与实现.doc_第1页
电信计费系统的设计与实现.doc_第2页
电信计费系统的设计与实现.doc_第3页
电信计费系统的设计与实现.doc_第4页
电信计费系统的设计与实现.doc_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东建筑大学毕业设计说明书本科毕业设计说明书题 目:电信计费系统的设计与实现院 (部):计算机科学与技术学院专 业:网络工程班 级:姓 名: 学 号:指导教师: 完成日期: 43目 录摘 要IVABSTRACTV1 前 言1.1背景11.2改进11.3意义21.4章节安排22 系统分析2.1技术可行性42.1.1企业目前系统环境42.1.2系统开发环境42.2经济可行性42.2.1服务器42.2.2 数据库42.2.3 应用软件开发42.3开发技术简介53 系统需求3.1项目总体介绍83.2系统部署结构模型83.3功能模块结构模型93.4操作功能菜单结构模型103.5系统功能具体描述103.5.1采集系统103.5.2整合系统113.5.3用户管理系统113.5.4资费管理系统123.5.5管理员管理系统123.5.6帐单查询系统133.5.7帐务查询系统133.5.8用户自服务系统143.5.9权限管理系统144系统总体设计4.1软件结构图154.2数据实体设计164.2.1权限与管理员数据实体类图164.2.2用户帐务帐号,业务帐号与资费实体类类图174.2.3用户登录时长数据相关实体类图184.3数据库设计184.3.1 表的分类184.3.2 数据的存储194.3.3 建表规则194.3.4权限,角色与管理员相关表设计194.3.5用户帐务帐号,资费与业务帐号相关表设计214.3.6用户登录时长原始数据与整合数据相关表设计224.4架构设计245详细设计5.1资费模块的设计与实现255.1.1资费管理的设计与实现255.1.2资费修改的设计与实现295.1.3资费删除的设计与实现335.1.4资费增加的设计与实现356 系统测试6.1 测试引言396.2 测试目的396.3测试用例396.4 测试结果分析417 结 论43谢 辞44参考文献45摘 要在电信运营系统中,电信计费系统是主要的支撑系统,占有重要地位。计费系统能否有效、安全地运行,在很大程度上影响着电信运营系统本身的运行效率和信誉。计费系统历来都是电信运营和管理部门重点建设和发展的系统之一。电信计费系统是一个大型项目,分为九个模块,提供了强大的权限管理、用户管理、账单管理和资费管理。在这个项目中,本人主要负责资费管理模块的设计与实现工作。为了使程序更加高效,数据库采用的是轻量级的MYSQL,在程序中除了实现了资费的浏览、增加、查询、修改、删除等功能,还用Hibernate实现了分页功能。同时,为了给程序解耦合,采用了Spring的架构。关键字:电信计费;资费管理; MYSQL; Hibernate;SpringThe System of Telecommunication BillingABSTRACTTelecommunications charging system is a major support and import system in the Telecommunications Operation Charging Management System. The efficiency and credibility of the running of Telecommunications Operation Charging Management System is deeply influenced by the availability and security of the charging system, which is one of the most important system constructed by Telecommunications Operation and Management department.Telecommunications charging system is a large-scale project with nine modules providing users with such powerful functions as permission management, user management, billing management and charging management. I am responsible for the design and implementation of charging management module in this project.In order to make the whole system more efficiently, lightweight MYSQL is chosen as its DBMS and paging function is realized by the Hibernate framework and the Spring framework is used to uncouple procedures of the program except for such operations as browsing, adding, querying, modifying and deleting of the telecommunications charging and so on.Key Words: Telecom Charging; Fees Management; MYSQL; Hibernate; Spring1 前 言1.1背景我国目前对电信业务的计费处理在体制上多是以分散处理方式进行的,在技术上是以脱机按月处理方式进行的。随着电信业务量的急剧增长,电信网中各种新业务不断开放,使得老的电信计费处理方式即脱机计费和分散计费愈来愈显露出一些矛盾。脱机按月处理维护管理水平低、处理时间长、自动化程度差、计费错误多;同种业务分散处理设备重复投资、结算困难、管理复杂、管理部门难以掌握大网的运营状况;同一地区多种业务分散处理造成多种收费面对用户,难以使用户获得满意的服务;多个计费系统难以协调统一,不能灵活适应业务变化及开发新业务的要求。另外,近年来邮电体制进行改革,分散计费也不利于未来各种电信业务专营公司和各地电信公司之间的摊分结算。 解决上述计费中的矛盾要从两方面下手,一是建立集中计费体制,二是变脱机按月计费为联机实时计费。而集中计费需要联机计费这一技术手段来实现。原邮电部电信总局针对这种情况,并为适应电信业务未来发展的需要,决定建立“全国电信计费结算中心和各省计费结算中心”,用集中计费结算的方式解决目前分专业分散计费结算中存在的问题,并为开发各种新业务打下基础。 此外,电总还准备出台关于联机集中计费的一系列技术体制和技术规范,指导计费体制上和技术上的变革。1.2改进旧有的计费系统面临着如下的挑战:业务对象日新月异和数量的急剧膨胀,以及随之而来的技术手段的重大革新。业务的多样性使得计费需要处理的业务对象从数量上急剧扩大,同时,用户规模持续增长也是显见的,日处理单据亿级的系统成为处理的基本要求。传统上,解决集中海量数据计费的技术手段基本上采取了以文件为操作对象,通过串行逻辑、行处理的方式来加大批处理能力,然而这样的做法也日显力不从心。这许许多多的矛盾不断地挤压着旧有计 费体系已然脆弱的架构。新一代的计费已从被动的后台系统即网络上的所有活动完成之后才开始工作发展成为在提供服务和从服务中获得收益以及降低成本与提高运行效率方面扮演更为主动的角色。运营商、内容提供商和分销商需要投资这样的系统,从而在瞬息万变的市场中有效地开展竞争。电信计费系统已不再是被动的后台系统,而其作为整个电信行业的核心竞争力所在的地位日益巩固,已经成为整个电信系统的灵魂。它能有效地提供服务,降低运营成本,提高运营效率。无论是运营商、内容提供商还是各分销商必须给予它足够的重视,才能在群雄逐鹿中占居有利地位。1.3意义伴随着电信运营企业各大阵营的形成,电信业的竞争的白热化,以及以业务为导向,以客户为中心的理念的形成,电信业务正向多样化、个性化的方向发展,同时随着三网融合的深入,3G网在全国部分省、区直辖市正如火如荼的展开,业务之间的交融也更加复杂,电信增值业务正在兴起,电信业务正向多样化、个性化的方向发展。这都对计费系统提出了新的更高的要求。作为运营商组织和管理业务的重要支撑系统,计费系统要能为开展丰富的业务提供方便,并保持计费数据的准确无误,才能提高工作效率,降低维护成本,并为及时开展业务提供有效支撑。 从消费者的角度来讲,电信业务发展到今天,竞争格局的形成让消费者有了更多的选择,同时电信消费在整个消费比例中所占的比例也越来越大,消费者的消费心理日渐成熟,他们很关心电信业务的资费,希望了解每一个消费细节。因此,电信运营商只有做到计费的准确无误,才能保证业务的正常发展,取得消费者的信任。如今,计费系统已经成为反馈用户信息最直接、信息量最大的信息源。计费系统与网管系统、CRM系统等之间的联系日益紧密,成为这些系统的重要信息源,因此计费系统还应该能与这些系统无缝连接,是电信支撑系统中的重要一环。本课题所要研究的电信计费系统之资费管理模块,正是以此为出发点,通过对这一课题的学习和研究,可以将电信计费系统资费管理的基本原理、实现流程等展现出来,并可作为对新的综合电信计费系统软件资费管理的一种探索来学习和研究,也可以顺带了解整个电信实时计费的工作流程,具有一定的现实意义。1.4章节安排本文的章节安排如下:第一章:前言,本章主要介绍了整个项目的背景、作用及意义。第二章:系统分析,本章主要介绍了整个项目的技术可行性、经济可行性及用到的开发技术。第三章:系统需求,本章主要对项目进行了总体介绍、介绍了各模块的功能。第四章:系统总体设计,本章主要介绍了整个项目的数据实体设计、数据库设计及架构设计。第五章:详细设计,本章主要介绍了资费管理模块的设计与实现。第六章:系统测试,本章主要介绍了测试目的、测试用例和测试结果及分析。第七章:总结。2 系统分析2.1技术可行性2.1.1企业目前系统环境结构:后台服务+B/S结构操作系统:window/Unix/Linux任意操作系统支持浏览器:主流浏览器支持数据库:MySQL/Oracle任意数据库支持应用服务器:Tomcat/Weblogic/Websphere任意应用服务器支持2.1.2系统开发环境结构:后台服务+B/S结构操作系统:Linux 浏览器:主流浏览器(IE,firefox等)数据库:MYSQL应用服务器:UNIX开发工具:MyEclipse开发语言:JAVA2.2经济可行性2.2.1服务器本系统采用UNIX操作系统,UNIX操作系统是一个开源的安全系统,正版价格的产品,连一般普通客户都可以负担。 企业可以根据自己的具体情况购买适合自己的主机服务器。这需要一定的花费。2.2.2 数据库对于本系统,因为没有特殊需求,免费的MYSQL数据库足以支持。这也为项目节省了一定的费用。2.2.3 应用软件开发随着消费者对于电信服务的要求越来越高,业务对系统的要求也不断提升,包括交互界面的人性化处理和前台子服务系统的业务要求。因此需要功能强、效率高的现在电信计费系统。综上所述,计费系统已经成为反馈用户信息最直接、信息量最大的信息源,作出上述的花费对于面对当今电信行业的白热化竞争,是值得的。2.3开发技术简介(1) 数据库:MYSQLMYSQL是一个小型关系型数据库管理系统。 MYSQL 科夫勒等. MySQL 5权威指南(第3版)M. 北京: 人民邮电出版社,2006年12月.被广泛地应用在 Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MYSQL作为网站数据库。(2) 开发工具:My Eclipse使用My Eclipse做开发,为编程人员带来了很多方便,使用My Eclipse软件不需要对程序进行编译,该工具在做保存时自动进行编译。My Eclipse还可以打开数据库的连接,只需加入相应的jar包就可以对软件进行开发。(3) 开发语言:JAVA选择JAVA语言进行开发,JAVA是面向对象的语言,是对现实生活的抽象。JAVA语言是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。JAVA语言的三大特性:封装、多态性和继承。JAVA是一种跨平台,适合于分布式计算环境的面向对象编程语言。(4) Struts架构Struts是一个为开发基于模型(Model)视图(View)控制器(Controller)(MVC)模式的应用架构的开源框架,是利用 Java Servlet和JSP构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,因而吸引了众多的开发人员 的关注。首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏览器表单提交的事件,这里使用了Command模式,每个继承Action的子类都必须实现一个方法execute。Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。Struts孙卫琴 精通Struts:基于MVC的Java Web设计与开发M. 电子工业出版社,2004-8-1把Servlet、JSP、自定义标签和信息资源 (message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间。 (5) Spring框架Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。它是一个基于IoC和 AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模 块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现 Transcation Management。Spring能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种 一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可以很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。 (6) Hibernate框架Hibernate是一种Java语言下的对象关系映射解决方案。 它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL 的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate 不仅管理Java 类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL 和JDBC 处理数据的时间。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,它既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。最具革命意义的是,Hibernate可以在应用EJB(Enterprise JavaBeans是Java应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性。Hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。3 系统需求3.1项目总体介绍中国电信运营商新增一项Open Lab(开放实验室)出租业务,即该电信运营商提供基于Unix平台的实验室环境,选择使用这种业务的用户能够远程登录到实验室中做基于这个实验室环境的一些工作和实验。运营商希望借助先进的计算机技术对访问实验室的用户进行管理和计费,由此实现对此项业务运营的支持与管理。3.2系统部署结构模型图3.2系统部署结构模型图3.3功能模块结构模型图3.3电信营运功能需求结构图3.4操作功能菜单结构模型图3.4操作功能菜单结构模型3.5系统功能具体描述系统的各个模块以及它们的子模块的功能做具体的描述如下:3.5.1采集系统本系统是一个计费的系统,要想对用户进行准确的收费,首先必须能够获得用户使用开放实验室的准确的使用记录,采集子系统正是为了获取这些记录而提供的。获取用户使用实验室的准确记录有三种情况:(1) 利用操作系统的自身功能:开放实验室是一个Unix服务器, Unix服务器本身就具有记录系统日志的功能。用户每次登录和退出Unix服务器的信息都会被自动保存到一个在线日志文件/var/adm/wtmpx中。采集系统通过调用Unix系统函数来读取这个日志文件中的内容,然后对读取到的内容进行整理,整理为方便计费的数据,其中包括登录名、登录时间或登出时间等作为计费依据的数据。最后把这些数据存入数据库中,以备其他系统使用。为了使读取的数据量不至于过大,采集系统会每小时定时执行一次,每次只采集上一个小时时间段之内的数据。(2) 利用开放实验室的个人web张琴,张千帆等. JSP动态网页制作基础培训教程M. 北京:人民邮电出版社,2005年. 主页功能(personal web hosting): 只要用户在其主目录(home)下创建了public_html目录,采集系统通过扫描目录public_html就可以产生计费依据。访问开放实验室的web信息: 用户每次访问web服务器,web服务器都会在access.log中记录下相应的信息,如客户端的ip和被访问的URL等。通过分析web服务器的访问日志产生计费依据。(3)使用开放实验室的e-mail功能: 根据邮箱的个数产生计费依据。说明:(2),(3)的情况目前不做处理,提供扩展接口便于今后扩展。3.5.2整合系统采集系统定时将用户使用服务器的数据存入到了数据库中,但这些数据都是流水帐的数据,是用户每次使用UNIX操作系统的用时。如果用户量大,用户频繁地登入/出,将产生大量的数据,不便于将来生成用户的月账单和对开放实验室的使用情况进行月统计和年统计,因此,出现了整合系统。整合是将某个用户在某一时段内所用机时求和后形成一条记录。整合系统具体整合规则如下:(1) 每小时定时整合一次,生成以小时为单位统计的数据,程序总是每小时定时整合前一小时的数据。(2) 每天定时整合一次,生成以天为单位统计的数据,程序总是每天定时整合前一天的数据. (3) 每个月定时整合一次,生成以月为单位统计的数据,程序总是每个月定时整合前一个月的数据。3.5.3用户管理系统用户管理子系统就是对用户的帐务帐号和业务帐号进行管理。具有用户管理权限的管理员登陆成功后,首先可以开通帐务帐号,暂停帐务帐号,恢复帐务账号,删除帐务账号,修改用户真实信息等。由于用户的一个帐务帐号会对应多个业务帐号,所以对账务账号的操作会级联影响关联的所有业务帐号。其次,具有用户管理权限的管理员还可以开通业务帐号,但用户要想开通一个业务帐号,前提是必须拥有一个帐务帐号。在开通业务帐号时,先由用户为这个业务帐号选择一种资费方式,选择一台开放实验室,然后把选择好的信息提供给管理员,再由管理员将信息录入并保存,这个业务帐号会被保存到用户选择的开放实验室的服务器上,对于开通好的业务帐号也是由具有用户管理权限的管理员来管理的,如暂停业务帐号,恢复业务帐号,删除业务帐号,修改业务帐号密码。3.5.4资费管理系统使用服务,就要交纳费用,这是天经地义的事情。那么对于开放实验室的用户也不例外,他们使用了开放实验室服务,同样要交费。在我们这个系统中这个费用会和两个因素有关:一个是用户使用服务的时间长度,另一个是用户选择的收费标准,如月租费为:30元,每小时使用费为:3元等。这个收费的标准在本系统中称为资费。资费管理子系统就是用来管理资费的。具有资费管理权限的管理员登陆成功后,可以添加新的资费,查询所有的资费,可以修改现有的资费信息,还可以删除资费。特别要注意的是:由于对资费的修改会影响选择了这种资费的用户要交纳的费用,所以在修改资费信息前要事先通知所有已经选择了这个资费的用户;只有当没有任何用户选择某个资费了,这个资费才能被删除掉。3.5.5管理员管理系统对本系统的各个子系统的访问都是受权限控制的,只有拥有了访问权限,才能使用子系统。在本系统中存在着三类使用者:其一是用户,即使用开放实验室的人,他们默认具有使用用户自服务系统的权限。其二是超级管理员,即对本系统进行管理的人,并具有最高的管理权限,他可以使用除用户自服务以外的所有子系统。这个超级管理员只有一个,是系统初始建立时就提供好的。其三是普通管理员,即对本系统中的部分子系统进行管理的人,这些人是由超级管理员进行管理的,他们具有的权限也是由超级管理员赋予的。管理员管理系统就是超级管理员来管理普通管理员。超级管理员登陆成功后,可以增加新的普通管理员,同时为他分配一些权限,可以修改普通管理员的信息,可以查询所有的管理员信息,可以删除某些管理员。3.5.6帐单查询系统具有帐单查询权限的管理员可以利用此子系统对所有用户的月账单进行查询。此子系统不仅提供对某个帐务帐号上产生的总的费用进行查询,还提供对某个帐务帐号上的每个业务帐号上产生的费用明细进行查询。具体操作如下:(1) 月账单查询具有账单查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:根据输入的月份查询所有用户这个月的费用信息(提供分页显示)。根据输入的月份和其它组合条件查询符合条件的用户这个月的费用信息(提供分页显示)。根据输入的月份和用户的帐务帐号的用户名查询某个用户这个月的费用信息。(2) 月账单明细查询具有账单查询角色的管理员进入本系统,登录成功后,首先查询出用户帐务帐号的合计费用信息,然后在这个信息上执行查询明细的操作,系统会显示该帐务帐号上所有业务帐号上发生的所有费用的明细信息。3.5.7帐务查询系统具有帐务查询的管理员可以使用此子系统对开放实验室的使用情况进行查询。此子系统可以提供以月为周期的查询,也可以提供以年为周期的查询。具体操作如下:月帐务查询汪孝宣,刘中兵,徐佳晶.JSP数据开发实例精粹M. 北京:电子工业出版社,2005年5月.:具有月账务查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:(1) 根据输入的月份查询所有开放实验室这个月被使用的总的时长信息。(2) 在上一个查询的基础上查看某个实验室这个月每一天的时长信息。年帐务查询:具有年账务查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:(1) 根据输入的年份查询所有开放实验室这一年被使用的总的时长信息。(2) 在上一个查询的基础上查看某个实验室这一年每个月的时长信息。3.5.8用户自服务系统用户自服务系统可以方便地供用户查询自己的账单和修改自己的个人信息。这个子系统是唯一的一个用户可以使用的子系统。具体操作如下:查询自己的月帐单:用户进入本系统,使用自己的帐务帐号登录成功后,可以执行如下查询操作:(1) 根据输入的月份查询自己这个月的费用信息。(2) 在上一个查询的基础上查看这个月费用明细。修改自己的个人信息:用户进入本系统,使用自己的帐务帐号登录成功后,可以自行修改自己的个人信息。3.5.9权限管理系统对本系统的各个子系统的访问都是受权限控制的,权限决定了使用者可以执行的操作,如一个使用者拥有用户管理权限,他就可以执行用户管理的操作。目前系统已有的权限包括:用户管理权限,资费管理权限,管理员管理权限,账单管理权限,帐务管理权限,用户自服务权限,权限管理权限。今后,系统可能会扩展新的功能,也就会增加新的操作,这个操作就要对应一种新的权限;也有可能删除某一项不再被使用的操作,这样,对应的权限也应该被删除。因此,为了对权限能够进行灵活的管理,本系统中就提供了权限管理系统。在本系统中,一些使用者拥有相同的角色,拥有相同的权限,如张三和李四都是前台操作人员,都拥有用户管理权限和帐单管理权限。角色代表着一组权限的集合。目前系统中已有的角色包括:用户、普通管理员和超级管理员。今后,要想根据需要灵活地管理角色,也是通过权限管理系统完成的。4系统总体设计4.1软件结构图图4.1 软件结构图4.2数据实体设计4.2.1权限与管理员数据实体类图图4.2 权限与管理员数据实体类图类说明:Module类,系统模块信息实体,modules表Operation类,模块操作信息实体,operations表Right类,权限信息实体,由模块与操作构成rights表Role类,角色信息实体,roles表RoleRight类,角色权限信息实体,权限分组,rolerights表Admin类,管理员信息实体,Admins表AdminRole类,管理员角色信息实体,adminroles表4.2.2用户帐务帐号,业务帐号与资费实体类类图图4.3 用户帐务帐号,业务帐号与资费实体类类图类说明User类,用户信息实体,users表。Pricing类,资费信息实体,pricings表。UserService类,用户业务帐号信息实体,userservices表4.2.3用户登录时长数据相关实体类图图4.4 用户登录时长数据相关实体类图类说明Detail类,用户登录时长明细信息实体,details表。DetailDay类,按用户每时整合后的时长信息实体,detaildays_x表。DetailMonth类,按用户每天整合后的时长信息实体,detailmonths_x表。DetailYear类,按用户每月整合后的时长信息实体,detailyears_x表。IntegratedDetailDay类,按实验室每时整合后的时长信息实体,detaildays表。IntegratedDetailMonth类,按实验室每天整合后的时长信息实体,detailmonths表。IntegratedDetailYear类,按实验室每月整合后的时长信息实体,detailyears表。4.3数据库设计4.3.1 表的分类根据表的功能、生存周期,数据库中的表可以分为下面两类:(1) 永久保存表包括系统基础数据表,部里要求的各种统计报表,业务需要长期保留的数据。(2) 动态生成表表具有一定的生存周期,根据需要,由系统动态生成和DROP掉,包括省内用户详单表、省际国际漫入用户详单表、异常话单表、省内话费实时累计表、省际国际话费实时累计表、高额表、计算用临时表等。4.3.2 数据的存储数据包括数据库中的数据和硬盘中文件数据。4.3.3 建表规则许杰星等. MySQL开发者SQL权威指南M. 北京:机械工业出版社,2008.1由于系统表和永久保存的表对用户透明,无统一规则,为便于阅读,表名应具有直观或语意上的意义,对动态生成的表(除临时表外),按照一定的规则生成。4.3.4权限,角色与管理员相关表设计表4.1 模块表modules字段英文名字段汉字名类型约束条件说明id模块IDIntPKname模块名称Varchar(20)表4 2 模块操作表operations字段英文名字段汉字名类型约束条件说明id操作IDIntPKname操作名称Varchar(20)表4.3 权限表rights字段英文名字段汉字名类型约束条件说明id操作IDIntPKname操作名称Varchar(20)url保留Varchar(30)续表4.3moduleid模块IDIntoperationid操作IDint表4. 4 角色表roles字段英文名字段汉字名类型约束条件说明id角色IDIntPKname角色名称Varchar(20)表4. 5 角色权限设置表rolerights字段英文名字段汉字名类型约束条件说明id角色权限IDIntPKroleid角色IDintrightid权限IDint表4.6 管理员表admins字段英文名字段汉字名类型约束条件说明id管理员IDIntPKname管理员姓名Varchar(20)loginname管理员登录名Varchar(20)loginpassword管理员登录密码Varchar(20)phone管理员电话Varchar(20)email管理员电邮Varchar(20)enrolldate管理员授权日期Date表4.7 管理员角色设置表adminroles字段英文名字段汉字名类型约束条件说明id管理员角色IDIntPK 续表4.7 管理员角色设置表adminrolesadminid管理员IDVarchar(20)roleid角色IDVarchar(20)4.3.5用户帐务帐号,资费与业务帐号相关表设计表4.8 用户帐务帐号表users字段英文名字段汉字名类型约束条件说明id用户IDIntPKname用户名Varchar(20)loginname用户登录名Varchar(20)loginpassword用户登录密码Varchar(20)status用户状态Int暂停phone用户电话Varchar(20)email用户电邮Varchar(20)enrolldate用户开户日期Dateclosedate用户注销日期Datepaymenttype支付方式Intcareer职业Varchar(20)nationality民族Varchar(12)sex性别TinyintCompany公司Varchar(20)zip邮编Varchar(8)表4.9 资费表pricings字段英文名字段汉字名类型约束条件说明id资费IDIntPKname资费名称Varchar(20)basefee基本费用double 续表4.9 资费表pricingsratefee费用率doubledescription资费描述Varchar(50)暂停表4. 10 用户业务帐号表userservices字段英文名字段汉字名类型约束条件说明id业务IDIntPKuserid用户IDVarchar(20)loginname用户登录名Varchar(20)loginpassword用户登录密码Varchar(20)labip实验室IPstatus状态Varchar(20)priceid资费IDVarchar(20)enrolldate业务申请日期Dateclosedate业务停止日期Date4.3.6用户登录时长原始数据与整合数据相关表设计表4. 11 用户登录时长原始明细表details字段英文名字段汉字名类型约束条件说明loginname登录名Varchar(20)loginip登录IPVarchar(24)logintime登录时间Timestamplogouttime登出时间Timestamplabip实验室IPVarchar(24)duration登录时长Long表4. 12 用户登录时长按用户每时整合表detaildays_x字段英文名字段汉字名类型约束条件说明loginname登录名Varchar(20) 续表4. 12 用户登录时长按用户每时整合表detaildays_xloginip登录IPVarchar(24)logouttime登出时间Timestamplabip实验室IPVarchar(24)duration登录时长long表4. 13 用户登录时长按用户每天整合表detailmonths_x(与上同)字段英文名字段汉字名类型约束条件说明loginname登录名Varchar(20)loginip登录IPVarchar(24)logouttime整合时间Timestamplabip实验室IPVarchar(24)duration登录时长long表4. 14 用户登录时长按用户每月整合表detailyears_x(与上同)字段英文名字段汉字名类型约束条件说明loginname登录名Varchar(20)Loginip登录IPVarchar(24)logouttime整合时间TimestampLabip实验室IPVarchar(24)Duration登录时长long表4. 15 用户登录时长按实验室每时整合表detaildays字段英文名字段汉字名类型约束条件说明logouttime整合时间TimestampLabip实验室IPVarchar(24)Duration登录时长long 表4. 16 用户登录时长按实验室每天整合表detailmonths(与上同)字段英文名字段汉字名类型约束条件说明logouttime整合时间TimestampLabip实验室IPVarchar(24)Duration登录时长Long表4. 17 用户登录时长按实验室每月整合表detailyears(与上同)字段英文名字段汉字名类型约束条件说明logouttime整合时间TimestampLabip实验室IPVarchar(24)Duration登录时长long4.4架构设计数位新知,余韵. JSP2.0技术从入门到精髓M.北京:中国铁道出版社,2005.12 这个程序我们将整合3 种著名开源框架。(1) 对表现层,我们使用Struts。 struts是MVC模式 John Lewis,William Loftus 著 王锦全 译. Java程序设计基础M. 北京:清华大学出版社,2004年.的简化,去掉了多servlet,用XML。(2) 对于持久层我们使用的是Hibernate。hibernate体现的编程中面向对象的方法。它是把数据库表中的每个字段都看做是一个对象。是通过一组set和get方法组来实现的。(3) 业务层使用Spring 。Spring是一个轻量级组件。它是动态的体现了类与类之间的关系,而不是传统的编号中一定要确定类A和类B的关系,而在Spring中则是动态的,因为他有一个工厂类。5详细设计电信计费系统界面包括四部分:电信营运商logo区、服务选择区、具体服务明细、版权信息。其中资费管理选项卡包括:资费浏览、资费删除、资费修改、资费增加。5.1资费模块的设计与实现资费管理子系统就是用来管理资费的。具有资费管理权限的管理员登陆成功后,可以添加新的资费,查询所有的资费,可以修改现有的资费信息,还可以删除资费。5.1.1资费管理的设计与实现在查询条件一栏输入资费名称,基费,月租费,点击查询就可以在下面的资费浏览表中查看想要查询的具体资费信息(多于一页,可以翻页)。(1) 资费管理UI 图5.1资费管理UI(2) 资费查询类图图5. 2资费查询类图(3) 资费查询类图时序说明图5. 3资费查询类图时序说明(4) 资费查询类说明PricingQueryUI类,显示资费的查询结果界面。PricingAction类,负责资费查询逻辑处理queryPricing。PricingConditionForm类,封装资费查询条件表单数据。PricingDAO类,负责从数据库获取资费查询结果getPricingByCondition。(5) 资费查询页面设计图5.4资费查询页面设计(6) 资费查询实现的关键代码public void queryFee(String method,ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception PricingCondForm fm=(PricingCondForm)form;int currentpage=1;String hql=;if(fm.getPage()=0) currentpage=1;String name=fm.getName();String feelower=fm.getFeelower();String feeupper=fm.getFeeupper();String ratelower=fm.getRatelower();String rateupper=fm.getRateupper();feelower=feelower=null | feelower.equals()?+Double.MIN_VALUE:feelower;/为空取最小feeupper=feeupper=null | feeupper.equals()?+Double.MAX_VALUE:feeupper;/为空取最大ratelower=ratelower=null | ratelower.equals()?+Double.MIN_VALUE:ratelower;/为空取最小rateupper=rateupper=null | rateupper.equals()?+Double.MAX_VALUE:rateupper; hql=from netctoss.entities.Pricings as fee ;hql+=where like %+name+% ;hql+=and ;hql+=fee.basefee between +feelower+ and +feeupper+ ;hql+=and ;hql+=fee.ratefee between +ratelower+ and +rateupper;request.getSession().setAttribute(hql, hql);request.getSession().setAttribute(form, fm);/保存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论