外卖点餐APP-02(后台--员工管理)
(一)登录
实现思路:
- 接收到用户登录输入的用户名和密码,封装到了emp对象中
- 对密码进行MD5加密
- 创建条件构造器
- 添加sql查询判断条件,emp对象中的Username等于Employee数据表中的Username
- 调用MyBatis-Plus的方法查询数据库,返回Employee对象
- 判断员工是否存在
- 判断员工账号和密码是否匹配
- 判断员工是否被禁用
- 登录成功,将员工id存入Session
- 返回成功结果【员工对象】
controller层代码如下:
@PostMapping("/login")public R login(HttpSession session, @RequestBody Employee emp){log.info("【登录员工信息:{}】",emp);String password = DigestUtils.md5DigestAsHex(emp.getPassword().getBytes());LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>();wrapper.eq(Employee::getUsername,emp.getUsername());Employee employee = employeeService.getOne(wrapper);if (employee==null){return R.error("员工不存在!");}if (password==null){return R.error("员工账号和密码不匹配!");}if (employee.getStatus()==0){return R.error("员工已禁用!");}session.setAttribute("employee",employee.getId());return R.success(employee);}
(二)登录退出
实现思路:
- 清理session中用户信息,直接让当前这个用户关联的session对象立即失效,其中保存的数据也被删掉了
- 再返回处理结果
controller层
@PostMapping("/logout")public R logout(HttpSession session){session.invalidate();return R.success("退出成功!");}
(三)新增
实现思路:
- 接收到用户登录输入的用户名和密码,封装到了emp对象中
- 给emp对象设置使用md5加密之后的默认密码
- 给emp对象设置默认状态为启用
- 调用mybatisplus提供的通用IService接口类的save新增保存方法
- 返回处理结果
controller层
@PostMappingpublic R add(HttpSession session,@RequestBody Employee emp){emp.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes()));emp.setStatus(1);boolean flag = employeeService.save(emp);return flag?R.success(true):R.error("新增员工失败!");}
(四)分页查询
实现思路:
- 调用业务处理
- 响应处理结果
controller层
@GetMapping("/page")
public R<Page<Employee>> selectPage(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int pageSize, String name){Page<Employee> empPage = employeeService.findPage(page,pageSize,name);return R.success(empPage);
}
service层
public interface EmployeeService extends IService<Employee> {Page<Employee> findPage(int page, int pageSize, String name);
}
实现思路:
- 注入employeeDao
- 配置MyBatisPlus分页拦截器,在公共部分已配置
- 执行分页查询 返回Page对象
- 将分页查询参数page和pageSize封装到Page对象中
- 创建wrapper对象 设置查询条件
- 调用selectPage方法 传入Page和Wrapper对象 完成分页查询
- 返回Page对象
serviceImpl层代码实现如下:
@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeDao, Employee> implements EmployeeService {@Autowiredprivate EmployeeDao employeeDao;//findPage实现@Overridepublic Page<Employee> findPage(int page, int pageSize, String name) {Page<Employee> employeePage = new Page<>(page, pageSize);LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>();wrapper.like(name!=null && name.length()>0,Employee::getName,name);employeeDao.selectPage(employeePage,wrapper);return employeePage;}
}
(五)根据ID查询
实现思路:
- 调用mybatisplus提供的通用IService接口类的getById()方法
- 响应处理结果
controller层实现代码:
@GetMapping("/{id}")public R<Employee> getById(@PathVariable Long id){Employee employee = employeeService.getById(id);return R.success(employee);}
(六)禁用 && 启用
controller层
@PutMappingpublic R<String> updateEmp(@RequestBody Employee employee,HttpSession session){//1.调用service处理int rows = employeeService.updateEmp(employee);//2.响应处理结果return rows>0?R.success("修改成功!"):R.error("修改失败!");}
service层
public interface EmployeeService extends IService<Employee> {Page<Employee> findPage(int page, int pageSize, String name);
}
serviceImpl层
实现思路:
- 注入employeeDao
- 修改员工状态status MyBatisPlus中的修改默认使用了动态修改部分字段 id和status,只会根据id修改status
@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeDao, Employee> implements EmployeeService {@Autowiredprivate EmployeeDao employeeDao;//修改员工状态实现@Overridepublic int updateEmp(Employee employee) {int rows = employeeDao.updateById(employee);return rows;}
}
外卖点餐APP-02(后台--员工管理)相关推荐
- 外卖点餐APP-04(后台--菜品管理)
(一)新增 controller层思路: 调用service处理 响应处理结果 @PostMapping public R<String> save(@RequestBody DishDt ...
- 开题报告-基于Android的外卖点餐APP的设计与实现
目录 1.课题研究立项依据 2.文献综述 3.课题研究的基本内容及预期目标或成果 4.课题的研究方案 5.研究进度安排 6.主要参考文献 1.课题研究立项依据 (内容格式要求:字体为5号宋体,行距为固 ...
- java计算机毕业设计基于安卓Android的校园外卖点餐APP
项目介绍 餐饮行业是一个传统的行业.根据当前发展现状,网络信息时代的全面普及,餐饮行业也在发生着变化,单就点餐这一方面,利用手机点单正在逐步进入人们的生活.传统的点餐方式,不仅会耗费大量的人力.时间, ...
- app毕业设计 基于uni-app框架 在线外卖点餐app毕设题目课题选题作品源码(1)app功能和界面
- 外卖点餐APP-03(后台--菜品分类管理)
(一)新增 实现思路: 直接调用MyBatis-Plus里面的save保存 返回执行成功信息 @PostMapping public R<String> save(@RequestBody ...
- 基于Android的校园外卖点餐系统
本文主要概述了如何开发一个基于Android 的校园外卖系统,使用者可以通过手机下载校园外卖系统,可以通过手机下单系统进行点餐,用户的功能有:点菜.我的订单.地址管理等功能,管理员功能有:菜品管理.类 ...
- 基于微信小程序的外卖点餐小程序
文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/my ...
- 干货| 外卖点餐系统(App及后台)
简单总结一下,这个系统是一个外卖点餐系统,也就是仿美团饿了么,也是当时我的毕业设计,花费了我很多精力,主要包括了移动端App.服务端(中台)和商家的后台管理.答辩完后我就将移动端源码放到了GitHub ...
- PHP项目——外卖点餐系统后台管理解析
项目介绍 系统基于总部+多门店的连锁模式,拥有门店独立管理后台,支持总部定价和门店定价.LBS定位点餐,可堂食可外卖,适用于茶饮的外卖点餐场景,搭建自己的一点点.奈雪.喜茶点餐系统. 平台后台 1.商 ...
最新文章
- HDU 2080 夹角有多大II
- 静态链接库编写与使用(VC6)
- 中国中老年化妆品行业消费需求现状与产销规模前景展望报告2022年
- 计算不规则图形周长_7.2三年级上册数学《周长》同步练习,附答案
- java中有个很强大的工具jconsole.exe
- 转科普CPU Cache line
- 老男孩Linux高薪运维23期完整版
- 二进制 转换 .java_如何在Java程序中将二进制转换为十进制?
- 专访徐小平:AI已进入日常生活 没有泡沫只有彩虹
- 威联通nas怎么更换大硬盘_QNAP 篇一:记一次换硬盘引发的折腾
- 博睿数据拨测入场加速广电深度融合
- 利用 Docker 配置 Pytorch 镜像流程
- TypeError: Descriptors cannot not be created directly.
- oracle 省份三个字的,全国省市区县数据库-省份(全)
- 关于滑动时对背景动态高斯模糊的自定义控件
- 【Hive】建表时的存储格式
- IntelliJ IDEA 下载安装(含注册码)
- nginx教程(一)--nginx是什么?能干什么?
- linux镜像文件没有gho,【iso文件中没有gho文件】iso变gho_iso文件里没有gho-系统城...
- 核高基专家许洪波:HTML5将赢得移动设备未来
热门文章
- SSD硬盘测速较低的原因备忘
- “3DH5”随手分享你的3D模型
- mfc捕获按键 ( 包括数字键,字母键,F1-F12 )
- html爱情表白网页模板下载_响应式爱情表白网页代码_HTML静态页面下载
- zynq 维修调试记录 客服支持 工作记录
- python量化——利用python构建Fama-French三因子模型
- 商业智能BI系统助力物流行业向智慧物流过渡
- 地理信息系统(GIS)系列——ArcGIS API for JavaScript 3.9(1)
- arduino ide输出hex文件的方法
- 求助:office web apps在线预览问题:url的ip必须替换成域名才能访问,怎么做才能让他敲ip也能访问