Browse Source

1:修改订单请求接口,调通
2:添加订单请求接口白名单

wangming 2 years ago
parent
commit
669bc43640

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/demo/domain/ProcessBo.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.controller.demo.domain;
+
+import lombok.Data;
+
+/**
+ * @Author : wangming
+ * @CreateTime : 2022-09-07
+ * @Desc : TODO
+ */
+@Data
+public class ProcessBo {
+
+    private String processId;
+    private String appId;
+    private String sign;
+}

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

@@ -6,22 +6,27 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.json.JSONObject;
 import com.ruoyi.common.request.ProcessInfoReq;
-import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.opt.domain.CompanyInfo;
 import com.ruoyi.opt.service.ICompanyInfoService;
 import com.ruoyi.opt.service.IProcessInfoService;
 import com.ruoyi.opt.service.IProjectInfoService;
 import com.ruoyi.opt.service.ISysInfoConfigService;
+import com.ruoyi.web.controller.demo.domain.ProcessBo;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 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.ResponseBody;
 
 import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @Author : wangming
@@ -33,12 +38,12 @@ import java.util.HashMap;
 @Slf4j
 public class OptController {
 
-    @Value("testHttps")
+    @Value("${testHttps}")
     private String testHttps;
-    @Value("prodHttps")
+    @Value("${prodHttps}")
     private String prodHttps;
     //订单信息请求接口
-    @Value("processUrl")
+    @Value("${processUrl}")
     private String processUrl;
 
 
@@ -59,31 +64,39 @@ public class OptController {
     * @param : [processId 订单id]
     * @return : com.ruoyi.common.core.domain.AjaxResult
     */
+    @ResponseBody
     @PostMapping("/put_in_storage")
-    public R chargeOrderNotice(@Param("processId") String processId){
+    public R chargeOrderNotice(@RequestBody ProcessBo processBo){
         try {
             //先验证参数
-            if (StringUtils.isEmpty(processId)){
+            if (StringUtils.isEmpty(processBo.getProcessId()) || StringUtils.isEmpty(processBo.getAppId()) || StringUtils.isEmpty(processBo.getSign())){
                 //返回接收失败
                 return R.paramNull("参数不可为空!");
             }
             //参数确认没问题以后去请求www服务进行订单信息获取
             HashMap<String, String> process = new HashMap<>();
-            process.put("processId", processId);
+            process.put("processId", processBo.getProcessId());
+            process.put("appId", processBo.getAppId());
+            process.put("sign", processBo.getSign());
             String string = JSONObject.valueAsStr(process);
             String testProcessUrl = testHttps + processUrl;
             String prodProcessUrl = processUrl + processUrl;
             String processResult = HttpUtils.sendPost(testProcessUrl, string);
             //拿到解析结果,进行解析
-            ProcessInfoReq processInfoReq = JSON.parseObject(processResult, ProcessInfoReq.class);
-            if (StringUtils.isNotNull(processInfoReq)){
-                //入本地企业信息库
-                companyInfoService.insertCompanyInfoByWww(processInfoReq);
+            Map<String, Object> resultMap = JSON.parseObject(processResult, Map.class);
+            if (!"0".equals(resultMap.get("code"))){
+                ProcessInfoReq processInfoReq = JSON.parseObject(processResult, ProcessInfoReq.class);
+                if (StringUtils.isEmpty(processInfoReq.getProcessId())){
+                    //入本地企业信息库
+                    companyInfoService.insertCompanyInfoByWww(processInfoReq);
+                } else {
+                    log.info("订单数据为空,请求失败,请求id为:" + processBo.getProcessId());
+                    return R.failwww("订单数据为空,接收失败");
+                }
             } else {
-                log.info("订单数据为空,请求失败,请求id为:" + processId);
-                return R.failwww("订单数据为空,接收失败");
+                log.info("订单数据为空,请求失败,请求id为:" + processBo.getProcessId());
+                return R.failwww("订单数据请求错误,接收失败");
             }
-
         } catch (Exception e) {
             e.printStackTrace();
             log.error("订单接收出错:" + e.getLocalizedMessage());

+ 9 - 13
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java

@@ -12,20 +12,16 @@ public class R<T> implements Serializable
     private static final long serialVersionUID = 1L;
 
     /** 成功 */
-    public static final int SUCCESS = 0;
+    public static final String SUCCESS = "0";
 
     /** 成功 */
-    public static final int SUCCESS_WWW = 01;
+    public static final String SUCCESS_WWW = "01";
     /** 成功 */
-    public static final int FAIL_WWW = 02;
-
+    public static final String FAIL_WWW = "02";
     /** 失败 */
-    public static final int FAIL = 500;
-
-    /** 参数为空 */
-    public static final int PARAM_NULL = 401;
+    public static final String FAIL = "500";
 
-    private int code;
+    private String code;
 
     private String message;
 
@@ -80,12 +76,12 @@ public class R<T> implements Serializable
         return restResult(null, FAIL_WWW, msg);
     }
 
-    public static <T> R<T> fail(int code, String msg)
+    public static <T> R<T> fail(String code, String msg)
     {
         return restResult(null, code, msg);
     }
 
-    private static <T> R<T> restResult(T data, int code, String msg)
+    private static <T> R<T> restResult(T data, String code, String msg)
     {
         R<T> apiResult = new R<>();
         apiResult.setCode(code);
@@ -94,12 +90,12 @@ public class R<T> implements Serializable
         return apiResult;
     }
 
-    public int getCode()
+    public String getCode()
     {
         return code;
     }
 
-    public void setCode(int code)
+    public void setCode(String code)
     {
         this.code = code;
     }

+ 1 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java

@@ -287,6 +287,7 @@ public class ShiroConfig
         filterChainDefinitionMap.put("/ajax/**", "anon");
         filterChainDefinitionMap.put("/js/**", "anon");
         filterChainDefinitionMap.put("/ruoyi/**", "anon");
+        filterChainDefinitionMap.put("/process/**", "anon");
         filterChainDefinitionMap.put("/captcha/captchaImage**", "anon");
         // 退出 logout地址,shiro去清除session
         filterChainDefinitionMap.put("/logout", "logout");

+ 4 - 4
ruoyi-system/src/main/java/com/ruoyi/opt/service/impl/ProcessInfoServiceImpl.java

@@ -42,15 +42,15 @@ public class ProcessInfoServiceImpl implements IProcessInfoService
     private ProcessInfoMapper processInfoMapper;
     @Autowired
     private CompanyInfoMapper companyInfoMapper;
-    @Value("testHttps")
+    @Value("${testHttps}")
     private String testHttps;
-    @Value("prodHttps")
+    @Value("${prodHttps}")
     private String prodHttps;
     //审核通知接口
-    @Value("checkUrl")
+    @Value("${checkUrl}")
     private String checklUrl;
     //支付通知接口
-    @Value("payUrl")
+    @Value("${payUrl}")
     private String payUrl;
 
     /**