From 21626b066350489c2f07d7b65c8c5e2a39f84c0b Mon Sep 17 00:00:00 2001 From: zhangsan <646228430@qq.com> Date: Tue, 15 Apr 2025 16:56:11 +0800 Subject: [PATCH] =?UTF-8?q?2025.4.15=20=E5=91=98=E5=B7=A5=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sky/constant/MessageConstant.java | 1 + .../sky/dto/EmployeeChangePasswordDTO.java | 10 ++++++ .../main/java/com/sky/dto/StartOrStopDTO.java | 9 ----- .../controller/admin/EmployeeController.java | 33 ++++++++++++----- .../interceptor/JwtTokenAdminInterceptor.java | 2 +- .../java/com/sky/mapper/EmployeeMapper.java | 10 ++++-- .../java/com/sky/service/EmployeeService.java | 8 +++-- .../sky/service/impl/EmployeeServiceImpl.java | 35 +++++++++++-------- 8 files changed, 69 insertions(+), 39 deletions(-) create mode 100644 sky-pojo/src/main/java/com/sky/dto/EmployeeChangePasswordDTO.java delete mode 100644 sky-pojo/src/main/java/com/sky/dto/StartOrStopDTO.java diff --git a/sky-common/src/main/java/com/sky/constant/MessageConstant.java b/sky-common/src/main/java/com/sky/constant/MessageConstant.java index d761bb3..50d5af0 100644 --- a/sky-common/src/main/java/com/sky/constant/MessageConstant.java +++ b/sky-common/src/main/java/com/sky/constant/MessageConstant.java @@ -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 = "未知错误"; diff --git a/sky-pojo/src/main/java/com/sky/dto/EmployeeChangePasswordDTO.java b/sky-pojo/src/main/java/com/sky/dto/EmployeeChangePasswordDTO.java new file mode 100644 index 0000000..b70eeb1 --- /dev/null +++ b/sky-pojo/src/main/java/com/sky/dto/EmployeeChangePasswordDTO.java @@ -0,0 +1,10 @@ +package com.sky.dto; + +import lombok.Data; + +@Data +public class EmployeeChangePasswordDTO { + private Integer empId; + private String newPassword; + private String oldPassword; +} diff --git a/sky-pojo/src/main/java/com/sky/dto/StartOrStopDTO.java b/sky-pojo/src/main/java/com/sky/dto/StartOrStopDTO.java deleted file mode 100644 index 778018e..0000000 --- a/sky-pojo/src/main/java/com/sky/dto/StartOrStopDTO.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.sky.dto; - -import lombok.Data; - -@Data -public class StartOrStopDTO { - private int status; - private Long id; -} \ No newline at end of file diff --git a/sky-server/src/main/java/com/sky/controller/admin/EmployeeController.java b/sky-server/src/main/java/com/sky/controller/admin/EmployeeController.java index dace6f2..84a5bc4 100644 --- a/sky-server/src/main/java/com/sky/controller/admin/EmployeeController.java +++ b/sky-server/src/main/java/com/sky/controller/admin/EmployeeController.java @@ -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 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 queryById(@PathVariable Integer id){ + @ApiOperation("查询员工信息") + public Result 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(); + } } diff --git a/sky-server/src/main/java/com/sky/interceptor/JwtTokenAdminInterceptor.java b/sky-server/src/main/java/com/sky/interceptor/JwtTokenAdminInterceptor.java index b880123..d3d6f79 100644 --- a/sky-server/src/main/java/com/sky/interceptor/JwtTokenAdminInterceptor.java +++ b/sky-server/src/main/java/com/sky/interceptor/JwtTokenAdminInterceptor.java @@ -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; diff --git a/sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java b/sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java index d4cdf14..e92cbc6 100644 --- a/sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java @@ -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 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); } diff --git a/sky-server/src/main/java/com/sky/service/EmployeeService.java b/sky-server/src/main/java/com/sky/service/EmployeeService.java index 9038855..b27e060 100644 --- a/sky-server/src/main/java/com/sky/service/EmployeeService.java +++ b/sky-server/src/main/java/com/sky/service/EmployeeService.java @@ -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); } diff --git a/sky-server/src/main/java/com/sky/service/impl/EmployeeServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/EmployeeServiceImpl.java index 20cf820..6f23cac 100644 --- a/sky-server/src/main/java/com/sky/service/impl/EmployeeServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/EmployeeServiceImpl.java @@ -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 employeeList=employeeMapper.list(employeePageQueryDTO); Page p= (Page) 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); + } }