@PostMapping public R save(HttpServletRequest request,@RequestBody Employee employee){ log.info("新增员工:{}",employee); //设置初始密码123456 需要进行md5加密 employee.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes())); employee.setCreateTime(LocalDateTime.now()); employee.setUpdateTime(LocalDateTime.now()); Long empId = (Long)request.getSession().getAttribute("employee"); employee.setCreateUser(empId); employee.setUpdateUser(empId); employeeService.save(employee); return new R(1,"新增员工成功");
@ControllerAdvice(annotations = {Controller.class, RestController.class}) @ResponseBody //必须要写 @Slf4j public class GlobalExceptionHandler { /** * 异常处理方法 * @return */ @ExceptionHandler(SQLIntegrityConstraintViolationException.class) public R exceptionHandler(SQLIntegrityConstraintViolationException ex){ log.error(ex.getMessage()); if (ex.getMessage().contains("Duplicate entry")){ String[] strings =ex.getMessage().split(" "); String msg = strings[2]+"已经被使用"; return new R(0,msg); } return new R(0,"未知错误"); } }
员工信息分页查询
分页查询controller
@GetMapping("/page") public R page(int page,int pageSize,String name){ log.info("page={},pageSize={},name={}",page,pageSize,name); //构造分页构造器 Page pageInfo=new Page(page,pageSize); //构造条件构造器 LambdaQueryWrapper<Employee> queryWrapper =new LambdaQueryWrapper(); //添加过滤条件 queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name); //添加排序条件 queryWrapper.orderByDesc(Employee::getUpdateTime); //执行查询 employeeService.page(pageInfo,queryWrapper); return new R(1,"查询成功",pageInfo); }
启用禁用员工账号
在员工管理列表页面,可以对某个员工账号进行启用或者禁用操作。账号禁用的员工不能登录系统,启用后的员工可以正常登录。 需要注意,只有管理员(admin用户)可以对其他普通用户进行启用、禁用操作,所以普通用户登录系统后启用、禁用按钮不显示。
转换器类,会将Long类型转换为String这样就不会有精度问题了
编辑员工信息