|
@@ -64,17 +64,23 @@ public class JDLogisticsService implements LogisticsService {
|
|
|
senderContact.setName(bizWaybillOrder.getSenderName());
|
|
senderContact.setName(bizWaybillOrder.getSenderName());
|
|
|
senderContact.setMobile(bizWaybillOrder.getSenderPhone());
|
|
senderContact.setMobile(bizWaybillOrder.getSenderPhone());
|
|
|
senderContact.setFullAddress(bizWaybillOrder.getSenderProvince() + bizWaybillOrder.getSenderCity() + bizWaybillOrder.getSenderCounty() + bizWaybillOrder.getSenderAddress());
|
|
senderContact.setFullAddress(bizWaybillOrder.getSenderProvince() + bizWaybillOrder.getSenderCity() + bizWaybillOrder.getSenderCounty() + bizWaybillOrder.getSenderAddress());
|
|
|
|
|
+// senderContact.setFullAddress("北京市大兴区亦庄经济开发区abc");
|
|
|
|
|
|
|
|
//收货人
|
|
//收货人
|
|
|
Contact receiverContact = new Contact();
|
|
Contact receiverContact = new Contact();
|
|
|
receiverContact.setName(bizWaybillOrder.getReceiverName());
|
|
receiverContact.setName(bizWaybillOrder.getReceiverName());
|
|
|
receiverContact.setMobile(bizWaybillOrder.getReceiverPhone());
|
|
receiverContact.setMobile(bizWaybillOrder.getReceiverPhone());
|
|
|
receiverContact.setFullAddress(bizWaybillOrder.getReceiverProvince() + bizWaybillOrder.getReceiverCity() + bizWaybillOrder.getReceiverCounty() + bizWaybillOrder.getReceiverAddress());
|
|
receiverContact.setFullAddress(bizWaybillOrder.getReceiverProvince() + bizWaybillOrder.getReceiverCity() + bizWaybillOrder.getReceiverCounty() + bizWaybillOrder.getReceiverAddress());
|
|
|
|
|
+// receiverContact.setFullAddress("河南省洛阳市西工区正大国际西区");
|
|
|
|
|
|
|
|
//订单信息
|
|
//订单信息
|
|
|
CommonCreateOrderRequest requestDTO = new CommonCreateOrderRequest();
|
|
CommonCreateOrderRequest requestDTO = new CommonCreateOrderRequest();
|
|
|
requestDTO.setOrderOrigin(getOrderOrigin(bizWaybillOrder.getProductCode()));
|
|
requestDTO.setOrderOrigin(getOrderOrigin(bizWaybillOrder.getProductCode()));
|
|
|
- requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
|
|
|
|
|
|
|
+ if (requestDTO.getOrderOrigin() == 1) {
|
|
|
|
|
+ requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ requestDTO.setBusinessUnitCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
|
|
|
|
|
+ }
|
|
|
requestDTO.setPickupStartTime(bizWaybillOrder.getSendStartTime().getTime());
|
|
requestDTO.setPickupStartTime(bizWaybillOrder.getSendStartTime().getTime());
|
|
|
requestDTO.setPickupEndTime(bizWaybillOrder.getSendEndTime().getTime());
|
|
requestDTO.setPickupEndTime(bizWaybillOrder.getSendEndTime().getTime());
|
|
|
|
|
|
|
@@ -128,17 +134,27 @@ public class JDLogisticsService implements LogisticsService {
|
|
|
|
|
|
|
|
//发货人
|
|
//发货人
|
|
|
com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact senderContact = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact();
|
|
com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact senderContact = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact();
|
|
|
|
|
+ senderContact.setName(bizWaybillOrder.getSenderName());
|
|
|
|
|
+ senderContact.setMobile(bizWaybillOrder.getSenderPhone());
|
|
|
senderContact.setFullAddress(bizWaybillOrder.getSenderProvince() + bizWaybillOrder.getSenderCity() + bizWaybillOrder.getSenderCounty() + bizWaybillOrder.getSenderAddress());
|
|
senderContact.setFullAddress(bizWaybillOrder.getSenderProvince() + bizWaybillOrder.getSenderCity() + bizWaybillOrder.getSenderCounty() + bizWaybillOrder.getSenderAddress());
|
|
|
|
|
+// senderContact.setFullAddress("北京市大兴区亦庄经济开发区abc");
|
|
|
|
|
|
|
|
//收货人
|
|
//收货人
|
|
|
com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact receiverContact = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact();
|
|
com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact receiverContact = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact();
|
|
|
|
|
+ receiverContact.setName(bizWaybillOrder.getReceiverName());
|
|
|
|
|
+ receiverContact.setMobile(bizWaybillOrder.getReceiverPhone());
|
|
|
receiverContact.setFullAddress(bizWaybillOrder.getReceiverProvince() + bizWaybillOrder.getReceiverCity() + bizWaybillOrder.getReceiverCounty() + bizWaybillOrder.getReceiverAddress());
|
|
receiverContact.setFullAddress(bizWaybillOrder.getReceiverProvince() + bizWaybillOrder.getReceiverCity() + bizWaybillOrder.getReceiverCounty() + bizWaybillOrder.getReceiverAddress());
|
|
|
|
|
+// receiverContact.setFullAddress("河南省洛阳市西工区正大国际西区");
|
|
|
|
|
|
|
|
//订单信息
|
|
//订单信息
|
|
|
com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCreateOrderRequest requestDTO = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCreateOrderRequest();
|
|
com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCreateOrderRequest requestDTO = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCreateOrderRequest();
|
|
|
requestDTO.setOrderId(bizWaybillOrder.getWaybillNo());
|
|
requestDTO.setOrderId(bizWaybillOrder.getWaybillNo());
|
|
|
requestDTO.setOrderOrigin(getOrderOrigin(bizWaybillOrder.getProductCode()));
|
|
requestDTO.setOrderOrigin(getOrderOrigin(bizWaybillOrder.getProductCode()));
|
|
|
- requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
|
|
|
|
|
|
|
+ if (requestDTO.getOrderOrigin() == 1) {
|
|
|
|
|
+ requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ requestDTO.setBusinessUnitCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
|
|
|
|
|
+ }
|
|
|
requestDTO.setSettleType(3);
|
|
requestDTO.setSettleType(3);
|
|
|
requestDTO.setPickupStartTime(bizWaybillOrder.getSendStartTime().getTime());
|
|
requestDTO.setPickupStartTime(bizWaybillOrder.getSendStartTime().getTime());
|
|
|
requestDTO.setPickupEndTime(bizWaybillOrder.getSendEndTime().getTime());
|
|
requestDTO.setPickupEndTime(bizWaybillOrder.getSendEndTime().getTime());
|
|
@@ -159,6 +175,12 @@ public class JDLogisticsService implements LogisticsService {
|
|
|
cargoInfo.setVolume(bizWaybillOrder.getGoodsVolume());
|
|
cargoInfo.setVolume(bizWaybillOrder.getGoodsVolume());
|
|
|
cargoes.add(cargoInfo);
|
|
cargoes.add(cargoInfo);
|
|
|
|
|
|
|
|
|
|
+ //扩展信息
|
|
|
|
|
+ Map<String, String> extendProps = new HashMap<>();
|
|
|
|
|
+ extendProps.put("autoSubscribe", "1");
|
|
|
|
|
+ extendProps.put("universalFeePush", "1");
|
|
|
|
|
+
|
|
|
|
|
+ requestDTO.setExtendProps(extendProps);
|
|
|
requestDTO.setCargoes(cargoes);
|
|
requestDTO.setCargoes(cargoes);
|
|
|
requestDTO.setProductsReq(productInfo);
|
|
requestDTO.setProductsReq(productInfo);
|
|
|
requestDTO.setReceiverContact(receiverContact);
|
|
requestDTO.setReceiverContact(receiverContact);
|
|
@@ -178,6 +200,7 @@ public class JDLogisticsService implements LogisticsService {
|
|
|
if (response.getResult().getCode() == 0) {
|
|
if (response.getResult().getCode() == 0) {
|
|
|
result.put("success", true);
|
|
result.put("success", true);
|
|
|
// 返回京东物流单号
|
|
// 返回京东物流单号
|
|
|
|
|
+ bizWaybillOrder.setExternalWaybillNo(response.getResult().getData().getWaybillCode());
|
|
|
result.put("data", response.getResult().getData().getWaybillCode());
|
|
result.put("data", response.getResult().getData().getWaybillCode());
|
|
|
result.put("msg", "");
|
|
result.put("msg", "");
|
|
|
} else {
|
|
} else {
|
|
@@ -208,16 +231,20 @@ public class JDLogisticsService implements LogisticsService {
|
|
|
EcapV1OrdersCancelLopRequest request = new EcapV1OrdersCancelLopRequest();
|
|
EcapV1OrdersCancelLopRequest request = new EcapV1OrdersCancelLopRequest();
|
|
|
|
|
|
|
|
//取消订单入参对象
|
|
//取消订单入参对象
|
|
|
- CommonOrderCancelRequest commonOrderCancelRequest = new CommonOrderCancelRequest();
|
|
|
|
|
- commonOrderCancelRequest.setWaybillCode(bizWaybillOrder.getExternalWaybillNo());
|
|
|
|
|
- commonOrderCancelRequest.setCustomerOrderId(bizWaybillOrder.getWaybillNo());
|
|
|
|
|
- commonOrderCancelRequest.setOrderOrigin(1);
|
|
|
|
|
- commonOrderCancelRequest.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
|
|
|
|
|
- commonOrderCancelRequest.setCancelReason("取消原因");
|
|
|
|
|
- commonOrderCancelRequest.setCancelReasonCode("1");
|
|
|
|
|
- commonOrderCancelRequest.setCancelType(1);
|
|
|
|
|
|
|
+ CommonOrderCancelRequest requestDTO = new CommonOrderCancelRequest();
|
|
|
|
|
+ requestDTO.setWaybillCode(bizWaybillOrder.getExternalWaybillNo());
|
|
|
|
|
+ requestDTO.setCustomerOrderId(bizWaybillOrder.getWaybillNo());
|
|
|
|
|
+ requestDTO.setOrderOrigin(getOrderOrigin(bizWaybillOrder.getProductCode()));
|
|
|
|
|
+ if (requestDTO.getOrderOrigin() == 1) {
|
|
|
|
|
+ requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ requestDTO.setBusinessUnitCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
|
|
|
|
|
+ }
|
|
|
|
|
+ requestDTO.setCancelReason(bizWaybillOrder.getCancelReason());
|
|
|
|
|
+ requestDTO.setCancelReasonCode("1");
|
|
|
|
|
+ requestDTO.setCancelType(1);
|
|
|
|
|
|
|
|
- request.setRequest(commonOrderCancelRequest);
|
|
|
|
|
|
|
+ request.setRequest(requestDTO);
|
|
|
|
|
|
|
|
//设置插件,必须的操作,不同类型的应用入参不同,请看入参注释,公共参数按顺序分别为AppKey、AppSecret、AccessToken
|
|
//设置插件,必须的操作,不同类型的应用入参不同,请看入参注释,公共参数按顺序分别为AppKey、AppSecret、AccessToken
|
|
|
//使用开放平台ISV/自研商家应用调用接口
|
|
//使用开放平台ISV/自研商家应用调用接口
|
|
@@ -345,16 +372,16 @@ public class JDLogisticsService implements LogisticsService {
|
|
|
static {
|
|
static {
|
|
|
// 订单来源为1的配置
|
|
// 订单来源为1的配置
|
|
|
Map<String, ProductConfig> origin1Config = new HashMap<>();
|
|
Map<String, ProductConfig> origin1Config = new HashMap<>();
|
|
|
- origin1Config.put("isPack", new ProductConfig("ed-a-0002", true));
|
|
|
|
|
- origin1Config.put("guaranteeMoney", new ProductConfig("ed-a-0010", true));
|
|
|
|
|
- origin1Config.put("isReceiptCollect", new ProductConfig("ed-a-0011", false));
|
|
|
|
|
|
|
+ origin1Config.put("isPack", new ProductConfig("ed-a-0011", false, true));
|
|
|
|
|
+ origin1Config.put("guaranteeMoney", new ProductConfig("ed-a-0002", true, false));
|
|
|
|
|
+ origin1Config.put("isReceiptCollect", new ProductConfig("ed-a-0010", true, true));
|
|
|
SERVICE_CONFIG_MAP.put(1, origin1Config);
|
|
SERVICE_CONFIG_MAP.put(1, origin1Config);
|
|
|
|
|
|
|
|
// 订单来源为4的配置
|
|
// 订单来源为4的配置
|
|
|
Map<String, ProductConfig> origin4Config = new HashMap<>();
|
|
Map<String, ProductConfig> origin4Config = new HashMap<>();
|
|
|
- origin4Config.put("isPack", new ProductConfig("fr-a-0002", true));
|
|
|
|
|
- origin4Config.put("guaranteeMoney", new ProductConfig("fr-a-0007", true));
|
|
|
|
|
- origin4Config.put("isReceiptCollect", new ProductConfig("fr-a-0005", false));
|
|
|
|
|
|
|
+ origin4Config.put("isPack", new ProductConfig("fr-a-0005", false, true));
|
|
|
|
|
+ origin4Config.put("guaranteeMoney", new ProductConfig("fr-a-0002", true, false));
|
|
|
|
|
+ origin4Config.put("isReceiptCollect", new ProductConfig("fr-a-0007", true, true));
|
|
|
SERVICE_CONFIG_MAP.put(4, origin4Config);
|
|
SERVICE_CONFIG_MAP.put(4, origin4Config);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -364,10 +391,12 @@ public class JDLogisticsService implements LogisticsService {
|
|
|
private static class ProductConfig {
|
|
private static class ProductConfig {
|
|
|
private final String productCode;
|
|
private final String productCode;
|
|
|
private final boolean hasAttrs;
|
|
private final boolean hasAttrs;
|
|
|
|
|
+ private final boolean valueType;
|
|
|
|
|
|
|
|
- public ProductConfig(String productCode, boolean hasAttrs) {
|
|
|
|
|
|
|
+ public ProductConfig(String productCode, boolean hasAttrs, boolean valueType) {
|
|
|
this.productCode = productCode;
|
|
this.productCode = productCode;
|
|
|
this.hasAttrs = hasAttrs;
|
|
this.hasAttrs = hasAttrs;
|
|
|
|
|
+ this.valueType = valueType;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public String getProductCode() {
|
|
public String getProductCode() {
|
|
@@ -377,6 +406,10 @@ public class JDLogisticsService implements LogisticsService {
|
|
|
public boolean isHasAttrs() {
|
|
public boolean isHasAttrs() {
|
|
|
return hasAttrs;
|
|
return hasAttrs;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public boolean getValueType() {
|
|
|
|
|
+ return valueType;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -403,6 +436,9 @@ public class JDLogisticsService implements LogisticsService {
|
|
|
for (Map.Entry<String, ProductConfig> entry : configMap.entrySet()) {
|
|
for (Map.Entry<String, ProductConfig> entry : configMap.entrySet()) {
|
|
|
String serviceKey = entry.getKey();
|
|
String serviceKey = entry.getKey();
|
|
|
ProductConfig config = entry.getValue();
|
|
ProductConfig config = entry.getValue();
|
|
|
|
|
+ if (StringUtils.isBlank(addedJson.getString(serviceKey))) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// 检查JSON中是否包含该增值服务
|
|
// 检查JSON中是否包含该增值服务
|
|
|
if (addedJson.containsKey(serviceKey)) {
|
|
if (addedJson.containsKey(serviceKey)) {
|