admin 1 yıl önce
ebeveyn
işleme
7f51df69eb
27 değiştirilmiş dosya ile 412 ekleme ve 309 silme
  1. 2 1
      .idea/encodings.xml
  2. BIN
      xsky-service/lib/DmJdbcDriver18.jar
  3. BIN
      xsky-service/lib/junit-4.10.jar
  4. BIN
      xsky-service/lib/mybatis-3.5.0.jar
  5. BIN
      xsky-service/lib/mybatis-plus-2.0.1.jar
  6. BIN
      xsky-service/lib/mybatis-plus-3.1.0.jar
  7. BIN
      xsky-service/lib/mybatis-plus-annotation-3.1.0.jar
  8. BIN
      xsky-service/lib/mybatis-plus-core-3.1.0.jar
  9. BIN
      xsky-service/lib/mybatis-plus-extension-3.1.0.jar
  10. 18 29
      xsky-service/pom.xml
  11. 25 22
      xsky-service/src/main/java/com/itheima/file/controller/ApiController.java
  12. 9 0
      xsky-service/src/main/java/com/itheima/file/mapper/FatherSonMapper.java
  13. 10 0
      xsky-service/src/main/java/com/itheima/file/mapper/OrgMapper.java
  14. 9 0
      xsky-service/src/main/java/com/itheima/file/mapper/PersonMapper.java
  15. 32 0
      xsky-service/src/main/java/com/itheima/file/pojo/FatherSon.java
  16. 49 0
      xsky-service/src/main/java/com/itheima/file/pojo/Org.java
  17. 90 0
      xsky-service/src/main/java/com/itheima/file/pojo/Person.java
  18. 7 0
      xsky-service/src/main/java/com/itheima/file/service/FatherSonService.java
  19. 7 0
      xsky-service/src/main/java/com/itheima/file/service/OrgService.java
  20. 7 0
      xsky-service/src/main/java/com/itheima/file/service/PersonService.java
  21. 11 0
      xsky-service/src/main/java/com/itheima/file/service/impl/FatherSonServiceImpl.java
  22. 11 0
      xsky-service/src/main/java/com/itheima/file/service/impl/OrgServiceImpl.java
  23. 11 0
      xsky-service/src/main/java/com/itheima/file/service/impl/PersonServiceImpl.java
  24. 40 0
      xsky-service/src/main/java/com/itheima/file/util/HttpClientUtils.java
  25. 0 66
      xsky-service/src/main/java/com/itheima/file/util/PostMethodUtils.java
  26. 2 2
      xsky-service/src/main/resources/application.yml
  27. 72 189
      xsky-service/src/test/java/com/itheima/file/ApiTestData.java

+ 2 - 1
.idea/encodings.xml

@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="Encoding">
+  <component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
     <file url="file://$PROJECT_DIR$/file-starter/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/xsky-service/src/main/java" charset="UTF-8" />
+    <file url="PROJECT" charset="UTF-8" />
   </component>
 </project>

BIN
xsky-service/lib/DmJdbcDriver18.jar


BIN
xsky-service/lib/junit-4.10.jar


BIN
xsky-service/lib/mybatis-3.5.0.jar


BIN
xsky-service/lib/mybatis-plus-2.0.1.jar


BIN
xsky-service/lib/mybatis-plus-3.1.0.jar


BIN
xsky-service/lib/mybatis-plus-annotation-3.1.0.jar


BIN
xsky-service/lib/mybatis-plus-core-3.1.0.jar


BIN
xsky-service/lib/mybatis-plus-extension-3.1.0.jar


+ 18 - 29
xsky-service/pom.xml

@@ -35,6 +35,13 @@
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.5.3.1</version>
         </dependency>
+
+<!--        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus</artifactId>
+            <version>3.5.3.1</version>
+            <systemPath>${project.basedir}/lib/mybatis-plus-3.1.0.jar</systemPath>
+        </dependency>-->
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
@@ -47,21 +54,22 @@
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
+            <version>4.12</version>
         </dependency>
 
-        <!-- https://mvnrepository.com/artifact/com.dameng/DmJdbcDriver18 -->
-
-        <!--         docker load -i dm8_20220822_rev166351_x86_rh6_64_ctm.tar-->
-        <!--docker run -d -p 5236:5236 &#45;&#45;restart=always &#45;&#45;name dm8_single &#45;&#45;privileged=true -e PAGE_SIZE=16 \-->
-        <!-- -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e INSTANCE_NAME=dm8_single \-->
-        <!-- -v /data/dm8_01:/opt/dmdbms/data dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4-->
-
-        <!--docker logs -f dm8_01-->
-
-        <dependency>
+        <!--<dependency>
             <groupId>com.dameng</groupId>
             <artifactId>DmJdbcDriver18</artifactId>
             <version>8.1.3.140</version>
