58 lines
1.8 KiB
Java
58 lines
1.8 KiB
Java
package com.sky.service.impl;
|
||
|
||
import com.sky.constant.MessageConstant;
|
||
import com.sky.constant.StatusConstant;
|
||
import com.sky.dto.EmployeeLoginDTO;
|
||
import com.sky.entity.Employee;
|
||
import com.sky.exception.AccountLockedException;
|
||
import com.sky.exception.AccountNotFoundException;
|
||
import com.sky.exception.PasswordErrorException;
|
||
import com.sky.mapper.EmployeeMapper;
|
||
import com.sky.service.EmployeeService;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Service;
|
||
import org.springframework.util.DigestUtils;
|
||
|
||
@Service
|
||
public class EmployeeServiceImpl implements EmployeeService {
|
||
|
||
@Autowired
|
||
private EmployeeMapper employeeMapper;
|
||
|
||
/**
|
||
* 员工登录
|
||
*
|
||
* @param employeeLoginDTO
|
||
* @return
|
||
*/
|
||
public Employee login(EmployeeLoginDTO employeeLoginDTO) {
|
||
String username = employeeLoginDTO.getUsername();
|
||
String password = employeeLoginDTO.getPassword();
|
||
|
||
//1、根据用户名查询数据库中的数据
|
||
Employee employee = employeeMapper.getByUsername(username);
|
||
|
||
//2、处理各种异常情况(用户名不存在、密码不对、账号被锁定)
|
||
if (employee == null) {
|
||
//账号不存在
|
||
throw new AccountNotFoundException(MessageConstant.ACCOUNT_NOT_FOUND);
|
||
}
|
||
|
||
//密码比对
|
||
// TODO 后期需要进行md5加密,然后再进行比对
|
||
if (!password.equals(employee.getPassword())) {
|
||
//密码错误
|
||
throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);
|
||
}
|
||
|
||
if (employee.getStatus() == StatusConstant.DISABLE) {
|
||
//账号被锁定
|
||
throw new AccountLockedException(MessageConstant.ACCOUNT_LOCKED);
|
||
}
|
||
|
||
//3、返回实体对象
|
||
return employee;
|
||
}
|
||
|
||
}
|