(一)登录

实现思路:

  1. 接收到用户登录输入的用户名和密码,封装到了emp对象中
  2. 对密码进行MD5加密
  3. 创建条件构造器
  4. 添加sql查询判断条件,emp对象中的Username等于Employee数据表中的Username
  5. 调用MyBatis-Plus的方法查询数据库,返回Employee对象
  6. 判断员工是否存在
  7. 判断员工账号和密码是否匹配
  8. 判断员工是否被禁用
  9. 登录成功,将员工id存入Session
  10. 返回成功结果【员工对象】

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);}

(二)登录退出

实现思路:

  1. 清理session中用户信息,直接让当前这个用户关联的session对象立即失效,其中保存的数据也被删掉了
  2. 再返回处理结果

controller层

@PostMapping("/logout")public R logout(HttpSession  session){session.invalidate();return R.success("退出成功!");}

(三)新增

实现思路:

  1. 接收到用户登录输入的用户名和密码,封装到了emp对象中
  2. 给emp对象设置使用md5加密之后的默认密码
  3. 给emp对象设置默认状态为启用
  4. 调用mybatisplus提供的通用IService接口类的save新增保存方法
  5. 返回处理结果

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("新增员工失败!");}

(四)分页查询

实现思路:

  1. 调用业务处理
  2. 响应处理结果

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);
}

实现思路:

  1. 注入employeeDao
  2. 配置MyBatisPlus分页拦截器,在公共部分已配置
  3. 执行分页查询 返回Page对象
  4. 将分页查询参数page和pageSize封装到Page对象中
  5. 创建wrapper对象 设置查询条件
  6. 调用selectPage方法 传入Page和Wrapper对象 完成分页查询
  7. 返回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查询

实现思路:

  1. 调用mybatisplus提供的通用IService接口类的getById()方法
  2. 响应处理结果

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层

实现思路:

  1. 注入employeeDao
  2. 修改员工状态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(后台--员工管理)相关推荐

  1. 外卖点餐APP-04(后台--菜品管理)

    (一)新增 controller层思路: 调用service处理 响应处理结果 @PostMapping public R<String> save(@RequestBody DishDt ...

  2. 开题报告-基于Android的外卖点餐APP的设计与实现

    目录 1.课题研究立项依据 2.文献综述 3.课题研究的基本内容及预期目标或成果 4.课题的研究方案 5.研究进度安排 6.主要参考文献 1.课题研究立项依据 (内容格式要求:字体为5号宋体,行距为固 ...

  3. java计算机毕业设计基于安卓Android的校园外卖点餐APP

    项目介绍 餐饮行业是一个传统的行业.根据当前发展现状,网络信息时代的全面普及,餐饮行业也在发生着变化,单就点餐这一方面,利用手机点单正在逐步进入人们的生活.传统的点餐方式,不仅会耗费大量的人力.时间, ...

  4. app毕业设计 基于uni-app框架 在线外卖点餐app毕设题目课题选题作品源码(1)app功能和界面

  5. 外卖点餐APP-03(后台--菜品分类管理)

    (一)新增 实现思路: 直接调用MyBatis-Plus里面的save保存 返回执行成功信息 @PostMapping public R<String> save(@RequestBody ...

  6. 基于Android的校园外卖点餐系统

    本文主要概述了如何开发一个基于Android 的校园外卖系统,使用者可以通过手机下载校园外卖系统,可以通过手机下单系统进行点餐,用户的功能有:点菜.我的订单.地址管理等功能,管理员功能有:菜品管理.类 ...

  7. 基于微信小程序的外卖点餐小程序

    文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/my ...

  8. 干货| 外卖点餐系统(App及后台)

    简单总结一下,这个系统是一个外卖点餐系统,也就是仿美团饿了么,也是当时我的毕业设计,花费了我很多精力,主要包括了移动端App.服务端(中台)和商家的后台管理.答辩完后我就将移动端源码放到了GitHub ...

  9. PHP项目——外卖点餐系统后台管理解析

    项目介绍 系统基于总部+多门店的连锁模式,拥有门店独立管理后台,支持总部定价和门店定价.LBS定位点餐,可堂食可外卖,适用于茶饮的外卖点餐场景,搭建自己的一点点.奈雪.喜茶点餐系统. 平台后台 1.商 ...

最新文章

  1. HDU 2080 夹角有多大II
  2. 静态链接库编写与使用(VC6)
  3. 中国中老年化妆品行业消费需求现状与产销规模前景展望报告2022年
  4. 计算不规则图形周长_7.2三年级上册数学《周长》同步练习,附答案
  5. java中有个很强大的工具jconsole.exe
  6. 转科普CPU Cache line
  7. 老男孩Linux高薪运维23期完整版
  8. 二进制 转换 .java_如何在Java程序中将二进制转换为十进制?
  9. 专访徐小平:AI已进入日常生活 没有泡沫只有彩虹
  10. 威联通nas怎么更换大硬盘_QNAP 篇一:记一次换硬盘引发的折腾
  11. 博睿数据拨测入场加速广电深度融合
  12. 利用 Docker 配置 Pytorch 镜像流程
  13. TypeError: Descriptors cannot not be created directly.
  14. oracle 省份三个字的,全国省市区县数据库-省份(全)
  15. 关于滑动时对背景动态高斯模糊的自定义控件
  16. 【Hive】建表时的存储格式
  17. IntelliJ IDEA 下载安装(含注册码)
  18. nginx教程(一)--nginx是什么?能干什么?
  19. linux镜像文件没有gho,【iso文件中没有gho文件】iso变gho_iso文件里没有gho-系统城...
  20. 核高基专家许洪波:HTML5将赢得移动设备未来

热门文章

  1. SSD硬盘测速较低的原因备忘
  2. “3DH5”随手分享你的3D模型
  3. mfc捕获按键 ( 包括数字键,字母键,F1-F12 )
  4. html爱情表白网页模板下载_响应式爱情表白网页代码_HTML静态页面下载
  5. zynq 维修调试记录 客服支持 工作记录
  6. python量化——利用python构建Fama-French三因子模型
  7. 商业智能BI系统助力物流行业向智慧物流过渡
  8. 地理信息系统(GIS)系列——ArcGIS API for JavaScript 3.9(1)
  9. arduino ide输出hex文件的方法
  10. 求助:office web apps在线预览问题:url的ip必须替换成域名才能访问,怎么做才能让他敲ip也能访问