package com.ruoyi.web.controller.yuncang.api.trade;
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.ruoyi.common.core.exception.ServiceException;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.web.controller.yuncang.utils.WdtClient;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.io.IOException;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@Slf4j
|
public class LogisticsSyncQuery {
|
|
/**
|
* 物流erp查询
|
* @param sid 卖家账号,接口请求的公共参数sid
|
* @param appkey 接口账号,接口请求的公共参数appkey
|
* @param appsecret 接口秘钥,接口请求的参数appsecret ,用于计算签名
|
* @param url 接口地址,接口请求的公共参数url
|
* @param shop_no 店铺编号
|
* @return
|
*/
|
public static JSONObject logisticsSyncQuery(String sid, String appkey, String appsecret, String url,
|
String shop_no) {
|
WdtClient client = new WdtClient(sid, appkey, appsecret, url);
|
Map<String, String> params = new HashMap<String, String>();
|
if (StringUtils.isNotEmpty(shop_no)){
|
params.put("shop_no", shop_no);
|
}
|
// params.put("is_part_sync_able", "0");
|
params.put("limit", "100");
|
try {
|
String response = client.execute("logistics_sync_query.php", params);
|
log.info("物流erp查询结果:{}", response);
|
JSONObject jsonObject = JSONObject.parseObject(response);
|
if(jsonObject.getInteger("code") == 0){
|
return jsonObject;
|
}else{
|
log.info("物流erp查询失败");
|
throw new ServiceException(jsonObject.getString("message"));
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
public static void main(String[] args) {
|
WdtClient client = new WdtClient("apidevnew2", "hytycw02-test", "c7ae51196", "https://sandbox.wangdian.cn/openapi2/");
|
Map<String, String> params = new HashMap<String, String>();
|
// params.put("shop_no", "hytycw02-test");
|
params.put("is_part_sync_able", "0");
|
params.put("limit", "100");
|
try {
|
String response = client.execute("logistics_sync_query.php", params);
|
System.err.println(response);
|
JSONObject jsonObject = JSONObject.parseObject(response);
|
if(Objects.nonNull(jsonObject)){
|
JSONArray trades = jsonObject.getJSONArray("trades");
|
Map<String, String> map = new HashMap<>();
|
List<String> tidList = new ArrayList<>();
|
List<Map<String, Object>> logistics_list = new ArrayList<>();
|
for (int i = 0; i < trades.size(); i++) {
|
JSONObject trade_order = JSONObject.parseObject(JSONObject.toJSONString(trades.get(i)));
|
String rec_id = trade_order.getString("rec_id"); // 主键,用于logistics_sync_ack回写状态
|
String tid = trade_order.getString("tid"); // 原始单号
|
String logistics_no = trade_order.getString("logistics_no"); // 物流单号
|
String logistics_name = trade_order.getString("logistics_name"); // 物流名称
|
map.put(tid, logistics_no);
|
tidList.add(tid);
|
Map<String, Object> logistics_1 = new HashMap<>();
|
logistics_1.put("rec_id", rec_id);
|
logistics_1.put("status", 0);
|
logistics_1.put("message", "同步成功");
|
logistics_list.add(logistics_1);
|
}
|
|
System.err.println(map);
|
|
JSONObject logisticsSyncAck = LogisticsSyncAck.logisticsSyncAck("apidevnew2", "hytycw02-test", "c7ae51196", "https://sandbox.wangdian.cn/openapi2/", logistics_list);
|
System.err.println(logisticsSyncAck);
|
}
|
} catch (IOException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
}
|
|
}
|