xiaochan 10 months ago
parent
commit
f1fa12fe7f

+ 10 - 1
src/main/java/thyyxxk/webserver/controller/ca/CaController.java

@@ -7,6 +7,9 @@ import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.ca.CaReturn;
 import thyyxxk.webserver.entity.ca.CaSingBizSnReturnData;
 import thyyxxk.webserver.service.ca.CaServer;
+import thyyxxk.webserver.utils.ResultVoUtil;
+
+import java.util.List;
 
 @RestController
 @RequestMapping("/thyyca")
@@ -18,10 +21,16 @@ public class CaController {
         this.server = server;
     }
 
+    @PostMapping("/sendBatchByCode")
+    public ResultVo<List<CaReturn.CaData>> sendBatchByCode(@RequestBody CaServer.Send send) {
+        return ResultVoUtil.success(server.sendBatchByCode(send));
+    }
+
+
     @PostMapping("/sendByCode")
     @PassToken
     public ResultVo<CaReturn.CaData> sendByCode(@RequestBody CaServer.Send send) {
-        return server.sendByCode(send);
+        return ResultVoUtil.success(server.sendByCode(send));
     }
 
     @GetMapping("/getSignInfoByBizSn")

+ 7 - 1
src/main/java/thyyxxk/webserver/entity/ca/CaData.java

@@ -62,9 +62,15 @@ public class CaData {
         private String appPwd;
     }
 
+    @Data
+    public static class HBoardSign {
+        private String apiKey;
+        private String apiSecret;
+    }
+
     private MobileApp mobileApp;
     private SignAuthentication signAuthentication;
     private TimestampAuthentication timestampAuthentication;
+    private HBoardSign hBoardSign;
 
 }
-

+ 15 - 5
src/main/java/thyyxxk/webserver/entity/ca/CaReturn.java

@@ -1,22 +1,32 @@
 package thyyxxk.webserver.entity.ca;
 
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 @Data
 public class CaReturn {
 
+    private String ret;
+    private String msg;
+    private CaData data;
+
+    @EqualsAndHashCode(callSuper = true)
     @Data
-    public static class CaData {
+    public static class CaData extends EmrCaData {
         private Integer isTrust;
         private String cert;
         private String signAlg;
         private String signValue;
         private String certSn;
-        private String timeStamp;
     }
 
-    private String ret;
-    private String msg;
-    private CaData data;
+    @Data
+    public static class EmrCaData {
+        private String timeStamp;
+        private String bizSn;
+        private String signature;
+        private String name;
+    }
+    // 2191 THyy3456
 
 }

+ 35 - 4
src/main/java/thyyxxk/webserver/service/ca/CaServer.java

@@ -18,11 +18,15 @@ import thyyxxk.webserver.entity.ca.CaData;
 import thyyxxk.webserver.entity.ca.CaReturn;
 import thyyxxk.webserver.entity.ca.CaSendParams;
 import thyyxxk.webserver.entity.ca.CaSingBizSnReturnData;
+import thyyxxk.webserver.entity.login.UserInfo;
+import thyyxxk.webserver.service.redislike.RedisLikeService;
 import thyyxxk.webserver.utils.ResultVoUtil;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
 
 @Slf4j
 @Service
@@ -30,9 +34,11 @@ public class CaServer {
 
     private final CaData caData;
     private final String SUCCRSS = "success";
+    private final RedisLikeService redisLikeService;
 
-    public CaServer(CaData caData) {
+    public CaServer(CaData caData, RedisLikeService redisLikeService) {
         this.caData = caData;
+        this.redisLikeService = redisLikeService;
     }
 
     @EqualsAndHashCode(callSuper = true)
@@ -41,16 +47,28 @@ public class CaServer {
         private String id;
         private String msg;
         private String desc;
+        private Integer count = 1;
     }
 
-    public ResultVo<CaReturn.CaData> sendByCode(Send send) {
-        // {"ret":"success","msg":"success","data":{"isTrust":1}} 如果没有开免密就这样
+    public List<CaReturn.CaData> sendBatchByCode(Send send) {
+        List<CaReturn.CaData> returnValue = new ArrayList<>();
+        for (int i = 0; i < send.getCount(); i++) {
+            returnValue.add(sendByCode(send));
+        }
+        return returnValue;
+    }
+
+    public CaReturn.CaData sendByCode(Send send) {
+        UserInfo userInfoByCode = redisLikeService.getUserInfoByCode(send.getId());
         send.setBizSn(IdUtil.simpleUUID());
         CaReturn push = push(send);
         signatureAuthentication(send, push);
         String timeStamp = generateTimestampByInData(send);
         push.getData().setTimeStamp(timeStamp);
-        return ResultVoUtil.success(push.getData());
+        push.getData().setBizSn(send.getBizSn());
+        push.getData().setSignature("http://172.16.32.167:8077/doctorSignatureImage/" + send.getId() + ".png");
+        push.getData().setName(userInfoByCode.getName());
+        return push.getData();
     }
 
     /**
@@ -67,6 +85,7 @@ public class CaServer {
             send.setAppId(app.getAppId());
             send.setMsg(CaUtils.GetSHA256FormString(send.getMsg()));
             send.setMsgWrapper("0");
+            send.setUrl(URLEncoder.encode("http://127.0.0.1/", "UTF-8"));
             send.setMode("redirect");
             send.setSign(CaUtils.getSign(app.getPrivatekey(), send.getMsg()));
             String execute = post.addBody(send).execute(String.class);
@@ -89,6 +108,12 @@ public class CaServer {
         }
     }
 
+    /**
+     * 认证签名
+     *
+     * @param send
+     * @param caReturn
+     */
     private void signatureAuthentication(Send send, CaReturn caReturn) {
         CaData.SignAuthentication signData = caData.getSignAuthentication();
         CaWSDL caWSDL = new CaWSDL(signData.getUrl());
@@ -124,6 +149,12 @@ public class CaServer {
                 .replace("${SignData}", caReturn.getData().getSignValue());
     }
 
+    /**
+     * 认证时间戳并返回
+     *
+     * @param send 数据
+     * @return
+     */
     private String generateTimestampByInData(Send send) {
         String data = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
                 "<Root>\n" +

+ 3 - 0
src/main/resources/application-cytest.yml

@@ -189,4 +189,7 @@ thyy:
       url: http://103.36.136.173:7845/services/TimeStampServices
       app-code: ywxt
       app-pwd: 12345678
+    HBoard-sign:
+      api-key: 00000
+      api-secret: 00000000