苍穹外卖Day06 微信小程序模块

1.首先就是登录微信小程序,这个腾讯有一套自己的流程如下图所示:

流程梳理:

这里的4. 在本项目中通过springmvc将code发送给后端的接口。

下面贴出在user端的userController如何实现登录的代码:

其实userService.login本质上就是在完成上面的二阶段和三阶段。下面的代码就是完成四和五两个阶段,也就是生成JWT令牌并且返回给前端!

下面是service中的login代码:

Mapper层的查询和插入比较简单就不多赘述了。

接下来是前端商品浏览功能

先看一下样例:

我们分别有四个接口:

1.分类查询

2.根据菜品分类查询菜品数据

3.根据套餐分类查询套餐数据

4.根据套餐id查询包含的菜品列表

首先是我们的分类查询:定义了一个categoryController,查询接口文档定义如下:

你别看前端需要传递到底是套餐分类还是菜品,这个可能是为了后面精确查询设计的但是这里确实没有,调试的代码如下图所示:

显然我们的前端没有给type传递数值,而是统一查询出了所有status=1也就是在售的category

其次是我们需要查询每个分类中具体的数据也就是(套餐or菜品)本质上每个category有多个菜品或套餐,所以查询出来应该是一个List集合。

首先是菜品分类查询,下面是dishController的代码:

没必要看接口了,前端点击了一个category的bottom这个bottom是由前面的分类查询查找出来的,所以会有一个categoryId点了bottom就会将该分类的categoryId传给后端,后端根据分类Id查询菜品,菜品返回给前端的是一个VO对象,这个对象不仅仅包括了菜品的信息,也包括了该菜品的Flavor所以要操作两个表。下面是service的代码:

我们直接用New一个Dish对象进行查询。这里的Mapper层是一个left Join查询,需要连接Dish表和Flavor表,具体XML文件如下:

首先需要定义一个resultMap,就是将我们查询结果封装到VO里面的参照物,这一段可以看后面redis缓存的时候有一个勘误。

就不细说了。

同样根据分类还能查询套餐的数据,其实本质上可以和菜品放在一起,但是套餐和菜品需要分开处理,所以给定义了两个controller层。

返回的是套餐的list对象,下面是service层的代码。

这里讲一下为什么需要用Setmeal对象去Mapper查询,本质上就是构造一个通用的查询方式,当然我们只用categoryId也可以查询的,是为了后续设计更多的精确查询,比如输入套餐的部分名字也可以查询到想要的套餐。

Mapper层代码如下:

这里学会SQL里面的like以及concat~~~

最后套餐查询有一个特殊的点,就是查询套餐的具体内容,因为一个套餐可以包括多个菜品所以它具备具体的内容,多一个接口。接口文档如下:

如图所示我们需要返回一个DishItemVO对象给前端 下图是其定义内容:

根据套餐id进行查询setmealDish表就好了,下图是service的代码:

mapper层实际上是要查两个表一个是setmeal表另一个是setmealDish表因为DishItemVO中的参数不全在一个表中所以需要连接两个表查询具体SQL如下:

完成了Day06的开发。

相关推荐
vx-Biye_Design4 小时前
SSM伴侣动物伴护星小程序06330-计算机课程设计、毕业设计
spring boot·后端·elasticsearch·小程序·架构·课程设计·idea
小疯仔9 小时前
轨迹在地图上“漂“了 500 米?一文吃透 WGS-84→GCJ-02 坐标转换引擎(GPX→JSON 实战源码剖析)
小程序·json·notepad++
lhldsg14 小时前
全民健身解决方案软件开发实战:从架构设计到部署指南
java·前端·数据库·小程序
2501_9160074719 小时前
使用Apple Dashboards显示和自定iOS应用性能指标与数据可视化指南
android·ios·小程序·https·uni-app·iphone·webview
软件技术新观察20 小时前
企业数字化开发科普:软件定制、小程序、APP 开发全解析
人工智能·小程序
凡泰AI20 小时前
小程序容器技术解析:一个能够同时在多端APP运行同一个小程序的SDK需要关注哪些内容?
开发语言·小程序·mpaas·uni·技术实践
爱折腾的编程老炮21 小时前
潮玩小程序订单模型-一张表装下所有玩法
spring boot·小程序·uni-app
万岳科技程序员小金21 小时前
同城O2O外卖系统源码开发详解:从APP、小程序到后台管理平台的完整架构解析
小程序·架构·同城外卖系统源码·外卖app开发·外卖小程序开发·外卖软件开发·外卖平台搭建
博、、21 小时前
全民健身解决方案小程序系统开发实战:从架构设计到上线指南
小程序
2501_915106321 天前
Flutter iOS混淆打包详细教程与步骤
android·flutter·ios·小程序·uni-app·iphone·webview