BankNotarizeController.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. package me.zhengjie.application.bank.controller;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import lombok.RequiredArgsConstructor;
  5. import lombok.extern.slf4j.Slf4j;
  6. import me.zhengjie.annotation.rest.AnonymousPostMapping;
  7. import me.zhengjie.application.bank.service.BankNotarizeService;
  8. import me.zhengjie.application.bank.service.UserAXQInfoService;
  9. import me.zhengjie.base.ResponseDTO;
  10. import me.zhengjie.base.ResultCode;
  11. import me.zhengjie.base.config.TencentHumanFaceVerify;
  12. import me.zhengjie.base.util.FileUploadUtil;
  13. import me.zhengjie.base.util.UUIDGenerator;
  14. import me.zhengjie.base.util.tencent.h5face.SdkTest;
  15. import me.zhengjie.dao.mybatis.OrderFileRepository;
  16. import me.zhengjie.dao.mybatis.entity.OrderFileEntity;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.springframework.validation.annotation.Validated;
  19. import org.springframework.web.bind.annotation.RequestBody;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RestController;
  22. @Validated
  23. @RestController
  24. @RequestMapping("${fqgz.bank.app.url-prefix}")
  25. @Slf4j
  26. @RequiredArgsConstructor
  27. public class BankNotarizeController {
  28. private final OrderFileRepository orderFileRepository;
  29. private final UserAXQInfoService userAXQInfoService;
  30. private final BankNotarizeService bankNotarizeService;
  31. private final TencentHumanFaceVerify faceVerify;
  32. /**
  33. * 获取签名公证书URL
  34. *
  35. * @param json
  36. * @return
  37. * @throws Exception
  38. */
  39. @RequestMapping("/getNotarization")
  40. public ResponseDTO<?> getNotarization(@RequestBody String json) throws Exception {
  41. JSONObject jsonObj = JSONObject.parseObject(json);
  42. String businessNo = jsonObj.getString("businessNo");
  43. if (StringUtils.isEmpty(businessNo)) {
  44. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  45. }
  46. OrderFileEntity orderFile = orderFileRepository.getOrderNotarization(businessNo);
  47. // 下载到指定的目录
  48. String filePath = "tmp/" + UUIDGenerator.uuid() + ".pdf";
  49. return ResponseDTO.success(FileUploadUtil.getCustomUrl(orderFile.getSignedPdfUrl(),filePath));
  50. }
  51. @RequestMapping("/axqRegister")
  52. public ResponseDTO<?> axqRegister(@RequestBody String json) {
  53. JSONObject jsonObj = JSONObject.parseObject(json);
  54. String idCard = jsonObj.getString("idCard");
  55. String phone = jsonObj.getString("phone");
  56. String name = jsonObj.getString("name");
  57. if (StringUtils.isEmpty(idCard) || StringUtils.isEmpty(phone) || StringUtils.isEmpty(name)) {
  58. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  59. }
  60. return userAXQInfoService.registAXQUser(idCard, phone, name);
  61. }
  62. // 人脸核身
  63. @RequestMapping("/order/getFaceId")
  64. public ResponseDTO<?> getFaceId(@RequestBody String json) throws Exception {
  65. JSONObject jsonObj = JSONObject.parseObject(json);
  66. String userName = jsonObj.getString("userName");
  67. String idCard = jsonObj.getString("idCard");
  68. if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(idCard)) {
  69. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  70. }
  71. JSONObject str = SdkTest.getFaceId(faceVerify.getBankWebankAppId(), faceVerify.getBankSecret(),
  72. faceVerify.getBankKeyLicence(), userName, idCard, idCard);
  73. return ResponseDTO.success(str);
  74. }
  75. @AnonymousPostMapping("/video/call")
  76. public ResponseDTO<?> videoCall(@RequestBody String json) {
  77. return bankNotarizeService.videoCall(json);
  78. }
  79. @RequestMapping("/order/pdf")
  80. public ResponseDTO<?> getOrderPDF(@RequestBody String json) {
  81. JSONObject jsonObj = JSONObject.parseObject(json);
  82. String businessNo = jsonObj.getString("businessNo");
  83. if (StringUtils.isEmpty(businessNo)) {
  84. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  85. }
  86. ResponseDTO<?> order = bankNotarizeService.getOrderPDF(businessNo);
  87. return order;
  88. }
  89. @AnonymousPostMapping("/order/note")
  90. public ResponseDTO<?> note(@RequestBody String json) {
  91. JSONObject jsonObj = JSONObject.parseObject(json);
  92. String businessNo = jsonObj.getString("businessNo");
  93. if (StringUtils.isEmpty(businessNo)) {
  94. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  95. }
  96. //
  97. OrderFileEntity orderFile = orderFileRepository.getOrderNote(businessNo);
  98. // pdf的地址预览
  99. String noteUrl = FileUploadUtil.getPreviewUrl(orderFile.getHtmlUrl());
  100. return ResponseDTO.success(noteUrl);
  101. }
  102. @RequestMapping("/sendAuthMessage")
  103. public ResponseDTO<?> sendAuthMessage(@RequestBody String json) {
  104. JSONObject jsonObj = JSONObject.parseObject(json);
  105. String idCard = jsonObj.getString("idCard");
  106. if (StringUtils.isEmpty(idCard)) {
  107. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  108. }
  109. return userAXQInfoService.sendAuthMessage(idCard);
  110. }
  111. @RequestMapping("/verifyAuthMessage")
  112. public ResponseDTO<?> verifyAuthMessage(@RequestBody String json) {
  113. JSONObject jsonObj = JSONObject.parseObject(json);
  114. String idCard = jsonObj.getString("idCard");
  115. String checkCode = jsonObj.getString("checkCode");
  116. if (StringUtils.isEmpty(idCard) || StringUtils.isEmpty(checkCode)) {
  117. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  118. }
  119. return userAXQInfoService.verifyAuthMessage(idCard, checkCode);
  120. }
  121. @RequestMapping("/getAuthStatus")
  122. public ResponseDTO<?> getAuthStatus(@RequestBody String json) {
  123. JSONObject jsonObj = JSONObject.parseObject(json);
  124. String idCard = jsonObj.getString("idCard");
  125. if (StringUtils.isEmpty(idCard)) {
  126. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  127. }
  128. return userAXQInfoService.getAuthStatus(idCard);
  129. }
  130. @AnonymousPostMapping("/uploadSeal")
  131. public ResponseDTO<?> uploadSeal(@RequestBody String json) {
  132. JSONObject jsonObj = JSONObject.parseObject(json);
  133. String businessNo = jsonObj.getString("businessNo");
  134. JSONArray jsonArray = jsonObj.getJSONArray("signInfo");
  135. if (StringUtils.isEmpty(businessNo) || jsonArray == null) {
  136. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  137. }
  138. return userAXQInfoService.uploadSeal(businessNo, jsonArray);
  139. }
  140. }