|  |  |  | 
|---|
|  |  |  | import com.mzl.flower.config.security.token.SupAuthenticationToken; | 
|---|
|  |  |  | import com.mzl.flower.constant.Constants; | 
|---|
|  |  |  | import com.mzl.flower.dto.request.UserLoginDTO; | 
|---|
|  |  |  | import com.mzl.flower.dto.response.supplier.SupplierDTO; | 
|---|
|  |  |  | import com.mzl.flower.entity.system.User; | 
|---|
|  |  |  | import com.mzl.flower.mapper.supplier.SupplierMapper; | 
|---|
|  |  |  | import com.mzl.flower.service.login.LoginService; | 
|---|
|  |  |  | import com.mzl.flower.service.system.UserService; | 
|---|
|  |  |  | import io.swagger.annotations.Api; | 
|---|
|  |  |  | 
|---|
|  |  |  | import org.springframework.security.oauth2.common.OAuth2RefreshToken; | 
|---|
|  |  |  | import org.springframework.security.oauth2.provider.token.TokenStore; | 
|---|
|  |  |  | import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; | 
|---|
|  |  |  | import org.springframework.util.ObjectUtils; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.PostMapping; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestBody; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestMapping; | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TokenStore tokenStore; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SupplierMapper supplierMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static final String SMS_CODE_KEY = "SMS-CODE-KEY"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static final String TOKEN_KEY = "TOKEN-KEY"; | 
|---|
|  |  |  | 
|---|
|  |  |  | User user = userService.findByTel(username, Constants.USER_TYPE.supplier.name()); | 
|---|
|  |  |  | if(user == null){ | 
|---|
|  |  |  | throw new ValidationException("用户不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(user.getId()); | 
|---|
|  |  |  | if (supplierDTO != null && supplierDTO.getIsEnabled() == false) { | 
|---|
|  |  |  | throw new ValidationException("用户已禁用,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId()); | 
|---|
|  |  |  | if (StringUtils.isNotBlank(tokenCache))  { | 
|---|
|  |  |  | 
|---|
|  |  |  | if(user == null){ | 
|---|
|  |  |  | throw new ValidationException("用户不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(user.getId()); | 
|---|
|  |  |  | if (ObjectUtils.isEmpty(supplierDTO)) { | 
|---|
|  |  |  | throw new ValidationException("用户不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (supplierDTO.getIsEnabled() == false) { | 
|---|
|  |  |  | throw new ValidationException("用户已禁用,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId()); | 
|---|
|  |  |  | if (StringUtils.isNotBlank(tokenCache))  { | 
|---|
|  |  |  | //强制删除token,下线 | 
|---|