瑞吉外卖Day02-1新增员工

这篇博客主要介绍了瑞吉外卖系统中新增员工的功能实现。首先进行需求分析,明确了后台管理系统中管理员工信息的需求。接着详细讨论了数据模型,特别是employee表中username字段的唯一性约束。在代码开发部分,讲述了在controller层和Service层如何处理Ajax请求,确保在添加员工时解决账号重复的问题。最后进行了小结,概述了前端页面与后端服务的数据交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

瑞吉外卖Day02-1新增员工

1.需求分析

页面功能分析:后台系统中可以管理员工信息,通过新增员工来添加后台系统用户。点击【添加员工】按钮,跳转到新增页面如下
在这里插入图片描述

2.数据模型

2.1数据模型分析

新增员工,其实就是将我们新增页面录入的员工数据插入到employee。注意,表中对应username字段加入了唯一约束,因为username是员工登录账号,必须是唯一的。
在这里插入图片描述
在这里插入图片描述

3.代码开发

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/edc113d781074b69bebb862028aeea36.png

3.1controller层

1根据Ajax请求和js代码 填写路径信息
2根据页面代码 对应的数据 res 判断返回值 res.code

 /**
     * 新增员工
     * 根据Ajax请求和js代码 填写路径信息
     * @param employee
     * @return 根据页面代码 对应的数据 res 判断返回值 res.code
     */
@PostMapping
    public R<String> save(HttpServletRequest request,@RequestBody Employee employee){
        log.info("新增员工,员工信息:{}", employee.toString());
        //1.设置初始密码123456,需要进行md5加密
        employee.setPassword((DigestUtils.md5DigestAsHex("123456".getBytes())));
        //创建时间,更新时间,设置为当前时间
        employee.setCreateTime(LocalDateTime.now());
        employee.setUpdateTime(LocalDateTime.now());
        //创建人,既当钱登陆用户
        //获取当前登陆用户的id
        Long empId=(Long) request.getSession().getAttribute("employee");
        employee.setCreateUser(empId);
        //最后更新人
        employee.setUpdateUser(empId);
        //保存
        employeeService.save(employee);
        return R.success("新增员工成功");
    }

3username是唯一的,需要解决在添加时账号重复问题,采用异常处理(全局异常)

package com.wxw.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;

@Slf4j
@ResponseBody
@ControllerAdvice(annotations = {RestController.class, Controller.class})
public class GlobalExceptionHandler {
   /**
    * * 全局异常处理器
 * 基于代理
 * @ControllerAdvice() :通知 ,拦截哪些controller
 * @ResponseBody :方法返回JSON数据
 * @ExceptionHandler() :里面是要处理的哪种异常
 */
    @ExceptionHandler(SQLIntegrityConstraintViolationException.class)
    public R<String> 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("未知错误");
    }
}

3.2.2 Service层
package com.wxw.reggie.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wxw.reggie.entity.Employee;


public interface EmployeeService extends IService<Employee> {
}

小结

前端页面发送请求,提交参数
后端服务处理,给前端页面响应数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值