lyhzzz пре 5 дана
родитељ
комит
b1458bbd8c

+ 2 - 0
src/main/java/com/fdkankan/fusion/common/ResultCode.java

@@ -86,6 +86,8 @@ public enum ResultCode {
     FUSION_DOWN_ERROR(60043, "多元融合下载失败"),
     GET_CHENANUSER_ERROR(60044, "获取用户信息失败"),
 
+    SERVER_URL_ERROR(60045, "服务地址未配置"),
+
     ;
 
 

+ 20 - 10
src/main/java/com/fdkankan/fusion/controller/ChenanController.java

@@ -1,7 +1,9 @@
 package com.fdkankan.fusion.controller;
 
 
+import cn.hutool.core.net.URLDecoder;
 import com.alibaba.fastjson.JSONObject;
+import com.dtflys.forest.annotation.Post;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultData;
 import com.fdkankan.fusion.config.FusionConfig;
@@ -13,6 +15,7 @@ import com.fdkankan.fusion.httpClient.client.ChenanClient;
 import com.fdkankan.fusion.httpClient.client.FdKKClient;
 import com.fdkankan.fusion.httpClient.request.ManageLoginRequest;
 import com.fdkankan.fusion.httpClient.request.UserParam;
+import com.fdkankan.fusion.request.ChenAnParam;
 import com.fdkankan.fusion.service.ICaseService;
 import com.fdkankan.fusion.service.IJyUserService;
 import com.fdkankan.fusion.service.IUserService;
@@ -30,6 +33,7 @@ import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.net.URI;
+import java.nio.charset.Charset;
 import java.util.HashMap;
 
 
@@ -39,16 +43,22 @@ import java.util.HashMap;
 public class ChenanController {
     @Autowired
     ChenAnService chenAnService;
+    @Autowired
+    FusionConfig fusionConfig;
 
     /**
      * 辰安获取用户信息,并登录注册
      */
-    @GetMapping("/getUserInfo/{randomCode}/{caCaseId}")
-    public synchronized ResultData userInfo(@RequestParam(required = false,value = "randomCode") String randomCode,
-                               @RequestParam(required = false,value = "caCaseId") String caCaseId){
-
-        String clientIp = "http://192.168.0.125:1804";
-        HashMap<String, String> map = chenAnService.userAndCaseInfo(randomCode, caCaseId);
+    @PostMapping("/getUserInfo")
+    public synchronized ResultData userInfo(@RequestBody ChenAnParam param){
+        if(StringUtils.isBlank(param.getRandomCode() )|| StringUtils.isBlank(param.getCasesId())){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        String clientIp = fusionConfig.getServerUrl();
+        if(StringUtils.isBlank(clientIp)){
+            throw new BusinessException(ResultCode.SERVER_URL_ERROR);
+        }
+        HashMap<String, String> map = chenAnService.userAndCaseInfo(param.getRandomCode(), param.getCasesId());
         String redirectUrl = String.format("%s/mix3d/#/home/"+map.get("caseId")+"?token="+ map.get("token"), clientIp);
 
         return ResultData.ok(redirectUrl);
@@ -59,10 +69,10 @@ public class ChenanController {
     public ResponseEntity<Void> redirectWithCookieToken(@PathVariable String randomCode,@PathVariable String caCaseId,
             HttpServletRequest request, HttpServletResponse response) {
 
-        //String clientIp = request.getHeader("host");
-        String clientIp = "http://192.168.0.125:1804";
-
-        HashMap<String, String> map = chenAnService.userAndCaseInfo(randomCode, caCaseId);
+        String clientIp = fusionConfig.getServerUrl();
+        String decode1 = URLDecoder.decode(randomCode, Charset.defaultCharset());
+        String decode2 = URLDecoder.decode(caCaseId, Charset.defaultCharset());
+        HashMap<String, String> map = chenAnService.userAndCaseInfo(decode1, decode2);
         String redirectUrl = String.format("%s/mix3d/#/home/"+map.get("caseId")+"?token="+ map.get("token"), clientIp);
 
         Cookie tokenCookie = new Cookie("token", map.get("token"));

+ 9 - 0
src/main/java/com/fdkankan/fusion/request/ChenAnParam.java

@@ -0,0 +1,9 @@
+package com.fdkankan.fusion.request;
+
+import lombok.Data;
+
+@Data
+public class ChenAnParam {
+    private String randomCode;
+    private String casesId;
+}

+ 3 - 2
src/main/java/com/fdkankan/fusion/service/impl/ChenAnService.java

@@ -83,10 +83,11 @@ public class ChenAnService {
 
             JSONObject caseParam = new JSONObject();
             caseParam.put("casesId",caCaseId);
-            JSONObject caseInfo = chenanClient.getCaseInfo(caseParam);
-            if(caseInfo.getInteger("code")!=200){
+            JSONObject data2 = chenanClient.getCaseInfo(caseParam);
+            if(data2.getInteger("code")!=200){
                 throw new BusinessException(ResultCode.GET_CHENANUSER_ERROR);
             }
+            JSONObject caseInfo = data2.getJSONObject("data");
             String casesName = caseInfo.getString("casesName");
             String reportDate = caseInfo.getString("reportDate");  //"报案时间
             String happeningPlace = caseInfo.getString("happeningPlace"); //案发地点