From 41c57542ef824f974ff7bc039e6daff24549d15b Mon Sep 17 00:00:00 2001 From: HIK\moubangkai <moubangkai@163.com> Date: Tue, 21 Jul 2020 17:34:28 +0800 Subject: [PATCH] :sparkles: 添加驾驶证图片查看权限验证 --- api/src/main/java/com/hikcreate/edl/pub/web/mobile/api/controller/DrivingLicenseController.java | 29 +++++++++++++++++------------ domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/DrivingLicenseService.java | 2 ++ domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/IBindService.java | 2 +- domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/BindServiceImpl.java | 2 +- domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/DrivingLicenseServiceImpl.java | 9 +++++++++ infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/IdCardReq.java | 15 --------------- infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/UserIdReq.java | 16 ---------------- 7 files changed, 30 insertions(+), 45 deletions(-) delete mode 100644 infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/IdCardReq.java delete mode 100644 infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/UserIdReq.java diff --git a/api/src/main/java/com/hikcreate/edl/pub/web/mobile/api/controller/DrivingLicenseController.java b/api/src/main/java/com/hikcreate/edl/pub/web/mobile/api/controller/DrivingLicenseController.java index 7014e7b..338b6b1 100644 --- a/api/src/main/java/com/hikcreate/edl/pub/web/mobile/api/controller/DrivingLicenseController.java +++ b/api/src/main/java/com/hikcreate/edl/pub/web/mobile/api/controller/DrivingLicenseController.java @@ -1,12 +1,14 @@ 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 { diff --git a/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/DrivingLicenseService.java b/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/DrivingLicenseService.java index 90b9c43..3f5aa23 100644 --- a/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/DrivingLicenseService.java +++ b/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/DrivingLicenseService.java @@ -16,4 +16,6 @@ public interface DrivingLicenseService { void validSmsCode(String userId, String smsCode); DrivingLicenseInfoRes getDrivingLicenseInfo(String userId); + + Boolean checkValid(String userId, String idCard); } diff --git a/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/IBindService.java b/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/IBindService.java index d4e004b..368f7ec 100644 --- a/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/IBindService.java +++ b/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/IBindService.java @@ -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); } diff --git a/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/BindServiceImpl.java b/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/BindServiceImpl.java index 6bfcafa..7dc1107 100644 --- a/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/BindServiceImpl.java +++ b/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/BindServiceImpl.java @@ -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); } diff --git a/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/DrivingLicenseServiceImpl.java b/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/DrivingLicenseServiceImpl.java index 379e2da..7a4b04e 100644 --- a/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/DrivingLicenseServiceImpl.java +++ b/domain/src/main/java/com/hikcreate/edl/pub/web/mobile/domain/impl/DrivingLicenseServiceImpl.java @@ -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; } diff --git a/infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/IdCardReq.java b/infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/IdCardReq.java deleted file mode 100644 index 31eeea3..0000000 --- a/infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/IdCardReq.java +++ /dev/null @@ -1,15 +0,0 @@ -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; -} diff --git a/infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/UserIdReq.java b/infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/UserIdReq.java deleted file mode 100644 index 22a4722..0000000 --- a/infra/src/main/java/com/hikcreate/edl/pub/web/mobile/infra/model/param/request/UserIdReq.java +++ /dev/null @@ -1,16 +0,0 @@ -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; -} -- libgit2 0.26.0