Bläddra i källkod

1:继承mybaties-plus
2:承保回调接口开发

wangming 2 år sedan
förälder
incheckning
eb11ba3204

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

@@ -13,4 +13,7 @@ public class ProcessBo {
     private String processId;
     private String appId;
     private String sign;
+
+
+    private String policyDlUrl;  //保函下载地址
 }

+ 39 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/opt/OptController.java

@@ -4,9 +4,12 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.json.JSONObject;
+import com.ruoyi.common.request.PayInfomBo;
 import com.ruoyi.common.request.ProcessInfoReq;
 import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.opt.domain.CompanyInfo;
@@ -31,6 +34,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.SortedMap;
+import java.util.TreeMap;
 
 /**
  * @Author : wangming
@@ -50,6 +55,9 @@ public class OptController {
     @Value("${processUrl}")
     private String processUrl;
 
+    @Value("${coverUrl}")
+    private String coverUrl;
+
 
     @Autowired
     private ISysInfoConfigService sysInfoConfigService;
@@ -121,8 +129,37 @@ public class OptController {
     @PostMapping("/cover_callback")
     public R coverTheCallback(@RequestBody CoverBo coverBo){
         try {
-            //
-            return R.ok();
+            //接到消息开始拆解参数
+            if (!ObjectUtils.allNotNull(coverBo)){
+                return R.paramNull("参数不可为空!");
+            }
+            //拿到参数开始入库修改
+            LambdaUpdateWrapper<ProcessInfo> updateWrapper = new UpdateWrapper<ProcessInfo>().lambda();
+            updateWrapper.eq(ProcessInfo::getProcessId, coverBo.getProcessId())
+                    .set(ProcessInfo::getPolicyDlUrl, coverBo.getPolicyDlUrl())
+                    .set(ProcessInfo::getProcessStsCd, coverBo.getStatus());
+            boolean update = processInfoService.update(null, updateWrapper);
+            //修改成功,去调www承保回调接口    组装参数
+            ProcessBo processBo = new ProcessBo();
+            processBo.setProcessId(coverBo.getProcessId());
+            processBo.setAppId(coverBo.getAppId());
+            processBo.setSign("uAQMdCTPJl48zDYZ6\\/BrpfsYaBAk6LY5YFBidLhQvGc=");
+            //查出来保单信息
+            LambdaQueryWrapper<ProcessInfo> queryWrapper = new QueryWrapper<ProcessInfo>().lambda().eq(ProcessInfo::getProcessId, coverBo.getProcessId());
+            ProcessInfo processInfo = processInfoService.getOne(queryWrapper);
+            processBo.setPolicyDlUrl(processInfo.getPolicyDlUrl());
+
+            String coverParam = JSONObject.valueAsStr(processBo);
+            String coverHttpUrl = testHttps + coverUrl;
+            String coverResult = HttpUtils.sendPost(coverHttpUrl, coverParam);
+            //拿到解析结果,进行解析
+            Map<String, Object> resultMap = JSON.parseObject(coverResult, Map.class);
+            String code = resultMap.get("code").toString();
+            if ("0000".equals(code)){
+                return R.ok();
+            } else {
+                return R.failwww("推送www消息失败!");
+            }
         } catch (Exception e) {
             e.printStackTrace();
             log.error("承保回调错误,请检查:" + coverBo.getProcessId());

+ 10 - 0
ruoyi-admin/src/main/resources/application.yml

@@ -25,6 +25,12 @@ checkUrl: /guaranteeJSONCtrl/JSONNotifications.do
 # www支付回调接口通知
 payUrl: /guaranteeJSONCtrl/JSONPayInfoInterface.do
 # www承保回调接口通知
+coverUrl: /guaranteeJSONCtrl/JSONCBInfoInterface.do
+#填充接口url
+templateUrl: https://www2.laikuaidian.cn/fdd/extsign.do?processId=
+
+#电子发票接口
+invoiceUrl: /guaranteeJSONCtrl/JSONFPInfoInterface.do
 
 
 # 开发环境配置
@@ -95,6 +101,10 @@ mybatis:
     # 加载全局的配置文件
     configLocation: classpath:mybatis/mybatis-config.xml
 
+# Mybatis-plus
+mybatis-plus:
+    mapper-locations: classpath*:mapper/**/*Mapper.xml
+    type-aliases-package: com.ruoyi.**.domain
 # PageHelper分页插件
 pagehelper: 
   helperDialect: mysql

