客户关系管理系统论文_第1页
客户关系管理系统论文_第2页
客户关系管理系统论文_第3页
客户关系管理系统论文_第4页
客户关系管理系统论文_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

./THECITYVOCATIONALCOLLEGEOFJIANGSUTHECITYVOCATIONALCOLLEGEOFJIANGSU毕业设计〔论文〔2016届设计〔论文题目客户关系管理系统论文办学点〔系信息工程系专业XXX班级XXX学号XXX学生XXX起讫日期XX年XX月—XX年X月指导教师XX职称讲师评阅教师XX职称讲师XX年X月X日XX学院教务处制客户关系管理系统论文摘要随着企业的客户数量的不断增大,客户信息不断增多,给企业管理客户信息带来了一定困难,客户资源是企业的宝贵资源,关系到企业的生存发展,所谓"客户是上帝"。客户关系管理系统的引入,利用计算机系统,以及数据库管理系统,来有效的管理客户信息,给企业带来了高效客户信息管理能力,而且能够方便的分析出优质客户,以及流失客户。同时能通过一些参数,来分析客户资源;不仅能够挽回客户流失损失,也能够让企业自身优化。让企业发展得更好。该系统,客户关系管理系统,简称CRM;主要分五大模块,营销管理,客户管理,服务管理,统计报表,基础数据维护;来实现企业客户信息管理,有效管理客户信息;让企业产能提高;关键词:客户关系管理系统、CRM系统、管理系统CustomerrelationshipmanagementsystemAbstractWiththeincreasingnumberofenterprisecustomers,thereareagrowingnumberofcustomerinformation,totheenterprisecustomerinformationmanagementbringscertaindifficulties,thecustomerresourceisthepreciousresourcesoftheenterprise,relatedtotheenterprise'ssurvivalanddevelopment,theso-called"thecustomerisGod".Customerrelationshipmanagementsystemintroducedtheuseofacomputersystem,anddatabasemanagementsystem,totheeffectivemanagementofcustomerinformation,totheenterprisebrought,customerinformationmanagementability,butalsofacilitatetheanalysisofthehighqualitycustomers,andthelossofcustomers.Atthesametime,throughanumberofparameters,toanalyzecustomerresources,notonlytorestorethelossofcustomers,butalsotoallowenterprisestooptimizetheirown.Lettheenterprisedevelopbetter.Thesystem,customerrelationshipmanagementsystem<CRM;consistsoffivemodules,marketingmanagement,customermanagement,servicemanagement,statisticalstatements,basicdatamaintenance;torealizethebusinessenterprisecustomerinformationmanagement,effectivemanagementofcustomerinformation;letproductioncapacityofenterprisesimprove;Keywords:Customerrelationshipmanagementsystem,CRMsystem,managementsystem目录3256摘要215649Customerrelationshipmanagementsystem310539Abstract310728第一章绪论1253641.1客户关系管理系统的开发背景1101361.2设计目的与意义125444第二章系统需求分析2183402.1可行性分析2309522.1.1操作可行性272372.1.2经济可行性2228192.1.3技术可行性221322.2方案的设计与比较2310562.2.1C/S设计结构和B/S设计结构比较2232662.2.2系统模式的设计3184452.2.3系统设计的技术选择3318972.2.4系统的运行环境355632.3系统基本功能需求3259072.3.1系统结构3104022.4数据库需求分析53862.5系统目标59037第三章系统概要设计6140463.1总体设计6222103.1.1处理流程6222713.1.2系统的数据流图6101133.2系统结构图7121573.3数据库设计890713.4逻辑结构设计13313843.5数据库表的设计146163第四章系统的详细设计与实现20253304.1用户登录功能实现20132684.1.1登录功能实现2067504.2营销管理功能实现22210214.2.1营销机会管理功能实现22174024.2.2客户开发计划功能实现26208704.3客户管理实现30133464.3.1客户信息管理实现3032004.3.2客户流失管理功能实现38238144.4客户服务管理实现4141074.4.1服务创建实现41135424.4.2服务分配实现42188214.4.3服务处理实现4328864.4.4服务反馈实现44275454.4.5服务归档实现45114094.4.6客户服务关键代码实现4630124.5统计报表功能实现48286784.5.1客户贡献分析实现48176954.5.2客户构成分析实现48271114.5.3客户服务分析实现48210614.5.4客户贡献分析实现4831334.6基础数据管理实现49244584.6.1数据字典管理4947914.6.2产品信息查询4981664.6.3用户信息管理49149474.7系统管理50169614.7.1修改密码5031584.7.2安全退出504604结论5131364参考文献529457致53.第一章绪论1.1客户关系管理系统的开发背景本系统是为了更好的让企业管理客户信息而设计的。由于企业的客户信息繁多,包含的信息量大且复杂,有必要建立一个客户关系管理系统,使客户信息管理工作规化,系统化,程序化,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改客户相关信息,以及分析客户信息,最大限度的提高企业效益。1.2设计目的与意义本系统可以能减少很多不必要的资源,不用像以前那样用冗余的纸式的管理。大节省了企业能源。并且计算机的存储与快速查询功能大大提高了企业客户信息管理的效率,并且还提高了企业客户信息管理的精确度。方便快速的操作,可减少客户信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为企业节约了开支。为企业增加了财富。第二章系统需求分析2.1可行性分析2.1.1操作可行性本系统的开发是在四个月的时间完成的。前期主要是以学习以及收集资料为主,接下来就是对系统的分析,设计数据库,界面,以及中间的连接。对于计算机专业作为毕业设计来说是可行的。2.1.2经济可行性经济可行性主要是对项目的经济效益进行评价。目前具备了运行网络平台的MIS的硬件基础,而且本系统是我组成员自行开发,免费帮助设计并实施的。因此开发、设计这套系统的支出费用是学校可以承担的,即经济上是可行的。2.1.3技术可行性技术上的可行性要考虑将来采用的硬件和软件技术能否满足用户提出的要求。基于当前的计算机网络技术和数据技术已成熟,而且管理信息系统〔MIS的各种开发技术也已经相当成熟,并且在各个领域都不乏成熟的案例。所以开发一套网络平台的多用户共享信息的学生信息系统在技术上是可行的。2.2方案的设计与比较2.2.1C/S设计结构和B/S设计结构比较目前网络应用软件运行的模式主要有两类:Client/Server模式,Browser/Server模式。前者的主要的缺点是维护、升级较为麻烦。且要同时开发服务器端和客户端;后者是近几年伴随Internet迅速发展起来的一种技术,B/S模式客户端是一个标准的浏览器,服务器端是webserver,而Webserver与数据库和应用服务器的紧密结合,使得这种模式的应用围不断扩大,它已不仅仅用于网上查询,有很多企业部门的业务系统,企业的MIS系统纷纷采用这种模式,它的优点是便于扩展应用、升级维护简便、不需要开发专门的客户端、不需要对用户进行特殊的设置和软件安装,降低了维护成本,客户端只要有浏览器就可以了。2.2.2系统模式的设计本系统的设计是只有一种用户,就是系统管理员2.2.3系统设计的技术选择处于安全性,功能可扩展性。我们采用javaee。数据库使用开源的Mysql;服务器采用Tomcat;2.2.4系统的运行环境<1>.系统:WindowsXP及其以上版本<2>.Web服务器:Tomcat7及其以上版本<3>.数据库服务器:Mysql5<4>.浏览器:IE7,8,9、火狐、Chrome2.3系统基本功能需求系统中涉及系统管理员一种权限;接下来针对这种权限说明下功能结构;2.3.1系统结构主要功能有:系统管理员:营销管理,客户管理,服务管理,报表管理,基础数据管理,系统管理;2.3.2系统业务流程图系统管理员:2.4数据库需求分析根据上面业务流程图所涉及到的容,数据库要设计的表有:用户表,产品表,数据字典表,客户表,销售计划表,客户联系人细表,客户交互记录细表,客户流失表,客户产品订购表,客户产品订购详细表,客户流失暂缓细表,客户服务表2.5系统目标本选题系统的设计主要将实现以下目标:.人性化设计:系统界面友好,操作简单;.实现对管理员的功能操作;第三章系统概要设计3.1总体设计3.1.1处理流程一,用户<1>.打开系统,进入系统登录界面,<2>.通过验证后,进入系统管理主界面<3>.用户操作,执行相应的功能,<4>.退出系统。3.1.2系统的数据流图用户用户客户关系管理系统客户关系管理系统后台管理后台管理3.2系统结构图针对本系统的需求,设计出如下面所示的数据项和数据结构:用户表:编号,用户名,密码,真实,,联系,角色名称;数据字典表:编号,数据字典名称,数据字典值;产品表:编号,产品名称,型号,单位,价格,库存,备注;客户表:编号,客户编号,客户名称,客户地区,客户经理,客户满意度,客户信用度,客户地址,邮政编码,联系,传真,网址,营业执照注册号,法人,注册资金,年营业额,开户银行,开户,地税登记号,国税登记号,客户状态<正常,流失>;客户流失表:编号,客户编号,客户名称,客户经理,上次下单日期,确认流失日期,状态〔暂缓流失,确认流失,流失原因;客户暂缓表:编号,流失客户,暂缓措施;销售机会表:编号,机会来源,客户名称,成功几率,概要,联系人,联系,机会描述,创建人,创建时间,指派人,指派时间;客户开发计划表:编号,销售机会,计划项,计划时间,效果;客户服务表:编号,服务类型,概要,客户,状态,服务请求,创建人,创建日期,分配人,分配日期,服务处理,服务处理人,服务处理日期,客户满意度;客户交往记录细表:编号,客户名称,交往时间,地址,概要;客户联系人细表:编号,客户名称,联系人名称,性别,职位,办公室,手机;客户历史订单细表:编号,客户名称,订单号,订购日期,送货地址,状态;商品订购详情表:编号,订单号,商品名称,订购数量,单位,单价,数量;3.3数据库设计<1>.用户信息E-R图密码用户名密码用户名真实姓名用户编号真实姓名用户编号用户实体用户实体角色名称角色名称邮箱邮箱联系电话联系电话<2>.数据字典信息E-R图数据字典名称数据字典名称数据字典值编号数据字典值编号数据字典实体数据字典实体<3>.产品信息E-R图产品名称产品名称型号产品编号型号产品编号单位产品实体单位产品实体备注备注库存价格库存价格客户编号密码.客户信息E-R图客户编号密码客户名称客户名称国税登记号客户地区国税登记号客户地区客户经理地税登记号客户经理地税登记号客户满意度客户满意度开户帐号开户帐号客户信用度客户信用度客户实体开户银行客户实体开户银行客户地址年营业额客户地址年营业额邮政编码邮政编码注册资金注册资金联系电话法人联系电话法人传真传真网址营业执照网址营业执照.客户流失信息E-R图客户名称客户编号客户名称客户编号客户经理课程编号客户经理课程编号客户流失客户流失实体上次下单日期流失原因上次下单日期流失原因确认流失日期状态确认流失日期状态.客户暂缓信息E-R图流失客户编号流失客户编号流失原因流失原因客户暂缓联实体.销售机会信息E-R图成功几率客户名称成功几率客户名称机会来源机会来源概要编号概要编号指派时间指派时间联系人销售机会实体联系人销售机会实体指派人联系电话指派人联系电话创建时间机会描述创建时间机会描述创建人创建人.客户开发计划信息E-R图计划时间销售机会计划项计划时间销售机会计划项效果编号效果编号客户开发计划实体客户开发计划实体客户概要.客服服务信息E-R图客户概要状态服务类型状态服务类型服务请求编号服务请求编号客户满意度客户满意度创建人客户服务实体创建人客户服务实体服务处理日期创建日期服务处理日期创建日期服务处理人分配人服务处理人分配人服务处理分配日期服务处理分配日期.客户交往记录信息E-R图地址客户名称交往时间地址客户名称交往时间概要编号概要编号客户交往记录实体客户交往记录实体.客户联系人信息E-R图职位联系人名称性别职位联系人名称性别办公室电话客户名称办公室电话客户名称客户联系人实体客户联系人实体手机手机编号编号.客户历史订单信息E-R图送货地址订单号订购日期送货地址订单号订购日期状态客户名称状态客户名称客户历史订单实体客户历史订单实体编号编号.商品订购详情信息E-R图单位商品名称订购数量单位商品名称订购数量单价订单号单价订单号商品订购详情实体商品订购详情实体数量数量编号编号〔14.实体之间的关系图3.4逻辑结构设计1,客户联系方式和客户是多对一关系;2,客户历史订单和客户是多对一关系;3,客户联系人和客户是多对一关系;4,客户开发计划和销售机会是多对一关系;5,商品订购详情和客户历史订单是多对一关系;6,客户暂缓和客户流失是多对一关系;3.5数据库表的设计<1>.用户信息表字段名数据类型长度是否主键描述idInt是自动编号Usernamevarchar20用户名Passwordvarchar20密码trueNameVarchar20真实emailVarchar20phoneVarchar20联系roleNameVarchar20角色名称<2>.数据字典表字段名数据类型长度是否主键描述idInt是自动编号dataDicNamevarchar50数据字典名称dataDicValuevarchar50数据字典值.产品表字段名数据类型长度是否主键描述IdInt是自动编号productNamevarchar300产品名称modelVarchar150型号unitVarchar60单位pricefloat价格storedouble库存remarkvarchar3000备注.客户表字段名数据类型长度是否主键描述IdInt11是自动编号khnovarchar20客户编号namevarchar20客户名称areavarchar20客户地区cusManagervarchar20客户经理levelvarchar30客户等级mydvarchar30客户满意度xydvarchar30客户信用度addressvarchar500客户地址postCodevarchar50邮政编码phonevarchar20联系faxvarchar20传真webSitevarchar20网址yyzzzchvarchar50营业执照frvarchar20法人zczjvarchar20注册资金nyyevarchar20年营业额khyhvarchar50开户银行khzhvarchar50开户dsdjhvarchar50地税登记号gsdjhvarchar50国税登记号stateint11客户状态.客户流失表字段名数据类型长度是否主键描述idInt11是自动编号cusNovarchar40客户编号cusNamevarchar20客户名称cusManagervarchar20客户经理lastOrderTimedate上次下单日期confirmLossTimedate确认流失日期stateint状态lossreasonvarchar1000流失原因.客户暂缓表字段名数据类型长度是否主键描述idInt11是自动编号lossIdInt11客户流失编号measurevarchar500暂缓措施.销售机会表字段名数据类型长度是否主键描述idInt11是自动编号chanceSourcevarchar300机会来源customerNamevarchar100客户名称cgjlint11成功几率overviewvarchar100概要linkManvarchar100联系人linkPhonevarchar100联系descriptionvarchar1000机会描述createManvarchar100创建人createTimeDatetime创建时间assignManvarchar100指派人assignTimeDatetime指派时间stateInt11状态devResultint11开发结果.客户开发计划表字段名数据类型长度是否主键描述idInt11是自动编号saleChanceIdInt11销售机会编号planItemvarchar100计划项planDatedate计划时间exeAffectvarchar100效果.客户服务表字段名数据类型长度是否主键描述idInt11是自动编号serveTypevarchar30服务类型overviewvarchar500概要customervarchar30客户statevarchar20状态servicerequestvarchar500服务请求createPeoplevarchar100创建人createTimedatetime创建日期assignervarchar100分配人assignTimedatetime分配日期serviceProcevarchar500服务处理serviceProcePeoplevarchar20服务处理人serviceProceTimedatetime服务处理日期serviceProceResultvarchar500服务处理结果mydvarchar50客户满意度.客户交往记录细表字段名数据类型长度是否主键描述idInt11是自动编号cusIdInt11客户编号contactTimedate交往时间addressvarchar500地址overviewvarchar100概要.客户联系人细表字段名数据类型长度是否主键描述idInt11是自动编号cusIdInt11客户编号linkNamevarchar20联系人名称sexvarchar20性别zhiweivarchar50职位officePhonevarchar50办公室phonevarchar20手机.客户历史订单细表字段名数据类型长度是否主键描述idInt11是自动编号cusIdInt11客户编号orderNovarchar40订单号orderDatedate订购日期addressvarchar20送货地址stateInt11状态.商品订购详情表字段名数据类型长度是否主键描述idInt11是自动编号orderIdInt11订单号goodsNamevarchar100商品名称goodsNumint11订购数量unitvarchar20单位pricefloat单价sumfloat数量第四章系统的详细设计与实现4.1用户登录功能实现4.1.1登录功能实现请求localhost:8080/CRM/地址:效果图:相关说明:用户进入登录界面,输入用户名,密码,选择用户类型,然后点击"登录"按钮,后台验证成功,则进入主界面,否则,提示错误信息;用户登录成功,进入用户主界面;关键代码实现:/**/** *用户登录 *@paramuser *@paramrequest *@return *@throwsException */ @RequestMapping<"/login"> publicStringlogin<Useruser,HttpServletRequestrequest>throwsException{ UserresultUser=userService.login<user>; if<resultUser==null>{ request.setAttribute<"user",user>; request.setAttribute<"errorMsg","用户名或密码错误!">; return"login"; }else{ HttpSessionsession=request.getSession<>; session.setAttribute<"currentUser",resultUser>; return"redirect:/main.jsp"; } }4.2营销管理功能实现4.2.1营销机会管理功能实现导航菜单,选择营销管理,点击营销机会管理菜单,效果如下:这里显示了营销机会列表,可以通过"客户名称","概要","创建人",分配状态〔已分配,未分配来查询数据。工具栏可以创建,修改,删除销售机会;我们点击"创建",效果如图:我们填写销售机会信息,然后点击保存,即可完成销售机会的保存;我们选择一行数据,然后点击修改,效果如图:我们可以进行数据的修改,然后点击保存,即可完成销售机会的修改;我们选择一条或者多条要删除的数据,然后点击"删除"按钮,效果如图:我们点击"确定",即可删除数据;关键代码实现:分页显示数据:@RequestMapping<"/list">@RequestMapping<"/list"> publicStringlist<@RequestParam<value="page",required=false>Stringpage,@RequestParam<value="rows",required=false>Stringrows,SaleChances_saleChance,HttpServletResponseresponse>throwsException{ PageBeanpageBean=newPageBean<Integer.parseInt<page>,Integer.parseInt<rows>>; Map<String,Object>map=newHashMap<String,Object><>; map.put<"customerName",StringUtil.formatLike<s_saleChance.getCustomerName<>>>; map.put<"overView",StringUtil.formatLike<s_saleChance.getOverView<>>>; map.put<"createMan",StringUtil.formatLike<s_saleChance.getCreateMan<>>>; map.put<"state",s_saleChance.getState<>>; map.put<"devResult",s_saleChance.getDevResult<>>; map.put<"start",pageBean.getStart<>>; map.put<"size",pageBean.getPageSize<>>; List<SaleChance>saleChanceList=saleChanceService.find<map>; Longtotal=saleChanceService.getTotal<map>; JSONObjectresult=newJSONObject<>; JsonConfigjsonConfig=newJsonConfig<>; jsonConfig.registerJsonValueProcessor<java.util.Date.class,newDateJsonValueProcessor<"yyyy-MM-ddHH:mm">>; JSONArrayjsonArray=JSONArray.fromObject<saleChanceList,jsonConfig>; result.put<"rows",jsonArray>; result.put<"total",total>; ResponseUtil.write<response,result>; returnnull; }添加或者修改数据:@RequestMapping<"/save">@RequestMapping<"/save"> publicStringsave<SaleChancesaleChance,HttpServletResponseresponse>throwsException{ intresultTotal=0;//操作的记录条数 if<StringUtil.isNotEmpty<saleChance.getAssignMan<>>>{ saleChance.setState<1>; }else{ saleChance.setState<0>;//默认未分配状态 } if<saleChance.getId<>==null>{ saleChance.setDevResult<0>;//添加的时候,默认是未开发状态 resultTotal=saleChanceService.add<saleChance>; }else{ resultTotal=saleChanceService.update<saleChance>; } JSONObjectresult=newJSONObject<>; if<resultTotal>0>{ result.put<"success",true>; }else{ result.put<"success",false>; } ResponseUtil.write<response,result>; returnnull; }删除数据:@RequestMapping<"/delete">@RequestMapping<"/delete"> publicStringdelete<@RequestParam<value="ids">Stringids,HttpServletResponseresponse>throwsException{ String[]idsStr=ids.split<",">; for<inti=0;i<idsStr.length;i++>{ saleChanceService.delete<Integer.parseInt<idsStr[i]>>; } JSONObjectresult=newJSONObject<>; result.put<"success",true>; ResponseUtil.write<response,result>; returnnull; }4.2.2客户开发计划功能实现导航菜单,选择营销管理,点击客户开发计划菜单,效果如下:这里的话,主要显示了所有客户开发计划信息,可以通过"客户名称","概要","客户开发状态"查询数据;还有一个操作列,假如是新的开发计划,可以点击开发,效果如下:上方显示的是销售机会信息,下方的话,就是开发计划项,主要是一些具体的执行情况;可以通过"添加计划","删除计划","保存计划"等操作来实现;这里,假如我们开户开发成功,点击"开发成功",假如开发失败,就点击"终止开发";假如客户开发计划已经完成〔成功或者失败,操作列会显示"查看详细信息",我们点下,仅仅是看下开发的过程信息,不带操作;关键代码实现:分页查询开发计划项数据:@RequestMapping<"/list">@RequestMapping<"/list"> publicStringlist<@RequestParam<value="saleChanceId",required=false>StringsaleChanceId,HttpServletResponseresponse>throwsException{ Map<String,Object>map=newHashMap<String,Object><>; map.put<"saleChanceId",saleChanceId>; List<CusDevPlan>cusDevPlanList=cusDevPlanService.find<map>; JSONObjectresult=newJSONObject<>; JsonConfigjsonConfig=newJsonConfig<>; jsonConfig.setExcludes<newString[]{"saleChance"}>; jsonConfig.registerJsonValueProcessor<java.util.Date.class,newDateJsonValueProcessor<"yyyy-MM-dd">>; JSONArrayjsonArray=JSONArray.fromObject<cusDevPlanList,jsonConfig>; result.put<"rows",jsonArray>; ResponseUtil.write<response,result>; returnnull; }添加或者修改开发计划项:@RequestMapping<"/save">@RequestMapping<"/save"> publicStringsave<CusDevPlancusDevPlan,HttpServletResponseresponse>throwsException{ intresultTotal=0;//操作的记录条数 if<cusDevPlan.getId<>==null>{ SaleChancesaleChance=newSaleChance<>; saleChance.setId<cusDevPlan.getSaleChance<>.getId<>>; saleChance.setDevResult<1>;//状态修改成"开发中" saleChanceService.update<saleChance>; resultTotal=cusDevPlanService.add<cusDevPlan>; }else{ resultTotal=cusDevPlanService.update<cusDevPlan>; } JSONObjectresult=newJSONObject<>; if<resultTotal>0>{ result.put<"success",true>; }else{ result.put<"success",false>; } ResponseUtil.write<response,result>; returnnull; }删除开发计划项:@RequestMapping<"/delete">@RequestMapping<"/delete"> publicStringdelete<@RequestParam<value="id">Stringid,HttpServletResponseresponse>throwsException{ cusDevPlanService.delete<Integer.parseInt<id>>; JSONObjectresult=newJSONObject<>; result.put<"success",true>; ResponseUtil.write<response,result>; returnnull; }修改开发计划状态:@RequestMapping<"/updateSaleChanceDevResult">@RequestMapping<"/updateSaleChanceDevResult"> publicStringupdateSaleChanceDevResult<@RequestParam<value="id">Stringid,@RequestParam<value="devResult">StringdevResult,HttpServletResponseresponse>throwsException{ SaleChancesaleChance=newSaleChance<>; saleChance.setId<Integer.parseInt<id>>; saleChance.setDevResult<Integer.parseInt<devResult>>; intresultTotal=saleChanceService.update<saleChance>; JSONObjectresult=newJSONObject<>; if<resultTotal>0>{ result.put<"success",true>; }else{ result.put<"success",false>; } ResponseUtil.write<response,result>; returnnull; }4.3客户管理实现4.3.1客户信息管理实现导航菜单,选择客户管理,点击客户信息管理菜单,效果如下:这里的话,主要显示了所有客户信息,可以通过"客户编号","客户名称"查询数据;工具栏可以创建,修改,删除,联系人管理,交往记录管理,历史订单查看功能。点击创建,效果如图:填写好客户信息,点击保存即可;我选择一条要修改的记录,然后点击修改,效果如下:修改数据后,点击保存按钮,即可实现客户信息的修改;我们选择需要删除的数据,然后点击"删除"按钮,效果如下图:我们选择"确定",即可完整数据的删除;我们选择需要维护联系人的客户,然后点击"联系人管理"按钮,效果如下:这里的话,会显示客户的基本信息,比如"客户编号","客户名称"。联系人管理里面,我们可以编辑信息;可以添加,可以修改,可以删除;和上面类似,我们选择需要维护交往记录的客户,然后点击"交往记录管理"按钮,效果如下:这里的话,会显示客户的基本信息,比如"客户编号","客户名称"。交往记录管理里面,我们可以编辑信息;可以添加,可以修改,可以删除;和上面类似,我们选择需要维护历史订单的客户,然后点击"历史订单查看"按钮,效果如下:这里的话,会显示客户的基本信息,比如"客户编号","客户名称"。历史订单里面,可以看到"订单号","订购日期","送货地址","状态";我们可以点击"查看订单明细",效果如下:这里的话,先显示出订单的详细信息,包括详细的商品订购清单;关键代码实现:查询客户信息:@RequestMapping<"/list">@RequestMapping<"/list"> publicStringlist<@RequestParam<value="page",required=false>Stringpage,@RequestParam<value="rows",required=false>Stringrows,Customers_customer,HttpServletResponseresponse>throwsException{ PageBeanpageBean=newPageBean<Integer.parseInt<page>,Integer.parseInt<rows>>; Map<String,Object>map=newHashMap<String,Object><>; map.put<"khno",StringUtil.formatLike<s_customer.getKhno<>>>; map.put<"name",StringUtil.formatLike<s_customer.getName<>>>; map.put<"start",pageBean.getStart<>>; map.put<"size",pageBean.getPageSize<>>; List<Customer>customerList=customerService.find<map>; Longtotal=customerService.getTotal<map>; JSONObjectresult=newJSONObject<>; JSONArrayjsonArray=JSONArray.fromObject<customerList>; result.put<"rows",jsonArray>; result.put<"total",total>; ResponseUtil.write<response,result>; returnnull; }添加或者修改客户信息:@RequestMapping<"/save">@RequestMapping<"/save"> publicStringsave<Customercustomer,HttpServletResponseresponse>throwsException{ intresultTotal=0;//操作的记录条数 if<customer.getId<>==null>{ customer.setKhno<"KH"+DateUtil.getCurrentDateStr<>>;//动态生成客户编号 resultTotal=customerService.add<customer>; }else{ resultTotal=customerService.update<customer>; } JSONObjectresult=newJSONObject<>; if<resultTotal>0>{ result.put<"success",true>; }else{ result.put<"success",false>; } ResponseUtil.write<response,result>; returnnull; }删除客户信息:@RequestMapping<"/delete">@RequestMapping<"/delete"> publicStringdelete<@RequestParam<value="ids">Stringids,HttpServletResponseresponse>throwsException{ String[]idsStr=ids.split<",">; for<inti=0;i<idsStr.length;i++>{ customerService.delete<Integer.parseInt<idsStr[i]>>; } JSONObjectresult=newJSONObject<>; result.put<"success",true>; ResponseUtil.write<response,result>; returnnull; }联系人管理:@RequestMapping<"/list">@RequestMapping<"/list"> publicStringlist<@RequestParam<value="cusId",required=false>StringcusId,HttpServletResponseresponse>throwsException{ Map<String,Object>map=newHashMap<String,Object><>; map.put<"cusId",cusId>; List<LinkMan>linkManList=linkManService.find<map>; JSONObjectresult=newJSONObject<>; JsonConfigjsonConfig=newJsonConfig<>; jsonConfig.setExcludes<newString[]{"customer"}>; JSONArrayjsonArray=JSONArray.fromObject<linkManList,jsonConfig>; result.put<"rows",jsonArray>; ResponseUtil.write<response,result>; returnnull; }@RequestMapping<"/delete"> publicStringdelete<@RequestParam<value="id">Stringid,HttpServletResponseresponse>throwsException{ linkManService.delete<Integer.parseInt<id>>; JSONObjectresult=newJSONObject<>; result.put<"success",true>; ResponseUtil.write<response,result>; returnnull; }@RequestMapping<"/save">@RequestMapping<"/save"> publicStringsave<LinkManlinkMan,HttpServletResponseresponse>throwsException{ intresultTotal=0;//操作的记录条数 if<linkMan.getId<>==null>{ resultTotal=linkManService.add<linkMan>; }else{ resultTotal=linkManService.update<linkMan>; } JSONObjectresult=newJSONObject<>; if<resultTotal>0>{ result.put<"success",true>; }else{ result.put<"success",false>; } ResponseUtil.write<response,result>; returnnull; }交往记录管理:@RequestMapping<"/list">@RequestMapping<"/list"> publicStringlist<@RequestParam<value="cusId",required=false>StringcusId,HttpServletResponseresponse>throwsException{ Map<String,Object>map=newHashMap<String,Object><>; map.put<"cusId",cusId>; List<Contact>contactList=contactService.find<map>; JSONObjectresult=newJSONObject<>; JsonConfigjsonConfig=newJsonConfig<>; jsonConfig.setExcludes<newString[]{"customer"}>; jsonConfig.registerJsonValueProcessor<java.util.Date.class,newDateJsonValueProcessor<"yyyy-MM-dd">>; JSONArrayjsonArray=JSONArray.fromObject<contactList,jsonConfig>; result.put<"rows",jsonArray>; ResponseUtil.write<response,result>; returnnull; }@RequestMapping<"/save">@RequestMapping<"/save"> publicStringsave<Contactcontact,HttpServletResponseresponse>throwsException{ intresultTotal=0;//操作的记录条数 if<contact.getId<>==null>{ resultTotal=contactService.add<contact>; }else{ resultTotal=contactService.update<contact>; } JSONObjectresult=newJSONObject<>; if<resultTotal>0>{ result.put<"success",true>; }else{ result.put<"success",false>; } ResponseUtil.write<response,result>; returnnull; }@RequestMapping<"/delete"> publicStringdelete<@RequestParam<value="id">Stringid,HttpServletResponseresponse>throwsException{ contactService.delete<Integer.parseInt<id>>; JSONObjectresult=newJSONObject<>; result.put<"success",true>; ResponseUtil.write<response,result>; returnnull; }历史订单:@RequestMapping<"/findById">@RequestMapping<"/findById"> publicStringfindById<@RequestParam<value="id">Stringid,HttpServletResponseresponse>throwsException{ Orderorder=orderService.findById<Integer.parseInt<id>>; JsonConfigjsonConfig=newJsonConfig<>; jsonConfig.setExcludes<newString[]{"order"}>; jsonConfig.registerJsonValueProcessor<java.util.Date.class,newDateJsonValueProcessor<"yyyy-MM-dd">>; JSONObjectjsonObject=JSONObject.fromObject<order,jsonConfig>; ResponseUtil.write<response,jsonObject>; returnnull; }4.3.2客户流失管理功能实现导航菜单,选择客户管理,点击客户流失管理菜单,效果如下:说明:显示出客户流失信息,"客户名称","客户经理","上次下单时间","确认流失日期","客户状态","流失原因",操作;假如客户确认已经流失,则显示"客户确认流失",假如还没有流失流失,则显示"暂缓流失",用户点击"暂缓流失",显示:弹出"客户流失暂缓措施管理",界面显示客户流失基本信息,下方的话,可以编辑一些暂缓措施;关键代码实现:查询客户流失信息:@RequestMapping<"/list">@RequestMapping<"/list"> publicStringlist<@RequestParam<value="page",required=false>Stringpage,@RequestParam<value="rows",required=false>Stringrows,CustomerLosss_customerLoss,HttpServletResponseresponse>throwsException{ PageBeanpageBean=newPageBean<Integer.parseInt<page>,Integer.parseInt<rows>>; Map<String,Object>map=newHashMap<String,Object><>; map.put<"cusName",StringUtil.formatLike<s_customerLoss.getCusName<>>>; map.put<"cusManager",StringUtil.formatLike<s_customerLoss.getCusManager<>>>; map.put<"state",s_customerLoss.getState<>>; map.put<"start",pageBean.getStart<>>; map.put<"size",pageBean.getPageSize<>>; List<CustomerLoss>customerLossList=customerLossService.find<map>; JsonConfigjsonConfig=newJsonConfig<>; jsonConfig.registerJsonValueProcessor<java.util.Date.class,newDateJsonValueProcessor<"yyyy-MM-dd">>; JSONObjectresult=newJSONObject<>; Longtotal=customerLossService.getTotal<map>; JSONArrayjsonArray=JSONArray.fromObject<customerLossList,jsonConfig>; result.put<"rows",jsonArray>; result.put<"total",total>; ResponseUtil.write<response,result>; returnnull; }查询某一个具体流失详细信息:@RequestMapping<"/findById">@RequestMapping<"/findById"> publicStringfindById<@RequestParam<value="id">Stringid,HttpServletResponseresponse>throwsException{ CustomerLosscustomerLoss=customerLossService.findById<Integer.parseInt<id>>; JsonConfigjsonConfig=newJsonConfig<>; jsonConfig.registerJsonValueProcessor<java.util.Date.class,newDateJsonValueProcessor<"yyyy-MM-dd">>; JSONObjectjsonObject=JSONObject.fromObject<customerLoss,jsonConfig>; ResponseUtil.write<response,jsonObject>; returnnull; }查询暂缓措施:@RequestMapping<"/list">@RequestMapping<"/list"> publicStringlist<@RequestParam<value="lossId",required=false>StringlossId,HttpServletResponseresponse>throwsException{ Map<String,Object>map=newHashMap<String,Object><>; map.put<"lossId",lossId>; List<CustomerReprieve>customerReprieveList=customerReprieveService.find<map>; JSONObjectresult=newJSONObject<>; JsonConfigjsonConfig=newJsonConfig<>; jsonConfig.setExcludes<newString[]{"customerLoss"}>; JSONArrayjsonArray=JSONArray.fromObject<customerReprieveList,jsonConfig>; result.put<"rows",jsonArray>; ResponseUtil.write<response,result>; returnnull; }修改暂缓措施:@RequestMapping<"/save">@RequestMapping<"/save"> publicStringsave<CustomerReprievecustomerReprieve,HttpServletResponseresponse>throwsException{ intresultTotal=0;//操作的记录条数 if<customerReprieve.getId<>==null>{ resultTotal=customerReprieveService.add<customerReprieve>; }else{ resultTotal=customerReprieveService.update<customerReprieve>; } JSONObjectresult=newJSONObject<>; if<resultTotal>0>{ result.put<"success",true>; }else{ result.put<"success",false>; } ResponseUtil.write<response,result>; returnnull; }删除暂缓措施:@RequestMapping<"/delete">@RequestMapping<"/delete"> publicStringdelete<@RequestParam<value="id">Stringid,HttpServletResponseresponse>throwsException{ customerReprieveService.delete<Integer.parseInt<id>>; JSONObjectresult=newJSONObject<>; result.put<"success",true>; ResponseUtil.write<response,result>; returnnull; }4.4客户服务管理实现4.4.1服务创建实现导航菜单,选择客户服务管理,点击服务创建菜单,效果如下:我们可以输出必要创建服务的表单数据,然后点击"保存",即可提交数据;4.4.2服务分配实现导航菜单,选择客户服务管理,点击服务分配菜单,效果如下:可以看到,会显示出所有未分配的服务信息,我们选择需要分配的服务,然后点击"分配按钮",效果如下:我们选择下分配人,然后点击"保存"按钮,即可完成服务的分配;4.4.3服务处理实现导航菜单,选择客户服务管理,点击服务处理菜单,效果如下:我们会看到显示了所有的未处理的服务,我们选择需要处理的服务,然后点击"处理"按钮,效果如下:我们填写下服务处理容然后点击"保存"按钮,即可完成服务处理;4.4.4服务反馈实现导航菜单,选择客户服务管理,点击服务反馈菜单,效果如下:我们看到所有已经处理的服务容,我们选择需要查看的客户服务反馈记录,然后点击"客户服务反馈"按钮,如下:我们填写下处理结果,然后点击"保存"按钮,即可完成服务反馈;4.4.5服务归档实现导航菜单,选择客户服务管理,点击服务归档菜单,效果如下:我们看到这里显示了所有已经完成的客户服务信息,我们可以通过"客户名称","概要","服务类型","创建日期"来查询客户服务信息;我们选择需要查看的数据,然后点击"查看客户服务详情"按钮,效果如下:4.4.6客户服务关键代码实现展示数据: @RequestMapping<"/list"> @RequestMapping<"/list"> publicStringlist<@RequestParam<value="page",required=false>Stringpage,@RequestParam<value="rows",required=false>Stringrows,StringcreateTimefrom,StringcreateTimeto,CustomerServices_customerService,HttpServletResponseresponse>throwsException{ PageBeanpageBean=newPageBean<Integer.parseInt<page>,Integer.parseInt<rows>>; Map<String,Object>map=newHashMap<String,Object><>; map.put<"customer",StringUtil.formatLike<s_customerService.getCustomer<>>>; map.put<"overview",StringUtil.formatLike<s_customerService.getOverview<>>>; map.put<"serveType",s_customerService.getServeType<>>; map.put<"state",s_customerService.getState<>>; map.put<"createTimefrom",createTimefrom>; map.put<"createTimeto",createTimeto>; map.put<"start",pageBean.getStart<>>; map.put<"size",pageBean.getPageSize<>>; List<CustomerService>customerServiceList=customerServiceService.find<map>; Longtotal=customerServiceService.getTotal<map>; JSONObjectresult=newJSONObject<>; JsonConfigjsonConfig=newJsonConfig<>; jsonConfig.registerJsonValueProcessor<java.util.Date.class,newDateJsonValueProcessor<"yyyy-MM-dd">>; JSONArrayjsonArray=JSONArray.fromObject<customerServiceList,jsonConfig>; result.put<"rows",jsonArray>; result.put<"total",total>; ResponseUtil.write<response,result>; returnnull; }添加和修改客户服务信息:/**/** *添加或者修改客服服务 *@paramcontact *@paramresponse *@return *@throwsException */ @RequestMapping<"/save"> publicStringsave<CustomerServicecustomerService,HttpServletResponseresponse>throwsException{ intresultTotal=0;//操作的记录条数 if<customerService.getId<>==null>{ resultTotal=customerServiceService.add<cu

温馨提示

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

评论

0/150

提交评论