Sfoglia il codice sorgente

开发E证通对接流程

frankeleyn 2 anni fa
parent
commit
4423826105

+ 34 - 0
src/main/java/com/ematou/wxbase/controller/EidController.java

@@ -0,0 +1,34 @@
+package com.ematou.wxbase.controller;
+
+import com.ematou.wxbase.common.web.R;
+import com.ematou.wxbase.service.EidService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * E证通业务 Controller
+ *
+ * @author frankeleyn
+ * @email lvjian@qhdswl.com
+ * @date 2023/2/18 16:58
+ */
+@RestController
+@RequestMapping("/eid")
+public class EidController {
+
+    @Autowired
+    private EidService eidService;
+
+    @GetMapping ("/getEidToken")
+    public R getEidToken() {
+        return eidService.getEidToken();
+    }
+
+    @GetMapping("/getEidResult")
+    public R getEidResult() {
+        return eidService.getEidResult();
+    }
+
+}

+ 1 - 1
src/main/java/com/ematou/wxbase/controller/EidTokenRecordController.java

@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @date 2023/2/16 17:40
  */
 @RestController
-@RequestMapping("/eid")
+@RequestMapping("/eid/token")
 public class EidTokenRecordController {
 
     @Autowired

+ 26 - 0
src/main/java/com/ematou/wxbase/mapper/MerchAppMapper.java

@@ -0,0 +1,26 @@
+package com.ematou.wxbase.mapper;
+
+import com.ematou.wxbase.entity.MerchApp;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 商户应用表
+ *
+ * @author frankeleyn
+ * @email lvjian@qhdswl.com
+ * @date 2023/2/18 17:30
+ */
+@Mapper
+public interface MerchAppMapper {
+
+    /**
+     * 根据条件查询商户应用
+     *
+     * @param merchApp
+     * @return
+     */
+    List<MerchApp> selectByCondition(MerchApp merchApp);
+
+}

+ 8 - 0
src/main/java/com/ematou/wxbase/mapper/MerchInfoMapper.java

@@ -21,4 +21,12 @@ public interface MerchInfoMapper {
      */
     int insert(MerchInfo merchInfo);
 
+    /**
+     * 根据条件查询商户信息
+     *
+     * @param merchInfo
+     * @return
+     */
+    MerchInfo selectOne(MerchInfo merchInfo);
+
 }

+ 24 - 0
src/main/java/com/ematou/wxbase/service/EidService.java

@@ -0,0 +1,24 @@
+package com.ematou.wxbase.service;
+
+import com.ematou.wxbase.common.web.R;
+
+/**
+ * E证通业务接口
+ *
+ * @author frankeleyn
+ * @email lvjian@qhdswl.com
+ * @date 2023/2/18 16:29
+ */
+public interface EidService {
+
+    /**
+     * 获取E证通 Token
+     * @return
+     */
+    R<String> getEidToken();
+
+    /**
+     * 获取E证通结果
+     */
+    R getEidResult();
+}

+ 77 - 0
src/main/java/com/ematou/wxbase/service/impl/EidServiceImpl.java

@@ -0,0 +1,77 @@
+package com.ematou.wxbase.service.impl;
+
+import com.ematou.wxbase.common.web.R;
+import com.ematou.wxbase.entity.MerchApp;
+import com.ematou.wxbase.entity.MerchInfo;
+import com.ematou.wxbase.exception.Assert;
+import com.ematou.wxbase.mapper.MerchAppMapper;
+import com.ematou.wxbase.mapper.MerchInfoMapper;
+import com.ematou.wxbase.service.EidService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * E证通业务实现类
+ *
+ * @author frankeleyn
+ * @email lvjian@qhdswl.com
+ * @date 2023/2/18 16:56
+ */
+@Service
+public class EidServiceImpl implements EidService {
+
+    @Resource
+    private MerchInfoMapper merchInfoMapper;
+
+    @Resource
+    private MerchAppMapper merchAppMapper;
+
+    /**
+     * 获取E证通 Token
+     *
+     * @return
+     */
+    @Override
+    public R<String> getEidToken() {
+        // 商户号
+        String merchSn = "mhbs990053989883052032";
+        // 应用编码
+        String appCode = "Kmall-cw";
+        // 用户姓名
+        String username = "张三";
+        // 待校验的用户身份证
+        String idCard = "430411196705226476";
+        // 校验商户
+        validateMerch(merchSn);
+        // 校验商户应用
+        validateMerchApp(merchSn, appCode);
+
+
+        return R.success(null);
+    }
+
+    private void validateMerchApp(String merchSn, String appCode) {
+        MerchApp query = new MerchApp();
+        query.setMerchSn(merchSn);
+        query.setAppCode(appCode);
+        List<MerchApp> merchApps = merchAppMapper.selectByCondition(query);
+        Assert.notTrue(merchApps.size() < 1, "商户应用不存在!");
+    }
+
+    private void validateMerch(String merchSn) {
+        MerchInfo query = new MerchInfo();
+        query.setMerchSn(merchSn);
+        MerchInfo merchInfo = merchInfoMapper.selectOne(query);
+        Assert.notNull(merchInfo, "商户信息不存在!");
+    }
+
+    /**
+     * 获取E证通结果
+     */
+    @Override
+    public R<?> getEidResult() {
+        return null;
+    }
+}

+ 0 - 2
src/main/java/com/ematou/wxbase/service/impl/EidTokenRecordServiceImpl.java

@@ -3,14 +3,12 @@ package com.ematou.wxbase.service.impl;
 import com.ematou.wxbase.entity.EidTokenRecord;
 import com.ematou.wxbase.mapper.EidTokenRecordMapper;
 import com.ematou.wxbase.service.EidTokenRecordService;
-import com.ematou.wxbase.service.TokenRecordService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.UUID;
 
 /**

+ 32 - 0
src/main/resources/mybatis/MerchAppMapper.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ematou.wxbase.mapper.MerchAppMapper">
+
+    <sql id="merchAppColumns">
+        t.merch_sn,
+        t.app_code,
+        t.app_name
+    </sql>
+
+    <!-- 根据条件查询商户应用信息 -->
+    <select id="selectByCondition" resultType="com.ematou.wxbase.entity.MerchApp">
+        SELECT
+            <include refid="merchAppColumns" />
+        FROM
+            merch_app t
+        <where>
+            <if test="merchSn != null and merchSn !='' ">
+                AND merch_sn = #{merchSn}
+            </if>
+            <if test="appCode != null and appCode !='' ">
+                AND app_code = #{appCode}
+            </if>
+            <if test="appName != null and appName !='' ">
+                AND app_name = #{appName}
+            </if>
+        </where>
+    </select>
+
+</mapper>

+ 22 - 1
src/main/resources/mybatis/MerchInfoMapper.xml

@@ -4,9 +4,30 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ematou.wxbase.mapper.MerchInfoMapper">
 
+    <sql id="merchInfoColumns">
+        t.merch_sn,
+        t.merch_name
+    </sql>
+
     <!-- 插入商户信息 -->
     <insert id="insert">
         INSERT INTO merch_info(merch_sn, merch_name) VALUES (#{merchSn}, #{merchName});
     </insert>
 
-</mapper>
+    <!-- 根据条件查询商户信息 -->
+    <select id="selectOne" resultType="com.ematou.wxbase.entity.MerchInfo">
+        SELECT
+            <include refid="merchInfoColumns" />
+        FROM
+            merch_info t
+        <where>
+            <if test="merchSn !=null and merchSn != '' ">
+                and merch_sn = #{merchSn}
+            </if>
+            <if test="merchName !=null and merchName != '' ">
+                and merch_name = #{merchName}
+            </if>
+        </where>
+    </select>
+
+</mapper>

+ 31 - 0
src/test/java/com/ematou/wxbase/MerchAppMapperTest.java

@@ -0,0 +1,31 @@
+package com.ematou.wxbase;
+
+import com.ematou.wxbase.entity.MerchApp;
+import com.ematou.wxbase.mapper.MerchAppMapper;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import javax.annotation.Resource;
+
+/**
+ * 商户应用 Mapper 测试类
+ *
+ * @author frankeleyn
+ * @email lvjian@qhdswl.com
+ * @date 2023/2/18 17:35
+ */
+@SpringBootTest
+public class MerchAppMapperTest {
+
+    @Resource
+    private MerchAppMapper mapper;
+
+    @Test
+    public void testSelect() {
+        MerchApp merchApp = new MerchApp();
+        merchApp.setMerchSn("mhbs990053989883052032");
+        merchApp.setAppCode("Kmall-cw");
+        System.out.println(mapper.selectByCondition(merchApp));
+    }
+
+}