package com.example.service.impl; import com.example.dto.LoginRequest; import com.example.dto.LoginResponse; import com.example.entity.Department; import com.example.entity.User; import com.example.mapper.DepartmentMapper; import com.example.security.JwtTokenUtil; import com.example.security.UserContext; import com.example.service.AuthService; import com.example.service.UserService; import com.example.utils.Md5Util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class AuthServiceImpl implements AuthService { @Autowired private UserService userService; @Autowired private DepartmentMapper departmentMapper; @Autowired private JwtTokenUtil jwtTokenUtil; @Override public LoginResponse login(LoginRequest request) { User user = userService.lambdaQuery() .eq(User::getUsername, request.getUsername()) .eq(User::getStatus, 1) .one(); if (user == null) { throw new RuntimeException("用户不存在或已禁用"); } String encryptedPassword = Md5Util.encrypt(request.getPassword()); if (!user.getPassword().equals(encryptedPassword)) { throw new RuntimeException("密码错误"); } String token = jwtTokenUtil.generateToken(user.getId(), user.getUsername(), user.getDeptCode()); String deptName = null; if (user.getDeptCode() != null) { Department dept = departmentMapper.selectByDeptCode(user.getDeptCode()); if (dept != null) { deptName = dept.getDeptName(); } } return new LoginResponse(token, user.getId(), user.getUsername(), user.getRealName(), user.getDeptCode(), deptName); } @Override public String getCurrentUserDeptCode() { return UserContext.getCurrentDeptCode(); } @Override public Long getCurrentUserId() { return UserContext.getCurrentUserId(); } }