机主留言在全时通系统上的实现毕业设计论文.doc_第1页
机主留言在全时通系统上的实现毕业设计论文.doc_第2页
机主留言在全时通系统上的实现毕业设计论文.doc_第3页
机主留言在全时通系统上的实现毕业设计论文.doc_第4页
机主留言在全时通系统上的实现毕业设计论文.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

毕毕 业业 设设 计计( 论论 文文) 机主留言功能在机主留言功能在“全时通全时通”系统上的实现系统上的实现 论论文作者姓名:文作者姓名: 申申请请学位学位专业专业: : 申申请请学位学位类别类别: : 指指导导教教师师姓姓名名( (职职称称) ): : 论论文提交日期:文提交日期: 机主留言功能在机主留言功能在“全时通全时通”系统上的实现系统上的实现 摘摘 要要 随着时代的进步,通讯技术飞速进步,同时人们对通讯质量也有了越来越 高的要求。全时通业务是面向用户提供的一项漏电提醒业务,同时全时通业务 还具有接通提醒功能。但是还没解决被叫不知道为什么不接听电话。 机主留言功能正是综合考虑了现有全时通业务的利弊得失,通过整合与优 化而成的一项新业务,从而更好地为用户提供全面、贴心的服务。 该系统的设计是在 eclipse 环境中完成的,采用了大型数据库访问技术和数 据浪涌处理技术,用 java 语言进行编码,并使用 oracle9i 进行数据库设计, 基本实现了预定的目标。该功能主要提供的服务有:主叫短信回叫业务和机主 短信平台留言功能。而且用户定制该功能或者更改留言内容,只需要发送短信 到相应的平台即可,更增加了该系统与用户之间的互动性。 关键词:关键词:全时通;机主留言;平台;定制 implement of the host record functionality in quanshitong system abstract as the development of times, communication technology makes rapid progress. at the same time, people present more and more requirements for the quality of communication. quanshitong service is introduced for the convenience of customers as a reminder of calls. meantime it can remind the call when getting through. but there is still one problem that is why the destmobile doesnt answer the phone. the design in the paper: the host record function is a new service put forward after analyzing the advantages and disadvantages of present quanshitong service, and combined with a series of integrations and optimizations. all is aimed to supply more complete and hearted service for the customers. the system is designed in the eclipse situation which uses accessing technology of large scale database and data processing technology, is coded with java and oracle9i.the main functions are: the quanshitong systems platform sends message to sourcemobile and the user sends message to quanshitong systems platform. if the user wants to order the service or change his leaving message, he only sends a short message to the corresponding platform. that increases the interactive ness between the system and users. key words: quanshitong; the host record; platform; order 目目录录 论文总页数:34 页 1引言1 1.1课题背景1 1.2机主留言的简介1 1.2.1机主留言的背景1 1.2.2机主留言功能描述2 2开发环境3 2.1jre 的配置.3 2.2eclipse 安装.5 3机主留言与“全时通”系统的关联6 3.1目前“全时通”平台具备的能力6 3.2机主留言与平台的关系7 3.2.1机主留言的发送与平台的关系7 3.2.2sp 与平台的关系8 4provision 接口规范定购技术介绍.11 4.1provision接口规范11 4.2正反向定购 provision接口规范.11 4.2.1正向定购 provision 接口规范11 4.2.2反向定购 provision 接口规范12 4.2.3misc1.6 简介12 5机主留言功能的设计与实现13 5.1核心数据库表13 5.2“全时通”系统接口的实现13 5.3数据库连接技术14 5.4定制功能14 5.5留言短信发送16 5.5.1内存模块与数据库的关系16 5.5.2接口与内存和数据库的关系17 5.5.3留言短信发送与全球呼短信的关系18 5.6短信退定19 总 结19 参考文献20 附 录21 致 谢33 声 明34 1 1引言引言 1.11.1课题背景课题背景 交流是人与人之间不可或缺的。随着经济的飞速发展,写信已不能满足人 与人之间通讯的要求,而电话作为人与人之间的主要通讯工具已经深入到人们 的日常生活当中。科学技术的迅猛发展,通讯工具也在逐步的追求方便、时尚、 实用,手机自然就成为了人们首选的通讯工具。在网络技术发达的今天,无线 通信技术也在欧洲迅速地发展,并波及到整个世界。人们现在可以在汽车上, 在火车上或者在郊外通过移动电话和其它人取得联系。随着移动电话的价格和 入网费用的降低,越来越多的中国百姓购买和使用移动电话。现在世界上有超 过 3 亿的移动电话用户,同时也有数百万的因特网(internet)用户。专家预 测,近几年内,这两项技术的用户数目将持续和快速地增加。可以说网络技术 和无线技术将在将来极大地改变我们的生活方式。 经济的发展,生活质量的提高,人们同时也对通讯质量有了越来越高的要 求。几乎每个人每天都有不方便接电话的时候,如果此时你关机,恰好在你关 机的时间内有重要的电话需要你及时回复,而你开机后也没法得知,可能会引 起一些不愉快甚至某些损失;而如果不关机的话,假如你正在开会,此时有电 话也会让你受到影响。正是考虑到这些问题给人带来的种种不便,所以开发出 了“全时通”业务。 1.21.2机主留言的简介机主留言的简介 .1机主留言的背景机主留言的背景 1.“全时通”业务的介绍 全时通业务是由中国移动通信(china mobile)集团四川有限公司面向用 户提供的一项漏电提醒业务,用户申请了该业务后,当其关机、不在服务区或 不方便接听电话时,知晓拨打过其电话的用户号码,方便其不漏掉重要来电。 业务功能: 具有原全球呼的功能:用户开通全时通业务,当不方便或无法正常接听来 电,全时通开通方将接收到全时通短信,知晓拨打过其电话的用户号码,方便 其不漏掉重要来电。 接通提醒功能:当主叫号码 a 拨打被叫号码 b 且转到全时通后,当 b 一旦 可以接通,a 就会收到 b 号码可以接通的短信通知,方便其联系。 设置方法: 开通:用户发送短信内容“kt”到 01258,即可开通全时通业务,用户的 呼叫转移号码由系统自动为用户设置。发送“kt”到 01258 端口开通业务后, 系统为用户缺省设置为不可及(关机和无信号)条件下呼转到全时通平台。如 果要设置其它条件呼转,则发送如下内容到 01258 进行设置: a、“kt”、“kt1”关机和无信号呼转 b、“kt2”遇忙呼转 c、“kt3”无应答呼转 d、“kt4”无条件呼转。 用户转全时通后,拨打方会听到录音通知:“您好,我现在暂时无法接听 您的电话,现在是我的自动应答,我将尽快与您联系,再见”。当转全时通手 机处于正常状态,系统会向该手机发送提示短信:13*于年/月/日/时/分 给您打过电话。 取消:发送短信内容 qx 或 00000 到 01258,即可取消全时通业务。 2.机主留言的背景 “全时通”业务,很好地解决了如下两方面:被叫全面掌握来电的情况; 主叫用户获取被叫用户是否开机的信息。但是还没解决主叫不知道为什么被叫 不接听电话。 机主留言功能正是综合考虑了现有“全时通”业务的利弊得失,通过整合 与优化而成的一项新业务,从而更好地为用户提供全面、贴心的服务。它有如 下显著特点: 1)既补充、完善了“全时通”业务,又提升“全时通”业务的质量。 2)充分挖掘现有移动短信监控系统的潜力,在不影响其现有功能的前提下, 为全时通业务所用,从而减少了设备与工程投入,对现有设备和系统不会产生 任何影响。 因此,机主留言功能是“全时通”业务的完善与补充,它既不影响现有运 营的系统与业务,又不需进行大规模的工程作业。其主要提供的服务有: 1)主叫短信回叫业务 2)机主短信平台留言功能 3.机主留言的预期效果 本设计的预期成果是在不影响“全时通”系统商用的基础上完成机主留言 功能,以达到支持 500 万用户使用,支持同时在线两千用户以上。 .2机主留言功能描述机主留言功能描述 被叫关机/不便接听前,由被叫主动上行一短信给全时通系统平台 (01258),当主叫呼叫关机/不便接听的被叫时,平台主动转发此短信,以说 明被叫关机/不便接听原因。 机主留言功能描述机主留言功能描述: 被叫关机/不接听,激发全球呼业务, 全时通平台检测(通过全球呼短信) 全时通用户 是否设置机 主留言? 向全时通平台传递主叫号 码 全时通平台向 主叫转发机主 留言 结束本次业务 yes 用户上发 “mq”清除转 发内容否? yes no no 给被叫发如下短信:感谢您使用全 时通业务的机主留言服务,欢迎您 再次使用!详询 10086。 给被叫发如下短信:温馨提醒:您的机主留言内容已成功接收,在您不便接 听电话时,呼叫您的移动用户将收到您的短信留言。本信息免费,详询 10086。 发一不方便接听电话原由短信(如:开会,上飞机等)至 01258, 如:m +数字(1-9 小时,该短信滞留全时通平台时间)+“不接听 原由” 发“kt”到 01258 或通过 10086 开通全时通业务(机主留言作为全时通业务的一项功能) 该用户是全时 通定制用户否? 给用户发如下短信:温馨提醒: 您目前尚不是全时通定制用户, 请发 kt 到 01258 开通业务,资费 1 元/月。本信息免费,详询 10086。yes no 留言短信超 时否? no 清除留言短信 yes 图 1 系统流程图 2 2开发环境开发环境 2.12.1jrejre 的配置的配置 本设计是基于“全时通”系统上的一个功能的实现,由于“全时通”整个 系统是使用 java 语言编写,所以为了不影响现有系统,该设计的程序语言也是 使用 java 语言。使用的编译环境与工具是由 ibm 公司开发的 eclipse。 eclipse 是开放源代码的项目,你可以到 去免费下载 eclipse 的最新版本,该设计使用的是 eclipse3.2 版本,下载站点列表: /downloads/download.php?file=/eclipse/downloads /drops/r-3.2-200606291905/eclipse-sdk-3.2-win32.zip。eclipse 本身是用 java 语言编写,但下载的压缩包中并不包含 java 运行环境,需要用户自己另 行安装 jre。jre 可以到 去免费下载。如果 jre 是 j2re 的 1.4 版 本以前的,那么需要用户在计算机上自己设置环境变量。进入环境变量设置的 路径“我的电脑的系统属性-高级”(如图 2),然后直接点击“环境变量”进入 环境变量的设置(如图 3),最后对环境进行相应的设置。 图 2 系统属性 图 3 环境变量 该设计使用的 jre 版本是 j2re-1_4_2_04-windows-i586-p.exe,所以不需 要对环境变量进行设置。下载好 jre 后直接进行安装,路径都可以直接使用默 认路径,也可以自己设置。完成 jre 的安装后就可以对 eclipse 进行安装了。 2.22.2eclipseeclipse 安装安装 安装 eclipse 的步骤非常简单:只需将下载的压缩包按原路径直接解压即 可。需注意如果有了更新的版本,要先删除老的版本重新安装,不能直接解压 到原来的路径覆盖老版本。在解压之后可以到相应的安装路径去找 eclipse.exe 运行。 安装好 eclipse 后,初次运行时它会提示您以后建的工程会存放在什么地 方(即 workspace),也可以改变其默认目录,选择自己想要存放的目录(如 图 4)。 图 4 工作区选择 3 3机主留言与机主留言与“全时通全时通”系统的关联系统的关联 3.13.1目前目前“全时通全时通”平台具备的能力平台具备的能力 经过长时间的分析、相关的测试和充分的考虑,通过不断的修正与完善, 真正做到对现有系统影响最小,既融合了“全球呼”系统,又弥补和完善了 “全球呼”业务的不足。 “全时通”业务具体方案是:以监测全球呼短信为触发,借助现有的移动 短信监控系统来监测被叫开关机状态,通过后台综合管理及服务系统的整合来 实现所有相关业务流程。 gmsc msc/vlr hlr smc 全球呼平台 移动短信监控系统 后台综合管理及服务系统 ismg 1 2 3 4 图 5 平台关系图 1)当主叫呼叫被叫,被叫关机, “全球呼”将向被叫下发一全球呼短信 2)移动短信监控系统将监视该短信的下发状态 3)一旦移动短信监控系统监测到该短信下发成功,则表明被叫已开机,移 动短信监控系统将通知后台综合管理及服务系统 4)后台综合管理及服务系统透过 ismg 以短信通知主叫:被叫已开机,请 与之联系。 从系统的逻辑来看,可分成如下三个部分: 1)移动短信监控系统 2)全球呼平台 3)后台综合管理及服务系统 1.移动短信监控系统 移动短信监控系统能对相关的下发短信进行内容和状态监控,因此,接收 后台综合管理及服务系统的请求,检测相关下发短信并不需要增加新的功能, 而只是对现有系统进行热备份并过滤出所需的下发短信和下发状态,因此,它 不会改变现有的系统和相关的业务流程,也不需增加过多的硬设备和软件开发。 由于移动短信监控系统是一套相对独立封闭的系统,为保证移动短信监控 系统的安全,我们将专门配置一转接服务器,通过内/外网两个网口,内网网口 与移动短信监控系统相连,外网网口与后台综合管理及服务系统联接,内/外网 严格隔离。 2.全球呼平台 运营其现有业务,新增功能只对其向被叫下发的全球呼短信作旁路监测来 激发开机提醒业务。 3.全时通后台综合管理及服务系统 包括综合数据库服务,按设计的业务流程,业务条件,在获取实现业务的 必需数据后,与相关的系统单元进行交互,完成业务流程。同时还包括系统运 行的各种支撑模块,如网管、计费、统计、报表等。由于系统通过短信方式实 现计费,系统自有计费模块仅供对帐之用。 3.23.2机主留言与平台的关系机主留言与平台的关系 .1机主留言的发送与平台的关系机主留言的发送与平台的关系 在“全时通”系统中,当主叫呼叫被叫,被叫关机/不方便接听电话, “全 球呼”平台将向被叫下发一全球呼短信。 “全时通”平台一检测到全球呼短信, 则马上提取主叫与被叫号码,同时查看被叫是否开通了机主留言短信的功能, 如果被叫拥有该功能,并且满足各种下发条件,平台立即向主叫发送被叫的机 主留言短信的内容。 .2sp 与平台的关系与平台的关系 图 6 sp 与各个平台关系图 如图 6 所示,互联网短信网关(ismg)是业务提供商(sp)与移动网内短 信中心之间的中介实体,互联网短信网关一方面负责接收 sp 发送给移动用户的 信息和提交给短信中心。另一方面,移动用户点播 sp 业务的信息将由短信中心 通过互联网短信网关发给 sp。另外,为了减轻短信中心的信令负荷,互联网短 信网关还应根据路由原则将 sp 提交的信息转发到相应的互联网短信网关。互联 网短信网关通过向汇接网关(gns)查询的方式获得网关间的转发路由信息。 1. sp 与 ismg 之间的消息发送操作如下: 1)sp 请求连接到 ismg(cmpp_connect)操作 cmpp_connect 操作的目的是 sp 向 ismg 注册作为一个合法 sp 身份,若注 册成功后即建立了应用层的连接,此后 sp 可以通过此 ismg 接收和发送短信。 ismg 以 cmpp_connect_resp 消息响应 sp 的请求。 2)sp 向 ismg 提交短信(cmpp_submit)操作 cmpp_submit 操作的目的是 sp 在与 ismg 建立应用层连接后向 ismg 提交短 信。 ismg 以 cmpp_submit_resp 消息响应。 3)ismg 向 sp 送交短信(cmpp_deliver)操作 cmpp_deliver 操作的目的是 ismg 把从短信中心或其它 ismg 转发来的短信 送交 sp,sp 以 cmpp_deliver_resp 消息回应。 2. sp 与 ismg 之间的连接方式 现阶段,要求 ismg 之间必须采用长连接的通信方式,长连接方式如下: 通信双方以客户-服务器方式建立 tcp 连接,用于双方信息的相互提交。当 信道上没有数据传输时,通信双方应每隔时间 c 发送链路检测包以维持此连接, 当链路检测包发出超过时间 t 后未收到响应,应立即再发送链路检测包,再连 续发送 n-1 次后仍未得到响应则断开此连接。 参数 c、t、n 原则上应可配置,现阶段建议取值为:c=3 分钟,t=60 秒, n=3。 网关与 sp 之间、网关之间的消息发送后等待 t 秒后未收到响应,应立即重 发,再连续发送 n-1 次后仍未得到响应则停发。现阶段建议取值为:t=60 秒, n=3。 消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数 w 可配置, 现阶段建议为 16,即接收方在应答前一次收到的消息最多不超过 16 条。 长连接的操作流程举例如图 7 所示: . . . . . . 建立 tcp 连接 滑动窗口不大于 w w cmpp 消息 1 客户端服务器端 cmpp 消息 2 对 cmpp 消息 1 的响应 对 cmpp 消息 2 的响应 链路检测包 链路检测包响应 建立 tcp 连接 链路检测包 链路检测包响应 拆除 tcp 连接 . . . . . . 建立 tcp 连接 图 7 长连接操作流程图 3.sp 与 dsmp 由于全时通业务是 sp 与移动合作的收费业务,收费是由移动带收,所以必 须使得 sp 与 dsmp(misc1.6)之间定购关系同步(该功能通过 provision 接口规 范来完成)。 4 4provisionprovision 接口规范接口规范定购技术介绍定购技术介绍 机主短信留言功能的实现必须通过用户使用短信的方式自己定制与退定, 而短信的定购就必须通过 provision 接口规范的定购,才能与 dsmp 平台联系起 来。因此,provision 接口规范的定购是用户通过短信定制机主短信留言功能所 必须的一项技术。 4.14.1provisionprovision 接口接口规范规范 provision 接口规范是用来实现 dsmp(是数据业务的管理核心平台,完成数 据业务的业务管理和控制功能)和 sp 之间定购关系同步,dsmp 通过该接口进 行定购关系同步和在用户自助服务时设置定购服务相关的属性,比如暂停、取 消业务等,它是基于 http/xml 格式的消息交互模式。 sp 在实现接口改造时必须对 dsmp 通过该接口传过去的所有用户状态改变 信息都要做对应的处理,比如 boss 暂停、boss 开机、用户取消、暂停等等, 否则会引起 misc 和 sp 双方定购关系不同步,引起不必要的费用纠纷。 另外,目前 misc 平台可以对所有 sp 实现反向取消业务的功能,但是必须 要求 sp 先实现反向 provision 定购关系同步接口功能。 4.24.2正反向定购正反向定购 provisionprovision 接口规范接口规范 .1正向定购正向定购 provision 接口规范接口规范 流程说明: 1.用户通过手机发送定制指令到相应的 sp 特服号 2.网关收到 mo(mobile originate)消息向 misc 发起 mo 鉴全批价 3.misc 收到 mo 鉴全批价请求后进行定购、点播指令匹配 4.如果判断指令是定制指令,则 misc 会向 sp 发送订购关系同步请求 syncorderrelationreq 5.sp 收到同步请求后,对这个定购请求做相应的定购关系处理,并返回订 购关系同步应答 syncorderrelationresp 6.misc 收到响应后在系统里面生成正式的定购关系,并且由系统自动产生 一条定购成功的提醒消息发给用户 .2反向定购反向定购 provision 接口规范接口规范 spmisc subscribeservicereq 接入鉴权 用户鉴权 业务鉴权 syncorderrelationreq syncorderrelationresp 出包月话单、生成订购关系 subscribeserviceresp 图 8 反向定制图 流程说明: 1.sp 收到用户的定购请求后,向 misc 发起订购请求 subscribeservicereq,并等待 misc 处理响应消息 2.misc 对消息中的业务鉴权接入鉴权,判断该业务是否允许进行反向订购 3.进行用户鉴权和订购关系鉴权,判断用户状态是否正确以及是否是重复 定购等 4.misc 向 sp 发送订购关系同步请求 syncorderrelationreq 5.sp 收到同步请求后,对这个定购请求做相应的定购关系处理,并返回订 购关系步应答 syncorderrelationresp 6.misc 收到响应后在 misc 里面生成正式的定购关系,并返回 sp 反向定购 处理响应 subscribeserviceresp ,如果响应正确则转到 8 7.如果收到 misc 的错误响应,则说明定购失败,sp 必须对这个失败消息 做相应处理,比如把生成的定购关系清除 8.如果收到 misc 的正确响应,则 sp 可以不做任何处理 .3misc1.6 简介简介 misc1.6 作为唯一一个完全符合中国移动集团公司 dsmp 数据业务管理规范 的产品,它能够支撑多种数据业务模式,包括 wap、sms、pda、kjava、mpic 等, 完成代理访问、用户及定购关系鉴全批价、sp 定购关系同步、sso 网站登录等 功能,同时还支持各种业务管理、客户投诉处理、数据报表等功能。 5 5机主留言功能的设计与实现机主留言功能的设计与实现 5.15.1核心数据库表核心数据库表 表 1 被叫用户表(即具有机主留言功能的机主表 lh_ps_userinfo): namenull?type idnot nullnumber(12) psmobilevarchar2(20) pauseservicenumber(2) msgvarchar2(200) durationnumber sendtimedate 表 2 临时接口表(lh_interface): namenull?type idnot nullnumber(12) typevarchar2(20) typevaluevarchar2(200) 5.25.2“全时通全时通”系统接口的实现系统接口的实现 全时通系统获得用户的短消息都是通过移动的固定接口(provision 接口) , 因此全时通系统也有相应的接口(该接口命名为 spprovision 接口)与移动接 口对应。 用户的定制、取消、暂停等行为都要求全时通系统与移动同步,因此必须 保证相关的接口与数据库和内存同步。那么 spprovision 接口是怎么实现的呢? 为了实现同步关系,用户的定制、取消短信都是通过 provision 接口传送 到 spprovision 接口上,然后全时通系统再对短信信息进行处理,步骤如下: 1.用户 smmo(short message mobile originate)正向定购 sp 的业务时, misc 收到定购请求后通过正向同步 provision 接口向 sp 发起定购关系同步请 求 2.sp 收到同步请求后经过处理返回正确的响应,如果由于 sp 的网络原因 未给 misc 响应,那么 misc 会在一定时间重发三次,一般是 30 秒一次 3.misc 收到 sp 的 provision 响应后开始处理定购,如果响应错误则返回 定购失败,否则返回处理成功 同时针对特殊业务需要通过反向定购时,spprovision 接口首先响应,sp 发起 provision 反向定购请求,misc 收到后按照正向流程向 sp 发起正向同步 请求,完成定购同步。 5.35.3数据库连接技术数据库连接技术 由于机主留言功能是在已有的“全时通”系统上开发设计,所以,其数据 库也是建立在“全时通”系统的数据库中。正是由于数据库建在已有系统的数 据库中,这样才能更好的与已有系统融合在一起,达到最小影响原有系统的效 果。 “全时通”系统与数据库服务器并不是在同一台服务器上,他们处于同一 局域网内,而机主留言功能的数据库的表也建在已有系统上,所以该设计的数 据库访问与原有系统的数据库访问是一致的,jdbc 代码如下: try class.forname(“oracle.jdbc.driver.oracledriver”);/建立 jdbc 桥接器 catch(classnotfoundexception ex) connection conn = null; try conn=drivermannager.getconnection(“jdbc:oracle:thin::1521:ora9”,”oraclen ame”,”password”);/连接数据库 catch(sqlexception ex) ex.printstacktrace(); /将此 throwable 及其追踪输出至标准错误流 5.45.4定制功能定制功能 sp 接收到用户的定制短信时, “全时通系统”会对该用户进行判断他是否 是全时通用户。如果不是会发送相关的提醒短信返回给用户;如果是则会继续 分析该用户的定制语句。一旦判断到该用户的语句是“m +数字(1-9 小时,该 短信滞留全时通平台时间即短信的有效时间)+“不方便接听原由” ”时(数字 可有可无,没有数字则表示该机主留言短信长期有效,方便了用户担心短信留言 的有效时间过短而设置的) ,则认为该用户是在定制机主留言短信功能,立即存 入到内存中,同时更新存放数据库内的机主留言功能的表(lh_ps_userinfo) 并且向用户发送机主留言功能定制成功的短信,相关的判断算法程序如下: if (command.length() 1 int duration;/duration 短信留言的有效期 stringbuffer buffer = new stringbuffer(); int i = 1; for(i = 1; i 0) for(int i=0;i 0) for (int i = 0; i 0) for(int i=0;i“ + e); finally try /关闭数据库连接 if (rs != null) rs.close(); if (ps != null) ps.close(); connmgr.freeconnection(“ora_conn“, conn); catch (exception e) log.error(“关闭数据库连接出现异常,方法在: dbado.updatepsusercontent=“ + e); return succ; public string getlhpsuserinfo(int pos,int max) /获取被叫的信息 string rtn = null; connection conn = null; preparedstatement ps = null; resultset rs = null; string sql = “; int numcolumns; vector info; sql = “select id,psmobile,msg,duration,to_char(sendtime,yyyy-mm-dd hh24:mi:ss) as sendtime from lh_ps_userinfo where id? and rownum“ + e); return rtn; public boolean addpsuser(string psmobile,string msg,int duration) /添加 被叫 boolean succ = false; connection conn = null; preparedstatement ps = null; resultset rs = null; string sql = “insert into lh_ps_userinfo (psmobile,msg,duration,sendtime) values (?,?,?,sysdate)“; try conn = connmgr.getconnection(“ora_conn“); ps = conn.preparestatement(sql); ps.setstring(1,psmobile); ps.setstring(2,msg); ps.setint(3,duration); ps.executeupdate(); succ = true; catch (exception e) log.error(“数据库操作出现异常,方法在:dbado.addpsuser=“ + e); e.printstacktrace() ; finally try if (rs != null) rs.close(); if (ps != null) ps.close(); connmgr.freeconnection(“ora_conn“, conn); catch (exception e) log.error(“关闭数据库连接出现异常,方法在:dbado.addpsuser=“ + e); return succ; public boolean updateuserinfo(string msg,int duration,string mobile) /更新 用户信 息 boolean succ = false; connection conn = null; preparedstatement ps = null; resultset rs = null; string sql = “update lh_ps_userinfo set msg = ?,duration = ? ,sendtime = sysdate where psmobile = ?“; try conn = connmgr.getconnection(“ora_conn“); ps = conn.preparestatement(sql); ps.setstring(1,msg); ps.setint(2,duration); ps.setstring(3,mobile); ps.executeupdate(); succ = true; catch (exception e) log.error(“数据库操作出现异常,方法在: dbado.updatenumericfieldvalue=“ + e); e.printstacktrace() ; finally try if (rs != null) rs.close(); if (ps != null) ps.close(); connmgr.freeconnection(“ora_conn“, conn); catch (exception e) log.error(“关闭数据库连接出现异常,方法在: dbado.updatenumericfieldvalue=“ + e); return succ; public boolean updatefieldvalue(string key,string keyvalue,string field,int fieldvalue) /更新数据库表中的 内容 boolean succ = false; connection conn = null; preparedstatement ps = null; resultset rs = null; string sql = “update lh_ps_userinfo set “+field+“=? where “+key+“=?“; try conn = connmgr.getconnection(“ora_conn“); ps = conn.preparestatement(sql); ps.setint(1,fieldvalue); ps.setstring(2,keyvalue.trim(); ps.executeupdate(); succ = true; catch (exception e) log.error(“数据库操作出现异常,方法在: dbado.updatenumericfieldvalue=“ + e); e.printstacktrace() ; finally try if (rs != null) rs.close(); if (ps != null) ps.close(); connmgr.freeconnection(“ora_conn“, conn); catch (exception e) log.error(“关闭数据库连接出现异常,方法在: dbado.updatenumericfieldvalue=“ + e); return succ; public boolean updatefieldvalue(string key,int keyvalue,string field,int fieldvalue) /更新用户信息 boolean succ = false; connection conn = null; preparedstatement ps = null; resultset rs = null; string sql = “update lh_ps_userinfo set “+field+“=? where “+key+“=?“; try conn = connmgr.getconnection(“ora_conn“); ps = conn.preparestatement(sql); ps.setint(1,fieldvalue); ps.setint(2,keyvalue); ps.executeupdate(); succ = true; catch (exception e) log.error(“数据库操作出现异常,方法在: dbado.updatenumericfieldvalue=“ + e); e.printstacktrace() ; finally try if (rs != null) rs.close(); if (ps != null) ps.close(); connmgr.freeconnection(“ora_conn“, conn); catch (exception e) log.error(“关闭数据库连接出现异常,方法在: dbado.updatenumericfieldvalue=“ + e); return succ; public boolean updatefieldvalue(string key,string keyvalue,string field,string fieldvalue) /更新用户信息 boolean succ = false; connection conn = null; preparedstatement ps = null; resultset rs = null; string sql = “update lh_ps_userinfo set “+field+“=? where “+key+“=?“; try conn = connmgr.getconnection(“ora_conn“); ps = conn.preparestatement(sql); ps.setstring(1,fieldvalue); ps.setstring(2,keyvalue); ps.executeupdate(); succ = true; catch (exception e) log.error(“数据库操作出现异常,方法在: dbado.updatevarcharfieldvalue=“ + e); e.printstacktrace() ; finally try if (rs != null) rs.close(); if (ps != null) ps.close(); connmgr.freeconnection(“ora_conn“, conn); catch (exception e) log.error(“关闭数据库连接出现异常,方法在: dbado.updatevarcharfieldvalue=“ + e); return succ; public boolean delpsuser(string mobile) /删除用户 boolean succ = false; connection conn = null; preparedstatement ps = null; resultset rs = null; string sql = “delete lh_ps_userinfo where psmobile=?“; try conn = connmgr.getconnection(“ora_conn“); ps = conn.preparestatement(sql); ps.setstring(1, mobile); ps.executeupdate(); succ = true; catch (exception e) log.error(“数据库操作出现异常,方法在:dbado.delpsuser=“ + e); e.printstacktrace() ; finally try if (rs != null) rs.close(); if (ps != null) ps.close(); connmgr.freeconnection(“ora_conn“, conn); catch (exception e) log.error(“关闭数据库连接出现异常,方法在:dbado.delpsuser=“ + e); return succ; public class psuser /被叫用户信息表(lh_ps_userinfo) public string psmobile = null;/被叫号码 public string msg = null;/留言信息 public int duration= 0;/持续时间 public string sendtime= null;/发送时间 根据机主用户发生的不同短信内容,向用户发送相应的信息提示,信息代 码如下: public class glodata public string userentermsg = lhconfig.getconfiginfo(“userentermsg“); /userentermsg:温馨提示:您的机主留言内容已成功接收,在您不便接听电 话/时,呼叫您的移动用户将收到您的短信留言.本信息免费,详询 10086 public string userexitmsg= lhconfig.getconfiginfo(“userexitmsg“); /userexitmsg:感谢您使用全时通业务的机主留言服务,欢迎您再次使用!详 /询 10086 public string ntfbj = lhconfig.getconfiginfo(“ntfbj“); /ntfbj:您已成功定制中国移动的机主留言包月业务,资费 2 元/月,欢迎 使/用。本信息免费,业务详询 10086 public boolean apprun = false; public void reloadmsg() userentermsg = lhconfig.getconfiginfo(“userentermsg“); userexitmsg = lhconfig.getconfiginfo(“userexitmsg“); ntfbj = lhconfig.getconfiginfo(“ntfbj“); apprun = true; else apprun = false; 文中部分缩略语如下: ismg(internet short message gateway):互联

温馨提示

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

评论

0/150

提交评论