|  |  | 
 |  |  | import com.mzl.flower.config.security.token.PhoneAuthenticationToken; | 
 |  |  | import com.mzl.flower.constant.Constants; | 
 |  |  | import com.mzl.flower.dto.request.UserLoginDTO; | 
 |  |  | import com.mzl.flower.dto.response.partner.PartnerDTO; | 
 |  |  | import com.mzl.flower.entity.system.User; | 
 |  |  | import com.mzl.flower.mapper.partner.PartnerMapper; | 
 |  |  | 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 PartnerMapper partnerMapper; | 
 |  |  |  | 
 |  |  |     public static final String SMS_CODE_KEY = "SMS-CODE-KEY"; | 
 |  |  |     public static final String TOKEN_KEY = "TOKEN-KEY"; | 
 |  |  | 
 |  |  |         if(user == null){ | 
 |  |  |             throw new ValidationException("用户不存在"); | 
 |  |  |         } | 
 |  |  |         PartnerDTO partnerDTO = partnerMapper.getCurrentPartner(user.getId()); | 
 |  |  |         if (ObjectUtils.isEmpty(partnerDTO)) { | 
 |  |  |             throw new ValidationException("用户不存在"); | 
 |  |  |         } | 
 |  |  |         if (partnerDTO.getIsEnabled() == false) { | 
 |  |  |             throw new ValidationException("用户已禁用,请联系管理员"); | 
 |  |  |         } | 
 |  |  |         String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId()); | 
 |  |  |         if (StringUtils.isNotBlank(tokenCache))  { | 
 |  |  |             //强制删除token,下线 | 
 |  |  |             removeToken(tokenCache,user.getId()); | 
 |  |  | //            removeToken(tokenCache,user.getId()); | 
 |  |  |         } | 
 |  |  |         try { | 
 |  |  |             PartnerAuthenticationToken authRequest = new PartnerAuthenticationToken(username, password); | 
 |  |  | 
 |  |  |         if(user == null){ | 
 |  |  |             throw new ValidationException("用户不存在"); | 
 |  |  |         } | 
 |  |  |         PartnerDTO partnerDTO = partnerMapper.getCurrentPartner(user.getId()); | 
 |  |  |         if (ObjectUtils.isEmpty(partnerDTO)) { | 
 |  |  |             throw new ValidationException("用户不存在"); | 
 |  |  |         } | 
 |  |  |         if (partnerDTO.getIsEnabled() == false) { | 
 |  |  |             throw new ValidationException("用户已禁用,请联系管理员"); | 
 |  |  |         } | 
 |  |  |         String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId()); | 
 |  |  |         if (StringUtils.isNotBlank(tokenCache))  { | 
 |  |  |             //强制删除token,下线 | 
 |  |  |             removeToken(tokenCache,user.getId()); | 
 |  |  | //            removeToken(tokenCache,user.getId()); | 
 |  |  |         } | 
 |  |  |         try { | 
 |  |  |             PhoneAuthenticationToken authRequest = new PhoneAuthenticationToken(tel, smsCode, Constants.USER_TYPE.partner.name()); |