Explorar el Código

调用美云商品编码接口

sh4wmoo hace 3 años
padre
commit
716a3b8749

+ 8 - 8
src/main/java/com/dk/mnls_mp/generator/Generator.java

@@ -92,11 +92,11 @@ public class Generator {
         StrategyConfig strategy = new StrategyConfig();
         strategy.setTablePrefix("t_");                                             //表名前缀
         //设置要映射的表名,只需改这里即可,可以是一个数组,一次性生成多张表。
-        strategy.setInclude("t_iboss_data");
+        strategy.setInclude("t_iboss_goods_code");
         strategy.setNaming(NamingStrategy.underline_to_camel);                      //转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);                //字段下划线转驼峰
         strategy.setEntityLombokModel(true);                                        //是否使用lombok开启注解
-        strategy.setSuperEntityClass("com.dongke.base.pojo.PageInfo");        //实体基类
+//        strategy.setSuperEntityClass("com.dongke.base.pojo.PageInfo");        //实体基类
 //        strategy.setSuperControllerClass("com.hegii.scrm.common.controller.BaseController");        //实体基类
         strategy.setSuperServiceImplClass("com.dk.mnls_mp.infrastructure.base.MPBaseService");    //service基类
         strategy.setSuperMapperClass("com.dk.mnls_mp.infrastructure.base.MPBaseMapper");      //mapper基类
@@ -111,12 +111,12 @@ public class Generator {
 //        strategy.setLogicDeleteFieldName("flg_del");                         //逻辑删除字段,所有的查询都会自动带上value_flag=1这个条件。
 
         // 自动填充配置
-        TableFill createTime = new TableFill("op_create_time", FieldFill.INSERT);          //创建时间
-        TableFill updateTime = new TableFill("op_update_time", FieldFill.INSERT_UPDATE);   //更新时间
-        ArrayList<TableFill> tableFills = new ArrayList<>();
-        tableFills.add(createTime);
-        tableFills.add(updateTime);
-        strategy.setTableFillList(tableFills);
+//        TableFill createTime = new TableFill("op_create_time", FieldFill.INSERT);          //创建时间
+//        TableFill updateTime = new TableFill("op_update_time", FieldFill.INSERT_UPDATE);   //更新时间
+//        ArrayList<TableFill> tableFills = new ArrayList<>();
+//        tableFills.add(createTime);
+//        tableFills.add(updateTime);
+//        strategy.setTableFillList(tableFills);
         mpg.setStrategy(strategy);
 
         //5、 自定义模板配置 放置自己项目的 src/main/resources/mp_templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称

+ 4 - 0
src/main/java/com/dk/mnls_mp/infrastructure/config/Config.java

@@ -30,6 +30,8 @@ public class Config {
     private String fileUrl;
     @Value("${runType}")
     private String runType;
+    @Value("${my-goods-code-url}")
+    private String myGoodsCodeUrl;
 
     public String getUploadUrl() {
         return uploadUrl;
@@ -42,4 +44,6 @@ public class Config {
     public String getRunType() {
         return runType;
     }
+
+    public String getMyGoodsCodeUrl() {return myGoodsCodeUrl; }
 }

+ 41 - 1
src/main/java/com/dk/mnls_mp/infrastructure/config/ConfigStatic.java

@@ -10,12 +10,13 @@ import javax.annotation.PostConstruct;
 @Data
 public class ConfigStatic {
 
-    private static String hegiiMpUrl;
     /**
      * @author : sh4wmoo
      * @date : 2021-2-4 13:02
      * @desc : hegii-mp-url
      */
+    private static String hegiiMpUrl;
+
     @Value("${hegii-mp-url}")
     private String url;
 
@@ -28,4 +29,43 @@ public class ConfigStatic {
         hegiiMpUrl = this.url;
     }
 
+
+    /**
+     * @desc   : 美云clientId
+     * @author : 张潇木
+     * @date   : 2022/9/23 17:18
+     */
+    private static String myClientId;
+
+    @Value("${my-client-id}")
+    private String clientId;
+
+    public static String getClientId() {
+        return myClientId;
+    }
+
+    @PostConstruct
+    public void setClientId() {
+        myClientId = this.clientId;
+    }
+
+
+    /**
+     * @desc   : 美云clientSecret
+     * @author : 张潇木
+     * @date   : 2022/9/23 17:18
+     */
+    private static String myClientSecret;
+
+    @Value("${my-client-secret}")
+    private String clientSecret;
+
+    public static String getClientSecret() {return myClientSecret; }
+
+    @PostConstruct
+    public void setClientSecret() {
+        myClientSecret = this.clientSecret;
+    }
+
+
 }

+ 50 - 0
src/main/java/com/dk/mnls_mp/infrastructure/util/HttpHelper.java

@@ -2,11 +2,13 @@ package com.dk.mnls_mp.infrastructure.util;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.dk.mnls_mp.infrastructure.config.ConfigStatic;
 import com.dk.mnls_mp.infrastructure.config.HegiiTokenConfig;
 import com.dongke.base.exceptionHandler.ResponseCodeEnum;
 import com.dongke.base.exceptionHandler.ResponseResultUtil;
 import com.dongke.base.exceptionHandler.ResponseResultVO;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang.StringUtils;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.config.RequestConfig;
@@ -26,6 +28,7 @@ import java.io.*;
 import java.net.HttpURLConnection;
 import java.net.SocketTimeoutException;
 import java.net.URL;
+import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
@@ -328,4 +331,51 @@ public class HttpHelper {
         }
     }
 
+    /**
+     * @desc   : 调用iBOSS-webservice接口通过方法
+     * @author : 张潇木
+     * @date   : 2022-9-19 16:39
+     */
+    public static ResponseResultVO postMY(String urlInfo, Object param) {
+        HttpURLConnection connection;
+        InputStream is;
+        OutputStream os;
+        BufferedReader br;
+        String result = null;
+        try {
+            log.info("post_url-> " + urlInfo);
+            URL url = new URL(urlInfo);
+            connection = (HttpURLConnection) url.openConnection();
+            connection.setRequestMethod("POST");
+            connection.setConnectTimeout(1000 * 60 * 60 * 2);
+            connection.setReadTimeout(1000 * 60 * 60 * 2);
+            connection.setDoOutput(true);
+            connection.setDoInput(true);
+            connection.setRequestProperty("Content-Type", "application/json");
+            String auth = ConfigStatic.getClientId() + ":" +  ConfigStatic.getClientSecret();
+            connection.setRequestProperty("authorization", "Basic "+new String(Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")))));
+
+            os = connection.getOutputStream();
+            os.write(JSONObject.toJSON(param).toString().getBytes("UTF-8"));
+
+            if (connection.getResponseCode() == 200) {
+                is = connection.getInputStream();
+                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+
+                StringBuffer sbf = new StringBuffer();
+                String temp = null;
+                while ((temp = br.readLine()) != null) {
+                    sbf.append(temp);
+                    sbf.append("\r\n");
+                }
+                result = sbf.toString();
+                return ResponseResultUtil.success(result);
+            }
+            return ResponseResultUtil.error(connection.getResponseCode(), connection.getResponseMessage());
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            return ResponseResultUtil.error(-200, "调用美云接口异常,接口地址"+urlInfo);
+        }
+    }
+
 }

+ 48 - 1
src/main/java/com/dk/mnls_mp/service/pullDetail/PullOrderDetailService.java

@@ -126,7 +126,7 @@ public class PullOrderDetailService {
      * @date : 2021-5-8 13:44
      * @desc : 调用webservice服务通用方法
      */
-//    @Async("pullIbossData")
+    @Async("pullIbossData")
     public ResponseResultVO callWebService(Customer customer, PullOrderDetail pull, Constant.PullDataType type) {
 
         //定义iBOSS接口返回值实体
@@ -189,6 +189,53 @@ public class PullOrderDetailService {
         }
     }
 
+    public ResponseResultVO testSyncCode() {
+
+
+        //此处用try捕获异常,保证线程之间不会受事务影响
+        try {
+
+            //拼接url 区别于恒洁中台 直接调用iBOSS的webservice接口
+            String url = "http://192.168.1.104:50561" + WEBSERVICE_INTERFACE_POSTFIX +"DK_SaveGoods_Code_MP";
+
+            //整理参数
+            Map<String, Object> param = new HashMap<>();
+            param.put("accountCode", "HKZRMY_CS");
+            param.put("userCode","cw001");
+            param.put("goodsCode",Arrays.asList(new HashMap(){{
+                put("code","656565");
+                put("specification","200*200");
+                put("itemId",193001);
+                put("goodsName","动物卡通砖(M)/006/200*200/123");
+                put("onlyCode","006/200*200/123");
+                put("seriesName","动物卡通砖(M)");
+                put("package",1);
+                put("kindName","-");
+                put("varietyName","-");
+            }}));
+
+            log.info("=*=*=*=*=*=*=*=*=" + "参数:" + param + "=*=*=*=*=*=*=*=*=");
+            //调用接口
+            ResponseResultVO resultVO = HttpHelper.callIBOSSWebservice(url, param,null);
+
+            //成功后插入数据
+            if (ResponseCodeEnum.SUCCESS.getCode()==resultVO.getCode()) {
+                //XML转map
+                Map<String, Object> resJson = XmlUtil.xmlToJson(resultVO.getData().toString());
+                //map转DTO
+                IBOSSDTO IBOSSDTO = JSON.parseObject(resJson.get("string").toString(), IBOSSDTO.class);
+                log.info("IBOSSDTO=>{}",IBOSSDTO);
+            }
+
+            return ResponseResultUtil.success();
+        } catch (Exception e) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            log.error("testSyncCode", e);
+            return ResponseResultUtil.error("testSyncCode");
+        }
+    }
+
+
     /**
      * @desc   : 记录抓取数据履历
      * @author : 张潇木

+ 5 - 0
src/main/java/com/dk/mnls_mp/test/ApiTest.java

@@ -45,4 +45,9 @@ public class ApiTest {
         pullIbossDataService.pullIbossData(Constant.PullDataType.INVENTORY,new HashMap(){{put("flag",false);}});
     }
 
+    @Test
+    public void testSyncCode(){
+        pullOrderDetailService.testSyncCode();
+    }
+
 }

+ 5 - 1
src/main/resources/application-dev.yml

@@ -35,4 +35,8 @@ hegii-mp-url: https://hapcloudq.hegii.com
 
 uploadUrl: D:/upload/hegii/
 fileUrl: http://192.168.0.215:5000/
-runType: test
+runType: test
+
+my-client-id: csapiseeburger
+my-client-secret: 7d9aQKv0ehx4
+my-goods-code-url: https://ccs-test.monalisagroup.com.cn/ssc/intfcenter/api/cheauth/queryItemList

+ 5 - 1
src/main/resources/application-pro.yml

@@ -31,4 +31,8 @@ hegii-mp-url: https://hapcloudq.hegii.com
 
 uploadUrl: /data/java_project/hegii-mp/pro/upload/
 fileUrl: http://dkmp.hegii.com:9091/download/
-runType: pro
+runType: pro
+
+my-client-id: csapiseeburger
+my-client-secret: 7d9aQKv0ehx4
+my-goods-code-url: https://ccs-test.monalisagroup.com.cn/ssc/intfcenter/api/cheauth/queryItemList

+ 5 - 1
src/main/resources/application-test.yml

@@ -29,4 +29,8 @@ passwordText: HEGIITEST
 hegii-mp-url: https://hapcloudq.hegii.com
 uploadUrl: D:/upload/hegii/
 fileUrl: http://192.168.0.215:5000/
-runType: test
+runType: test
+
+my-client-id: csapiseeburger
+my-client-secret: 7d9aQKv0ehx4
+my-goods-code-url: https://ccs-test.monalisagroup.com.cn/ssc/intfcenter/api/cheauth/queryItemList