|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|