+ 2 - 2
ruoyi-system/pom.xml

@@ -22,11 +22,11 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-common</artifactId>
         </dependency>
-        <dependency>
+       <!-- <dependency>
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>
             <version>2.2.0</version>
-        </dependency>
+        </dependency>-->
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/opt/domain/ProcessInfo.java

@@ -1,6 +1,9 @@
 package com.ruoyi.opt.domain;
 
 import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -13,11 +16,13 @@ import com.ruoyi.common.core.domain.BaseEntity;
  * @author chengpan
  * @date 2022-09-06
  */
+@TableName("t_process_info")
 public class ProcessInfo extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 
     /** 主键 */
+    @TableId
     private Long pId;
 
     /** 订单编号 */

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/opt/service/IProcessInfoService.java

@@ -12,7 +12,7 @@ import com.ruoyi.opt.domain.ProcessInfo;
  * @author chengpan
  * @date 2022-09-06
  */
-public interface IProcessInfoService
+public interface IProcessInfoService extends IService<ProcessInfo>
 {
     /**
      * 查询保函订单

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

@@ -6,6 +6,7 @@ import java.util.Map;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.json.JSONObject;
 import com.ruoyi.common.request.CheckInformBo;
@@ -37,7 +38,7 @@ import org.springframework.util.ObjectUtils;
 @Service
 @EnableTransactionManagement
 @Slf4j
-public class ProcessInfoServiceImpl implements IProcessInfoService 
+public class ProcessInfoServiceImpl extends ServiceImpl<ProcessInfoMapper, ProcessInfo> implements IProcessInfoService
 {
     @Autowired
     private ProcessInfoMapper processInfoMapper;
@@ -53,6 +54,9 @@ public class ProcessInfoServiceImpl implements IProcessInfoService
     //支付通知接口
     @Value("${payUrl}")
     private String payUrl;
+    //填充
+    @Value("${templateUrl}")
+    private String templateUrl;
 
     /**
      * 查询保函订单
@@ -98,8 +102,10 @@ public class ProcessInfoServiceImpl implements IProcessInfoService
      */
     @Override
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor=Exception.class)
-    public AjaxResult updateProcessInfo(ProcessInfo processInfo)
+    public AjaxResult updateProcessInfo(ProcessInfo processInfoParam)
     {
+        //先去查询一下订单信息
+        ProcessInfo processInfo = processInfoMapper.selectProcessInfoByPId(processInfoParam.getpId());
         try {
             String status = processInfo.getProcessStsCd();
             processInfo.setUpdateTime(DateUtils.getNowDate());
@@ -116,9 +122,10 @@ public class ProcessInfoServiceImpl implements IProcessInfoService
                 }
             } else if ("05".equals(processInfo.getProcessStsCd())){
                 try {
-                    byte[] doGet = HttpsUtil.doGet("https://www2.laikuaidian.cn/fdd/extsign.do?processId=" + processInfo.getProcessId() + "&bankId=ZLTX");
+                    byte[] doGet = HttpsUtil.doGet(templateUrl + processInfo.getProcessId() + "&bankId=ZLTX");
                     String url = doGet.toString();
-
+                    //存入processInfo库中
+                    processInfo.setPolicySignUrl(url);
                     String payResult = getPayInform(processInfo);
                     //解析json结果
                     Map<String, Object> resultMap = JSON.parseObject(payResult, Map.class);