From 19c759c0ac17f85350da3c9e379279c831bab5e3 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 4 Nov 2025 16:49:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=8D=E7=A9=B9=E5=A4=96=E5=8D=96--=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=91=98=E5=B7=A5=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E4=BA=8C-=E9=80=9A=E8=BF=87ThreadLocal=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=99=BB=E5=BD=95=E8=80=85ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sky/controller/admin/EmployeeController.java | 1 + .../com/sky/interceptor/JwtTokenAdminInterceptor.java | 7 +++++++ .../java/com/sky/service/impl/EmployeeServiceImpl.java | 10 ++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) 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 5cc30a2..3ace49d 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 @@ -86,6 +86,7 @@ public class EmployeeController { @PostMapping public Result save(@RequestBody EmployeeDTO employeeDTO) { log.info("新增员工:{}",employeeDTO); + log.info("新增员工Controller所处的线程id:{}",Thread.currentThread().getId()); //调用业务层新增员工 employeeService.save(employeeDTO); 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 e7c50b6..c112df7 100644 --- a/sky-server/src/main/java/com/sky/interceptor/JwtTokenAdminInterceptor.java +++ b/sky-server/src/main/java/com/sky/interceptor/JwtTokenAdminInterceptor.java @@ -1,6 +1,7 @@ package com.sky.interceptor; import com.sky.constant.JwtClaimsConstant; +import com.sky.context.BaseContext; import com.sky.properties.JwtProperties; import com.sky.utils.JwtUtil; import io.jsonwebtoken.Claims; @@ -47,6 +48,12 @@ public class JwtTokenAdminInterceptor implements HandlerInterceptor { Claims claims = JwtUtil.parseJWT(jwtProperties.getAdminSecretKey(), token); Long empId = Long.valueOf(claims.get(JwtClaimsConstant.EMP_ID).toString()); log.info("当前员工id:", empId); + + log.info("登录校验拦截器所处的线程id:{}",Thread.currentThread().getId()); + + //往ThreadLocal中保存当前登录的员工ID + BaseContext.setCurrentId(empId); + //3、通过,放行 return true; } catch (Exception ex) { 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 c8eeab6..79d4f00 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 @@ -3,6 +3,7 @@ package com.sky.service.impl; import com.sky.constant.MessageConstant; import com.sky.constant.PasswordConstant; import com.sky.constant.StatusConstant; +import com.sky.context.BaseContext; import com.sky.dto.EmployeeDTO; import com.sky.dto.EmployeeLoginDTO; import com.sky.entity.Employee; @@ -11,6 +12,7 @@ import com.sky.exception.AccountNotFoundException; import com.sky.exception.PasswordErrorException; import com.sky.mapper.EmployeeMapper; 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.stereotype.Service; @@ -19,6 +21,7 @@ import org.springframework.util.DigestUtils; import java.time.LocalDateTime; @Service +@Slf4j public class EmployeeServiceImpl implements EmployeeService { @Autowired @@ -65,6 +68,7 @@ public class EmployeeServiceImpl implements EmployeeService { */ @Override public void save(EmployeeDTO employeeDTO) { + log.info("新增员工Service层所处的线程id:{}",Thread.currentThread().getId()); //1.对象属性拷贝:EmployeeDTO--->Employee Employee employee = new Employee(); BeanUtils.copyProperties(employeeDTO,employee); @@ -75,8 +79,10 @@ public class EmployeeServiceImpl implements EmployeeService { employee.setUpdateTime(LocalDateTime.now()); //4.设置当前记录创建人和修改人的id //todo 后期要修改为当前登录用户的id - employee.setCreateUser(1L); - employee.setUpdateUser(1L); + //取出拦截器中保存的登录员工ID,作为创建者和更新者ID数据 + Long empId = BaseContext.getCurrentId(); + employee.setCreateUser(empId); + employee.setUpdateUser(empId); //添加默认密码 employee.setPassword(DigestUtils.md5DigestAsHex(PasswordConstant.DEFAULT_PASSWORD.getBytes()));