微信机器人的设计和实现毕业论文(编辑修改稿)内容摘要:

y: 前段大量用 jquery,在这里 Framework 的出现是为了解决一个问题, 关系数据库的数据与对象的 mapping 关系 CSS Framework :使用了 Twitter Bootstrap,简便的布局能力和基本的页面美化 6 图 22 后台设计的部分展示 ( 2) WebService Restful Service: 这里后台 直接使用 Spring MVC 架构更简单 ,大量使用 spring注解。 如果追求极致的性能标,直 接写 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=gtableDao) private GtableDao gtableDao。 @Override @Transactional(readOnly = false,propagation = ) public boolean GtableSave(Gtable gtable) { (new Date())。 (new Date())。 ()。 (gtable)。 return true。 } } ( 3) DateBase 数据库设计的一般性原则: 用 项目中的实体类和表做关联映射,不去建立任何的外键,是为了方便数据的操作以及维护。 为了 便日后管理 通常在表名前面添加前缀。 如有几十个表, 他们之间的联系比较紧密 , 就可以 使用相同的前缀。 表名小写。 下例子为系统设计的一个实体类, 7 用实体类来对表进行映射关联,表名设计为 t_store @Entity @Table(name = t_store) public class Store extends BaseEntry { private static final long serialVersionUID = 1L。 /** * 店铺 id */ @Id @GeneratedValue(strategy = ) @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 = , targetEntity = , cascade = { , , }) @JoinColumns(value = { @JoinColumn(name = t_shop_number, referencedColumnName = t_shop_number, updatable = false) }) private ListGtable gtables= new ArrayListGtable()。 } 8 图 23 映射关联 ( 4) Test Unit Test: 使用 JUnit 作为测试框架。 AssertJ 是目前最好的 Assert 语句库。 使用 JUnit 用于后台的 service 的测试使用,使用注解 @Test @ContextConfiguration(locations = {classpath:/}) public class CateringTest extends AbstractTransactionalJUnit4SpringContextTests{ @Resource(name = classService) private ClassService classService。 @Resource(name=ordermealService) private OrdermealService ordermealService。 @Test public void test1(){ ((11144111))。 } public void test(){ ListSeries series = (11111111,1)。 for (int i = 0。 i ()。 i++) { ((i).getKinds().get(0).getName())。 } } } ( 5) Development Environment 使用 jdk6,版本不是特别好 使用 jetty 作为 web 服务器,而不是 tomcat ,非常好的 嵌入式版本, 通常在做集成测试 的时候不需要 部署 项目 直接就 可以 开跑。 开发时直接自己在代码里启动了,省下打包拷贝 War 文件的时间。 使用 maven 作为自己的项目管理工具。 Linux cenos 作为服务器 Nginx 作为负载均衡,下面将详细介绍 9 Mvn clean install –=true Mvn clean jetty:run Mvn clean package –=true 部署环境 (1) 项部署 linux 下,打 war 包。 Mvn clean install –=true Mvn clean jetty:run Mvn clean package –=true 图 24 项目打成 war 包 上传项目到服务器,解压 Jar –xvf Scp target/ :/home//wexin/webapps/root 图 25 上传打包项目到服务器 (2) web服务器 jetty在 linux下的配置,配置使用 8080端口,使用 jetty做 servlet容器。 Call name=addConnector Arg New class= Set name=portSystemProperty name= default=8080/Set Set name=maxIdleTime30000Set Set name=Acceptors2Set 10 Set name=confidentialPort8443Set New Arg Call (3) Linux 服务器防火墙的管理,开放 8080 端口,需要切换到 root 权限。 Vi /etc/sysyconfig/iptables Service iptables restart A RHFirewall1INPUT m state state NEW m tcp p tcp dport 8080 j ACCEPT A RHFirewall1INPUT m state state NEW m tcp p tcp dport 2121 j ACCEPT A RHFirewall1INPUT m state state NEW m tcp p tcp dport 1886 j ACCEPT A RHFirewall1INPUT m state state NEW m tcp p tcp dport 8886 j ACCEPT A RHFirewall1INPUT m state state NEW m tcp p tcp dport 554 j ACCEPT Service iptables restart 平滑重启 (4) nginx 负载均衡,代理端口和反向代理 ,后台项目部署在服务器上使用的代理端口。 Proxy_pass { upstream weixin{ server :8080。 } server{ listen 80。 server_name。 access_log logs/。 error_log logs/ 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_buffers_size 512k。 proxy_temp_file_write_size 512k。 11 location / { proxy_pass proxy__version。 proxy_set_header Connection。 proxy_set_header XRealIP $remote_addr。 proxy_set_header XForwardedFor $proxy_add_x_forwarded_for。 proxy_set_header Host $_host。 proxy_buffering on。 client_max_body_size 10m。 } } } (5) MySQL 数据库。 MySQL 是 一个关系数据库管理系统,由瑞典公司公司开发,现在属于甲骨文公司。 Mysql 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统 )应用软件之一。 12 3 项目的需求分析 研究的目的及内容 设计是通过软件开发和软件工程的理论和方法,并结合学习专家系统知识,去完成 基于微信 公众平台 开发的专家系统智能机器人,此专家系统注重解决的问题是用户通过系统提示输入相关信息得到需要的结果,在这里后台在使用专家系统的设计思想的时候,着重研究了通过用户的具体操作步骤,返回更加精确的信息 ,提高专家系统设计软件在移动互联网时代,给用户提供的全新的体验。 本系统设计的结构图,如图 31 所示: 图 31结构图 基于微信 公众平台 开发的专家系统智能机器人,在此主要有以下俩个方面: 智能回复部分 个人信息、学院信息,用户可以根据服务器返回的提示信息,进行相应的动作,获取精确的消息。 微餐厅部分,这里是专家系统的后台设计与移动互联网前段设计的一个具体体现, 演示了用户通过移动设备与后台专家系统的交互,从而完成一系 列的动作,报文封装 回复机器人 信息平台 专家系统管理平台 会员管理 信息管理 微餐厅管理 报文处理 智能回复 指令配置 彭秋源服务号 接口平台 订餐平台 13 获取相关的信息 (1)点菜,查询,更新,结账,主页,在线预订,购物车,关于餐厅,我的订单,退出。 (2)用户点击微餐厅后,显示主菜单页面,用户可以查看菜单。 (3)用户可以在在线预订页面填写信息进行在线预订。 (4)用户可以在购物车中查找在线预订的信息,并且选择支付。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。