| | |
| | | } |
| | | |
| | | String code = MsgUtil.createCode(); |
| | | log.info("Robotaxi SMS code generated for mobile {}: {}", request.getMobile(), code); |
| | | log.info("Robotaxi SMS code generated for mobile {}", maskMobile(request.getMobile())); |
| | | |
| | | // TODO: Call SMS interface to send code when available |
| | | // sendSms(request.getMobile(), code); |
| | |
| | | } |
| | | |
| | | private XpCommonResponse<?> validateVehicleReadyIfNeeded(String smsType, String vin) { |
| | | if (!SmsType.ACCEPT_RIDES.name().equals(smsType)) { |
| | | return null; |
| | | } |
| | | XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData(); |
| | | if (vehicle == null) { |
| | | return XpCommonResponse.fail(RobotaxiErrorEnum.MOBILE_VIN_MISMATCH); |
| | | } |
| | | Integer status = vehicle.getStatus(); |
| | | Integer operatingStatus = vehicle.getOperatingStatus(); |
| | | if (smsType.equals(SmsType.ACCEPT_RIDES.name()) && operatingStatus != 1) { |
| | | return XpCommonResponse.fail(RobotaxiErrorEnum.VEHICLE_NOT_READY); |
| | | } |
| | | // if (smsType.equals(SmsType.ACCEPT_RIDES.name()) && operatingStatus != 1) { |
| | | // return XpCommonResponse.fail(RobotaxiErrorEnum.VEHICLE_NOT_READY); |
| | | // } |
| | | if (smsType.equals(SmsType.STOP_ACCEPT_RIDES.name()) && operatingStatus != 3) { |
| | | return XpCommonResponse.fail(RobotaxiErrorEnum.VEHICLE_NOT_READY); |
| | | } |
| | |
| | | private String buildSmsCodeKey(String smsType, String vin, String mobile) { |
| | | return "ROBOTAXI_SMS_CODE:" + smsType + ":" + vin + ":" + mobile; |
| | | } |
| | | |
| | | private String maskMobile(String mobile) { |
| | | if (StringUtils.isEmpty(mobile) || mobile.length() < 7) { |
| | | return "******"; |
| | | } |
| | | return mobile.substring(0, 3) + "****" + mobile.substring(mobile.length() - 4); |
| | | } |
| | | } |