Commit 41c57542 by 牟邦恺

添加驾驶证图片查看权限验证

parent d0583430
package com.hikcreate.edl.pub.web.mobile.api.controller;
import com.alibaba.fastjson.JSONObject;
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.common.image.builder.domain.DlImageDO;
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;
import com.hikcreate.edl.pub.web.mobile.infra.core.Result.Result;
import com.hikcreate.edl.pub.web.mobile.infra.core.Result.ResultGenerator;
import com.hikcreate.edl.pub.web.mobile.infra.core.annotatiion.HeaderDecryptAnnotation;
......@@ -17,16 +19,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.DrivingLicenseValidReq;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
......@@ -53,6 +55,8 @@ public class DrivingLicenseController {
private FastDfsConfigBean fastDfsConfigBean;
@Autowired
private DrivingLicenseService drivingLicenseService;
@Autowired
private IBindService iBindService;
@PostMapping("/valid")
@HeaderDecryptAnnotation
......@@ -62,29 +66,30 @@ public class DrivingLicenseController {
}
@PostMapping("/sendSmsCode")
@HeaderDecryptAnnotation
public Result<Void> sendSmsCode(@RequestBody @Validated DrivingLicenseSendSmsCodeReq req) {
drivingLicenseService.sendSmsCode(req.getUserId());
return ResultGenerator.success();
}
@PostMapping("/validSmsCode")
@HeaderDecryptAnnotation
public Result<Void> validSmsCode(@RequestBody @Validated DrivingLicenseValidSmsCodeReq req) {
drivingLicenseService.validSmsCode(req.getUserId(), req.getSmsCode());
return ResultGenerator.success();
}
@PostMapping("/drivingLicenseInfo")
@HeaderDecryptAnnotation
public Result<DrivingLicenseInfoRes> getDrivingLicenseInfo(@RequestBody @Validated UserIdReq req) {
DrivingLicenseInfoRes drivingLicenseInfoRes = drivingLicenseService.getDrivingLicenseInfo(req.getUserId());
@GetMapping("/drivingLicenseInfo")
public Result<DrivingLicenseInfoRes> getDrivingLicenseInfo(@RequestParam("userId") String userId) {
DrivingLicenseInfoRes drivingLicenseInfoRes = drivingLicenseService.getDrivingLicenseInfo(userId);
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();
@GetMapping("/image")
public void image(@RequestParam("userId") String userId, @RequestParam("idCard") String idCard, HttpServletResponse response) {
// 验证是否有查看权限
if (!drivingLicenseService.checkValid(userId, idCard) && !iBindService.checkValid(userId,idCard)) {
throw new BusinessException(StatusCode.PARAM_ERROR);
}
DrivingLicenseMicRes drivingLicenseMicRes = drivingLicenseFeign.getByIdCard(new CreditIdCardMicReq().setIdCard(idCard)).fallback().getData();
DlImageDO dlImageDO = new DlImageDO();
dlImageDO.setAddress(drivingLicenseMicRes.getAddress());
dlImageDO.setBelowLicenseNumber(drivingLicenseMicRes.getIdCard());
......@@ -106,7 +111,7 @@ public class DrivingLicenseController {
setHeader(response, drivingLicenseMicRes.getIdCard() + ".jpg");
response.getOutputStream().write(outputStream.toByteArray());
} catch (Exception e) {
log.error("Get dl img E, idCard={}, msg={}", req.getIdCard(), e);
log.error("Get dl img E, idCard={}, userId={}, msg={}", idCard, userId, e);
getResException(response, "获取驾照图片异常");
} finally {
try {
......
......@@ -16,4 +16,6 @@ public interface DrivingLicenseService {
void validSmsCode(String userId, String smsCode);
DrivingLicenseInfoRes getDrivingLicenseInfo(String userId);
Boolean checkValid(String userId, String idCard);
}
......@@ -112,5 +112,5 @@ public interface IBindService extends IService<ParkBindInfo> {
* @param idCard
* @return
*/
Boolean valid(String userId, String idCard);
Boolean checkValid(String userId, String idCard);
}
......@@ -585,7 +585,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
* @return
*/
@Override
public Boolean valid(String userId, String idCard) {
public Boolean checkValid(String userId, String idCard) {
String s = redisTemplate.opsForValue().get(getValidKey(userId, idCard));
return !StringUtils.isEmpty(s);
}
......
......@@ -121,6 +121,15 @@ public class DrivingLicenseServiceImpl implements DrivingLicenseService {
return false;
}
@Override
public Boolean checkValid(String userId, String idCard) {
String value = redisTemplate.opsForValue().get(getSmsKey(userId, idCard));
if (!StringUtils.isEmpty(value)) {
return true;
}
return false;
}
private String getSmsKey(String userId, String idCard) {
return REDIS_SMS_KEY + userId + ":" + 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: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;
}
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