Commit d10cea1c by 牟邦恺

调整驾驶证信息

parent 3a9b199e
...@@ -17,15 +17,16 @@ import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_driving ...@@ -17,15 +17,16 @@ import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_driving
import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.DrivingLicenseSendSmsCodeReq; import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.DrivingLicenseSendSmsCodeReq;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.DrivingLicenseValidReq; import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.DrivingLicenseValidReq;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.DrivingLicenseValidSmsCodeReq; import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.DrivingLicenseValidSmsCodeReq;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.IdCardReq;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.UserIdReq;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseInfoRes;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseValidRes; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseValidRes;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -74,9 +75,16 @@ public class DrivingLicenseController { ...@@ -74,9 +75,16 @@ public class DrivingLicenseController {
return ResultGenerator.success(); return ResultGenerator.success();
} }
@GetMapping("/image") @PostMapping("/drivingLicenseInfo")
public void image(@RequestParam("idCard") String idCard, HttpServletResponse response) { @HeaderDecryptAnnotation
DrivingLicenseMicRes drivingLicenseMicRes = drivingLicenseFeign.getByIdCard(new CreditIdCardMicReq().setIdCard(idCard)).fallback().getData(); public Result<DrivingLicenseInfoRes> getDrivingLicenseInfo(@RequestBody @Validated UserIdReq req) {
DrivingLicenseInfoRes drivingLicenseInfoRes = drivingLicenseService.getDrivingLicenseInfo(req.getUserId());
return ResultGenerator.success(drivingLicenseInfoRes);
}
@PostMapping("/image")
public void image(@RequestBody @Validated IdCardReq req, HttpServletResponse response) {
DrivingLicenseMicRes drivingLicenseMicRes = drivingLicenseFeign.getByIdCard(new CreditIdCardMicReq().setIdCard(req.getIdCard())).fallback().getData();
DlImageDO dlImageDO = new DlImageDO(); DlImageDO dlImageDO = new DlImageDO();
dlImageDO.setAddress(drivingLicenseMicRes.getAddress()); dlImageDO.setAddress(drivingLicenseMicRes.getAddress());
dlImageDO.setBelowLicenseNumber(drivingLicenseMicRes.getIdCard()); dlImageDO.setBelowLicenseNumber(drivingLicenseMicRes.getIdCard());
...@@ -98,7 +106,7 @@ public class DrivingLicenseController { ...@@ -98,7 +106,7 @@ public class DrivingLicenseController {
setHeader(response, drivingLicenseMicRes.getIdCard() + ".jpg"); setHeader(response, drivingLicenseMicRes.getIdCard() + ".jpg");
response.getOutputStream().write(outputStream.toByteArray()); response.getOutputStream().write(outputStream.toByteArray());
} catch (Exception e) { } catch (Exception e) {
log.error("Get dl img E, idCard={}, msg={}", idCard, e); log.error("Get dl img E, idCard={}, msg={}", req.getIdCard(), e);
getResException(response, "获取驾照图片异常"); getResException(response, "获取驾照图片异常");
} finally { } finally {
try { try {
......
...@@ -184,6 +184,8 @@ public class H5Controller { ...@@ -184,6 +184,8 @@ public class H5Controller {
verifyInfo.setPhone(req.getPhone()); verifyInfo.setPhone(req.getPhone());
verifyInfo.setPassTime(DateTime.now()); verifyInfo.setPassTime(DateTime.now());
verifyInfoMapper.insert(verifyInfo); verifyInfoMapper.insert(verifyInfo);
// 保存验证信息到redis
service.saveValid(req.getUserId(), req.getUnqId(), req.getPhone());
} }
return checkResult; return checkResult;
} }
......
package com.hikcreate.edl.pub.web.mobile.domain; package com.hikcreate.edl.pub.web.mobile.domain;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseInfoRes;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseValidRes; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseValidRes;
/** /**
...@@ -13,4 +14,6 @@ public interface DrivingLicenseService { ...@@ -13,4 +14,6 @@ public interface DrivingLicenseService {
void sendSmsCode(String userId); void sendSmsCode(String userId);
void validSmsCode(String userId, String smsCode); void validSmsCode(String userId, String smsCode);
DrivingLicenseInfoRes getDrivingLicenseInfo(String userId);
} }
...@@ -98,4 +98,19 @@ public interface IBindService extends IService<ParkBindInfo> { ...@@ -98,4 +98,19 @@ public interface IBindService extends IService<ParkBindInfo> {
*/ */
Result<VehicleDrivingLicenseInfoRes> drivingLicenseInfo(H5BindInfoQuery query); Result<VehicleDrivingLicenseInfoRes> drivingLicenseInfo(H5BindInfoQuery query);
/**
* 保存校验信息
* @param userId
* @param unqId
* @param phone
*/
void saveValid(String userId, String unqId, String phone);
/**
* 验证是否通过短信校验
* @param userId
* @param idCard
* @return
*/
Boolean valid(String userId, String idCard);
} }
...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.hikcreate.common.orika.DefaultConverter; import com.hikcreate.common.orika.DefaultConverter;
import com.hikcreate.common.sdk.exception.BusinessException;
import com.hikcreate.common.sdk.response.apiparam.Response; import com.hikcreate.common.sdk.response.apiparam.Response;
import com.hikcreate.common.sdk.response.statuscode.StatusCode; import com.hikcreate.common.sdk.response.statuscode.StatusCode;
import com.hikcreate.edl.common.distributed.lock.annotation.DistributedLock; import com.hikcreate.edl.common.distributed.lock.annotation.DistributedLock;
...@@ -47,6 +48,7 @@ import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.VehicleDrivin ...@@ -47,6 +48,7 @@ import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.VehicleDrivin
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.ViolationInfoRes; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.ViolationInfoRes;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.YearCheckInfoRes; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.YearCheckInfoRes;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
...@@ -117,6 +119,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -117,6 +119,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
private StringRedisTemplate redisTemplate; private StringRedisTemplate redisTemplate;
private final ObjectMapper objectMapper = new ObjectMapper(); private final ObjectMapper objectMapper = new ObjectMapper();
@Autowired
private StringRedisTemplate redisTemplate;
private final String bindKeyPrefix = "park:extend:bindInfo:"; private final String bindKeyPrefix = "park:extend:bindInfo:";
...@@ -199,7 +203,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -199,7 +203,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
try { try {
String key = bindKeyPrefix.concat(info.getPhone()).concat("-").concat(info.getOwnerPhone()); String key = bindKeyPrefix.concat(info.getPhone()).concat("-").concat(info.getOwnerPhone());
redisTemplate.opsForValue().set(key, objectMapper.writeValueAsString(info), 30, TimeUnit.MINUTES); redisTemplate.opsForValue().set(key, objectMapper.writeValueAsString(info), 30, TimeUnit.MINUTES);
} catch ( Exception e ) { } catch (Exception e) {
log.error("绑定异常:{}", e.getMessage()); log.error("绑定异常:{}", e.getMessage());
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR); return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
} }
...@@ -222,12 +226,12 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -222,12 +226,12 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@DistributedLock(key = "'park:extend:lock:bind:smsValid:phone:'+#req.phone+':ownerPhone:'+#req.ownerPhone", isSpin = false) @DistributedLock(key = "'park:extend:lock:bind:smsValid:phone:'+#req.phone+':ownerPhone:'+#req.ownerPhone", isSpin = false)
public Result bindSmsValid( BindSmsValidReq req ) { public Result bindSmsValid(BindSmsValidReq req) {
try { try {
//获取缓存信息 //获取缓存信息
String key = bindKeyPrefix.concat(req.getPhone()).concat("-").concat(req.getOwnerPhone()); String key = bindKeyPrefix.concat(req.getPhone()).concat("-").concat(req.getOwnerPhone());
String bindInfoStr = redisTemplate.opsForValue().get(key); String bindInfoStr = redisTemplate.opsForValue().get(key);
if( StrUtil.isBlank(bindInfoStr) ) { if (StrUtil.isBlank(bindInfoStr)) {
log.error("车辆绑定短信验证失败:未发起车辆绑定"); log.error("车辆绑定短信验证失败:未发起车辆绑定");
return ResultGenerator.fail(StatusCode.BUSINESS_ERROR.getCode(), "已超时"); return ResultGenerator.fail(StatusCode.BUSINESS_ERROR.getCode(), "已超时");
} }
...@@ -242,13 +246,13 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -242,13 +246,13 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
//绑定信息入库 //绑定信息入库
bindInfo.setUnqId(unqIdUtil.getUnqId()); bindInfo.setUnqId(unqIdUtil.getUnqId());
bindInfo.setGmtBindTime(new Date()); bindInfo.setGmtBindTime(new Date());
if(!bindCache.insert(bindInfo)) { if (!bindCache.insert(bindInfo)) {
log.error("车辆绑定短信验证失败:绑定信息入库失败"); log.error("车辆绑定短信验证失败:绑定信息入库失败");
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR); return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
} }
return ResultGenerator.success(new BindInfoRes(bindInfo.getUnqId())); return ResultGenerator.success(new BindInfoRes(bindInfo.getUnqId()));
} catch ( JsonProcessingException e ) { } catch (JsonProcessingException e) {
log.error("车辆绑定短信验证异常:{}",e.getMessage()); log.error("车辆绑定短信验证异常:{}", e.getMessage());
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR); return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
} }
} }
...@@ -283,11 +287,11 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -283,11 +287,11 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
*/ */
@Override @Override
@DistributedLock(key = "'park:extend:lock:adnmUnbind:unqId:'+#req.unqId", isSpin = false) @DistributedLock(key = "'park:extend:lock:adnmUnbind:unqId:'+#req.unqId", isSpin = false)
public Result adminUnbind( AdminUnbindReq req ) { public Result adminUnbind(AdminUnbindReq req) {
//获取绑定信息 //获取绑定信息
ParkBindInfo parkBindInfo = bindCache.getById(req.getUnqId()); ParkBindInfo parkBindInfo = bindCache.getById(req.getUnqId());
if( parkBindInfo==null || "0".equals(parkBindInfo.getStatus()) if (parkBindInfo == null || "0".equals(parkBindInfo.getStatus())
|| !parkBindInfo.getUserId().equals(req.getUserId()) ) { || !parkBindInfo.getUserId().equals(req.getUserId())) {
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN); return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
} }
//发送验证码 //发送验证码
...@@ -309,10 +313,10 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -309,10 +313,10 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@DistributedLock(key = "'park:extend:lock:adminUnbind:smsValid:unqId:'+#req.unqId", isSpin = false) @DistributedLock(key = "'park:extend:lock:adminUnbind:smsValid:unqId:'+#req.unqId", isSpin = false)
public Result adminUnbindSmsValid( AdminUnbindSmsValidReq req ) { public Result adminUnbindSmsValid(AdminUnbindSmsValidReq req) {
//获取绑定信息 //获取绑定信息
ParkBindInfo parkBindInfo = bindCache.getById(req.getUnqId()); ParkBindInfo parkBindInfo = bindCache.getById(req.getUnqId());
if( parkBindInfo==null || "0".equals(parkBindInfo.getStatus()) ) { if (parkBindInfo == null || "0".equals(parkBindInfo.getStatus())) {
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN); return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
} }
//验证短信 //验证短信
...@@ -449,7 +453,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -449,7 +453,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
queryReq.setTimeStart(DateUtil.offsetMonth(new Date(), -12)); queryReq.setTimeStart(DateUtil.offsetMonth(new Date(), -12));
List<ViolationMicRes> byPlateNumAndType = violationCache.getByPlateNumAndType(queryReq); List<ViolationMicRes> byPlateNumAndType = violationCache.getByPlateNumAndType(queryReq);
//过滤已处理信息 //过滤已处理信息
byPlateNumAndType = byPlateNumAndType.stream().filter(v->!"1".equals(v.getStatus())).collect(Collectors.toList()); byPlateNumAndType = byPlateNumAndType.stream().filter(v -> !"1".equals(v.getStatus())).collect(Collectors.toList());
/** /**
* 构建违章信息返回列表 * 构建违章信息返回列表
...@@ -524,6 +528,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -524,6 +528,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
VehicleDrivingLicenseInfoRes result = new VehicleDrivingLicenseInfoRes(); VehicleDrivingLicenseInfoRes result = new VehicleDrivingLicenseInfoRes();
result.setDriverName(drivingLicenseRes.getXm()); result.setDriverName(drivingLicenseRes.getXm());
result.setPlateNum(byPlateNumAndType.getHphm()); result.setPlateNum(byPlateNumAndType.getHphm());
result.setUserId(query.getUserId());
result.setDlQr(qrInfo.getData().getQr()); result.setDlQr(qrInfo.getData().getQr());
String validityTime = drivingLicenseRes.getYxqz(); String validityTime = drivingLicenseRes.getYxqz();
if (StrUtil.isNotBlank(validityTime) && !"null".equalsIgnoreCase(validityTime)) { if (StrUtil.isNotBlank(validityTime) && !"null".equalsIgnoreCase(validityTime)) {
...@@ -537,6 +542,59 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -537,6 +542,59 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
return ResultGenerator.success(result); return ResultGenerator.success(result);
} }
@Override
public void saveValid(String userId, String unqId, String phone) {
/**
* 校验当前的绑定信息是否存在
*/
ParkBindInfo bindInfo = bindCache.getById(unqId);
if (bindInfo == null || "0".equals(bindInfo.getStatus())) {
throw new BusinessException(ResultCode.BIND_INFO_UNKNOWN);
}
if (!bindInfo.getUserId().equals(userId) || !bindInfo.getPhone().equals(phone)) {
throw new BusinessException((StatusCode.PARAM_ERROR.getCode(), "客户唯一编码或手机号不正确");
}
/**
* 根据车牌号和车牌类型查询车辆信息
*/
PlateNumAndTypeQueryReq vechicleInfoReq = new PlateNumAndTypeQueryReq();
vechicleInfoReq.setPlateType(bindInfo.getPlateType());
vechicleInfoReq.setPlateNum(bindInfo.getPlateNum());
VehicleRes byPlateNumAndType = vechicleCache.getByPlateNumAndType(vechicleInfoReq);
if (byPlateNumAndType.getSfzmhm() == null) {
throw new BusinessException(ResultCode.DRIVING_LICENSE_UNKNOWN);
}
/**
* 根据身份证号码查询驾照信息
*/
IdCardQueryReq idCardQueryReq = new IdCardQueryReq();
idCardQueryReq.setIdCard(byPlateNumAndType.getSfzmhm());
DrivingLicenseRes drivingLicenseRes = drivingLicenseCache.getByIdCard(idCardQueryReq);
if (drivingLicenseRes == null) {
throw new BusinessException(ResultCode.DRIVING_LICENSE_UNKNOWN);
}
// 存至缓存,有效期一天
redisTemplate.opsForValue().set(getValidKey(userId, drivingLicenseRes.getSfzmhm()), phone, 24 * 3600, TimeUnit.SECONDS);
}
/**
* 验证是否已通过短信验证
*
* @param userId
* @param idCard
* @return
*/
@Override
public Boolean valid(String userId, String idCard) {
String s = redisTemplate.opsForValue().get(getValidKey(userId, idCard));
return !StringUtils.isEmpty(s);
}
private String getValidKey(String userId, String idCard) {
return "VehValidKey:" + userId + ":" + idCard;
}
} }
......
package com.hikcreate.edl.pub.web.mobile.domain.impl; package com.hikcreate.edl.pub.web.mobile.domain.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hikcreate.common.sdk.exception.BusinessException; import com.hikcreate.common.sdk.exception.BusinessException;
import com.hikcreate.edl.common.sdk.util.VerifyCodeUtil; import com.hikcreate.edl.common.sdk.util.VerifyCodeUtil;
...@@ -10,7 +11,10 @@ import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pub_service_sms.par ...@@ -10,7 +11,10 @@ import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pub_service_sms.par
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pub_service_sms.param.request.SendVerifyCodeMicReq; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pub_service_sms.param.request.SendVerifyCodeMicReq;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.DrivingLicenseFeign; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.DrivingLicenseFeign;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.request.CreditIdCardMicReq; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.request.CreditIdCardMicReq;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.request.IdCardMicReq;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.response.DlQrRes;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.response.DrivingLicenseMicRes; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.response.DrivingLicenseMicRes;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseInfoRes;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseValidRes; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseValidRes;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -18,6 +22,7 @@ import org.springframework.data.redis.core.RedisTemplate; ...@@ -18,6 +22,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -82,6 +87,28 @@ public class DrivingLicenseServiceImpl implements DrivingLicenseService { ...@@ -82,6 +87,28 @@ public class DrivingLicenseServiceImpl implements DrivingLicenseService {
saveSmsValid(userId, drivingLicenseMicRes.getIdCard(), drivingLicenseMicRes.getPhone()); saveSmsValid(userId, drivingLicenseMicRes.getIdCard(), drivingLicenseMicRes.getPhone());
} }
@Override
public DrivingLicenseInfoRes getDrivingLicenseInfo(String userId) {
DrivingLicenseMicRes drivingLicenseMicRes = getFromRedis(userId);
DlQrRes data = drivingLicenseFeign.getQrInfo(new IdCardMicReq().setIdCard(drivingLicenseMicRes.getIdCard())).fallback().getData();
/**
* 构建驾照信息查询结果
*/
DrivingLicenseInfoRes result = new DrivingLicenseInfoRes();
result.setDriverName(drivingLicenseMicRes.getRealName());
result.setDlQr(data.getQr());
result.setValidityTime(drivingLicenseMicRes.getExpiryDate());
String status = DateUtil.compare(DateUtil.parseDate(drivingLicenseMicRes.getExpiryDate()), new Date()) >= 0 ? "有效" :
"已过期";
result.setStatus(status);
result.setUserId(userId);
result.setIdCard(drivingLicenseMicRes.getIdCard());
result.setSurplusGrade(String.valueOf(drivingLicenseMicRes.getResidualScore()));
return result;
}
private void saveSmsValid(String userId, String idCard, String phone) { private void saveSmsValid(String userId, String idCard, String phone) {
redisTemplate.opsForValue().set(getSmsKey(userId, idCard), phone, 300, TimeUnit.SECONDS); redisTemplate.opsForValue().set(getSmsKey(userId, idCard), phone, 300, TimeUnit.SECONDS);
} }
......
package com.hikcreate.edl.pub.web.mobile.infra.model.param.request;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author MOUBK
* @create 2020/7/21 16:43
*/
@Data
public class IdCardReq {
@NotBlank(message = "身份证号不能为空")
private String idCard;
}
package com.hikcreate.edl.pub.web.mobile.infra.model.param.request;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author MOUBK
* @create 2020/7/21 16:18
*/
@Data
public class UserIdReq {
@NotBlank(message = "用户Id不能为空")
private String userId;
}
...@@ -9,9 +9,11 @@ import lombok.Data; ...@@ -9,9 +9,11 @@ import lombok.Data;
@Data @Data
public class DrivingLicenseInfoRes { public class DrivingLicenseInfoRes {
private String userId;
// 身份证号
private String idCard;
/** /**
*有效期止 * 有效期止
*/ */
private String validityTime; private String validityTime;
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment