苍穹外卖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的开发。

相关推荐
镭封17 小时前
自媒体内容生产怎么提速?文案整理、配音与剪辑流程
人工智能·小程序·音视频·语音识别·媒体
科威网络17 小时前
小程序开发性能优化:分包、预加载与启动时间
性能优化·微信小程序·小程序
派小心.1 天前
App数据统计平台怎么选?从SDK接入到日活留存看板的技术实现
数据库·人工智能·小程序
互联网+人工智能观察1 天前
微信小程序私有化定制、源码交付方案选型|SaaS / 模板二开 / 定制方案技术对比
微信小程序·小程序
微三云 - 廖会灵 (私域系统开发)1 天前
小程序首屏从 3.2s 压到 1.1s:我们在这个订货商城项目上做的 7 个改动与 3 个踩坑
小程序
微擎应用市场1 天前
二手闲置交易小程序管理系统
小程序
小小王app小程序开发1 天前
潮玩抽赏小程序玩法开发分析
小程序
干啥啥不行,bug第一名1 天前
小程序里不要用 requestAnimationFrame
小程序
9624561 天前
一次 Kubernetes 临时存储压力引发的小程序授权雪崩:从 Pod 驱逐到定时任务漏执行
容器·小程序·kubernetes
imperialeast2 天前
WinAXP 2.4.0.830正式版
小程序·个人开发