Bladeren bron

1:修改订单请求接口

wangming 2 jaren geleden
bovenliggende
commit
0c6e345b04

+ 27 - 14
ruoyi-admin/src/main/java/com/ruoyi/web/controller/opt/OptController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.controller.opt;
 
+import com.alibaba.druid.support.json.JSONUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -8,10 +9,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.Rwww;
 import com.ruoyi.common.json.JSONObject;
 import com.ruoyi.common.request.PayInfomBo;
 import com.ruoyi.common.request.ProcessInfoReq;
 import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.common.utils.http.HttpsUtil;
 import com.ruoyi.opt.domain.CompanyInfo;
 import com.ruoyi.opt.domain.ProcessInfo;
 import com.ruoyi.opt.service.ICompanyInfoService;
@@ -55,8 +58,15 @@ public class OptController {
     @Value("${processUrl}")
     private String processUrl;
 
+    @Value("${zUrl}")
+    private String zeUrl;
+
     @Value("${coverUrl}")
     private String coverUrl;
+    @Value("${appId}")
+    private String appId;
+    @Value("${sign}")
+    private String sign;
 
 
     @Autowired
@@ -78,43 +88,46 @@ public class OptController {
     */
     @ResponseBody
     @PostMapping("/put_in_storage")
-    public R chargeOrderNotice(@RequestBody ProcessBo processBo){
+    public Rwww chargeOrderNotice(@RequestBody ProcessBo processBo){
         try {
             //先验证参数
             if (StringUtils.isEmpty(processBo.getProcessId()) || StringUtils.isEmpty(processBo.getAppId()) || StringUtils.isEmpty(processBo.getSign())){
                 //返回接收失败
-                return R.paramNull("参数不可为空!");
+                return Rwww.paramNull("参数不可为空!");
             }
             //参数确认没问题以后去请求www服务进行订单信息获取
             HashMap<String, String> process = new HashMap<>();
             process.put("processId", processBo.getProcessId());
-            process.put("appId", processBo.getAppId());
-            process.put("sign", processBo.getSign());
-            String string = JSONObject.valueAsStr(process);
+            process.put("appId", appId);
+            process.put("sign", sign);
+//            String string = JSONObject.valueAsStr(process);
+            String string = JSONUtils.toJSONString(process);
             String testProcessUrl = testHttps + processUrl;
             String prodProcessUrl = processUrl + processUrl;
-            String processResult = HttpUtils.sendPost(testProcessUrl, string);
+            String zUrl = zeUrl + processUrl;
+            String processResult = HttpUtils.JSONdoPost(zUrl, string);
             //拿到解析结果,进行解析
             Map<String, Object> resultMap = JSON.parseObject(processResult, Map.class);
+            String resultData = resultMap.get("data").toString();
             if (!"0".equals(resultMap.get("code"))){
-                ProcessInfoReq processInfoReq = JSON.parseObject(processResult, ProcessInfoReq.class);
-                if (StringUtils.isEmpty(processInfoReq.getProcessId())){
+                ProcessInfoReq processInfoReq = JSON.parseObject(resultData, ProcessInfoReq.class);
+                if (StringUtils.isNotEmpty(processInfoReq.getProcessId())){
                     //入本地企业信息库
                     companyInfoService.insertCompanyInfoByWww(processInfoReq);
                 } else {
                     log.info("订单数据为空,请求失败,请求id为:" + processBo.getProcessId());
-                    return R.failwww("订单数据为空,接收失败");
+                    return Rwww.failwww("aaa");
                 }
             } else {
                 log.info("订单数据为空,请求失败,请求id为:" + processBo.getProcessId());
-                return R.failwww("订单数据请求错误,接收失败");
+                return Rwww.failwww("订单数据请求错误,接收失败");
             }
         } catch (Exception e) {
             e.printStackTrace();
             log.error("订单接收出错:" + e.getLocalizedMessage());
-            return R.failwww("订单接收时程序出错");
+            return Rwww.failwww("订单接收时程序出错");
         }
-        return R.okwww();
+        return Rwww.okwww();
     }
 
 
@@ -146,8 +159,8 @@ public class OptController {
             //修改成功,去调www承保回调接口    组装参数
             ProcessBo processBo = new ProcessBo();
             processBo.setProcessId(coverBo.getProcessId());
-            processBo.setAppId(coverBo.getAppId());
-            processBo.setSign("uAQMdCTPJl48zDYZ6\\/BrpfsYaBAk6LY5YFBidLhQvGc=");
+            processBo.setAppId(appId);
+            processBo.setSign(sign);
             //查出来保单信息
             processBo.setPolicyDlUrl(coverBo.getPolicyDlUrl());
 

+ 8 - 1
ruoyi-admin/src/main/resources/application.yml

@@ -12,12 +12,15 @@ ruoyi:
   profile: D:/ruoyi/uploadPath
   # 获取ip地址开关
   addressEnabled: false
-
+appId: ZLTX370100
+sign: 4Ja5AFIAqnMC72G5Lvp4vcUwbnGKTp8g/htlGontuhQ=
 # 测试地址
 testHttps: https://www2.laikuaidian.cn
 #生产地址
 prodHttps: https://hezuo.cyc-fund.com.cn
 
+#泽斌本地
+zUrl: http://192.168.1.127:8182/
 # 请求订单信息的url
 processUrl: /guaranteeJSONCtrl/JSONQuerybidder.do
 # www审核通知接口url
@@ -91,6 +94,10 @@ spring:
     restart:
       # 热部署开关
       enabled: true
+  beaninfo:
+    ignore:
+  flyway:
+    ignore-future-migrations:
 
 # MyBatis
 mybatis:

+ 5 - 0
ruoyi-common/pom.xml

@@ -104,6 +104,11 @@
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.5</version>
+        </dependency>
 
     </dependencies>
 

+ 122 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/Rwww.java

@@ -0,0 +1,122 @@
+package com.ruoyi.common.core.domain;
+
+import java.io.Serializable;
+
+/**
+ * 响应信息主体
+ *
+ * @author ruoyi
+ */
+public class Rwww<T> implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 成功 */
+    public static final String SUCCESS = "0";
+
+    /** 成功 */
+    public static final String SUCCESS_WWW = "01";
+    /** 成功 */
+    public static final String FAIL_WWW = "02";
+    /** 失败 */
+    public static final String FAIL = "500";
+
+    private String code;
+
+    private String message;
+
+//    private T data;
+
+    public static <T> Rwww<T> ok()
+    {
+        return restResult(null, SUCCESS, "操作成功");
+    }
+
+    public static <T> Rwww<T> okwww()
+    {
+        return restResult(null, SUCCESS_WWW, "操作成功");
+    }
+
+    public static <T> Rwww<T> ok(T data)
+    {
+        return restResult(data, SUCCESS, "操作成功");
+    }
+
+    public static <T> Rwww<T> ok(T data, String message)
+    {
+        return restResult(data, SUCCESS, message);
+    }
+
+    public static <T> Rwww<T> fail()
+    {
+        return restResult(null, FAIL, "操作失败");
+    }
+
+    public static <T> Rwww<T> failwww(String message)
+    {
+        return restResult(null, FAIL_WWW, message);
+    }
+
+    public static <T> Rwww<T> fail(String message)
+    {
+        return restResult(null, FAIL, message);
+    }
+
+    public static <T> Rwww<T> fail(T data)
+    {
+        return restResult(data, FAIL, "操作失败");
+    }
+
+    public static <T> Rwww<T> fail(T data, String message)
+    {
+        return restResult(data, FAIL, message);
+    }
+    public static <T> Rwww<T> paramNull(String message)
+    {
+        return restResult(null, FAIL_WWW, message);
+    }
+
+    public static <T> Rwww<T> fail(String code, String message)
+    {
+        return restResult(null, code, message);
+    }
+
+    private static <T> Rwww<T> restResult(T data, String code, String message)
+    {
+        Rwww<T> apiResult = new Rwww<>();
+        apiResult.setCode(code);
+//        apiResult.setData(data);
+        apiResult.setMessage(message);
+        return apiResult;
+    }
+
+    public String getCode()
+    {
+        return code;
+    }
+
+    public void setCode(String code)
+    {
+        this.code = code;
+    }
+
+    public String getMessage()
+    {
+        return message;
+    }
+
+    public void setMessage(String msg)
+    {
+        this.message = msg;
+    }
+
+//    public T getData()
+//    {
+//        return data;
+//    }
+//
+//    public void setData(T data)
+//    {
+//        this.data = data;
+//    }
+}

+ 67 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java

@@ -17,6 +17,15 @@ import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLSession;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.util.EntityUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import com.ruoyi.common.constant.Constants;
@@ -271,4 +280,62 @@ public class HttpUtils
             return true;
         }
     }
+
+
+    public static String JSONdoPost(String url,String sendJson) {
+//     SkipHttpsUtil  skipHttpsUtil=new SkipHttpsUtil();
+        CloseableHttpClient httpClient = null;
+        CloseableHttpResponse httpResponse = null;
+        String result = "";
+        // 创建httpClient实例
+        //httpClient = HttpClients.createDefault();
+        httpClient =  (CloseableHttpClient)SkipHttpsUtil.wrapClient();
+        // 创建httpPost远程连接实例
+        HttpPost httpPost = new HttpPost(url);
+        // 配置请求参数实例
+        RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 设置连接主机服务超时时间
+                .setConnectionRequestTimeout(35000)// 设置连接请求超时时间
+                .setSocketTimeout(60000)// 设置读取数据连接超时时间
+                .build();
+        // 为httpPost实例设置配置
+        httpPost.setConfig(requestConfig);
+        // 设置请求头
+//        String md5reqs = DigestUtils.md5Hex(sendJson+appsecret).toLowerCase();
+        httpPost.addHeader("Content-Type", "application/json");
+//        httpPost.addHeader("signe", md5reqs);
+        // 封装post请求参数
+        httpPost.setEntity(new StringEntity(sendJson, "UTF-8"));
+        try {
+            // httpClient对象执行post请求,并返回响应参数对象
+            httpResponse = httpClient.execute(httpPost);
+            // 从响应对象中获取响应内容
+            HttpEntity entity = httpResponse.getEntity();
+//            result = EntityUtils.toString(entity, "UTF-8");
+            result = EntityUtils.toString(entity);
+//            result= AesUtil.decry(result);
+        } catch (ClientProtocolException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            if (null != httpResponse) {
+                try {
+                    httpResponse.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (null != httpClient) {
+                try {
+                    httpClient.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return result;
+    }
 }

+ 63 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/SkipHttpsUtil.java

@@ -0,0 +1,63 @@
+package com.ruoyi.common.utils.http;
+
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
+import org.apache.http.client.HttpClient;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+
+/**
+ * <p>
+ * ClassName: SkipHttpsUtil
+ * </p>
+ * <p>
+ * Description: httpclient跳过https验证
+ * </p>
+ * <p>
+ * Copyright: Copyright (c) 2019
+ * </p>
+ * <p>
+ * Company: service
+ * </p>
+ * @author: lc
+ * @CreateDate: 2020-08-24
+ */
+public class SkipHttpsUtil {
+//    private static Logger logger = Logger.getLogger(SkipHttpsUtil.class);
+    //绕过证书
+    public static HttpClient wrapClient() {
+        try {
+            SSLContext ctx = SSLContext.getInstance("TLS");
+            X509TrustManager tm = new X509TrustManager() {
+                public X509Certificate[] getAcceptedIssuers() {
+                    return null;
+                }
+ 
+                public void checkClientTrusted(X509Certificate[] arg0,
+                        String arg1) throws CertificateException {
+                }
+ 
+                public void checkServerTrusted(X509Certificate[] arg0,
+                        String arg1) throws CertificateException {
+                }
+            };
+            ctx.init(null, new TrustManager[] { tm }, null);
+            SSLConnectionSocketFactory ssf = new SSLConnectionSocketFactory(
+                    ctx, NoopHostnameVerifier.INSTANCE);
+            CloseableHttpClient httpclient = HttpClients.custom()
+                    .setSSLSocketFactory(ssf).build();
+            return httpclient;
+        } catch (Exception e) {
+            return HttpClients.createDefault();
+        }
+    }   
+    public static void main(String[] args) {
+
+    }
+}

+ 7 - 7
ruoyi-system/src/main/java/com/ruoyi/opt/service/impl/CompanyInfoServiceImpl.java

@@ -60,9 +60,9 @@ public class CompanyInfoServiceImpl implements ICompanyInfoService
                 companyInfo.setApplyTel(processInfoReq.getApplyTel());
                 companyInfo.setStatus("0");
                 companyInfo.setCreateBy(null);
-                companyInfo.setCreateTime(new Date("yyyy-MM-dd"));
+//                companyInfo.setCreateTime(new Date("yyyy-MM-dd"));
                 companyInfo.setUpdateBy(null);
-                companyInfo.setUpdateTime(new Date("yyyy-MM-dd"));
+//                companyInfo.setUpdateTime(new Date("yyyy-MM-dd"));
                 companyInfoMapper.insertCompanyInfo(companyInfo);
 
                 //开始入库项目信息
@@ -80,9 +80,9 @@ public class CompanyInfoServiceImpl implements ICompanyInfoService
                 projectInfo.setAreaCd(processInfoReq.getAreaCode());
                 projectInfo.setStatus("0");
                 projectInfo.setCreateBy(null);
-                projectInfo.setCreateTime(new Date("yyyy-MM-dd"));
+//                projectInfo.setCreateTime(new Date("yyyy-MM-dd"));
                 projectInfo.setUpdateBy(null);
-                projectInfo.setUpdateTime(new Date("yyyy-MM-dd"));
+//                projectInfo.setUpdateTime(new Date("yyyy-MM-dd"));
                 projectInfoMapper.insertProjectInfo(projectInfo);
 
                 //开始组装数据准备入库
@@ -96,14 +96,14 @@ public class CompanyInfoServiceImpl implements ICompanyInfoService
                 processInfo.seteInvoiceUrl(null);
                 processInfo.setProjectId(projectInfo.getProjectId());
                 processInfo.setCompanyId(companyInfo.getCompanyId());
-                processInfo.setExpireTime(Long.valueOf(processInfoReq.getExpireDate()));
-                processInfo.setApprovedTime(new Date("yyyy-MM-dd"));
+                processInfo.setExpireTime(processInfoReq.getExpireDate() == null ? null : Long.valueOf(processInfoReq.getExpireDate()));
+//                processInfo.setApprovedTime(new Date("yyyy-MM-dd"));
                 processInfo.setPostscript(null);
                 processInfo.setRejectReason(null);
                 processInfo.setApplyTime(DateUtil.stringToDate(processInfoReq.getApplyTime()));
                 processInfo.setCreateBy(null);
                 processInfo.setUpdateBy(null);
-                processInfo.setUpdateTime(new Date("yyyy-MM-dd"));
+//                processInfo.setUpdateTime(new Date("yyyy-MM-dd"));
                 processInfoMapper.insertProcessInfo(processInfo);
             }
         } catch (Exception e) {