2025.4.15 员工管理

This commit is contained in:
zhangsan 2025-04-15 16:56:11 +08:00
parent 6fd41837ae
commit 21626b0663
8 changed files with 69 additions and 39 deletions

View File

@ -6,6 +6,7 @@ package com.sky.constant;
public class MessageConstant {
public static final String PASSWORD_ERROR = "密码错误";
public static final String CHANGE_PASSWORD_ERROR="原始密码错误";
public static final String ACCOUNT_NOT_FOUND = "账号不存在";
public static final String ACCOUNT_LOCKED = "账号被锁定";
public static final String UNKNOWN_ERROR = "未知错误";

View File

@ -0,0 +1,10 @@
package com.sky.dto;
import lombok.Data;
@Data
public class EmployeeChangePasswordDTO {
private Integer empId;
private String newPassword;
private String oldPassword;
}

View File

@ -1,9 +0,0 @@
package com.sky.dto;
import lombok.Data;
@Data
public class StartOrStopDTO {
private int status;
private Long id;
}

View File

@ -1,10 +1,10 @@
package com.sky.controller.admin;
import com.sky.constant.JwtClaimsConstant;
import com.sky.dto.EmployeeChangePasswordDTO;
import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.dto.StartOrStopDTO;
import com.sky.entity.Employee;
import com.sky.properties.JwtProperties;
import com.sky.result.PageResult;
@ -65,8 +65,7 @@ public class EmployeeController {
/**
* 退出
*
* @return
* 后端不做操作前端删除token
*/
@PostMapping("/logout")
public Result<String> logout() {
@ -93,28 +92,44 @@ public class EmployeeController {
PageResult pageResult=employeeService.pageQuery(employeePageQueryDTO);
return Result.success(pageResult);
}
/**
* 禁用/启动员工
*/
@PutMapping("/status")
@PostMapping("/status/{status}")
@ApiOperation("禁用/启用")
public Result startOrStop(@RequestBody StartOrStopDTO startOrStopDTO){
employeeService.startOrStop(startOrStopDTO);
public Result startOrStop(@PathVariable Integer status, Long id){
log.info("启用禁用员工账号:{},{}",status,id);
employeeService.startOrStop(status,id);//后绪步骤定义
return Result.success();
}
/**
* 查询用户id信息
* 查询员工id信息
*/
@GetMapping("/{id}")
@ApiOperation("查询用户信息")
public Result<Employee> queryById(@PathVariable Integer id){
@ApiOperation("查询员工信息")
public Result<Employee> queryById(@PathVariable Long id){
Employee employee=employeeService.queryById(id);
return Result.success(employee);
}
/**
* 更新员工信息
*/
@PutMapping
@ApiOperation("修改用户信息")
public Result update(@RequestBody EmployeeDTO employeeDTO){
employeeService.update(employeeDTO);
return Result.success();
}
/**
* 修改密码
*/
@PutMapping("/editPassword")
@ApiOperation("修改密码")
public Result changePassword(@RequestBody EmployeeChangePasswordDTO employeeChangePasswordDTO){
employeeService.changePassword(employeeChangePasswordDTO);
return Result.success();
}
}

View File

@ -47,7 +47,7 @@ public class JwtTokenAdminInterceptor implements HandlerInterceptor {
log.info("jwt校验:{}", token);
Claims claims = JwtUtil.parseJWT(jwtProperties.getAdminSecretKey(), token);
Long empId = Long.valueOf(claims.get(JwtClaimsConstant.EMP_ID).toString());
log.info("当前员工id", empId);
log.info("当前员工id{}", empId);
BaseContext.setCurrentId(empId);
//3通过放行
return true;

View File

@ -2,7 +2,6 @@ package com.sky.mapper;
import com.sky.annotation.AutoFill;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.dto.StartOrStopDTO;
import com.sky.entity.Employee;
import com.sky.enumeration.OperationType;
import org.apache.ibatis.annotations.Insert;
@ -34,12 +33,17 @@ public interface EmployeeMapper {
void save(Employee employee);
/**
* 分页条件查询
* 分页+条件查询
* @return
*/
List<Employee> list(EmployeePageQueryDTO employeePageQueryDTO);
@Select("select * from employee where id=#{id};")
Employee queryById(Integer id);
Employee queryById(Long id);
/**
* 编辑员工信息
*/
@AutoFill(OperationType.UPDATE)
void update(Employee employee);
}

View File

@ -1,9 +1,9 @@
package com.sky.service;
import com.sky.dto.EmployeeChangePasswordDTO;
import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.dto.StartOrStopDTO;
import com.sky.entity.Employee;
import com.sky.result.PageResult;
@ -20,9 +20,11 @@ public interface EmployeeService {
PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
void startOrStop(StartOrStopDTO startOrStopDTO);
void startOrStop(Integer status, Long id);
Employee queryById(Integer id);
Employee queryById(Long id);
void update(EmployeeDTO employeeDTO);
void changePassword(EmployeeChangePasswordDTO employeeChangePasswordDTO);
}

View File

@ -6,10 +6,10 @@ import com.sky.constant.MessageConstant;
import com.sky.constant.PasswordConstant;
import com.sky.constant.StatusConstant;
import com.sky.context.BaseContext;
import com.sky.dto.EmployeeChangePasswordDTO;
import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.dto.StartOrStopDTO;
import com.sky.entity.Employee;
import com.sky.exception.AccountLockedException;
import com.sky.exception.AccountNotFoundException;
@ -17,15 +17,16 @@ import com.sky.exception.PasswordErrorException;
import com.sky.mapper.EmployeeMapper;
import com.sky.result.PageResult;
import com.sky.service.EmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
@Service
@Slf4j
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
@ -72,10 +73,6 @@ public class EmployeeServiceImpl implements EmployeeService {
Employee employee = new Employee();
//对象属性拷贝
BeanUtils.copyProperties(employeeDTO, employee);
// employee.setCreateTime(LocalDateTime.now());
// employee.setUpdateTime(LocalDateTime.now());
// employee.setUpdateUser(BaseContext.getCurrentId());
// employee.setCreateUser(BaseContext.getCurrentId());
String encodedPassword=bCryptPasswordEncoder.encode(PasswordConstant.DEFAULT_PASSWORD);
employee.setPassword(encodedPassword);
employee.setStatus(StatusConstant.ENABLE);
@ -87,18 +84,20 @@ public class EmployeeServiceImpl implements EmployeeService {
PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());
List<Employee> employeeList=employeeMapper.list(employeePageQueryDTO);
Page<Employee> p= (Page<Employee>) employeeList;
PageResult pageResult=new PageResult(p.getTotal(),p.getResult());
return pageResult;
return new PageResult(p.getTotal(),p.getResult());
}
@Override
public void startOrStop(StartOrStopDTO startOrStopDTO) {
Employee employee=Employee.builder().status(startOrStopDTO.getStatus()).id(startOrStopDTO.getId()).build();
public void startOrStop(Integer status, Long id) {
Employee employee = Employee.builder()
.status(status)
.id(id)
.build();
employeeMapper.update(employee);
}
@Override
public Employee queryById(Integer id) {
public Employee queryById(Long id) {
Employee employee=employeeMapper.queryById(id);
return employee;
}
@ -108,9 +107,17 @@ public class EmployeeServiceImpl implements EmployeeService {
Employee employee = new Employee();
BeanUtils.copyProperties(employeeDTO, employee);
// employee.setUpdateTime(LocalDateTime.now());
// employee.setUpdateUser(BaseContext.getCurrentId());
employeeMapper.update(employee);
}
@Override
public void changePassword(EmployeeChangePasswordDTO employeeChangePasswordDTO) {
Employee employee=employeeMapper.queryById(BaseContext.getCurrentId());
if(bCryptPasswordEncoder.matches(employeeChangePasswordDTO.getOldPassword(),employee.getPassword())){
String encodedPassword = bCryptPasswordEncoder.encode(employeeChangePasswordDTO.getNewPassword());
employee.setPassword(encodedPassword);
employeeMapper.update(employee);
}else
throw new PasswordErrorException(MessageConstant.CHANGE_PASSWORD_ERROR);
}
}