移动短信交易项目ppt课件.ppt

上传人:小飞机 文档编号:2102978 上传时间:2023-01-10 格式:PPT 页数:34 大小:3.19MB
返回 下载 相关 举报
移动短信交易项目ppt课件.ppt_第1页
第1页 / 共34页
移动短信交易项目ppt课件.ppt_第2页
第2页 / 共34页
移动短信交易项目ppt课件.ppt_第3页
第3页 / 共34页
移动短信交易项目ppt课件.ppt_第4页
第4页 / 共34页
移动短信交易项目ppt课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《移动短信交易项目ppt课件.ppt》由会员分享,可在线阅读,更多相关《移动短信交易项目ppt课件.ppt(34页珍藏版)》请在三一办公上搜索。

1、移动短信交易项目,FDZZ 第7小组,冯胜清 段思谋 张戈 张明珺,目录,软件架构,详细设计,详细业务功能流程,页面设计,4,1,2,3,不足与改进,5,目录,软件架构,详细设计,详细业务功能流程,页面设计,4,1,2,3,不足与改进,5,1.1层次架构,分层结构,开发人员只需要专注于自己的事情,不必管其他无关的事情低耦合,高内聚,1.2数据流处理架构(协议),ProtocolAnalysis类,public class ProtocolAnalysis private static ProtocolAnalysis protocolAnalysis=null;public static St

2、ring CMD_LOGIN=CMD001;/登陆PDU代码public static String CMD_LOGOUT=CMD002;/登出PDU代码public static String CMD_MESSAGE=CMD003;/信息PDU代码public static String STATUS_SUCCESS=0000;/成功状态码/更多常量private Log logger=LogFactory.getLog(ProtocolAnalysis.class);private ProtocolAnalysis()public static ProtocolAnalysis getIn

3、stance()public String makeRequestMessage(Map content)/客户端生成请求报文public Map analysisResponseMessage(String message)/客户端解析响应报文public Map analysisRequestMessage(String message)/服务端解析请求报文public String makeResponseMessage(Map content)/服务端生成响应报文public String comleteMessageLen(String string)/状态和短信长度位不够时,需要补

4、充0空格public String completePhoneLen(String string)/地址不够长时补充空格,1.3模块架构,目录,软件架构,详细设计,详细业务功能流程,页面设计,4,1,2,3,不足与改进,5,2.1 JDBC模板与实体映射,JdbcTemplate,EntityMapping,功能,工厂模式,实现把数据库的一行查询记录转换成一个对象传入ResultSet,返回JavaBean,预先生产好映射类,提高效率只需要往工厂传入一个mapping的名字,即可获得一个mappping对象,封装了发送SQL语句的代码,减少了重复代码的编写,实现了层次的分离,集中了异常处理,2

5、.2 DAO数据访问层,功能与组成,预先生产好各个DAO,需要的时候,传入名字即可获得DAO的引用,这里设计SQL语句,然后交给JdbcTemplate去执行,无需管数据库的相关处理,这里封装了各种对数据库的基本操作,增删改查,返回javaBean对象,链表或者其他类型,工厂模式,编写SQL语句,封装好基本操作,2.3业务逻辑层,不需要理上层如何调用业务 实现统一接口,根据需求编写业务代码 连事务都不需要管理,往DAO层注入Connection 根据需要调用DAO访问数据库,业务逻辑层专注与业务逻辑功能,开发人员不必要管太多其他的事情,如事务管理,业务转发,访问数据库等。若需要为项目开发多一个

6、功能,这需要在这里添加一个业务逻辑模块即可。,统一的入口makeBusiness(),主要的业务逻辑功能,调用DAO访问数据库,2.4业务跳转设计,/获取一个业务模块getService();/进行业务转发doBusiness();/打开一个数据库连接openConnection();/初始化业务模块initialService();,/ServiceProxy/业务代理,主要是为/了加上一层事务管理try beginTransaction();/真正执行业务 method.invoke();commit();catch(Exception e)rollback();finally close

