瑞吉外卖(新增员工) 您所在的位置:网站首页 html添加按钮跳转到新加网页 瑞吉外卖(新增员工)

瑞吉外卖(新增员工)

#瑞吉外卖(新增员工)| 来源: 网络整理| 查看: 265

员工登录 执行流程

第一步:点击添加员工按钮 在这里插入图片描述 此时,触发事件“addMemberHandle” 跳转到add.html页面, 在这里插入图片描述 在这里插入图片描述 填写完整信息,点击保存,此时会触发“submitForm”方法,后端会获得相应的data值; 在这里插入图片描述在这里插入图片描述 可以看到点击保存的时候,请求的url是employee,那么我们EmployeeController类中的requestMapping就是employee,所以,上传的数据会被发送到employee。请求方式是post请求 请求的url 上面一张图片之所以是employee这个页面,是因为,下面这张图的addEmployee把新增用户的数据封装成json对象,然后通过axios请求发送给了后端,后端再将结果封装到res对象返回给前端。 在这里插入图片描述 在这里插入图片描述 所以,我们要在employController里面写新增员工的代码。

代码编写 @PostMapping public R save(HttpServletRequest request, @RequestBody Employee employee){ log.info("新增员工,员工信息:{}", employee.toString()); //设置初始密码 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 R.success("新增员工成功"); }

在完成了新增员工的编写后,我们发现一个问题,即当我们新增员工账号相同时,数据库会错误

Duplicate entry 'zhangsan' for key 'idx_username'

这是因为我们在数据库中为账号这一属性设置了唯一约束,当有重复账号被添加到数据库中,会报此类错误,因此,为了解决此类问题,我们编写一个exceptionHandler,用来捕获此类错误,我们采用全局的方式处理,如果单独处理,将会导致频繁编写同样代码,带来冗余。

package com.itheima.reggie.common; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.sql.SQLIntegrityConstraintViolationException; /** *@ClassName GlobalExceptionHandler *@Description TODO 全局异常处理器 *@Author wj *@Date 2023/5/25 15:25 *@Version 1.0*/ // 拦截类上有RestController和controller 注解的异常 @ControllerAdvice(annotations = {RestController.class, Controller.class}) // 要返回json结果,所以加一个responsebody注解 @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[] split = ex.getMessage().split(" "); String msg = split[2] + "已存在"; return R.error(msg); } return R.error("未知错误"); } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有