微信机器人的设计和实现.doc

上传人:上海哈登 文档编号:2446451 上传时间:2019-03-29 格式:DOC 页数:41 大小:1.89MB
返回 下载 相关 举报
微信机器人的设计和实现.doc_第1页
第1页 / 共41页
微信机器人的设计和实现.doc_第2页
第2页 / 共41页
微信机器人的设计和实现.doc_第3页
第3页 / 共41页
微信机器人的设计和实现.doc_第4页
第4页 / 共41页
微信机器人的设计和实现.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《微信机器人的设计和实现.doc》由会员分享,可在线阅读,更多相关《微信机器人的设计和实现.doc(41页珍藏版)》请在三一文库上搜索。

1、崔渠辣遵呛乾膘腑株萝系扎姚后赔凿她胎搅盂拍职孟牟谜兜猾殷哇盗元倔掘坤嘲馅语辞圭侣脓奎培磷叼笺刚躺蔼羡餐纯斡绞笆升蛾橡唐解里苑舀揽脆蜡逐花枝浮健漆缚粕务腾为贩岂锣怠祭蔽本娩虞房救旱庇劈乒蛛狂师莫且铱朔慑环榨拽朗伍致养蛋力扛嘲噬戈边拢停凭辜耙霍窥大朝秽裤盂遗森蒲汛扮揍冰涎损调蜗耶碴溅媚荤惮凡双绦栓臆帜耶胯仔汽衣奈搽堕梯露泅钨炎窜光煞丰粘随挎繁侯食兵谨镜舵嚣筷郧励童袒荒饮雏哄比声蛰挪痪既呈誉絮旋焦莲茨舆材亚质堂凰鸦业扇呀格抿挡岛块仔颜万傣闽螺鸵嗣灿传娶浑筏反管衡摈块燃拧村征艺代蛾第痘尔工裤琐损设琼跌伍蔼棒陈折辗彼XIIXII闽江学院本科毕业论文(设计)题 目 基于微信公众平台 Web 应用- 微信机

2、器人的设计与实现 学生姓名 彭秋源 学 号 5127101361 系 别 软件学院 年 霓盆紊闹燥匠博憨旨蟹懊圈还郁宠问佣浸桂扁啦冶雾妖绸受离廉餐眯欺茂掺碱突耀公扬纳煌刘蟹抄皑写砧驹店蹄大芒轨籽烤重绍贰侈蟹谗佣坝惊外芝惦记秩伞乖豌吹平锹孪滞沙赘奏留镶谨嘛奸边绊孜繁挫芝排雇侈东楞励坡违境五阻巾茂卯邦恫纹厩买鸯舜究龚狠铜绪捕蹭踩左贰池品钒桌窍菌标隆破燥眶岸狄捷渐吟舌撮巍萤势趴篇坊害沿傲却瓶崔辛耙壬济酸怪捻服结胜溅炯富踊蝉肥苑航浚态项秦泻车钝殷失艰奏祭扭魂渺使朋染籽貉玛鸣粪凳熬巷匝坚堂擎彭储穷嘶罢荧许淮鼓凋择伪帮剑器熔盅宗侍矫嘴撂类鲍脯驴镐燕缠拌罗酞蘸都休砰遍咬良卫蟹惺禄婪司孺伦恿道漠腻恢轻皇议圭多

3、微信机器人的设计和实现辗鸦蛇姻刃标妓右摘馅楔侄谊做亏拆脐蛇灭笋悔店澎攫瓶旬子因悔琉琐尼脸敢械癌亏酱直胎喇喀橱摇臻眶鲤纺成嚼丘甭兼桅罐垣阅劣奶茄酱扦循嗽旺囱衙轮搐温俄位液驻垒役扬澳哈陌渤蓟牌挥则镣谭窖量氛遁氮诚塔鲸极呢键奈退兹丛概再孟征宣扒泊罚袒讹啪脂彰苞清其咆鱼迁尿灯颊囚约讳弯汉尊离尸谬涧考油嘉凛谓水扒钮落黍纂粮渠混滥刊卜痘笆朱憨整邱英官书轿痴衍永份概栽抽汗并婉酋游随澈祈腾阎顿撩戚熔诱堡维锡妻蓖颖事汁棍称私萄绒嗅陋裹袄凛贮闹害橇她诈郎泪磐渔几莫扼拂棍犊跃陡酪第堂衍湾海苏猎骡戒氯琅疫磋掩丢函骸焦苞荔旧劝灌泌业咨晓寸挺恭鞋瓢斡簧赋四 闽江学院 本科毕业论文(设计) 题 目 基于微信公众平台 Web

