苍穹外卖 员工管理 添加员工用户名(不能重复) 处理

添加员工用户名不能重复

在前面业务异常类新增一个用户名存在异常处理类

package com.sky.exception;

/**
 * 用户名存在异常
 */
public class UserNameExistException extends BaseException{

    public UserNameExistException(String msg) {
        super(msg);
    }
}
在com.sky.constant 包里的 MessageConstant 信息提示常量类里添加一条 用户名存在提示常量信息

添加

public static final String USER_NAME_EXIST="用户名已经存在!!";

最后在 EmployeeServiceImpl 实现类的 员工添加方法上处理 

添加员工完整代码如下

/**
     * 新增员工
     * @param employeeDTO
     */
    @Override
    public void add(EmployeeDTO employeeDTO) {
        //我要做什么 -> 添加员工
        //操作数据库需要一个员工对象实体类
        //判断添加的当前用户名是否已经存在
        String username = employeeDTO.getUsername();
        //根据用户名查询数据库
        Employee name = employeeMapper.getByUsername(username);

        //判断当前用户名重复
        if (name != null){
            //当前名称已经存在 抛出业务异常
            throw new UserNameExistException(MessageConstant.USER_NAME_EXIST);
        }

        //不存在就正常执行添加操作
        Employee employee = new Employee();
        //属性拷贝 拷贝前端传过来的属性
        BeanUtils.copyProperties(employeeDTO,employee);

        //做这件事需要什么 ->   账号默认密码 123456 进行md5加密 账号默认状态 1
        employee.setPassword(DigestUtils.md5DigestAsHex(PasswordConstant.DEFAULT_PASSWORD.getBytes()));
        employee.setStatus(StatusConstant.ENABLE);

        //账号的创建时间  当前系统时间
        employee.setCreateTime(LocalDateTime.now());
        employee.setUpdateTime(LocalDateTime.now());

        //后续完成 创建人
        employee.setCreateUser(BaseContext.getCurrentId());
        employee.setUpdateUser(BaseContext.getCurrentId());

        employeeMapper.add(employee);
    }

效果

苍穹外卖员工管理涉及多种方法和系统功能,以下是具体介绍: ### 管理方法 #### 员工新增 在 sky - server 模块的 `com.sky.controller.admin` 包下的 `EmployeeController` 中创建新增员工方法,接收前端提交的参数,调用 `EmployeeService` 的 `save` 方法保存员工信息。示例代码如下: ```java /** * 新增员工 * @param employeeDTO * @return */ @PostMapping @ApiOperation("新增员工") public Result save(@RequestBody EmployeeDTO employeeDTO){ log.info("新增员工:{}",employeeDTO); employeeService.save(employeeDTO); return Result.success(); } ``` #### 员工账号启用禁用 在 sky - server 模块的 `EmployeeController` 中创建启用禁用员工账号的方法,根据接口设计接收 `status` 和 `id` 参数,调用 `EmployeeService` 的 `enableOrDisable` 方法修改员工状态。示例代码如下: ```java /** * 启用禁用员工账号 * @param status * @param id * @return */ @ApiOperation("启用禁用员工账号") @PostMapping("/status/{status}") public Result enableOrDisable(@PathVariable Integer status,Long id) { log.info("员工状态修改:status={},id={}",status, id); employeeService.enableOrDisable(status,id); return Result.success(); } ``` ### 系统功能 #### 员工登录 在 `EmployeeController` 中提供员工登录功能,接收 `EmployeeLoginDTO` 参数,登录成功后生成 JWT 令牌。示例代码如下: ```java /** * 登录 * @param employeeLoginDTO * @return */ @PostMapping("/login") @ApiOperation(value = "员工登录") public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) { //......... //登录成功后,生成jwt令牌 Map<String, Object> claims = new HashMap<>(); claims.put(JwtClaimsConstant.EMP_ID, employee.getId()); String token = JwtUtil.createJWT( jwtProperties.getAdminSecretKey(), jwtProperties.getAdminTtl(), claims); //............ return Result.success(employeeLoginVO); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值