Scala实战-经过微信聊天窗口实现应答式点餐 0

近来学习Play 2和Akka,想着找一个实战性的项目练练手。正好近来公司提供晚餐,天天看着程序媛拿着手机一个一个的找人点餐,耗时多、且容易点漏、又打断了自身的工做……哥以为小妹儿工做好累啊。做为一个全栈工程师,为公司小妹儿减轻工做负担责无旁贷啊。git

就在想,就在想……用什么方法能够简化这个点餐流程呢?把玩着手中的微信,看到同事们在公司群里胡吹海吹,Duang!有了,就作一个基于微信公众号的点餐系统。github

技术

系统用到的技术有:数据库

系统功能

通过深思熟虑的思考,作一个基于WEB的点餐,经过微信打开内置游戏器访问。这个,感受B格不够高,就是作一个网站了,Low……。我得作一个与微信深度集成的点餐功能,就像一个聊天机器人一下。用户输入指令,系统返回菜单。甚至用户输入语音,系统也返回菜单,哈哈哈!微信

在聊天窗口输入指令显示菜单,如:框架

  • 0:全部指令
  • 1:注册用户
  • 2:今日菜单
  • 3:个人历史(返回链接,直接进入个人历史点餐记录)

选择今日菜单后,系统在聊天窗口返回:工具

  1. 菜品一
  2. 菜品二
  3. 菜品三
  4. 菜品四 。。。。。

用户选中一个菜品后系统应返回一个确认提示:学习

  • 1:确认,2(其它):取消

用户注册网站

这个系统只限于公司内部使用,因此不能让随便一个关注了公司号的人均可以进行点餐操做。因此用户注册功能是必需得有的。注册也采用应答的方式,用户在微信聊天窗口输入相关信息,系统验证成功后注册成功。code

有注册了,那登陆呢?登陆?都已经用微信作入口了,就直接登陆了吧。游戏

开发

Play

Play用来作什么?根据微信公众号的开发文档,接入微信公众号须要80端口,并使用HTTP协议。这不是要开发WEB嘛,哥用Scala作开发,那天然就是Play 2了。其实也不当当这个,Scala下可以使用的Web框架仍是不少的,甚至Spring也能够的嘛。不过我就是想用用Play 2,OK。

Play其实还有一些网页的开发工做,虽然是经过聊天窗口进行点餐。但仍是得有个简单的管理后台的,用于餐品管理、统计等。这些仍是作个WEB程序比较方便。

Akka

Akka有一个很好的特性,根据actor模型开发,天然而然就是一个树型结构。很适合用来管理每一个微信用户的菜单选择状态。

Slick

Slicktypesafe开发的一套用于访问数据库的工具库。最新的3.x系列版本实现了一个非阻塞的数据库访问API,底层使用了JDBC驱动。

Slick是一个现代的访问数据库的Scala库,使用编写访问数据库代码和日常编写代码同样,使用类集合操做的方式来访问数据库。同时也提供了以原生SQL语言的方式来读取数据库,并同时保证类型检查。

注册微信号

https://mp.weixin.qq.com官网注册订阅号或服务号。步骤就不详述了。

相关文章
相关标签/搜索