Commit fcc5baa1 by 牟邦恺

Merge branch 'feature-20200720' into dev

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