黑马springboot瑞吉外卖项目知识点功能逻辑实现

整个项目基于spring boot+ spring mvc +mybatis plus 实现基本的crud,通过redis

+nginx+linux去优化,基本框架还包括maven+tomcat实现,使用工具包括idea+vmware+finalshell,idea内使用git做仓库处理.

首先进行项目搭建

Idea部署项目,加上具体pom文件配置spring boot-starter之类的,然后rescours下创建yml文件写上jdbc相关连接。

服务端功能实现包括:

1.登录功能:发送验证码并验证处理。后期基于redis做优化处理

进入后台管理端后:

2.实现员工管理,包括员工的crud以及员工的搜索功能和分页显示功能。

3.实现分类管理,单表的crud

4..实现菜品管理,涉及菜品表和分类表的crud

5.实现套餐管理,涉及套餐表和套餐与菜品关系表(setmealDish)的crud

客服端功能实现包括:

1.登录功能

2.点餐功能

3.购物车功能

4.地址填写

先开始服务端的功能实现

具体实现逻辑:

1.1员工登录功能:

//1.将页面提交的密码进行md5加密处理

//2.根据页面提交的用户名username查询数据库

//3.如果没有查询到则返回登录失败结果

//4.密码比对,如果不一致则返回登陆失败结果

//5.查看员工状态,如果为已经=禁用状态,则返回员工已禁用结果

//6.登录成功,将员工id存入Session并返回登录成功结果

2.员工管理:实现crud

首先是

2.1新增操作:

正常来说就直接调用service的save方法就行,且基于mybatis plus,每层是这样的:

@Mapper
public interface EmployeeMapper extends BaseMapper<Employee> 
//service接口层
public interface EmployeeService extends IService<Employee>
//实现层
@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService
//控制层@Slf4j
@RestController
@RequestMapping("/employee")
public class EmployeeController

正常是直接调用service接口层继承的Iservice中内置的save方法就行,但这里实现加上了一些日志般的记录,设置默认员工密码、当前做了修改的修改人信息和修改时间,而当前修改人即登录者管理人,要获取它的id,id由session获取,当然是前面登录的时候把id存进了session,这里才能get到,因此方法参数上必有

HttpServletRequest request

通过request得到session

2.2分页显示员工处理:

方法返回值泛型取Page,mp实现分页

1.构建分页构造器page a = new page();

2.构建条件构造器:lambdaquery,做一些like操作和order排序操作后

3.调用page方法:

Page page2 = employeeService.page(page1, lambdaQueryWrapper);

然后返回page2就行了。

2.3根据id修改员工操作:

直接调用updateById就行

主要是,修改前要先回显一下数据,看你修改的是哪个地方,

这时候前端传过来路径后面/了一个id参数

这种,你的方法要写出

@GetMapping("/{id}")
public R<Employee> getById(@PathVariable  Long id)
Pathvariable是确保参数id是来自上面的那个路径id,

简单根据id获取对象判断一下空不空,就返回对象回去就可以回显了

3.分类管理功能:crud

没关联到多张表数据,分类的实体类属性已经包含了该有的属性,因此这里的crud

都是直接调用接口,基于mp直接调用crud的方法(save、updateBYId…)

4.菜品管理:crud处理、回显、批量停售/起售处理、分页显示、图片文件上传下载处理

4.1在新增菜品中,遇到的问题是首先需要一个图片的上传和下载,通过file实现,具体看代码。其次,难点:涉及两张表的问题,在新增菜品栏,有口味数据,而原来的实体类dish不含有这个属性,因此要实现它就要搞另外一个实体类dishDto,继承dish类并增加口味属性,因此问题在于:你这里保存了菜品的口味数据,口味表那里应该也要有这个口味数据,口味本来就有一个实体类dishflavor,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值