7、();,传入SP业务号码即可获得一个代理,获取PDU代码if CMD001/登陆处理if CMD002/登出处理if CMD003/短信处理/记录此条短信到数据库 messageService.send();request.get(destinate);if SP业务号码 getService(destinate);checkSP(request);makeBusiness(req);if 手机号码 checkExist();checkOnline();while(hasMessages()receiveMessage();,传入Map:request,2.5日志记录,使用的框架:log4j添

8、加的包:commons-logging.jar log4j-1.2.16.jar配置文件:log4j.properties日志文件:mcp,mcp.html使用代码:import mons.logging.Log;import mons.logging.LogFactory;private Log logger=LogFactory.getLog(ServiceManager.class);if(logger.isInfoEnabled()logger.info(启动业务成功.);,log4j.rootCategory=DEBUG,stdout,fileout,fileout2log4j.ap

9、pender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:SSS%C:%M%m%nlog4j.appender.fileout=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.fileout.File=logs/mcplog4j.appender.fi

10、leout.DatePattern=yyyy-MM-dd.htmllog4j.appender.fileout.layout=org.apache.log4j.HTMLLayoutlog4j.appender.fileout2=org.apache.log4j.RollingFileAppenderlog4j.appender.fileout2.Threshold=DEBUGlog4j.appender.fileout2.File=logs/mcp.loglog4j.appender.fileout2.Append=truelog4j.appender.fileout2.MaxFileSize

11、=1024KBlog4j.appender.fileout2.MaxBackupIndex=10000log4j.appender.fileout2.layout=org.apache.log4j.PatternLayoutlog4j.appender.fileout2.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:SSS%C:%M%m%nlog4j.logger.org.fdzz=DEBUG,目录,软件架构,详细设计,详细业务功能流程,页面设计,4,1,2,3,不足与改进,5,3.1登陆、登出功能流程,if(checkOnline()socket.l

12、ose();else loginService();,checkUsername();checkPassword();checkStatus();return response;,receiveMessage();doBusiness();/断开连接,catch到异/常,执行logoutService/关闭连接/结束线程,Server,LoginService,启动BusinessClient线程,if 登陆请求 return 重复登陆;If 登出请求 logoutService();/关闭连接/结束线程,updateLoginDate();updateModifyDate();,Logout

13、Service,ServiceManager,3.2发送、接收短信流程,Server,while(hasMessage()nextMessage();send();while(beConnect)readUTF();doBusiness();,启动BusinessClient线程,checkLeftMoney();addMessageTable();addTradeTable();cutMessageMoney();If(isSPMessage)updateStatus();,if CMD003/记录此条短信到数据库 sendTextMessage();if普通短信 checkExist();

14、checkOnline();while(hasMessage()receiveMessage();send();moveToHistoryTable();,Map receiveMessages;receiveMessages.get(destinate).hasNext();receiveMessages.get(destinate).next();receiveMessages=mtpmsgDAO.get(destinate);,3.3查询天气流程,检查sp业务是否开通,boolean checkSP=this.checkOpenSP(source,destinate);,if(oU.eq

15、uals(oS)return true;else return false;,usr表、sp表,boolean checkFee=this.checkLeftMoney();,检查余额,usr表,if(balance spCost)return false;return true;,String date=this.getDate(message);,获取日期,if()tqMessage=无当日天气预报;else this.updateBuyTimes(date,mtpspqsinfo.getBuyTimes()+1);,根据id更新购买次数,return mtpspqsinfoDAO.upd

16、ateBuyTimesById(id,times);,sp表,插入用户交易表中,this.addMessageTrade(messageId,source);,mtptransDAO=(MtptransDAO)daoFactory.getDAO(DAOFactory.MtptransDAO,connection);,Trans表,this.cutMoney();,扣除费用,usr表,double leftMoney=mtpuser.getUserBalance()-spCost;,Map response=new HashMap();response.put(ProtocolAnalysis.

17、MAP_STATUS,status);response.put(ProtocolAnalysis.MAP_DESTINATE,source);/响应包的目标地址response.put(ProtocolAnalysis.MAP_SOURCE,ProtocolAnalysis.MAP_DESTINATE_WEATHER);/响应包的源地址response.put(ProtocolAnalysis.MAP_PDU,ProtocolAnalysis.CMD_MESSAGE);response.put(ProtocolAnalysis.MAP_TEXT_LENGTH,String.valueOf(tq

18、Message.length();response.put(ProtocolAnalysis.MAP_TEXT_CONTENT,tqMessage);return response;,3.4话费查询功能流程,Text inhere,Text in here,2003,2004,005,Description of the contents,Description of the contents,Description of the contents,3.5话费充值功能流程,Description of the contents,ThemeGallery is a Design Digital

19、Content&Contents mall developed by Guild Design Inc.,Description of the contents,Description of the contents,Description of the contents,M1,M2,M4,M3,3.5话费充值功能流程,目录,软件架构,详细设计,详细业务功能流程,页面设计,4,1,2,3,不足与改进,5,4.页面设计,短信互发,查询天气预报,查询余额,充值话费,目录,软件架构,详细设计,详细业务功能流程,页面设计,4,1,2,3,不足与改进,5,5.不足与改进 shortcoming and

20、further,本次项目设计上来讲还是不错的,但是原创的东西非常少,很多设计都是看了别人的优秀设计以后,模仿着来做的。总的来说,项目上还存在以下一些不足,也希望将来能够加以改进:异常处理:项目里面很多没有必要的条件判断,其实都可以用异常来处理,但是对异常的使用比较缺乏,不知道如何为项目定义异常拦截器:其实协议的处理,完全不需要自己处理的,如果能写一个拦截器来截取信息,全自动化根据协议处理就好了状态信息:就是故障说明部分,这次的状态信息处理得不是很完善,扩展性不是很好短信保存:也许是项目需求的问题,根本没有保存每一条短信,也限于界面技术的能力问题,没有实现这个功能,5.总结与心得,张戈,技术方面,非技术方面,基础,架构,管理,生活,再次巩固了JavaSE,补充了Oracle知识,扩展了基础以外的知识,基础是一切,锻炼设计能力,锻炼编写框架能力,锻炼项目管理能力,目标是架构师,提升沟通能力,提升了协调能力,对项目的总体把握,分工协同开发,多喝水,多运动,不要坐太久,感谢张俊老师,感谢我的组员,总结与心得,总结与心得,冯胜清个人总结,编码能力有所提高,了解了整个项目的制作流程,团队合作的重要性,努力弥补不足,M1,M2,M3,M4,Thank You!,Q&A,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号