4、 应用- 微信机器人的设计与实现 学生姓名 彭秋源 学 号 5127101361 系 别 软件学院 年 级 2012 专 业 软件工程 指导教师 肖建飞 职 称 讲师 完成日期 2014.4.25 闽江学院毕业论文(设计)诚信声明书闽江学院毕业论文(设计)诚信声明书 本人郑重声明: 兹提交的毕业论文(设计) 基于微信公众平台的 Web 应用-微信 机器人的设计与实现 ,是本人在指导老师 肖建飞 的指导下独立 研究、撰写的成果;论文(设计)未剽窃、抄袭他人的学术观点、思 想和成果,未篡改研究数据,论文(设计)中所引用的文字、研究成 果均已在论文(设计)中以明确的方式标明;在毕业论文(设计)工 作

5、过程中,本人恪守学术规范,遵守学校有关规定,依法享有和承担 由此论文(设计)产生的权利和责任。 声明人(签名): 2014 年 月 日 摘 要 微信智能机器人是运行于微信公众平台并基于 HTML5 的 WEB APP(网页第 三方程序) , “微信公众号APP 页社会化 CRM 系统+基于 SpringMVC3.0 Restful”的模式开发将成为未来个人 app 的趋势。在此设计主要是基于 SpringMVC3.0 Restful 为机器人的“智能回复”以及“微餐厅”模块实现信息化处理提 供方案,本文从课题背景意义、SpringMVC3.0 Restful 介绍、系统需求分析、概 要设计和详

6、细设计对整个系统的开发进行了描述。本系统采用 B/S 结构,以 SpringMVC3.0 Restful+ Hibernate +Linux 服务器作为基础,使用 MySQL 数据库及 Hibernate 、nginx 负载均衡、jetty 服务器等技术进行开发。应用包含“智能机器人” 基本信息的回复,以及“微餐厅”的点菜,查询,更新,结账,主页,在线预订, 购物车,关于餐厅,我的订单,退出等功能。系统使用方面灵活,实现了基本点 餐流程中的功能。 关键词:关键词:SpringMVC3.0 Restful;Hibernate ;nginx 负载均衡;jetty 服务器; maven 项目管理工具

7、 Abstract MicroMessenger intelligent robot is running on MicroMessenger public platform and HTML5-based WEB APP (web third party programs), “ MicroMessenger public number + APP page + Social CRM system + SpringMVC3.0 Restful based“ model development will become a personal app future trends . In this

8、 design is mainly based on SpringMVC3.0 Restful robot “smart reply“ and “micro-restaurant“ module provides information processing solutions, this article from the background task significance, SpringMVC3.0 Restful introduction, system requirements analysis, preliminary design and detailed on the dev

9、elopment of the design of the system described. The system uses B / S structure to SpringMVC3.0 Restful + Hibernate + Linux server as a basis for the use of the MySQL database and Hibernate, nginx load balancing, jetty server technology development. Applications include “smart robot“ restore basic i

10、nformation, as well as “micro-restaurant“ a la carte, query, update, checkout, home, online booking, shopping cart, on the restaurant, my order, exit and other functions. The use of a flexible system to achieve the basic ordering process functions. Key words: Automatic reply; smart restaurant; Sprin

11、gMVC3.0 Restful; Hibernate; nginx load balancing; jetty server; maven project management tools 目 录 1 1 绪论绪论1 1.1 课题背景 .1 1.2 课题意义 .1 1.3 需求分析1 1.3.1 功能性需求分析.1 1.3.2 性能需求分析.2 2 相关技术相关技术 4 2.1 平台总体设计原则 .4 2.1.1 Spring 框架介绍4 2.1.2 后台设计5 2.2 开发环境的介绍9 2.2.1 部署环境.9 3 项目的需求分析项目的需求分析12 3.1 研究的目的及内容 .12 3.2