+        </dependency>-->
+
+        <!--添加数据库驱动安装包-->
+        <dependency>
+            <groupId>com.dameng</groupId>
+            <artifactId>Dm8JdbcDriver18</artifactId>
+            <version>8.1.1.193</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/DmJdbcDriver18.jar</systemPath>
         </dependency>
 
         <dependency>
@@ -112,24 +120,12 @@
             <scope>provided</scope> <!-- 如果你不是在OSGi环境中运行,可以省略这个依赖 -->
         </dependency>
 
-        <!-- 如果你需要处理HTTP/2,可以添加这个依赖(可选) -->
-<!--        <dependency>-->
-<!--            <groupId>org.apache.httpcomponents.httpcore-nio</groupId>-->
-<!--            <artifactId>httpcore-nio</artifactId>-->
-<!--            <version>4.4.14</version> &lt;!&ndash; 请检查并使用与httpclient兼容的版本 &ndash;&gt;-->
-<!--        </dependency>-->
-
         <!-- 如果你使用PoolingHttpClientConnectionManager,你可能还需要这个依赖 -->
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpcore</artifactId>
             <version>4.4.14</version> <!-- 请检查并使用与httpclient兼容的版本 -->
         </dependency>
-        <dependency>
-            <groupId>commons-httpclient</groupId>
-            <artifactId>commons-httpclient</artifactId>
-            <version>3.1</version>
-        </dependency>
 
         <dependency>
             <groupId>com.alibaba</groupId>
@@ -137,12 +133,5 @@
             <version>2.0.24</version>
         </dependency>
 
-        <!-- 如果你需要处理cookies,可以添加这个依赖(可选) -->
-<!--        <dependency>-->
-<!--            <groupId>org.apache.httpcomponents</groupId>-->
-<!--            <artifactId>httpclient-client</artifactId>-->
-<!--            <version>4.5.13</version> &lt;!&ndash; 请检查并使用与httpclient相同的版本 &ndash;&gt;-->
-<!--        </dependency>-->
-
     </dependencies>
 </project>

+ 25 - 22
xsky-service/src/main/java/com/itheima/file/controller/ApiController.java

@@ -1,42 +1,45 @@
 package com.itheima.file.controller;
 
+import com.alibaba.fastjson.JSONObject;
+import com.itheima.file.pojo.Org;
+import com.itheima.file.pojo.Person;
+import com.itheima.file.service.OrgService;
+import com.itheima.file.service.PersonService;
 import com.itheima.file.util.HTTPHelper;
-import dm.jdbc.filter.stat.json.JSONObject;
+import com.itheima.file.util.SslUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.hc.client5.http.auth.AuthScope;
+import org.apache.hc.client5.http.auth.UsernamePasswordCredentials;
+import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider;
+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;
 
 import java.util.Base64;
 import java.util.LinkedHashMap;
