客户管理计划管理计划系统

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

客户管理计划管理计划系统

'1引言客户是公司最宝贵的资源,为了更好的发掘老客户的价值,并开发更多新客户,XX公司决定实施客户关系管理系统。希望通过这个系统完成对客户基本信息、联系人信息、营销信息、客户服务信息的充分共享和规范化管理;希望通过对销售机会、客户开发过程的追踪和记录,提高新客户的开发能力;希望在客户将要流失时系统及时预警,以便销售人员及时采取措施,降低损失。并希望系统提供相关图表,以便公司高层随时了解公司客户情况。1.1研究背景客户资源决定企业的核心竞争力[1]。任何一家企业,有钱就可以买到最好的设备、尖端的技术,但却买不到强大的客户资源。面对着竞争对手不断截留我们的客户,各企业商家所关心的不再局限于自身的产品质量、生产设备、员工的素质,更多的是关心自己的销售群体(客户群),关心他们的想法、需求、购买目的,并与客户建立好良好的、长期的客户关系,强化与客户的沟通,帮助企业留住老客户的同时,更好地拓展新客户,提升客户价值,从而全面提升企业竞争能力和盈利能力,为企业的发展壮大保驾护航。客户管理系统,通过企业管理技术、电子商务和信息技术的高度集成,帮助企业在全球经济一体化的激烈市场竞争环境中,建立以市场、客户为中心的管理体系,有效管理企业与客户之间的关系,提高客户忠诚度,实现客户价值的最大化[2,3]。从而提高企业的核心竞争力。企业要想生存发展,就必须和与之息息相关的客户建立起良好的关系,不断发展新客户,以企业高质量的产品、优质的服务、良好的资信吸引新客户;经常维系与老客户的关系,以规范的客户管理方式、温馨的客户关怀、高效的客户服务来提升老客户的忠诚度。由此,客户管理系统应运而生。1.2技术平台1.2.1MVCMVC(Model-View-Controller)三层架构是一种经典的设计模式,它强制性地把应用程序的输入、处理和输出分开。使用了MVC的应用程序被分成3个核心部件:模型、视图、控制器。它们各司其职,既分工明确又相互协作。首先,控制器接受用户的请求,然后调用某个模型来处理用户的请求,在控制器的控制下,再将处理的结果交给某个视图进行格式化输出给用户。n'1.2.2StrutsStruts是基于MVC的Web应用框架,具有组件的模块化、灵活性和重用性等优点。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制层由ActionServlet和Action来实现,视图由一组JSP文件和ActionFormBean组成。1.2.3HibernateHibernate是一个面向Java环境的对象/关系数据库映射工具,它不仅提供了从Java类到数据表之间的映射,还提供了数据查询和数据恢复机制。与使用JDBC和SQL来手工操作数据库相比,使用Hibernate实现了持久层功能,通过使用Hibernate来封装底层的数据操作细节,为业务逻辑层提供了面向对象的API,它的意义:(l)使代码重用性高,能够完成所有的数据访问操作;(2)具有相对的独立性,底层数据库改变,只需要修改持久层代码,只要对上提供的API不变,则上层的业务逻辑层可以不用修改。1.2.4SpringSpring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。1.3可行性分析现行的CRM软件还处于起步阶段,功能模块结构不尽相同,但是其基本的需求是一样的,其主要技术需求应包括六个方面:1.3.1信息分析能力CRM有大量客户和潜在客户的信息,企业应该充分的利用这些信息进行分析,使得决策者掌握的信息更加完全,从而能及时的作出决策[4]。良好的商业情报是企业成功的一半。1.3.2对客户互动渠道进行集成的能力对多渠道进行集成与CRM解决方案的功能部件的集成是同等重要的。不管客户是与企业联系还是与销售人员联系,于客户互动都应该是无缝的、统一的、高效的[5]。同一的渠道还能带来内部效益的提高。1.3.3支持网络应用的能力n'在支持企业内外的互动和业务处理方面,Web的作用越来越大,这使得CRM的网络功能越来越重要。如,网络可以为电子商务渠道提供支持。为了使客户和企业雇员都能方便应用CRM,需要提供标准化的网络浏览器,使得用户几乎不需训练就能使用系统。另外,建设集中的信息仓库的能力,采用集中化的信息、实时的客户信息,可使各业务部门和功能模块间的信息能统一起来[6,7]。n'2系统需求说明2.1设计目标本系统在设计时应满足以下目标:采用人机对话的操作方式,界面友好、美观,信息查询灵活,数据库存储及时且安全可靠。系统用于管理与客户相关的信息与活动,实现客户管理、营销管理、反馈管理等功能。系统将最大限度地实现易维护性和易操作性。保证系统运行稳定,且安全可靠。2.2功能需求基础信息管理:管理客户的基础信息,增、删、查、改;客户信息管理:用户对客户详细信息进行管理,增、删、查、改;联系人信息管理:用户对联系人详细信息进行管理,增、删、查、改;营销信息管理:用户对销售机会和开发计划进行管理,增、删、查、改;客户服务:用户对客户反馈信息和客户投诉信息进行管理,增、删、查、改;系统管理:管理用户的信息,包括添加、修改、删除用户和对用户权限的管理。客户关系管理系统基础信息模块客户管理模块营销管理模块客户服务模块统计分析模块系统管理模块添加基础信息更新基础信息客户信息管理联系人信息管理销售机会管理开发计划管理客户反馈管理客户投诉管理客户构成分析客户服务分析用户信息管理个人信息管理图2.1系统功能结构图n'2.3运行需求2.3.1最低硬件环境CPU:主频1.8GHZ以上内存:512M硬盘:5G以上可用空间2.3.2软件环境操作系统:WindowsXP数据库平台:SQLServer2000Web服务器:Tomcat5.5集成开发环境:MyEclipse7.0.1Java环境:JDK1.5浏览器及分辨率要求:IE5.0以上版本,最佳效果1024×768像素。2.4安全需求(1)只有特定的管理人员才能对系统的用户进行管理,才能对数据库进行维护和修改;(2)每一个功能模块都有权限设置,进入之前需要有相应的权限;(3)普通用户只能修改或删除受理人为自己的相应客户服务信息。2.5其它需求系统需要能够对客户构成和客户服务满意度的比例进行分析,以饼图形式表现出来。2.6数据描述2.6.1数据词典用户信息表=ID号+用户名+密码+权限ID权限信息表=ID号+权限名+基础信息模块权限+营销管理模块权限+客户信息管理模块权限+客户服务模块权限+统计分析模块权限+系统管理模块权限客户信息表=ID号+客户名称+企业性质ID+企业类型ID+企业资信ID+客户级别ID+地址+所在省份+所在城市+邮编+法人代表+客户银行ID+银行卡号+公司电话+传真+主要联系人ID+客户状态+备注n'联系人信息表=ID号+联系人姓名+客户ID+性别+职务+联系电话+住址+邮件地址+备注客户反馈=ID号+反馈标题+客户ID+反馈内容+反馈日期+反馈受理人+客户满意度+反馈状态+备注客户投诉=ID号+客户ID+投诉人+投诉主题+投诉内容+投诉日期+投诉受理人+处理办法+客户满意度+投诉状态+备注销售机会=ID号+客户ID+机会名称+联系人ID+机会日期+机会来源+业务员+机会状态+备注开发计划=ID号+机会ID+计划日期+业务员+计划状态+备注2.6.2数据采集用户信息记录、客户信息记录、营销信息记录、客户服务信息记录等。2.6.3数据流图本系统所涉及的数据流如图2.2、图2.3、图2.4和图2.5所示。统计信息个人基本信息客户信息管理员用户客户关系管理系统用户信息图2.2顶层数据流图营销信息联系人信息客户信息客户服务信息生成饼图客户记录录入维护客户信息管理联系人信息管理营销信息管理客户服务信息管理图表生成查询图2.30层数据流图n'设置权限管理员信息用户信息权限审查客户信息管理录入修改删除图2.41层数据流图验证用户信息修改个人信息查询客户信息维护客户信息图2.52层数据流图n'图2.6系统用例图n'3系统设计3.1系统架构系统采用三层架构,即分为表示层、业务层、数据层,其中:表示层:作为用户的接口层,负责与整个系统交互。业务层:作为业务逻辑的封装层,负责接受用户请求,从数据层获取数据,并对数据进行处理,将处理结果交给表示层显示。数据层:作为数据的存储与维护层,负责数据的管理。本系统数据层采用Hibernate框架来实现。采用分层设计的体系架构,能够实现分离关注、松散耦合、逻辑复用和标准定义。3.2数据库设计3.2.1概念结构设计本系统数据库采用SQLServer2000数据库,下面先使用实体关系图进行概念模型设计,客户关系管理系统的实体关系图如图3.1、图3.2、图3.3、图3.4、图3.5、图3.6、图3.7、图3.8和图3.9所示。用户用户ID用户名D密码权限ID图3.1用户实体及其属性权限权限ID权限名称基础信息模块权限营销管理模块权限客户信息模块权限客户服务模块权限统计分析模块权限系统管理模块权限图3.2权限实体及其属性n'客户客户ID客户名称类型ID级别ID资信ID性质ID银行ID联系人ID客户地址公司电话传真法人代表邮编图3.3客户实体及其属性客户反馈反馈ID反馈标题客户ID反馈内容受理人反馈状态满意度图3.4客户反馈实体及其属性客户投诉投诉ID投诉主题投诉人客户ID投诉内容受理人处理办法满意度投诉状态图3.5客户投诉实体及其属性n'联系人联系人ID姓名客户ID性别联系电话职务住址邮箱地址图3.6联系人实体及其属性销售机会机会ID机会名称机会来源客户ID产品名称业务员机会状态邮箱地址机会日期图3.7销售机会实体及其属性开发计划计划ID机会ID计划日期计划状态业务员备注图3.8开发计划实体及其属性n'n1n1n1n1n1n11n用户服务客户拥有权限客户反馈属于客户投诉来源联系人销售机会开发计划隶属关联属于图3.9客户关系管理系统实体关系图3.2.2逻辑结构设计根据客户关系管理系统中的数据信息特点,将数据的概念模型转换为关系模型。其中主键以下划直线标注,外键以下划波浪线标注。(1)用户(用户ID、用户名、密码、权限ID)(2)权限(权限ID、权限名称、基础信息管理模块权限、营销管理模块权限、客户信息管理模块权限、客户服务模块权限、统计分析模块权限、系统管理模块权限)(3)客户(客户ID、客户名称、企业性质ID、企业类型ID、企业资信ID、客户级别ID、地址、所在省份、所在城市、邮编、法人代表、客户银行ID、银行卡号、公司电话、传真、主要联系人ID、客户状态、备注)(4)联系人(联系人ID、联系人姓名、客户ID、性别、职务、联系电话、住址、邮件地址、备注)(5)客户反馈(反馈ID、反馈标题、客户ID、反馈内容、反馈日期、反馈受理人、客户满意度、反馈状态、备注)(6)客户投诉(投诉ID、客户ID、投诉人、投诉主题、投诉内容、投诉日期、投诉受理人、处理办法、客户满意度、投诉状态、备注)(7)销售机会(机会ID、客户IDn'、机会名称、联系人ID、机会日期、机会来源、业务员、机会状态、备注)(8)开发计划(计划ID、机会ID、计划日期、业务员、计划状态、备注)本系统设计的部分关系模式如下列表所示:表3.1用户表列名数据类型可否为空说明user_idvarchar2(30)NOTNULLPKuser_namevarchar2(30)NOTNULL用户名user_pwdvarchar2(30)NOTNULL密码right_idvarchar2(30)NULL权限(外键)表3.2权限表列名数据类型可否为空说明right_idintNOTNULLPKr_namevarchar2(30)NOTNULL权限名称r_jcxxvarchar2(2)NOTNULL基础信息管理模块权限r_yxglvarchar2(2)NOTNULL营销管理模块权限r_khxxvarchar2(2)NOTNULL客户信息管理模块权限r_khfwvarchar2(2)NOTNULL客户服务模块权限r_tjfxvarchar2(2)NOTNULL统计分析模块权限r_xtglvarchar2(2)NOTNULL系统管理模块权限表3.3客户表列名数据类型可否为空说明cust_idintNOTNULLPKcust_namevarchar2(50)NOTNULL客户名称qyxz_idvarchar2(30)NOTNULL企业性质(FK)qyzx_idvarchar2(30)NOTNULL企业资信(FK)qylx_idvarchar2(30)NOTNULL企业类型(FK)khjb_idvarchar2(30)NOTNULL客户级别(FK)lxr_idvarchar2(30)NOTNULL主要联系人(FK)cust_addrvarchar2(60)NOTNULL客户地址cust_dhvarchar2(30)NOTNULL公司电话n'表3.4联系人表列名数据类型可否为空说明lxr_idvarchar2(30)NOTNULLPKlxr_namevarchar2(30)NOTNULL联系人姓名lxr_xbvarchar2(2)NOTNULL性别cust_idvarchar2(30)NOTNULL客户编号(FK)lxr_dhvarchar2(20)NOTNULL联系电话lxr_zwvarchar2(30)NOTNULL职位lxr_bzvarchar2(30)NULL备注表3.5客户反馈表列名数据类型可否为空说明fk_idvarchar2(30)NOTNULLPKfk_btvarchar2(30)NOTNULL反馈标题fk_nrvarchar2(2)NOTNULL反馈内容cust_idvarchar2(30)NOTNULL客户编号(FK)fk_rqvarchar2(20)NOTNULL反馈日期fk_slrvarchar2(20)NOTNULL受理人fk_mydvarchar2(10)NOTNULL满意度fk_statusvarchar2(10)NOTNULL状态fk_bzvarchar2(30)NULL备注表3.6客户投诉表列名数据类型可否为空说明ts_idvarchar2(30)NOTNULLPKkh_idvarchar2(30)NOTNULL客户编号(FK)ts_tsrvarchar2(20)NOTNULL投诉人ts_ztvarchar2(50)NOTNULL投诉主题ts_nrvarchar2(200)NOTNULL投诉内容ts_slrvarchar2(20)NOTNULL受理人ts_mydvarchar2(10)NOTNULL满意度n'ts_statusvarchar2(10)NOTNULL状态ts_bzvarchar2(30)NULL备注表3.7销售机会表列名数据类型可否为空说明ch_idvarchar2(30)NOTNULLPKkh_idvarchar2(30)NOTNULL客户编号(FK)ch_mcvarchar2(50)NOTNULL机会名称lxr_idvarchar2(30)NOTNULL联系人编号(FK)ch_rqvarchar2(20)NOTNULL机会日期ch_lyvarchar2(50)NOTNULL机会来源ch_ywyvarchar2(20)NOTNULL业务员ch_statusvarchar2(10)NOTNULL状态ch_bzvarchar2(30)NULL备注表3.8开发计划表列名数据类型可否为空说明pl_idvarchar2(30)NOTNULLPKch_idvarchar2(30)NOTNULL机会编号(FK)pl_rqvarchar2(20)NOTNULL计划日期pl_ywyvarchar2(20)NOTNULL业务员pl_statusvarchar2(10)NOTNULL状态pl_bzvarchar2(30)NULL备注n'4系统实现4.1登录模块登录页面直观地给出了系统的着重点是客户,管理你的客户就是管理你的财富。图4.1给出了系统登录页面的运行效果图。图4.1登录页面运行效果图用户输入用户名和密码后,点击“登录”。页面将表单信息提交给UserAction.java进行处理,UserAction通过自身的userCheck()方法对用户输入的用户名和密码的正确性进行检查,该方法的实现代码如下。publicActionForwarduserCheck(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequestservletRequest,HttpServletResponseservletResponse){UserFormuserForm=(UserForm)actionForm;TbUserDAOdao=newTbUserDAO();Stringname=servletRequest.getParameter("name");Stringmm=servletRequest.getParameter("pwd");if(dao.check(name)==null){returnactionMapping.findForward("checkFail");}n'elseif(!dao.check(name).getUserPwd().equals(mm)){returnactionMapping.findForward("checkFail");}userForm.setUserItem(dao.check(name));servletRequest.setAttribute("form",userForm);returnactionMapping.findForward("checkSuccess");}4.2客户管理模块4.2.1客户信息管理模块客户信息管理模块作为客户管理模块的子模块,负责管理客户的详细信息,提供对客户信息的查看、添加、更新和删除等操作,方便用户更好地管理其客户信息。用户通过正常登陆进入系统主页,点击主页上方导航栏中的“客户管理”(进入该模块前需要验证用户是否有操作该功能模块的权限),此时框架左页面显示客户管理模块的子菜单。点击子菜单中的“客户信息管理”,系统通过超链接跳转到KhxxAction,并通过其中的khxxSelect()方法调用TbKhxxDAO.java的方法来访问数据库,逐行取出每一条客户信息。相应代码如下所示。publicActionForwardkhxxSelect(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse){Listlist=null;//用于输出到页面的记录集合inttotalRows;//记录总行数TbKhxxDAOdao=newTbKhxxDAO();totalRows=dao.getCount();System.out.print("总行数=="+totalRows);Pagepage=PageHelp.getPager(httpServletRequest,totalRows);try{list=dao.list(page.getPageSize(),page.getStartRow());}catch(HibernateExceptionex){n'System.out.print("action里的错误="+ex.getMessage());}httpServletRequest.setAttribute("page",page);httpServletRequest.setAttribute("khxxlist",list);returnactionMapping.findForward("khxxSelect");}系统响应后进入客户信息管理子模块,如图4.2所示。图4.2客户信息管理用户可以通过点击每一行的“查看客户全部信息”来浏览该客户的详细信息,如图4.3所示。n'图4.3客户详细信息在每个客户的详细信息页面的底部,可以通过点击“修改这个客户信息”来更新该客户的详细信息,如图4.4所示。当修改客户详细信息时,输入的信息需符合规范。系统使用了Ajax的一种校验框架来对输入数据进行校验。例如公司的电话号码必须是number型的数据且长度符合要求,在Jsp页面中的部分代码如下。">请填写公司电话号码!请输入有效的电话号码!
n'图4.4修改客户详细信息在客户信息管理页面,可以通过点击“添加客户信息”来添加新的客户详细信息,如图4.5所示。所录入的信息同样需要符合规范,并会对输入信息进行校验。图4.5添加客户详细信息用户可以在客户信息管理页面点击对应行的“删除”来进行对该客户详细信息的删除操作,如图4.6所示。n'图4.6删除客户详细信息4.2.2联系人信息管理模块联系人信息管理模块负责管理客户的联系人的详细信息,给用户通过了查看联系人信息、添加联系人信息、更新联系人信息和删除联系人信息等操作。其具体实现过程与客户信息管理模块类似,这里就不在赘述。4.3营销管理模块4.3.1销售机会管理模块营销管理功能模块拥有两个子模块:销售机会管理模块和开发计划管理模块。销售机会管理模块的作用是帮助用户更好地管理销售机会信息,为客户开发提供准备,发掘潜在的客户。用户登录后通过点击首页上方的导航栏中的“营销管理”链接,当用户拥有该功能模块的权限时,即进入营销管理模块。此时框架左页面显示的是营销管理模块的子菜单,点击子菜单中的“销售机会管理”链接进入销售机会管理子模块,如图4.7所示。图4.7销售机会管理点击销售机会管理页面下方的“添加销售机会记录”链接可以添加新的销售机会信息,如图4.8所示。n'图4.8添加销售机会记录用户输入正确的销售机会信息后,点击“确认”按钮后,系统将页面中的表单信息提交给SalChanceAction,该Action通过自身的salChanceInsert()方法调用DAO层的insert()方法将信息录入到数据库中相应的表中,其中salChanceInsert()和insert()方法的代码如下。publicActionForwardsalChanceInsert(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse){SalChanceFormchanceForm=(SalChanceForm)actionForm;TbSalChanceDAOdao=newTbSalChanceDAO();dao.Insert(chanceForm.getSalChanceItem());returnactionMapping.findForward("salChanceInsert");}publicvoidInsert(TbSalChancetb){Transactiontx=session.beginTransaction();session.save(tb);tx.commit();}n'用户可以点击销售机会管理页面的表中每一行的“详细”链接来查看该销售机会的详细信息,如图4.9所示。销售机会详细中的阶段和状态信息需要及时更新。在销售机会详细表中,可以点击产品名称来查看该产品的详细信息。图4.9销售机会详细通过点击销售机会详细表下方的“修改该记录”链接可以更新该销售机会的信息,如图4.10所示。图4.10修改销售机会记录4.3.2开发计划管理模块n'开发计划管理模块是负责管理客户的开发计划信息,该开发计划信息是以销售机会为前提的,即先有销售机会,后有开发计划。开发计划是针对某一销售机会所制定的,目的在于开发潜在客户。用户通过点击营销管理功能模块的子菜单中的“客户开发计划”链接,当验证用户权限后,即进入开发计划管理模块,如图4.11所示。图4.11开发计划管理用户点击开发计划表中的“详细”链接可以查看该开发计划的详细信息,如图4.12所示。在开发计划详细表中,通过点击机会主题、客户名称和产品名称的链接可以查看相应的详细信息。图4.12开发计划详细4.4客户服务模块4.4.1客户反馈信息管理模块n'客户服务功能模块包括两个子模块:客户反馈信息管理模块和客户投诉信息管理模块。客户反馈信息管理模块是帮助用户管理客户的反馈信息,及时了解和掌握客户的最新反馈,从而更好地维护好客户。用户登录后,点击首页导航栏中“客户服务”链接,在验证用户拥有该访问权限后,框架左页面显示为客户服务功能模块的子菜单。点击子菜单中的“客户反馈”链接进入客户反馈信息管理模块,如图4.13所示。图4.13客户反馈信息管理在客户反馈信息管理页面中,用户可以通过选择不同的选项,根据所选属性的关键字进行查询,使用户的查询更加便利。通过点击“添加反馈信息”链接可以添加新的客户反馈信息,如图4.14所示。图4.14添加客户反馈信息n'用户在添加客户反馈信息时,需要选择对应客户反馈的满意度,以便进行统计分析、更好地服务客户。在完成新反馈信息添加后,此时反馈信息状态为“未回复”,接下来需要指派相应的受理人受理该反馈(即回复客户),如图4.15所示。图4.15指派反馈受理人用户选择受理人后,点击“提交”按钮,将表单信息提交给KhfkAction,然后Action通过自身的updateSlr()方法调用DAO层中的updateSlr()方法将受理人插入到相应的元组中,Action层和DAO层中updateSlr()方法的实现代码分别如下。publicActionForwardupdateSlr(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequestservletRequest,HttpServletResponseservletResponse){Stringid=servletRequest.getParameter("khfkId");Stringslr=servletRequest.getParameter("slr");khfkService.updateSlr(id,slr);returnactionMapping.findForward("updateSlrSuccess");}publicvoidupdateSlr(StringfkId,Stringslr){Sessionsession=getSession();Transactiontrans=session.beginTransaction();Stringhql="updateTbClientKhfksetkhfkFkslr="+"'"+slr+"'wherekhfkId="+"'"+fkId+"'";Queryqueryupdate=session.createQuery(hql);queryupdate.executeUpdate();trans.commit();n'}当“指派受理人”操作完成后,由相应的受理人进行受理。在回复客户以后,受理人需要登录系统进行确认操作,即完成“受理反馈”操作,如图4.16所示。图4.16确认受理反馈已经确认受理的反馈可以通过点击“删除受理”链接删除受理信息,如图4.17所示,但是只有反馈对应的受理人才能执行该操作。同时用户也可以点击“删除全部”链接将相应的反馈信息全部删除。图4.17删除受理信息4.4.2客户投诉信息管理模块客户投诉信息管理模块帮助用户对客户的投诉信息进行管理,用户首先添加客户投诉信息,然后分配受理人,由受理人处理该投诉,并将处理信息录入系统。其基本原理与客户反馈信息管理模块类似,这里就不再赘述。4.5统计分析模块4.5.1客户构成分析客户构成分析是帮助用户统计所有客户的构成比例,并以直观的立体饼图形式呈现出来,客户共由开发中的客户、一般客户、VIP客户和高级客户四类组成,如图4.18所示。n'图4.18客户构成饼图客户构成饼图生成的过程:首先调用AnalysisAction中的khgcAnalysis()方法来创建一个名为piedata.xml的XML文件,该文件作为生成饼图的flash文件的参数文件,负责向flash文件传递参数。相应代码如下。publicActionForwardkhgcAnalysis(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse){TbKhxxDAOkhxx=newTbKhxxDAO();TbSalChanceDAOsalC=newTbSalChanceDAO();intj=khxx.getJCount();intv=khxx.getVCount();inta=khxx.getACount();ints=salC.getCount();try{FileOutputStreamfileout=newFileOutputStream("C:\DocumentsandSettings\Administrator\Workspaces\MyEclipsen'7.0\crms\WebRoot\chart\piedata.xml");charr='r';Stringtest=""+""+""+"amu"+"1"+"客户构成分析,200,40,16,true,0xFFFFFF"+"onRelease,onRollOver,onRollOut"+""+j+","+v+","+a+","+s+""+"一般客户,VIP客户,高级客户,开发中的客户"+"0x0D8ECF,0x04D215,0xFF0000,0xF8FF01"+"true,true,true,true"+"false,false,false,true"+"1.43"+"260"+"200"+"150"+"90"+"150"+"20"+"15"+"100"+"50"+"true"+"470"+"140"+"6"+"0x000000"+"0x000000"+n'"100"+"20"+"0xFF0000"+"font"+""+"";byte[]names=test.getBytes("UTF-8");fileout.write(names);fileout.close();}catch(Exceptione){e.printStackTrace();}returnactionMapping.findForward("khgcAnalysis");}4.5.2客户满意度分析客户满意度分析是帮助用户对客户服务信息(即客户反馈信息和客户投诉信息)中的满意度进行统计分析,以饼图的形式呈现出来,如图4.19所示。图4.19客户满意度饼图n'5系统测试5.1测试方案设计(1)用划分等价类法进行输入有效性测试:主要测试程序中各种输入数据的语法是否符合其规范定义,即是否有效。例如:用户输入的用户名、密码等,只有字符组成、字符数等符合一定规则,才可存入数据库或用作程序中的合法变量等等。(2)用边界值分析法对输入有效性测试进行补充:在1的基础上,使输入为边界条件进行测试。(3)用错误推测法进行功能健壮性测试:主要测试程序中各种功能性操作是否正确。例如:用户注册成功或修改信息后,其信息是否正确存入数据库;非受理人是否可以执行受理操作或者删除受理信息等等。5.2编写测试用例5.2.1登录模块表5.1登录测试项输入条件模块测试项用户登录1、能在数据库中正确查找该用户名2、若用户名存在且密码正确,允许登录3、若用户名不存在或密码错误,给错误提示用户修改信息4、数据库相应信息应更新为用户的输入表5.2登录测试用例编号测试用例用例覆盖的测试项1.1用不存在的用户名SAM登陆;或存在用户“sam”,密码为“123”,而所使用的密码不是“123”。(3)1.2用已注册的用户“sam”和其密码“123”登录。(1)(2)1.3用户信息数据库中已存在用户“sam”,密码为“123”(4)n',用该用户名和密码登陆后,修改某些信息,并修改密码为“456”。5.2.2客户管理模块表5.3客户管理测试项输入条件模块测试项用户浏览客户信息1、用户浏览到的客户应在数据库中有记录用户添加客户信息2、用户添加的客户信息应在数据库中有正确的记录用户修改客户信息3、用户修改过的信息在数据库中应当已经更新用户删除客户信息4、数据库中应该不存在用户已删除的客户信息表5.4客户管理测试用例编号测试用例用例覆盖的测试项2.1点击“客户信息管理”链接。(1)2.2点击“添加客户信息”链接,完成新客户信息的输入并确认提交。(2)2.3点击某客户的“修改”链接,完成客户信息的更新并确认提交。(3)2.4点击某客户的“删除”链接,并确认删除。(4)
查看更多

相关文章

您可能关注的文档