diff --git a/api-passenger/src/main/java/com/mashibing/apipassenger/remote/ServicePassengerUserCLient.java b/api-passenger/src/main/java/com/mashibing/apipassenger/remote/ServicePassengerUserCLient.java new file mode 100644 index 0000000..599abd5 --- /dev/null +++ b/api-passenger/src/main/java/com/mashibing/apipassenger/remote/ServicePassengerUserCLient.java @@ -0,0 +1,16 @@ +package com.mashibing.apipassenger.remote; + +import com.mashibing.internalcommon.dto.ResponseResult; +import com.mashibing.internalcommon.request.VerificationCodeDTO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.*; + +@FeignClient("service-passenger-user") +@Service +public interface ServicePassengerUserCLient { + + @RequestMapping(method = RequestMethod.POST,value = "/user") + public ResponseResult loginOrRegister(@RequestBody VerificationCodeDTO verificationCodeDTO); + +} diff --git a/api-passenger/src/main/java/com/mashibing/apipassenger/service/VerificationCodeService.java b/api-passenger/src/main/java/com/mashibing/apipassenger/service/VerificationCodeService.java index 0a7744a..d3474d2 100644 --- a/api-passenger/src/main/java/com/mashibing/apipassenger/service/VerificationCodeService.java +++ b/api-passenger/src/main/java/com/mashibing/apipassenger/service/VerificationCodeService.java @@ -1,8 +1,10 @@ package com.mashibing.apipassenger.service; +import com.mashibing.apipassenger.remote.ServicePassengerUserCLient; import com.mashibing.apipassenger.remote.ServiceVerificationcodeClient; import com.mashibing.internalcommon.constant.CommonStatusEnum; import com.mashibing.internalcommon.dto.ResponseResult; +import com.mashibing.internalcommon.request.VerificationCodeDTO; import com.mashibing.internalcommon.response.NumberCodeResponse; import com.mashibing.internalcommon.response.TokenResponse; import net.sf.json.JSONObject; @@ -19,6 +21,11 @@ public class VerificationCodeService { @Autowired private ServiceVerificationcodeClient verificationcodeClient; + @Autowired + private ServicePassengerUserCLient servicePassengerUserCLient; + + + @Autowired private StringRedisTemplate redisTemplate; @@ -50,7 +57,7 @@ public class VerificationCodeService { * @param passengerPhone * @return */ - public ResponseResult checkCode(String passengerPhone,String verificationCode){ + public ResponseResult checkCode(String passengerPhone,String verificationCode){ // 根据 key前缀+号码 从redis取出对应 校验码比较 String redisKey = getRdisKey(passengerPhone); @@ -60,7 +67,12 @@ public class VerificationCodeService { if(StringUtils.isBlank(codeRedis) || !StringUtils.equals(codeRedis,verificationCode) ){ return ResponseResult.fail(CommonStatusEnum.VERIFICATION_CODE_ERROR.getCode(), CommonStatusEnum.VERIFICATION_CODE_ERROR.getValue()); } + // 判断 登录手机号用户是否存在,不存在则注册登录 + VerificationCodeDTO verificationCodeDTO = new VerificationCodeDTO(); + verificationCodeDTO.setPassengerPhone(passengerPhone); + servicePassengerUserCLient.loginOrRegister(verificationCodeDTO); + redisTemplate.delete(redisKey);// 使用后删除key // 颁布 token 令牌 TokenResponse tokenResponse = new TokenResponse(); diff --git a/internal-common/src/main/java/com/mashibing/internalcommon/request/VerificationCodeDTO.java b/internal-common/src/main/java/com/mashibing/internalcommon/request/VerificationCodeDTO.java index c78bb8a..31801d7 100644 --- a/internal-common/src/main/java/com/mashibing/internalcommon/request/VerificationCodeDTO.java +++ b/internal-common/src/main/java/com/mashibing/internalcommon/request/VerificationCodeDTO.java @@ -1,6 +1,7 @@ package com.mashibing.internalcommon.request; +import lombok.AllArgsConstructor; import lombok.Data; @Data