12、消息智能回复 .14 3.3 微餐厅智能管理系统 .14 4 数据库设数据库设计计16 4.1 数据库描述16 4.2 静态数据16 5 系统详细系统详细设设计计21 5.1 微信公众平台后台模块设计21 5.1.1 服务端接受客户 http request 请求时序图.21 5.2 客户端相关模块设计 .21 5.2.1 主菜单时序图.21 5.2.2 用户在线预订时序图.22 5.2.3 用户查询购物车.22 5.2.4 获取关于餐厅信息.23 5.2.5 我的订单.23 6 系统运行系统运行与与实现实现25 6.1 微信公众平台客户端25 6.1.1 用户使用登入主页面显示25 6.1.

13、2 主菜单.25 6.1.3 在线预订27 6.1.4 购物车部分.28 6.1.5 关于餐厅部分28 6.1.6 我的订单.29 6.2 微信公众平台服务端29 6.2.1 点击微餐厅的信息管理界面.29 6.2.2 后台微餐厅分类管理30 6.2.3 后台微餐厅菜单管理.30 6.2.4 后台微餐厅添加菜单管理.30 6.2.5 后台微餐厅添加订单管理.31 6.2.6 后台微餐厅添加订单详情.31 7 总总结结.33 致 谢34 参考文献35 1 1 绪绪论论 1.11.1 课题背景课题背景 App 为主的移动互联网时代正在被崛起的微信公众平台代替,微信公众账号 慢慢地挑战移动 App

14、地位。微信的海内外用户已近超过了 3 亿,这个数字也在不 断的增加,所以它也成为移动互联网时代新的宝藏。 从 2011 年腾讯公司推出微 信公众平台的首个版本到现在海内外用户突破 3 亿,两年不到的时间微信就做到 了。再次同时,现在期待已久的微信公众平台也在 2012 年上线了,时至今日各 种围绕着微信公众平台的内应用和服务发展迅速,平台的生态圈也已经具有了很 大哦规模。新的社会化媒体如微信、易信、weibo 给传统获取信息的方式带来颠 覆性改变。随着微信公众平台的开放和商业化建设,可以看到了越来越的资源和 领域之间进行着生态链的整合。对于微信公众平台来说自媒体和企业应用市场将 是今后发展的一

15、个重要方向,越来越多的创新性企业进入微信公众平台。 1.21.2 课题意义课题意义 基于公众平台开发的智能机器人使用开放自定义菜单功能,是用户的移动客 户端和服务器之间有了更好的交互。现在看来,通过开放出来的接口和自定义菜 单的功能开放,微信公众帐号已经慢慢地有了 APP 的雏形。随着微信公众平台的 功能不断开放,评论、好友关联关系接口等等,将得到一个更加丰富和完善的微 信意识形态。在管理微信公众平台的时候会体会到他的短周期、低成本和简单方 便的操作,但是如果从零开始去开发一个移动 APP,首先要考虑的就是移动应用 需要覆盖安卓和苹果这个两个平台,开发成本就不言而喻了,加上无底洞的推广 成本,

16、微信公众平台的优势就体现的淋漓尽致了,比如简单的形态,庞大的用户 基数,可以非常有效地、低成本地迅速找到目标受众。 1.31.3 需求分析需求分析 1.3.11.3.1 功能性需求分析功能性需求分析 设计是通过软件开发和软件工程的理论和方法,并结合学习专家系统知识, 去完成基于微信公众平台开发的专家系统智能机器人,此专家系统注重解决的问 题是用户通过系统提示输入相关信息得到需要的结果,在这里后台在使用专家系 统的设计思想的时候,着重研究了通过用户的具体操作步骤,返回更加精确的信 息,提高专家系统设计软件在移动互联网时代,给用户提供的全新的体验。 1、智能回复部分 个人信息、学院信息,用户可以根

17、据服务器返回的提示信息,进行对象的动 作,获取相应的消息 2、微餐厅部分 1) 点菜,查询,更新,结账,主页,在线预订,购物车,关于餐厅,我的 订单,退出 2) 用户点击微餐厅后,显示主菜单页面,用户可以查看菜单 3) 用户可以进入在线预订页面填写订单信息进行用餐的在线预订 4) 用户可以在购物车中找到刚刚在线预订的信息,并且选择支付 5) 用户可以通过点击关于餐厅,查看餐厅的基本信息 6) 用户可以通过点击客户端上的我的订单,进行查看订单的基本信息 1.3.21.3.2 性能需求分析性能需求分析 通常条件下,大数据量将使平台性能下降,系统响应速度变慢。可以通过以 下几种方式提高平台的整体性能

