视线新增套餐功能:
创建SetmealDish,SetmealDto类,与相关的mapper,service,serviceImpl,controller类。
Setmeal表示套餐,SetmealDish表示套餐对应的菜品。

交互过程:
前端请求,点击菜品分类查看对应菜品:
后端代码:

前端效果:
点击保存按钮后发送的请求:
携带的json数据:
后端响应,使用SetmealDto接收:
编写service层方法,对两个表setmeal,setmeal_dish进行添加套餐和套餐菜品。

后端调用:
实现套餐分页查询:
前端请求:
后端代码,跟菜品分类基本一模一样。

想要在前端展示套餐分类,对应的是categoryName属性。

可以看到setmeal表中没有对应的属性,只有category_id属性。

所以需要根据category_id查询到categoryName字段并保存到setmealDto对象当中,再与前端交互。
实现删除套餐:
查看前端请求

后端对应:
实现的删除方法,删除setmeal表和setmeal_dish表中的数据:

实现短信发送:
导入maven坐标:
实现User类及相关mapper类service类controller类,并添加工具类SMSUtils和ValidateCodeUtils。

发送验证码后端代码,使用ValidateCodeUtils工具类生成验证码,使用log.info打印在控制台。实际生产情况中是使用SMSUtils根据阿里云向手机号发送验证码,由于需要认证,所以此处简化。将code存入session中。

实现登陆功能后端代码,使用Map对接请求中的属性(也可以使用DTO类,此处偷懒):
流程就是判断验证码是否正确,判断用户是否存在,最后将user存入到session中,不然前端页面跳转后会被LoginCheckFilter拦截。

修改LoginCheckFilter类,加入user的白名单。
