Commit e4ba83db by 牟邦恺

添加驾驶证二维码信息

parent 23a46388
...@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil; ...@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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;
import com.hikcreate.edl.pub.web.mobile.domain.IBindService; import com.hikcreate.edl.pub.web.mobile.domain.IBindService;
...@@ -21,6 +22,9 @@ import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.par ...@@ -21,6 +22,9 @@ import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.par
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.request.PlateNumQueryReq; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.request.PlateNumQueryReq;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.response.DrivingLicenseRes; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.response.DrivingLicenseRes;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.response.VehicleRes; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.response.VehicleRes;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.DrivingLicenseQrFeign;
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.pvt_service_traffic.parm.request.ViolationListByTimeReq; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.pvt_service_traffic.parm.request.ViolationListByTimeReq;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.pvt_service_traffic.parm.response.ViolationMicRes; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.pvt_service_traffic.parm.response.ViolationMicRes;
import com.hikcreate.edl.pub.web.mobile.infra.data.mapper.BindInfoMapper; import com.hikcreate.edl.pub.web.mobile.infra.data.mapper.BindInfoMapper;
...@@ -74,6 +78,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -74,6 +78,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
DrivingLicenseCache drivingLicenseCache; DrivingLicenseCache drivingLicenseCache;
@Autowired @Autowired
UnqIdUtil unqIdUtil; UnqIdUtil unqIdUtil;
@Autowired
private DrivingLicenseQrFeign drivingLicenseQrFeign;
/** /**
* 解除绑定时间限制 * 解除绑定时间限制
...@@ -91,7 +97,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -91,7 +97,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
* 验证有效性限制时间 * 验证有效性限制时间
* 单位:小时 * 单位:小时
*/ */
@Value( "${biz.check.validity.limit.time:24}" ) @Value("${biz.check.validity.limit.time:24}")
Integer checkValidityLimitTime; Integer checkValidityLimitTime;
...@@ -136,7 +142,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -136,7 +142,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
if (phones != null && !phones.isEmpty()) { if (phones != null && !phones.isEmpty()) {
boolean phoneExist = phones.get(0).getUserId().equals(info.getUserId()); boolean phoneExist = phones.get(0).getUserId().equals(info.getUserId());
if (!phoneExist) { if (!phoneExist) {
return ResultGenerator.fail(StatusCode.DATA_ERROR.getCode(),"当前手机号已被其他客户绑定"); return ResultGenerator.fail(StatusCode.DATA_ERROR.getCode(), "当前手机号已被其他客户绑定");
} }
} }
...@@ -185,7 +191,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -185,7 +191,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@DistributedLock(key = "'park:extend:lock:unbind:unqId:'+#req.unqId+':userId:'+#req.userId+':timestamp:'+#req" + @DistributedLock(key = "'park:extend:lock:unbind:unqId:'+#req.unqId+':userId:'+#req.userId+':timestamp:'+#req" +
".timestamp", isSpin = false) ".timestamp", isSpin = false)
public Result unbindInfo(UnBindReq req) { public Result unbindInfo(UnBindReq req) {
ParkBindInfo bindInfo = bindCache.getById(req.getUnqId()); ParkBindInfo bindInfo = bindCache.getById(req.getUnqId());
if (bindInfo == null || "0".equals(bindInfo.getStatus())) { if (bindInfo == null || "0".equals(bindInfo.getStatus())) {
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN); return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
...@@ -228,8 +234,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -228,8 +234,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
if (bindInfo == null || "0".equals(bindInfo.getStatus())) { if (bindInfo == null || "0".equals(bindInfo.getStatus())) {
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN); return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
} }
if( !bindInfo.getUserId().equals(query.getUserId()) || !bindInfo.getPhone().equals(query.getPhone()) ) { if (!bindInfo.getUserId().equals(query.getUserId()) || !bindInfo.getPhone().equals(query.getPhone())) {
return ResultGenerator.fail(StatusCode.PARAM_ERROR.getCode(),"客户唯一编码或手机号不正确"); return ResultGenerator.fail(StatusCode.PARAM_ERROR.getCode(), "客户唯一编码或手机号不正确");
} }
PlateNumAndTypeQueryReq req = new PlateNumAndTypeQueryReq(); PlateNumAndTypeQueryReq req = new PlateNumAndTypeQueryReq();
...@@ -260,8 +266,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -260,8 +266,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN); return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
} }
if( !bindInfo.getUserId().equals(query.getUserId()) || !bindInfo.getPhone().equals(query.getPhone()) ) { if (!bindInfo.getUserId().equals(query.getUserId()) || !bindInfo.getPhone().equals(query.getPhone())) {
return ResultGenerator.fail(StatusCode.PARAM_ERROR.getCode(),"客户唯一编码或手机号不正确"); return ResultGenerator.fail(StatusCode.PARAM_ERROR.getCode(), "客户唯一编码或手机号不正确");
} }
PlateNumAndTypeQueryReq req = new PlateNumAndTypeQueryReq(); PlateNumAndTypeQueryReq req = new PlateNumAndTypeQueryReq();
...@@ -303,8 +309,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -303,8 +309,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN); return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
} }
if( !bindInfo.getUserId().equals(query.getUserId()) || !bindInfo.getPhone().equals(query.getPhone()) ) { if (!bindInfo.getUserId().equals(query.getUserId()) || !bindInfo.getPhone().equals(query.getPhone())) {
return ResultGenerator.fail(StatusCode.PARAM_ERROR.getCode(),"客户唯一编码或手机号不正确"); return ResultGenerator.fail(StatusCode.PARAM_ERROR.getCode(), "客户唯一编码或手机号不正确");
} }
/** /**
...@@ -343,8 +349,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -343,8 +349,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
if (bindInfo == null || "0".equals(bindInfo.getStatus())) { if (bindInfo == null || "0".equals(bindInfo.getStatus())) {
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN); return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
} }
if( !bindInfo.getUserId().equals(query.getUserId()) || !bindInfo.getPhone().equals(query.getPhone()) ) { if (!bindInfo.getUserId().equals(query.getUserId()) || !bindInfo.getPhone().equals(query.getPhone())) {
return ResultGenerator.fail(StatusCode.PARAM_ERROR.getCode(),"客户唯一编码或手机号不正确"); return ResultGenerator.fail(StatusCode.PARAM_ERROR.getCode(), "客户唯一编码或手机号不正确");
} }
/** /**
...@@ -378,13 +384,21 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -378,13 +384,21 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
} }
/** /**
* 获取二维码信息
*/
Response<DlQrRes> qrInfo = drivingLicenseQrFeign.getQrInfo(new IdCardMicReq().setIdCard(byPlateNumAndType.getSfzmhm()));
if (!qrInfo.isSuccess() || qrInfo.getData() == null) {
return ResultGenerator.fail(ResultCode.DRIVING_LICENSE_UNKNOWN);
}
/**
* 构建驾照信息查询结果 * 构建驾照信息查询结果
*/ */
DrivingLicenseInfoRes result = new DrivingLicenseInfoRes(); DrivingLicenseInfoRes result = new DrivingLicenseInfoRes();
result.setDriverName(drivingLicenseRes.getXm()); result.setDriverName(drivingLicenseRes.getXm());
result.setPlateNum(byPlateNumAndType.getHphm()); result.setPlateNum(byPlateNumAndType.getHphm());
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)) {
validityTime = validityTime.substring(0, 10); validityTime = validityTime.substring(0, 10);
} }
result.setValidityTime(validityTime); result.setValidityTime(validityTime);
......
...@@ -3,9 +3,7 @@ package com.hikcreate.edl.pub.web.mobile.infra.core.Result; ...@@ -3,9 +3,7 @@ package com.hikcreate.edl.pub.web.mobile.infra.core.Result;
import com.hikcreate.common.sdk.response.statuscode.IStatusCode; import com.hikcreate.common.sdk.response.statuscode.IStatusCode;
import com.hikcreate.common.sdk.response.statuscode.ProductCode; import com.hikcreate.common.sdk.response.statuscode.ProductCode;
import com.hikcreate.common.sdk.response.statuscode.StatusCodeHelper; import com.hikcreate.common.sdk.response.statuscode.StatusCodeHelper;
import com.hikcreate.edl.common.sdk.enums.EdlServiceCode;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter;
/** /**
* @author: xieshixiang * @author: xieshixiang
...@@ -28,7 +26,7 @@ public enum ResultCode implements IStatusCode { ...@@ -28,7 +26,7 @@ public enum ResultCode implements IStatusCode {
CAR_PHONE_UNMATCHED(5, "手机号与车辆备案手机号不一致"), CAR_PHONE_UNMATCHED(5, "手机号与车辆备案手机号不一致"),
CAR_HAVE_BIND(6, "车辆已被绑定"), CAR_HAVE_BIND(6, "车辆已被绑定"),
BIND_INFO_UNKNOWN(7, "绑定认证不存在"), BIND_INFO_UNKNOWN(7, "绑定认证不存在"),
DRIVING_LICENSE_UNKNOWN(8, "车主驾照信息不存在"); DRIVING_LICENSE_UNKNOWN(8, "车主信息不存在或非贵阳驾驶证");
private int customCode; private int customCode;
private String msg; private String msg;
......
package com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense;
import com.hikcreate.common.sdk.response.apiparam.Response;
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 org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
*
*/
@FeignClient(value = "edl-pvt-service-dl", path = "drivingLicense/qr")
public interface DrivingLicenseQrFeign {
@PostMapping("getQrInfo")
Response<DlQrRes> getQrInfo(@RequestBody @Validated IdCardMicReq req);
}
package com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.request;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import static com.hikcreate.edl.common.constant.ValidateConstant.ID_CARD_CONSTRAINT_REGEXP;
/**
* @author MOUBK
* @create 2019/4/8 19:43
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class IdCardMicReq {
@Pattern(regexp = ID_CARD_CONSTRAINT_REGEXP, message = "身份证号不正确")
@NotNull
private String idCard;
}
package com.hikcreate.edl.pub.web.mobile.infra.data.feign.edl_pvt_service_drivinglicense.response;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* @author MOUBK
* @create 2019/6/20 11:21
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class DlQrRes {
private String qr;
private Integer cumulativeScore;
private Integer residualScore;
}
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