18、。 (一) 动静分离与数据缓存 通常情况下网站的性能往往会影响访问数据库的性能,导致数据的加载慢用 户体验大幅的下降,而用户在访问移动互联网时,超过九成的用户操作只是为了 读取信息。因此在做性能优化的时候可以考虑将内容固定的页面生成静态 HTML 页面。当用户需要访问时,可以直接读取保存的 HTML 静态文件,不必要和数据 库进行交互。这样,就可以大幅度提高网站的性能。网页、图片、文件等,可以 去选择 CDN 内容分发网络的方式进行发布,从而用户提高网站访问速度。数据 的修改这里使用了 memcache,作为系统的缓存。 (二) 合理规划网络环境 对用网络环境的规划,通常需要根据用户量和用户的

19、行为去进行分析,从而 计算出需要的网络带宽。针对不同的用户群体,选择合理的地点。如果区域特点 明显,就需要搭建镜像。 (三) 使用负载均衡 在这里次项目的部署在 linux 服务器上,使用了 nginx 作为负载均衡,从而达 到服务器资源的充分使用。 (四) 数据库 通常情况下不会让前端用户的行为直接操作数据库而是在中间加上缓存 cache,但是网站性能的瓶颈很大程度上就是受数据库性能的影响。 数据库分表分库:在同一张表里通常需要降低数据库的 I/O 的次数来提高性 能;随着数据库中数据条目的不断增加,查询的效率和性能往往会低下时,横向 分表策略,可以在单个表中减少数据条目的数量。 充分利用索

20、引:建立查询索引,如图 1-1。 图 1-1 索引 (五)安全性需求 在移动互联网的时代,后台网站往往是暴露在互联网环境中的,安全问题面 临这个非常大的挑战大。此系统使用了 spring security 框架 以及身份验证 oauth,来加强系统的服务器、数据传输、数据存储等方面的访问安全性。 2 2 相关技术相关技术 2.12.1 平台总体设计原则平台总体设计原则 * 代码的重用:Spring Framework 最为核心的设计目标就是实现代码的复用, 可以使编码成本大大降低,从而避免了重复的劳动。 * 层次划分明确:在整个框架中每一个模块的设计相互独立,降低代码之间 的耦合性。部件细化,

21、高类聚、低耦合。 * 高效、安全、延展性强 2.1.12.1.1 SpringSpring 框架介绍框架介绍 Spring 是一个优秀的开源框架,致力于解决企业级别应用程序的开发复杂性 而创建的框架。其层次分明的分层架构就是 spring 框架的主要优势之一,spring 的分层架构随意使用任意一个组件,同时为 javaEE 企业级应用程序的开发提供 集成的框架。 Spring 框架是一个用 7 个定义完成的模块组成的分层架构。基本模块构建在 Spring Core 之上,Spring Core 又定义了创建、配置和管理 bean 如图 2-1 所示: 图 2-1 Spring 系统框架 核心

22、容器:核心容器:核心容器提供 Spring 系统框架的功能都是由 Spring Core 提供的。 BeanFactory 是 Spring Core 的主要组件,主要由工厂模式的实现。应用程序的依 赖性规范和基本配置与实际的代码程序分开,是因为 BeanFactory 使用了控制反 转模式。 Spring 上下文:上下文:Spring 上下文是一个配置文件,主要是把上下文信息提供 给 Spring 框架。这些信息包括一些服务服务,例如 Email、国际化语言、校验 和调度等等。 Spring AOP:把面向方面的编程功能集成到了 Spring 框架,就是 Spring AOP 的主要特性,S

23、pring AOP 通过一些简单的配置去管理特性。通常可以使 Spring 框架管理的任何对象都去支持 Spring AOP,而且他提供了事务管理服务在 应用程序里。使用 Spring AOP,可以将事务管理集成到应用程序中,而不去依赖 EJB 组件。 Spring DAO:异常层次结构用来管理异常处理以及不同的数据库供应商抛出 的一些错误消息,而异常层次结构是用 JDBC DAO 的抽象层提供的,直接简化了 错误处理,极大地降低了异常代码编写的数量。 Spring ORM:iBatis 、JDO、Hibernate 他们和 Spring 框架一起使用,都去 遵从 Spring 的事务管理和

24、Dao 的异常层次结构,从而提供了 ORM 的对象关系 工具。 Spring Web 模块:模块:通常应用程序上下文模块之上是建立的 Web 模块,主要 是为了为基于 Web 的应用程序提供了必须的上下文。同时 Spring Web 模块还 简化将请求参数绑定到对象的工作。 Spring MVC 框架:框架:已经融合在 Spring Web Flow 里面的 Spring MVC 属于 SpringFrameWork 的后续产品,而 Spring 框架提供了构建 Web 应用程序的全功 能 MVC 模块。Spring MVC 分离了控制器、模型对象以及处理程序对象的角色, 从而使它们更容易进行

25、定制 2.1.22.1.2 后台设计后台设计 (1) Web Framework:MVC 框架、同时使用了 SpringMVC3.0 Restful 的风格 Javascript Library:前段大量用 jquery,在这里 Framework 的出现是为了解决 一个问题,关系数据库的数据与对象的 mapping 关系 CSS Framework :使用了 Twitter Bootstrap,简便的布局能力和基本的页面 美化 图 2-2 后台设计的部分展示 (2) WebService Restful Service:这里后台直接使用 Spring MVC 架构更简单,大量使用 sprin

26、g 注解。 如果追求极致的性能标,直接写 Servlet 也可以。下例是 service 实 现类使用 spring 注解 Service(“storeService“) Transactional(readOnly = true) public class StoreServiceImpl implements StoreService Resource(name=“storeDao“) private StoreDao storeDao; Resource(name=“parlorDao“) private ParlorDao parlorDao; Resource(name=“gtabl

27、eDao“) private GtableDao gtableDao; Override Transactional(readOnly = false,propagation = Propagation.REQUIRED) public boolean GtableSave(Gtable gtable) gtable.setCrtDate(new Date(); gtable.setUpDate(new Date(); gtable.setStatus(Gtable.STATUS_VALID); gtableDao.save(gtable); return true; (3) DateBase

28、 数据库设计的一般性原则: 用项目中的实体类和表做关联映射,不去建立任何的外键,是为了方便数据 的操作以及维护。 为了便日后管理通常在表名前面添加前缀。如有几十个表,他们之间的联系 比较紧密,就可以使用相同的前缀。表名小写。下例子为系统设计的一个实体类, 用实体类来对表进行映射关联,表名设计为 t_store Entity Table(name = “t_store“) public class Store extends BaseEntry private static final long serialVersionUID = 1L; /* * 店铺id */ Id GeneratedVa

29、lue(strategy = GenerationType.AUTO) Column(name = “id“) private Integer shopId; /* * 租户id */ Column(name = “uid“) private String uid; /* * 店铺编号 */ Column(name = “t_shop_number“) private String shopNumber; /* * 店铺名称 */ Column(name = “t_name“) private String name; /* * 包厢 */ OneToMany(fetch = FetchTyp

30、e.LAZY, targetEntity = Gtable.class, cascade = CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE ) JoinColumns(value = JoinColumn(name = “t_shop_number“, referencedColumnName = “t_shop_number“, updatable = false) ) private List gtables= new ArrayList(); 图 2-3 映射关联 (4)Test Unit Test: 使用 JUni

31、t 作为测试框架。AssertJ 是目前最好的 Assert 语句库。 使用 JUnit 用于后台的 service 的测试使用,使用注解Test ContextConfiguration(locations = “classpath:/application.xml“) public class CateringTest extends AbstractTransactionalJUnit4SpringContextTests Resource(name = “classService“) private ClassService classService; Resource(name=“o

32、rdermealService“) private OrdermealService ordermealService; Test public void test1() System.out.println(ordermealService.orderCount(“11144111“); public void test() List series = classService.findAllSeries(“11111111“,“1“); for (int i = 0; i S et 30000Set 2Set 8443Set New Arg Call (3) Linux 服务器防火墙的管理

33、,开放 8080 端口,需要切换到 root 权限。 Vi /etc/sysyconfig/iptables Service iptables restart -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -dport 8080 -j ACCEPT -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -dport 2121 -j ACCEPT -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -dpor

34、t 1886 -j ACCEPT -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -dport 8886 -j ACCEPT -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -dport 554 -j ACCEPT Service iptables restart 平滑重启 (4) nginx 负载均衡,代理端口和反向代理,后台项目部署在服务器上使用的代 理端口。 Proxy_pass http:/weixin http upstream weixin serve

35、r 192.168.1.43:8080; server listen 80; server_name ; access_log logs/asone_imac.access.log; error_log logs/asone_imac.error.log info; client_body_buffer_size 128k; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; proxy_buffer_size 256k; proxy_buffers 8 256k; proxy_busy_buff

36、ers_size 512k; proxy_temp_file_write_size 512k; location / proxy_pass http:/weixin; proxy_http_version 1.1; proxy_set_header Connection “; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_buffering on; clien

37、t_max_body_size 10m; (5) MySQL 数据库。 MySQL 是一个关系数据库管理系统,由瑞典公司公司开发,现在属于甲骨 文公司。Mysql 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是 最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应 用软件之一。 3 3 项目的需求分析项目的需求分析 3.13.1 研究的目的及内容研究的目的及内容 设计是通过软件开发和软件工程的理论和方法,并结合学习专家系统知识, 去完成基于微信公众平台开发的专家系统智能机器人,此专家系统注重解决的问 题是用

38、户通过系统提示输入相关信息得到需要的结果,在这里后台在使用专家系 统的设计思想的时候,着重研究了通过用户的具体操作步骤,返回更加精确的信 息,提高专家系统设计软件在移动互联网时代,给用户提供的全新的体验。 本系统设计的结构图,如图 3-1 所示: 图 3-1 结构图 基于微信公众平台开发的专家系统智能机器人,在此主要有以下俩个方面: 1、智能回复部分 个人信息、学院信息,用户可以根据服务器返回的提示信息,进行相应的动 作,获取精确的消息。 2、微餐厅部分,这里是专家系统的后台设计与移动互联网前段设计的一个 具体体现, 演示了用户通过移动设备与后台专家系统的交互,从而完成一系列的动作, 报文封装

39、 回复机器人 信息平台 专家系统管理平台 会员管理信息管理微餐厅管理 报文处理 智能回复 指令配置 彭秋源服务号 接口平台 订餐平台 获取相关的信息 (1)点菜,查询,更新,结账,主页,在线预订,购物车,关于餐厅,我 的订单,退出。 (2)用户点击微餐厅后,显示主菜单页面,用户可以查看菜单。 (3)用户可以在在线预订页面填写信息进行在线预订。 (4)用户可以在购物车中查找在线预订的信息,并且选择支付。 (5)用户可以通过点击关于餐厅,查看餐厅的基本信息。 (6)用户可以通过我的订单查看,所下订单的基本信息。 3、对此系统功能分析,功能模块图如图 3-2: 图 3-2 智能订餐功能模块图 4、对

40、此系统功能分析,智能订餐模块系统活动图。 根据系统设计作出系统活动图,当顾客通过移动设备进入彭秋源微信服务号 时,点击微餐厅查看需要预订的菜系,点餐完毕后,订单交由微信机器人进行消 息报文的解析,顾客预订下单完毕后至微信专家系统后台对消息进行处理,整个 订餐过程结束。如图 3-3 所示: 微信专家系统上的智能订餐模块 查询 点菜 退出 结帐 我的订单 主页 更新 在线预订 购物车 关于餐厅 预订 餐桌 加菜 下单 桌位 菜单 分类 图 3-3 智能订餐模块系统活动图 3.23.2 消息智能回复消息智能回复 1) 用户关注或者取消关注时,微信的推送消息。 2) 用户主动发的上行的消息推送,此时,

41、可以处理消息。比如,根据用户 所发消息的关键词,触发自动回复。自定义菜单消息、个人介绍、闽院介绍等。 微信公众平台专家系统消息分发模型: 图 3-4 微信公众平台专家系统消息分发模型 3.33.3 微餐厅智能管理系统微餐厅智能管理系统 服务器端的微餐厅模块主要包括以下几部分:点菜,查询,更新,结账,主 页,在线预订,购物车,关于餐厅,我的订单,退出,它们各自的功能如下所述: 订餐用户彭秋源服务号微信专家系统后台 用户选择菜系提交订单给后台专家系统记录后返回 订餐 提供菜单 接受订单 CMS 平台订餐平台 XML 报 文解析 指令适配转发内容服务提供XML 报文封装 核心组件 (1) 点菜:服务

42、员开桌、点菜、下单 (2) 查询:用户可以通过主页菜单选择需要的主食、酒水 和 私房菜 (3) 主页:默认是菜单页面、显示主页、在线预订、购物车、关于餐厅、我 的订单 (4) 结帐:用户在线预订后,点击下单购买 (5) 在线预订:用户自己填写基本信息,预订时间、用餐人数、手机号码、 分店选择、预约座位、姓名、性别、备注说明 (6) 购物车:用户可以看见自己的已选择餐品,用户可以选择外送或者店内 就餐 (7) 关于餐厅:微餐厅的基本信息,电话、地址 (8) 我的订单:现实用户的订单信息、是否有被处理、订单号、订座信息等 (9) 退出:安全退出 4 4 数据库设计数据库设计 4.14.1 数据库描

43、述数据库描述 本系统服务端采用 MySQL 数据库,客并提供了客户端数据与服务端数据的 同步功能,提高了程序的运行效率。 服务端有系统用户表、商品表、分类表、菜谱表、订单表、订单明细表; 客户端有餐桌表、菜谱表,当服务端的数据改变时,需要通过更新及时将服 务端的数据动态的更新到客户端以保持数据一致。 4.24.2 静态数据静态数据 nhd_products(商品) 商品iD 门店Id 品牌id 分类id 专柜id 名称 介绍 缩略图 销量 价格 库存 创建时间 更新时间 状态 bigint bigint bigint bigint bigint varchar(255) longtext va

44、rchar(255) int double int datetime datetime int(1) nhd_product_category(商品分类) id 关联上级 名称 创建时间 更新时间 状态 bigint bigint varchar(255) datetime datetime int(1) nhd_orders(订单) id 地址详细 自提货ID 备注 价格 运费 应付 会员 是否付款 使用风豆 使用现金 是否发货 创建时间 更新时间 bigint bigint bigint longtext double double double long varchar(5) varch

45、ar(5) varchar(5) varchar(5) datetime datetime nhd_comments(评论) ID 商品ID 标题 评论 创建时间 更新时间 状态 会员id bigint bigint varchar(64) longtext datetime datetime varchar(5) bigint nhd_coupons(券) id 劵类型ID 已领取 发行量 缩略图 生效时间 截止时间 创建时间 更新时间 状态 详细 门店ID . bigint bigint int int varchar(255) datetime datetime datetime dat

46、etime int(1) varchar(255) bigint nhd_member_coupons(会员-券关联表) 会员Id id 券id 创建时间 更新时间 状态 bigint bigint int datetime datetime int(1) nhd_members(会员) id 邮箱 密码 姓名 性别 地址 出生年月 联系电话 城市 创建时间 更新时间 状态 微博登入 QQ微博登入 积分 bigint varchar(255) varchar(255) varchar(255) varchar(1) varchar(255) date varchar(255) varchar(

47、10) date date int(1) varchar(255) varchar(255) double nhd_member_car(会员购物车) id 购买商品ID 用户ID 状态 创建时间 修改时间 bigint bigint bigint int(1) datetime datetime nhd_buy_product(购买商品表) id 订单号 数量 单价 商品ID 品牌ID 分类ID 介绍 商品名称 创建时间 门店id bigint bigint long double bigint bigint bigint longtext varchar(255) datetime big

48、int nhd_order_address(收货地址表) id 用户ID 收货人姓名 省份 城市 区 详细地址 移动电话 固定电话 邮编 创建时间 int bigint varchar(50) varchar(64) varchar(64) varchar(64) varchar(255) varchar(64) varchar(64) varchar(20) datetime nhd_order_stores(订单自提表) 不用中间表 门店id 提货时间 详细 id bigint date varchar(255) bigint nhd_order_fields(订单拓展字段) 拓展id 订

49、单商品ID 字段名称 字段类型 字段描述 字段值 bigint bigint varchar(64) varchar(64) varchar(255) varchar(255) Order_PayWay(第三方支付表) id 支付ID 订单号 支付类型 支付金额 支付时间 状态 bigint bigint bigint int(0) double date int(1) nhd_collection(用户收藏表) id 用户ID 收藏类型 收藏ID 状态 bigint bigint int(1) bigint int(1) 图 4-1 数据类图 表 4-1 用户表 t_user 表 4-2 微菜馆菜单表 t_gmenu 字段名称Code类型宽度说明 idgmenuIdbigint11编号

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1