+import java.util.List;
 
 @Slf4j
 @RestController
 @RequestMapping("/api")
 public class ApiController {
 
-    @GetMapping("/test")
-    public String test(){
+    @Autowired
+    private OrgService orgService;
+    @Autowired
+    private PersonService personService;
 
-        JSONObject reqBodyObj = new JSONObject();
-        reqBodyObj.put("app_id", "hcmcloud");
-        reqBodyObj.put("table_name", "");
-        reqBodyObj.put("stringDate", "20210301");
-        reqBodyObj.put("condition", "1=1");
-        reqBodyObj.put("secretKey", "f3ac852124d2f991a3f63f2e33dae18b");
-
-        LinkedHashMap<String, String> header = new LinkedHashMap<String, String>();
-        header.put("username", "po_soap1");
-        header.put("password", "z123456789");
-        header.put("Authorization", "Basic "+ Base64.getUrlEncoder().encodeToString(("po_soap1" + ":" + "z123456789").getBytes()));
-        String postUrl = "https://podev.minmetals.com.cn:50001/RESTAdapter/BS_OA/BS_MDM/DeleteAssHrtree";
-        try {
-            String result = HTTPHelper.sendPOST(postUrl, reqBodyObj.toString(), header, "UTF-8");
-            System.out.println(result);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
+    @GetMapping("/org")
+    public List<Org> getOrgList(){
+        List<Org> list = orgService.list();
+        return list;
+    }
 
-        return "";
+    @GetMapping("/person")
+    public List<Person> getPersonList(){
+        List<Person> list = personService.list();
+        return list;
     }
+
 }

+ 9 - 0
xsky-service/src/main/java/com/itheima/file/mapper/FatherSonMapper.java

@@ -0,0 +1,9 @@
+package com.itheima.file.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.itheima.file.pojo.FatherSon;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface FatherSonMapper extends BaseMapper<FatherSon> {
+}

+ 10 - 0
xsky-service/src/main/java/com/itheima/file/mapper/OrgMapper.java

@@ -0,0 +1,10 @@
+package com.itheima.file.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.itheima.file.pojo.Org;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface OrgMapper extends BaseMapper<Org> {
+
+}

+ 9 - 0
xsky-service/src/main/java/com/itheima/file/mapper/PersonMapper.java

@@ -0,0 +1,9 @@
+package com.itheima.file.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.itheima.file.pojo.Person;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface PersonMapper extends BaseMapper<Person> {
+}

+ 32 - 0
xsky-service/src/main/java/com/itheima/file/pojo/FatherSon.java

@@ -0,0 +1,32 @@
+package com.itheima.file.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName(value="\"wukuang\".\"father_son\"")
+public class FatherSon {
+    @TableField(value = "OBJ_ID")
+    private String objid;
+    @TableField(value = "OTYPE")
+    private String otype;
+    @TableField(value = "SON_OBJ_ID")
+    private String sonObjid;
+    @TableField(value = "SONO_TYPE")
+    private String sonOtype;
+    @TableField(value = "BEGDA")
+    private String begda;
+    @TableField(value = "ENDDA")
+    private String endda;
+    @TableField(value = "ISCONTACTS")
+    private String iscontacts;
+    @TableField(value = "PRIOX")
+    private String priox;
+    @TableField(value = "RELAT")
+    private String relat;
+    @TableField(value = "ADDRESS_PROIX")
+    private String addressProix;
+    @TableField(value = "PROZT")
+    private String prozt;
+}

+ 49 - 0
xsky-service/src/main/java/com/itheima/file/pojo/Org.java

@@ -0,0 +1,49 @@
+package com.itheima.file.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName(value="\"wukuang\".\"org\"")
+public class Org {
+
+    @TableField(value = "ASG_ID")
+    private int asgId;
+    @TableField(value = "ASG_OBJ_ID")
+    private Long asgObjId;
+    @TableField(value = "ASG_LEVEL")
+    private int asgLevel;
+    @TableField(value = "ASG_PATH_CODE")
+    private String asgPathCode;
+    @TableField(value = "ASG_PATH_NAME")
+    private String asgPathName;
+    @TableField(value = "ASG_PATHNAME_CODE")
+    private String asgPathnameCode;
+    @TableField(value = "ASG_ORGAN_CODE")
+    private Long asgOrganCode;
+    @TableField(value = "ASG_ORGAN_NAME")
+    private String asgOrganName;
+    @TableField(value = "ASG_LEADFG")
+    private int asgLeadfg;
+    @TableField(value = "ASG_DATE")
+    private Long asgDate;
+    @TableField(value = "ASG_LEAD")
+    private int asgLead;
+    @TableField(value = "ASG_TYPE")
+    private String asgType;
+    @TableField(value = "ASG_PATHNAME_ALL")
+    private String asgPathnameAll;
+    @TableField(value = "ASG_CRTDATE")
+    private String asgCrtdate;
+    @TableField(value = "ASG_ORGANNAME_SHORT")
+    private String asgOrgannameShort;
+    @TableField(value = "ASG_ZZZLXBM")
+    private String asgZzzlxbm;
+    @TableField(value = "ASG_QYFZR")
+    private String asgQyfzr;
+    @TableField(value = "ASG_ZJYZT")
+    private String asgZjyzt;
+    @TableField(value = "ASG_PRIOX")
+    private String asgPriox;
+}

+ 90 - 0
xsky-service/src/main/java/com/itheima/file/pojo/Person.java

@@ -0,0 +1,90 @@
+package com.itheima.file.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName(value="\"wukuang\".\"person\"")
+public class Person {
+    @TableField(value = "ASO_ID")
+    private Long asoId;
+    @TableField(value = "ASO_OBJ_ID")
+    private Long asoObjId;
+    @TableField(value = "ASO_LEVEL")
+    private String asoLevel;
+    @TableField(value = "ASO_PATHCODE")
+    private String asoPathcode;
+    @TableField(value = "ASO_PATHNAME")
+    private String asoPathname;
+    @TableField(value = "ASO_ORGANCODE")
+    private String asoOrgancode;
+    @TableField(value = "ASO_PATHNAME_CODE")
+    private String asoPathnameCode;
+    @TableField(value = "ASO_ORGANNAME")
+    private String asoOrganname;
+    @TableField(value = "ASO_POSTCODE")
+    private String asoPostcode;
+    @TableField(value = "ASO_POSTNAME")
+    private String asoPostname;
+    @TableField(value = "ASO_USERCODE")
+    private String asoUsercode;
+    @TableField(value = "ASO_USERNAME")
+    private String asoUsername;
+    @TableField(value = "ASO_LEAD")
+    private String asoLead;
+    @TableField(value = "ASO_LEADCAP")
+    private String asoLeadcap;
+    @TableField(value = "ASO_LEADFG")
+    private String asoLeadfg;
+    @TableField(value = "ASO_DATE")
+    private String asoDate;
+    @TableField(value = "ASO_PATHNAME_ALL")
+    private String asoPathnameAll;
+    @TableField(value = "ASO_IDENTITY")
+    private String asoIdentity;
+    @TableField(value = "ASO_CRTDATE")
+    private String asoCrtdate;
+    @TableField(value = "ASO_PGTXT")
+    private String asoPgtxt;
+    @TableField(value = "ASO_PKTXT")
+    private String asoPktxt;
+    @TableField(value = "ASO_IMAGE")
+    private String asoImage;
+    @TableField(value = "ASO_RELAT")
+    private String asoRelat;
+    @TableField(value = "ASO_PRIOX")
+    private String asoPriox;
+
+    @TableField(value = "ASO_GESCH")
+    private int asoGesch;
+    @TableField(value = "ASO_GESCHNAME")
+    private String asoGeschname;
+    @TableField(value = "ASO_GBDAT")
+    private String asoGbdat;
+
+    @TableField(value = "ASO_PHONE")
+    private String asoPhone;
+    @TableField(value = "ASO_PERSG")
+    private String asoPersg;
+    @TableField(value = "ASO_PERSK")
+    private String asoPersk;
+    @TableField(value = "ASO_USACCNO")
+    private String asoUsaccno;
+    @TableField(value = "ASO_RACKY")
+    private String asoRacky;
+    @TableField(value = "ASO_RACKYX")
+    private String asoRackyx;
+
+    @TableField(value = "ASO_ZHRJG")
+    private String asoZhrjg;
+    @TableField(value = "ASO_STRJOB")
+    private String asoStrjob;
+    @TableField(value = "ASO_STRWK")
+    private String asoStrwk;
+    @TableField(value = "ASO_PCODE")
+    private String asoPcode;
+    @TableField(value = "ASO_PTEXT")
+    private String asoPtext;
+
+}

+ 7 - 0
xsky-service/src/main/java/com/itheima/file/service/FatherSonService.java

@@ -0,0 +1,7 @@
+package com.itheima.file.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.itheima.file.pojo.FatherSon;
+
+public interface FatherSonService extends IService<FatherSon> {
+}

+ 7 - 0
xsky-service/src/main/java/com/itheima/file/service/OrgService.java

@@ -0,0 +1,7 @@
+package com.itheima.file.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.itheima.file.pojo.Org;
+
+public interface OrgService extends IService<Org> {
+}

+ 7 - 0
xsky-service/src/main/java/com/itheima/file/service/PersonService.java

@@ -0,0 +1,7 @@
+package com.itheima.file.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.itheima.file.pojo.Person;
+
+public interface PersonService extends IService<Person> {
+}

+ 11 - 0
xsky-service/src/main/java/com/itheima/file/service/impl/FatherSonServiceImpl.java

@@ -0,0 +1,11 @@
+package com.itheima.file.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.itheima.file.mapper.FatherSonMapper;
+import com.itheima.file.pojo.FatherSon;
+import com.itheima.file.service.FatherSonService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class FatherSonServiceImpl extends ServiceImpl<FatherSonMapper, FatherSon> implements FatherSonService {
+}

+ 11 - 0
xsky-service/src/main/java/com/itheima/file/service/impl/OrgServiceImpl.java

@@ -0,0 +1,11 @@
+package com.itheima.file.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.itheima.file.mapper.OrgMapper;
+import com.itheima.file.pojo.Org;
+import com.itheima.file.service.OrgService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class OrgServiceImpl extends ServiceImpl<OrgMapper,Org> implements OrgService {
+}

+ 11 - 0
xsky-service/src/main/java/com/itheima/file/service/impl/PersonServiceImpl.java

@@ -0,0 +1,11 @@
+package com.itheima.file.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.itheima.file.mapper.PersonMapper;
+import com.itheima.file.pojo.Person;
+import com.itheima.file.service.PersonService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person> implements PersonService {
+}

+ 40 - 0
xsky-service/src/main/java/com/itheima/file/util/HttpClientUtils.java

@@ -0,0 +1,40 @@
+package com.itheima.file.util;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.hc.client5.http.auth.AuthScope;
+import org.apache.hc.client5.http.auth.UsernamePasswordCredentials;
+import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider;
+
+import java.util.Base64;
+import java.util.LinkedHashMap;
+
+public class HttpClientUtils {
+
+    public static JSONObject doPost(String postUrl, JSONObject reqBodyObj, String username, String password) {
+
+        final BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
+        credsProvider.setCredentials(
+                new AuthScope("httpbin.org", 80),
+                new UsernamePasswordCredentials(username, password.toCharArray()));
+
+        // 设置HTTP头部
+        LinkedHashMap<String, String> header = new LinkedHashMap<>();
+        // header.put("Authorization", auth);
+        header.put("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString((username + ":" + password).getBytes()));
+
+        // header.put("Authorization", baseAuth);
+        header.put("Content-Type", "application/json");
+        String string = reqBodyObj.toString();
+        // 发送请求(这里假设HTTPHelper.sendPOST方法支持自定义头部)
+        try {
+            SslUtils.ignoreSsl();
+            String result = HTTPHelper.sendPOST(postUrl, string, header, "UTF-8");
+            System.out.println(result);
+            // String 转 Map
+            JSONObject resultObj = JSONObject.parseObject(result);
+            return resultObj;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

+ 0 - 66
xsky-service/src/main/java/com/itheima/file/util/PostMethodUtils.java

@@ -1,66 +0,0 @@
-package com.itheima.file.util;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.methods.RequestEntity;
-import org.apache.commons.httpclient.methods.StringRequestEntity;
-
-import java.io.*;
-import java.nio.charset.Charset;
-import java.util.Base64;
-
-/**
- * TODO
- * 外部接口调用Post
- *
- * @author hejie
- * @date 2021/7/29 17:13
- */
-@Slf4j
-public class PostMethodUtils {
-
-    /**
-     * 发送HttpClient请求
-     *
-     * @param requestUrl
-     * @param params
-     * @return
-     */
-    public static String sendPost(String requestUrl, String params, String username, String password) {
-        InputStream inputStream = null;
-        try {
-            HttpClient httpClient = new HttpClient();
-            PostMethod postMethod = new PostMethod(requestUrl);
-            // 设置请求头  Content-Type
-            postMethod.setRequestHeader("Content-Type", "application/json");
-            // Base64加密方式认证方式下的basic auth HAIN460000:用户名    topicis123:密码
-            postMethod.setRequestHeader("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString((username + ":" + password).getBytes()));
-            RequestEntity requestEntity = new StringRequestEntity(params, "application/json", "UTF-8");
-            postMethod.setRequestEntity(requestEntity);
-            httpClient.executeMethod(postMethod);// 执行请求
-            inputStream = postMethod.getResponseBodyAsStream();// 获取返回的流
-            BufferedReader br = null;
-            StringBuffer buffer = new StringBuffer();
-            // 将返回的输入流转换成字符串
-            br = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8")));
-            String temp;
-            while ((temp = br.readLine()) != null) {
-                buffer.append(temp);
-            }
-            log.info("接口返回内容为:" + buffer);
-            return buffer.toString();
-        } catch (Exception e) {
-            log.info("请求异常" + e.getMessage());
-            throw new RuntimeException(e.getMessage());
-        } finally {
-            if (inputStream != null) {
-                try {
-                    inputStream.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-}

+ 2 - 2
xsky-service/src/main/resources/application.yml

@@ -1,7 +1,7 @@
 spring:
   datasource:
     driver-class-name: dm.jdbc.driver.DmDriver
-    url: jdbc:dm://10.2.147.94:5236/wukuang?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
+    url: jdbc:dm://10.2.147.94:5236 #?schema=wukuang #?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
     username: SYSDBA
     password: SYSDBA
 
@@ -15,7 +15,7 @@ server:
 mybatis-plus:
   mapper-locations: classpath*:mapper/*.xml
   #设置别名包扫描路径,通过该属性可以给包中的类注册别名
-  type-aliases-package: com.itheima.pojo
+  type-aliases-package: com.itheima.file.pojo
   configuration:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     map-underscore-to-camel-case: true

+ 72 - 189
xsky-service/src/test/java/com/itheima/file/ApiTestData.java

@@ -1,258 +1,141 @@
 package com.itheima.file;
 
 import com.alibaba.fastjson.JSONObject;
+import com.itheima.file.pojo.FatherSon;
+import com.itheima.file.pojo.Org;
+import com.itheima.file.pojo.Person;
+import com.itheima.file.service.FatherSonService;
+import com.itheima.file.service.OrgService;
+import com.itheima.file.service.PersonService;
 import com.itheima.file.util.HTTPHelper;
-import com.itheima.file.util.PostMethodUtils;
+import com.itheima.file.util.HttpClientUtils;
 import com.itheima.file.util.SslUtils;
 import org.apache.hc.client5.http.auth.AuthScope;
 import org.apache.hc.client5.http.auth.UsernamePasswordCredentials;
-import org.apache.hc.client5.http.classic.methods.HttpGet;
-import org.apache.hc.client5.http.classic.methods.HttpPost;
 import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider;
-import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
-import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
-import org.apache.hc.client5.http.impl.classic.HttpClients;
-import org.apache.hc.core5.http.io.entity.EntityUtils;
-import org.apache.hc.core5.http.io.entity.StringEntity;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
 
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
 import java.net.URISyntaxException;
-import java.nio.charset.StandardCharsets;
-import java.time.LocalDateTime;
 import java.util.Base64;
 import java.util.LinkedHashMap;
-import java.util.Map;
+import java.util.List;
 
-// @RunWith(SpringRunner.class)
-// @SpringBootTest
+@RunWith(SpringRunner.class)
+@SpringBootTest
 public class ApiTestData {
 
-    public static void main111(final String[] args) throws Exception {
-        // 忽略SSL证书验证的TrustManager
-        TrustManager[] trustAllCerts = new TrustManager[] {
-                new X509TrustManager() {
-                    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
-                        return null;
-                    }
-
-                    public void checkClientTrusted(
-                            java.security.cert.X509Certificate[] certs, String authType) {
-                    }
-
-                    public void checkServerTrusted(
-                            java.security.cert.X509Certificate[] certs, String authType) {
-                    }
-                }
-        };
-
-
-        // 创建请求体
+    @Autowired
+    private OrgService orgService;
+    @Autowired
+    private PersonService personService;
+    @Autowired
+    private FatherSonService fatherSonService;
+
+    @Test
+    public void testFSApi() {
+        String postUrl = "https://podev.minmetals.com.cn:50001/RESTAdapter/JTOA/getlist";
+        String username = "po_soap";
+        String password = "z12345678";
         JSONObject reqBodyObj = new JSONObject();
         reqBodyObj.put("app_id", "hcmcloud");
-        reqBodyObj.put("table_name", ""); // 确保这里有一个有效的值
+        reqBodyObj.put("table_name", "USER_ORG_RELATION");
         reqBodyObj.put("stringDate", "20210301");
         reqBodyObj.put("condition", "1=1");
-
-        // 设置Basic Authentication的凭证(用户名和密码)
-        String username = "po_soap1";
-        String password = "z123456789";
-
-        final BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
-        credsProvider.setCredentials(
-                new AuthScope("httpbin.org", 80),
-                new UsernamePasswordCredentials(username, password.toCharArray()));
-
-        // String baseAuth = getBaseAuth(username, password);
-
-        try (final CloseableHttpClient httpclient = HttpClients.custom()
-                .setDefaultCredentialsProvider(credsProvider)
-                .build()) {
-            // final HttpGet httpget = new HttpGet("http://httpbin.org/basic-auth/admin/123456");
-            SslUtils.ignoreSsl();
-            // D:\developer\jdk-17.0.10\lib\security
-            final HttpPost httpget = new HttpPost("https://podev.minmetals.com.cn:50001/RESTAdapter/BS_OA/BS_MDM/DeleteAssHrtree");
-            // final HttpGet httpget = new HttpGet("https://segmentfault.com/a/1190000042354971#item-9");
-
-            // 设置请求体
-            final StringEntity reqEntity = new StringEntity(reqBodyObj.toString(), StandardCharsets.UTF_8);
-            httpget.setEntity(reqEntity);
-            System.out.println("执行请求" + httpget.getMethod() + " " + httpget.getUri());
-            try (final CloseableHttpResponse response = httpclient.execute(httpget)) {
-                System.out.println("----------------------------------------");
-                System.out.println(response.getCode() + " " + response.getReasonPhrase());
-                System.out.println(EntityUtils.toString(response.getEntity()));
-            }
-        }
+        reqBodyObj.put("secretKey", "f3ac852124d2f991a3f63f2e33dae18b");
+        JSONObject jsonObject = HttpClientUtils.doPost(postUrl, reqBodyObj, username, password);
+        System.out.println(jsonObject);
+        List<FatherSon> list = (List<FatherSon>) jsonObject.get("data");
+        fatherSonService.saveBatch(list);
     }
 
-    /**
-     * 401
-     * @param args
-     * @throws Exception
-     */
-    public static void main4(String[] args) throws Exception {
+    @Test
+    public void testPersonApi() throws URISyntaxException {
         // 设置Basic Authentication的凭证(用户名和密码)
-        String username = "po_soap1";
-        String password = "z123456789";
+        String username = "po_soap";
+        String password = "z12345678";
         final BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
         credsProvider.setCredentials(
                 new AuthScope("httpbin.org", 80),
                 new UsernamePasswordCredentials(username, password.toCharArray()));
 
-        String baseAuth = getBaseAuth(username, password);
-        // 计算基本认证编码
-        // String auth = Base64.getEncoder().encodeToString(
-        //         ("po_soap1" + ":" + "z123456789").getBytes(StandardCharsets.UTF_8)
-        // );
-
         JSONObject reqBodyObj = new JSONObject();
         reqBodyObj.put("app_id", "hcmcloud");
         reqBodyObj.put("table_name", "");
-        reqBodyObj.put("stringDate", "20210301");
+        reqBodyObj.put("stringDate", "19000101");
         reqBodyObj.put("condition", "1=1");
         reqBodyObj.put("secretKey", "f3ac852124d2f991a3f63f2e33dae18b");
 
-        LinkedHashMap<String, String> header = new LinkedHashMap<String, String>();
-        // header.put("Authorization", "Basic " + credsProvider);
-        header.put("Authorization", baseAuth);
-        String postUrl = "https://podev.minmetals.com.cn:50001/RESTAdapter/BS_OA/BS_MDM/DeleteAssHrtree";
+        String postUrl = "https://podev.minmetals.com.cn:50001/RESTAdapter/BS_OA/BS_MDM/GetAssHrTreeObj";
+
+        // 设置HTTP头部
+        LinkedHashMap<String, String> header = new LinkedHashMap<>();
+        // header.put("Authorization", auth);
+        header.put("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString((username + ":" + password).getBytes()));
+
+        // header.put("Authorization", baseAuth);
+        header.put("Content-Type", "application/json");
+        String string = reqBodyObj.toString();
+        // 发送请求(这里假设HTTPHelper.sendPOST方法支持自定义头部)
         try {
             SslUtils.ignoreSsl();
-            String result = HTTPHelper.sendPOST(postUrl, reqBodyObj.toString(), header, "UTF-8");
+            String result = HTTPHelper.sendPOST(postUrl, string, header, "UTF-8");
             System.out.println(result);
+            // String 转 Map
+            JSONObject resultObj = JSONObject.parseObject(result);
+            List<Person> list = (List<Person>) resultObj.get("data");
+            System.out.println(list);
+            personService.saveBatch(list);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
+
     }
 
-    /**
-     * 响应401
-     * @param args
-     * @throws URISyntaxException
-     */
-    public static void main44(String[] args) throws URISyntaxException {
+    @Test
+    public void testOrgApi() throws URISyntaxException {
         // 设置Basic Authentication的凭证(用户名和密码)
-        String username = "po_soap1";
-        String password = "z123456789";
+        String username = "po_soap";
+        String password = "z12345678";
         final BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
         credsProvider.setCredentials(
                 new AuthScope("httpbin.org", 80),
                 new UsernamePasswordCredentials(username, password.toCharArray()));
 
-        String baseAuth = getBaseAuth(username, password);
-
         JSONObject reqBodyObj = new JSONObject();
         reqBodyObj.put("app_id", "hcmcloud");
         reqBodyObj.put("table_name", "");
-        reqBodyObj.put("stringDate", "20210301");
+        reqBodyObj.put("stringDate", "19000101");
         reqBodyObj.put("condition", "1=1");
         reqBodyObj.put("secretKey", "f3ac852124d2f991a3f63f2e33dae18b");
 
-        String postUrl = "https://podev.minmetals.com.cn:50001/RESTAdapter/BS_OA/BS_MDM/DeleteAssHrtree";
-
-        // 计算基本认证编码
- /*       String auth = "Basic " + Base64.getEncoder().encodeToString(
-                (username + ":" + password).getBytes(StandardCharsets.UTF_8)
-        );*/
+        String postUrl = "https://podev.minmetals.com.cn:50001/RESTAdapter/BS_OA/BS_MDM/GetAssHrTreeGxb";
 
         // 设置HTTP头部
         LinkedHashMap<String, String> header = new LinkedHashMap<>();
         // header.put("Authorization", auth);
-        header.put("Authorization", baseAuth);
-        header.put("Content-Type", "application/json");
+        header.put("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString((username + ":" + password).getBytes()));
 
+        // header.put("Authorization", baseAuth);
+        header.put("Content-Type", "application/json");
+        String string = reqBodyObj.toString();
         // 发送请求(这里假设HTTPHelper.sendPOST方法支持自定义头部)
         try {
             SslUtils.ignoreSsl();
-            String result = HTTPHelper.sendPOST(postUrl, reqBodyObj.toString(), header, "UTF-8");
+            String result = HTTPHelper.sendPOST(postUrl, string, header, "UTF-8");
             System.out.println(result);
+            // String 转 Map
+            JSONObject resultObj = JSONObject.parseObject(result);
+            List<Org> list = (List<Org>) resultObj.get("data");
+            System.out.println(list);
+            orgService.saveBatch(list);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
 
     }
 
-    public static String getBaseAuth(String userName, String password){
-        String auth = userName + ":" + password;
-        String base64Auth = cn.hutool.core.codec.Base64.encodeUrlSafe(auth.getBytes());
-        return  "Basic " + base64Auth;
-    }
-
-    public static void main(String[] args) {
-        JSONObject reqBodyObj = new JSONObject();
-        reqBodyObj.put("app_id", "hcmcloud");
-        reqBodyObj.put("table_name", "");
-        reqBodyObj.put("stringDate", "20210301");
-        reqBodyObj.put("condition", "1=1");
-        reqBodyObj.put("secretKey", "f3ac852124d2f991a3f63f2e33dae18b");
-        String string = reqBodyObj.toString();
-        String username = "po_soap1";
-        String password = "z123456789";
-        String postUrl = "https://podev.minmetals.com.cn:50001/RESTAdapter/BS_OA/BS_MDM/DeleteAssHrtree";
-        String s = PostMethodUtils.sendPost(postUrl, string, username, password);
-        System.out.println(s);
-    }
-
-    public static void main0(String[] args) throws Exception {
-        String contentType = "application/pdf";
-        JSONObject reqBodyObj = new JSONObject();
-        reqBodyObj.put("contentMd5", "contentMD5");
-        reqBodyObj.put("contentType", contentType);
-        reqBodyObj.put("convertToPDF", true);
-        reqBodyObj.put("fileName", "最终版授权声明.docx");
-        reqBodyObj.put("fileSize", "123");
-        // 请求Body体数据
-        String reqBodyData = reqBodyObj.toString();
-        // 对请求Body体内的数据计算ContentMD5
-        String contentMD5 = "ESignUtils.getBodyContentMD5(reqBodyData";
-        System.out.println("请求body数据:" + reqBodyData);
-        System.out.println("body的md5值:" + contentMD5);
-
-        // 构建待签名字符串
-        String method = "POST";
-        String accept = "*/*";
-        String contentType1 = "application/json; charset=UTF-8";
-        String date = "";
-        String headers = "";
-        String postUrl = "/v3/files/file-upload-url";
-
-        StringBuffer sb = new StringBuffer();
-        sb.append(method).append("\n").append(accept).append("\n").append(contentMD5).append("\n")
-                .append(contentType1).append("\n").append(date).append("\n");
-        if ("".equals(headers)) {
-            sb.append(headers).append(postUrl);
-        } else {
-            sb.append(headers).append("\n").append(postUrl);
-        }
-
-        // 构建参与请求签名计算的明文
-        // String plaintext = sb.toString();
-        // 计算请求签名值
-        String reqSignature = "ESignUtils.doSignatureBase64(plaintext, appSecret)";
-        System.out.println("计算请求签名值:" + reqSignature);
-
-        // 获取时间戳(精确到毫秒)
-        long timeStamp = System.currentTimeMillis();;
-
-        // 构建请求头
-        LinkedHashMap<String, String> header = new LinkedHashMap<String, String>();
-        header.put("X-Tsign-Open-App-Id", "appId");
-        header.put("X-Tsign-Open-Auth-Mode", "Signature");
-        header.put("X-Tsign-Open-Ca-Timestamp", String.valueOf(timeStamp));
-        header.put("Accept", accept);
-        header.put("Content-Type", contentType);
-        header.put("X-Tsign-Open-Ca-Signature", reqSignature);
-        header.put("Content-MD5", contentMD5);
-        System.out.println("header" + header);
-
-        String postAllUrl = "https://smlopenapi.esign.cn" + postUrl;
-        String result = HTTPHelper.sendPOST(postAllUrl, reqBodyData, header, "UTF-8");
-        JSONObject resultObj = JSONObject.parseObject(result);
-        // json转map
-        Map<String, Object> resultMap = (Map<String, Object>) JSONObject.toJavaObject(resultObj, Map.class);
-        System.out.println("请求返回信息: " + resultObj.toString());
-        System.out.println("请求返回信息: " + resultMap.toString());
-    }
-
 }