Commit fcc5baa1 by 牟邦恺

Merge branch 'feature-20200720' into dev

parents d8397686 1848d0a1
...@@ -57,10 +57,11 @@ public class BindInfoControlller extends BaseController { ...@@ -57,10 +57,11 @@ public class BindInfoControlller extends BaseController {
} catch ( DistributedLockException e ) { } catch ( DistributedLockException e ) {
log.error("分布式锁超时"); log.error("分布式锁超时");
return ResultGenerator.fail(StatusCode.REPEAT_SUBMIT); return ResultGenerator.fail(StatusCode.REPEAT_SUBMIT);
} catch ( Exception e ) {
log.error("系统异常:{}", e);
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
} }
// catch ( Exception e ) {
// log.error("系统异常:{}", e);
// return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
// }
return response; return response;
} }
...@@ -73,7 +74,13 @@ public class BindInfoControlller extends BaseController { ...@@ -73,7 +74,13 @@ public class BindInfoControlller extends BaseController {
@BodyDecryptAnnotation @BodyDecryptAnnotation
@ResponseEncryptAnnotation @ResponseEncryptAnnotation
public Result<BindInfoRes> bindSmsValid(@RequestBody @Validated BindSmsValidReq req) { public Result<BindInfoRes> bindSmsValid(@RequestBody @Validated BindSmsValidReq req) {
return service.bindSmsValid(req); Result result = null;
try {
result = service.bindSmsValid(req);
} catch ( DistributedLockException e ) {
return ResultGenerator.fail(StatusCode.REPEAT_SUBMIT);
}
return result;
} }
...@@ -94,9 +101,6 @@ public class BindInfoControlller extends BaseController { ...@@ -94,9 +101,6 @@ public class BindInfoControlller extends BaseController {
result = service.unbindInfo(req); result = service.unbindInfo(req);
} catch ( DistributedLockException e ) { } catch ( DistributedLockException e ) {
return ResultGenerator.fail(StatusCode.REPEAT_SUBMIT); return ResultGenerator.fail(StatusCode.REPEAT_SUBMIT);
} catch ( Exception e ) {
log.error("系统异常:{}", e);
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
} }
return result; return result;
} }
...@@ -115,9 +119,6 @@ public class BindInfoControlller extends BaseController { ...@@ -115,9 +119,6 @@ public class BindInfoControlller extends BaseController {
result = service.adminUnbind(req); result = service.adminUnbind(req);
} catch ( DistributedLockException e ) { } catch ( DistributedLockException e ) {
return ResultGenerator.fail(StatusCode.REPEAT_SUBMIT); return ResultGenerator.fail(StatusCode.REPEAT_SUBMIT);
} catch ( Exception e ) {
log.error("系统异常:{}", e);
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
} }
return result; return result;
} }
...@@ -136,9 +137,6 @@ public class BindInfoControlller extends BaseController { ...@@ -136,9 +137,6 @@ public class BindInfoControlller extends BaseController {
result = service.adminUnbindSmsValid(req); result = service.adminUnbindSmsValid(req);
} catch ( DistributedLockException e ) { } catch ( DistributedLockException e ) {
return ResultGenerator.fail(StatusCode.REPEAT_SUBMIT); return ResultGenerator.fail(StatusCode.REPEAT_SUBMIT);
} catch ( Exception e ) {
log.error("系统异常:{}", e);
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
} }
return result; return result;
} }
......
...@@ -7,6 +7,7 @@ import com.hikcreate.common.sdk.response.apiparam.ResponseGenerator; ...@@ -7,6 +7,7 @@ import com.hikcreate.common.sdk.response.apiparam.ResponseGenerator;
import com.hikcreate.common.sdk.response.statuscode.StatusCode; import com.hikcreate.common.sdk.response.statuscode.StatusCode;
import com.hikcreate.edl.common.image.builder.domain.DlBackImageDO; import com.hikcreate.edl.common.image.builder.domain.DlBackImageDO;
import com.hikcreate.edl.common.image.builder.domain.DlImageDO; import com.hikcreate.edl.common.image.builder.domain.DlImageDO;
import com.hikcreate.edl.common.sdk.util.RegexUtil;
import com.hikcreate.edl.pub.web.mobile.domain.CredentialsImageService; import com.hikcreate.edl.pub.web.mobile.domain.CredentialsImageService;
import com.hikcreate.edl.pub.web.mobile.domain.DrivingLicenseService; import com.hikcreate.edl.pub.web.mobile.domain.DrivingLicenseService;
import com.hikcreate.edl.pub.web.mobile.domain.IBindService; import com.hikcreate.edl.pub.web.mobile.domain.IBindService;
...@@ -95,20 +96,20 @@ public class DrivingLicenseController { ...@@ -95,20 +96,20 @@ public class DrivingLicenseController {
ByteArrayOutputStream outputStream; ByteArrayOutputStream outputStream;
if (type == null || Objects.equals(type, 1)) { if (type == null || Objects.equals(type, 1)) {
DlImageDO dlImageDO = new DlImageDO(); DlImageDO dlImageDO = new DlImageDO();
dlImageDO.setAddress(drivingLicenseMicRes.getAddress()); dlImageDO.setAddress(RegexUtil.addressMask(drivingLicenseMicRes.getAddress()));
dlImageDO.setBelowLicenseNumber(drivingLicenseMicRes.getIdCard()); dlImageDO.setBelowLicenseNumber(drivingLicenseMicRes.getIdCard());
dlImageDO.setAvatarFullUrl(fastDfsConfigBean.genBigDataInnerUrl(drivingLicenseMicRes.getAvatar())); dlImageDO.setAvatarFullUrl(fastDfsConfigBean.genBigDataInnerUrl(drivingLicenseMicRes.getAvatar()));
dlImageDO.setBirthday(drivingLicenseMicRes.getBirthday()); dlImageDO.setBirthday(drivingLicenseMicRes.getBirthday());
dlImageDO.setLicenseNumber(drivingLicenseMicRes.getIdCard()); dlImageDO.setLicenseNumber(RegexUtil.idCardMask(drivingLicenseMicRes.getIdCard()));
dlImageDO.setInitLicenseDate(drivingLicenseMicRes.getIssueDate()); dlImageDO.setInitLicenseDate(drivingLicenseMicRes.getIssueDate());
dlImageDO.setName(drivingLicenseMicRes.getRealName()); dlImageDO.setName(RegexUtil.nameMask(drivingLicenseMicRes.getRealName()));
dlImageDO.setBelowName(drivingLicenseMicRes.getRealName()); dlImageDO.setBelowName(RegexUtil.nameMask(drivingLicenseMicRes.getRealName()));
dlImageDO.setModel(drivingLicenseMicRes.getLicenseType()); dlImageDO.setModel(drivingLicenseMicRes.getLicenseType());
dlImageDO.setNationality(drivingLicenseMicRes.getNationality()); dlImageDO.setNationality(drivingLicenseMicRes.getNationality());
dlImageDO.setSex(drivingLicenseMicRes.getGender()); dlImageDO.setSex(drivingLicenseMicRes.getGender());
dlImageDO.setValidityPeriod(drivingLicenseMicRes.getEffectiveDate() + "至" + drivingLicenseMicRes.getExpiryDate()); dlImageDO.setValidityPeriod(drivingLicenseMicRes.getEffectiveDate() + "至" + drivingLicenseMicRes.getExpiryDate());
dlImageDO.setRecord(""); dlImageDO.setRecord("");
dlImageDO.setFileNumber(drivingLicenseMicRes.getFileNum()); dlImageDO.setFileNumber(RegexUtil.fileNumMask(drivingLicenseMicRes.getFileNum()));
outputStream = (ByteArrayOutputStream) credentialsImageService.genDlImage(dlImageDO); outputStream = (ByteArrayOutputStream) credentialsImageService.genDlImage(dlImageDO);
} else { } else {
DlBackImageDO dlBackImageDO = new DlBackImageDO(); DlBackImageDO dlBackImageDO = new DlBackImageDO();
......
...@@ -120,7 +120,7 @@ public class H5Controller { ...@@ -120,7 +120,7 @@ public class H5Controller {
} }
/** /**
* 验证当前手机号是否在1天内,已通过验证 * 【驾照信息查询】验证当前手机号是否在1天内,已通过验证
* *
* @param query * @param query
* @return * @return
...@@ -143,7 +143,7 @@ public class H5Controller { ...@@ -143,7 +143,7 @@ public class H5Controller {
} }
/*** /***
* 发送短信验证码 * 【驾照信息查询】发送短信验证码
* *
* @param req * @param req
* @return Result * @return Result
...@@ -161,7 +161,7 @@ public class H5Controller { ...@@ -161,7 +161,7 @@ public class H5Controller {
} }
/** /**
* 校验短信验证码 * 【驾照信息查询】校验短信验证码
* *
* @param req * @param req
* @return Result * @return Result
......
package com.hikcreate.edl.pub.web.mobile.api.exception; package com.hikcreate.edl.pub.web.mobile.api.exception;
import com.hikcreate.common.sdk.exception.DefaultExceptionHandler; 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.apiparam.ResponseGenerator; import com.hikcreate.common.sdk.response.apiparam.ResponseGenerator;
import com.hikcreate.common.sdk.response.statuscode.StatusCode; import com.hikcreate.common.sdk.response.statuscode.StatusCode;
import com.hikcreate.edl.pub.web.mobile.infra.core.Result.Result; import com.hikcreate.edl.pub.web.mobile.infra.core.Result.Result;
import com.hikcreate.edl.pub.web.mobile.infra.core.Result.ResultCode;
import com.hikcreate.edl.pub.web.mobile.infra.core.Result.ResultGenerator; import com.hikcreate.edl.pub.web.mobile.infra.core.Result.ResultGenerator;
import feign.RetryableException; import feign.RetryableException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -88,6 +87,13 @@ public class GlobalExceptionHandler { ...@@ -88,6 +87,13 @@ public class GlobalExceptionHandler {
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR.getCode(), "服务请求超时或不可用"); return ResultGenerator.fail(StatusCode.SYSTEM_ERROR.getCode(), "服务请求超时或不可用");
} }
@ExceptionHandler({BusinessException.class})
@ResponseBody
public Response<Object> handle(BusinessException e) {
log.error(e.toString(), e);
return ResponseGenerator.fail(e.getCode(), e.getMsg(), e.getErrorMsg(), e.getParam());
}
/** /**
* 从{@code @BindingResult}中构建异常信息 * 从{@code @BindingResult}中构建异常信息
* on field 'verifyCode': null]; * on field 'verifyCode': null];
......
...@@ -114,6 +114,11 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -114,6 +114,11 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
*/ */
@Value("${biz.check.validity.limit.time:24}") @Value("${biz.check.validity.limit.time:24}")
private Integer checkValidityLimitTime; private Integer checkValidityLimitTime;
/**
* 可绑定车辆数
*/
@Value("${biz.bind.count:5}")
private Integer bindCount;
@Autowired @Autowired
private StringRedisTemplate redisTemplate; private StringRedisTemplate redisTemplate;
...@@ -133,7 +138,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -133,7 +138,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
boundQuery.eq("user_id", info.getUserId()); boundQuery.eq("user_id", info.getUserId());
boundQuery.eq("status", "1"); boundQuery.eq("status", "1");
List<ParkBindInfo> list = mapper.selectList(boundQuery); List<ParkBindInfo> list = mapper.selectList(boundQuery);
if (list != null && list.size() >= 3) { if (list != null && list.size() >= bindCount) {
return ResultGenerator.fail(ResultCode.BIND_NUM_ERROR); return ResultGenerator.fail(ResultCode.BIND_NUM_ERROR);
} }
/** /**
...@@ -197,6 +202,13 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -197,6 +202,13 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
return ResultGenerator.fail(ResultCode.CAR_HAVE_BIND); return ResultGenerator.fail(ResultCode.CAR_HAVE_BIND);
} }
//发送验证码
SendVerifyCodeMicReq sendMicReq = new SendVerifyCodeMicReq();
sendMicReq.setPhone(info.getOwnerPhone());
sendMicReq.setVerifyCode(VerifyCodeUtil.getCode());
sendMicReq.setTemplateCode("PARK_BIND_VEHICLE");
smsFeign.sendVerifyCode(sendMicReq).fallback();
//保存至redis //保存至redis
try { try {
String key = bindKeyPrefix.concat(info.getPhone()).concat("-").concat(info.getOwnerPhone()); String key = bindKeyPrefix.concat(info.getPhone()).concat("-").concat(info.getOwnerPhone());
...@@ -205,12 +217,6 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -205,12 +217,6 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
log.error("绑定异常:{}", e.getMessage()); log.error("绑定异常:{}", e.getMessage());
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR); return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
} }
//发送验证码
SendVerifyCodeMicReq sendMicReq = new SendVerifyCodeMicReq();
sendMicReq.setPhone(info.getOwnerPhone());
sendMicReq.setVerifyCode(VerifyCodeUtil.getCode());
sendMicReq.setTemplateCode("PARK_BIND_VEHICLE");
smsFeign.sendVerifyCode(sendMicReq).fallback();
return ResultGenerator.success(); return ResultGenerator.success();
} }
...@@ -248,6 +254,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -248,6 +254,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
log.error("车辆绑定短信验证失败:绑定信息入库失败"); log.error("车辆绑定短信验证失败:绑定信息入库失败");
return ResultGenerator.fail(StatusCode.SYSTEM_ERROR); return ResultGenerator.fail(StatusCode.SYSTEM_ERROR);
} }
//清除redis
redisTemplate.delete(key);
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());
......
...@@ -111,7 +111,7 @@ public class DrivingLicenseServiceImpl implements DrivingLicenseService { ...@@ -111,7 +111,7 @@ public class DrivingLicenseServiceImpl implements DrivingLicenseService {
} }
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, 24 * 3600, TimeUnit.SECONDS);
} }
private boolean checkSmsValid(String userId, String idCard, String phone) { private boolean checkSmsValid(String userId, String idCard, String phone) {
......
...@@ -19,7 +19,7 @@ public enum ResultCode implements IStatusCode { ...@@ -19,7 +19,7 @@ public enum ResultCode implements IStatusCode {
REPEAT_SUBMIT(1004, "重复提交"), REPEAT_SUBMIT(1004, "重复提交"),
PARAM_ERROR(1005, "参数错误"), PARAM_ERROR(1005, "参数错误"),
BUSINESS_ERROR(1006, "业务错误"),*/ BUSINESS_ERROR(1006, "业务错误"),*/
BIND_NUM_ERROR(1, "同一客户绑定认证不超过3辆"), BIND_NUM_ERROR(1, "可绑定车辆数已用完"),
UNBIND_TOTAL_ERROR(2, "30天内解绑次数超过10次,不能再次绑定认证"), UNBIND_TOTAL_ERROR(2, "30天内解绑次数超过10次,不能再次绑定认证"),
USERID_PHONE_ERROR(3, "客户ID与手机号不一致"), USERID_PHONE_ERROR(3, "客户ID与手机号不一致"),
CAR_MESSAGE_UNKNOWN(4, "车辆信息不存在"), CAR_MESSAGE_UNKNOWN(4, "车辆信息不存在"),
......
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