|
@@ -22,12 +22,19 @@ import com.iamberry.rst.util.GenerateKeyUtil;
|
|
|
import com.iamberry.wechat.tools.DateTimeUtil;
|
|
|
import com.jd.open.api.sdk.DefaultJdClient;
|
|
|
import com.jd.open.api.sdk.JdClient;
|
|
|
+import com.jd.open.api.sdk.domain.order.IOrderService.response.getmobilelist.OrderPrivacyModel;
|
|
|
+import com.jd.open.api.sdk.domain.order.IOrderService.response.getmobilelist.ResponseData;
|
|
|
+import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enGet.OrderResult;
|
|
|
import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enSearch.ItemInfo;
|
|
|
import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enSearch.OrderListResult;
|
|
|
import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enSearch.OrderSearchInfo;
|
|
|
import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enSearch.UserInfo;
|
|
|
+import com.jd.open.api.sdk.request.order.PopOrderEnGetRequest;
|
|
|
import com.jd.open.api.sdk.request.order.PopOrderEnSearchRequest;
|
|
|
+import com.jd.open.api.sdk.request.order.PopOrderGetmobilelistRequest;
|
|
|
+import com.jd.open.api.sdk.response.order.PopOrderEnGetResponse;
|
|
|
import com.jd.open.api.sdk.response.order.PopOrderEnSearchResponse;
|
|
|
+import com.jd.open.api.sdk.response.order.PopOrderGetmobilelistResponse;
|
|
|
import com.taobao.api.internal.util.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -37,10 +44,7 @@ import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.StringJoiner;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @author root
|
|
@@ -97,6 +101,7 @@ public class JingdongTask {
|
|
|
}
|
|
|
// 结束时间
|
|
|
String endTime = DateTimeUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss");
|
|
|
+ logger.info("开始时间:{}, 结束时间:{}", startTime, endTime);
|
|
|
|
|
|
// 批次号
|
|
|
String batchIdST = generateKeyUtil.getSalesBatchIdJD();
|
|
@@ -179,7 +184,7 @@ public class JingdongTask {
|
|
|
SalesOrder salesOrder = packageOrder(orderSearchInfo);
|
|
|
if (salesOrder != null) {
|
|
|
salesOrder.setSalesBatchId(batchIdST);
|
|
|
- salesOrderService.addOrder(salesOrder);
|
|
|
+ salesOrderService.addOrder(salesOrder, "创建订单(京东拉取订单)");
|
|
|
total ++;
|
|
|
}
|
|
|
}
|
|
@@ -220,6 +225,90 @@ public class JingdongTask {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enGet.OrderSearchInfo getOrderDetails(Long tid) {
|
|
|
+ try {
|
|
|
+ Thread.sleep(1000);
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ JdClient client = null;
|
|
|
+ PopOrderEnGetRequest request = null;
|
|
|
+ PopOrderEnGetResponse rsp = null;
|
|
|
+
|
|
|
+
|
|
|
+ SysConfig sysConfig = sysConfigService.getSysConfigAll(27);
|
|
|
+ client = new DefaultJdClient(TaobaoConfig.JINGDONG_API_URL, (String) AdminJingdongAuthController.getToken(sysConfig).get("token"), TaobaoConfig.jd_appkey, TaobaoConfig.jd_secret);
|
|
|
+ request=new PopOrderEnGetRequest();
|
|
|
+ request.setOrderId(tid);
|
|
|
+ request.setOptionalFields("orderId,venderId,orderType,payType,orderTotalPrice,orderSellerPrice,orderPayment,freightPrice,sellerDiscount,orderState,orderStateRemark,deliveryType," +
|
|
|
+ "invoiceEasyInfo," +
|
|
|
+ "invoiceCode,invoiceInfo,invoiceCode,orderRemark,orderStartTime,orderEndTime," +
|
|
|
+ "consigneeInfo," +
|
|
|
+ "itemInfoList," +
|
|
|
+ "couponDetailList," +
|
|
|
+ "venderRemark,balanceUsed,pin,returnOrder,paymentConfirmTime,waybill,logisticsId," +
|
|
|
+ "vatInfo," +
|
|
|
+ "modified,directParentOrderId,parentOrderId,customs,customsModel,orderSource,storeOrder,idSopShipmenttype,scDT,serviceFee," +
|
|
|
+ "pauseBizInfo," +
|
|
|
+ "taxFee,tuiHuoWuYou,orderSign,storeId,realPin,orderMarkDesc,open_id,xid,open_id_buyer,xid_buyer");
|
|
|
+ rsp = client.execute(request);
|
|
|
+ String code = rsp.getCode();
|
|
|
+ logger.info("查询京东订单详情返回信息:code:{}, msg:{}", rsp.getCode(), rsp.getMsg());
|
|
|
+ if ("0".equals(code)) {
|
|
|
+ OrderResult orderDetailInfo = rsp.getOrderDetailInfo();
|
|
|
+ com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enGet.OrderSearchInfo orderInfo = orderDetailInfo.getOrderInfo();
|
|
|
+ return orderInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public OrderPrivacyModel getMobile(String orderId) {
|
|
|
+ try {
|
|
|
+ Thread.sleep(1000);
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ JdClient client = null;
|
|
|
+ PopOrderGetmobilelistRequest request = null;
|
|
|
+ PopOrderGetmobilelistResponse rsp = null;
|
|
|
+
|
|
|
+
|
|
|
+ SysConfig sysConfig = sysConfigService.getSysConfigAll(27);
|
|
|
+ client = new DefaultJdClient(TaobaoConfig.JINGDONG_API_URL, (String) AdminJingdongAuthController.getToken(sysConfig).get("token"), TaobaoConfig.jd_appkey, TaobaoConfig.jd_secret);
|
|
|
+ request = new PopOrderGetmobilelistRequest();
|
|
|
+ request.setAppName("爱贝源官方旗航店");
|
|
|
+// request.setRegion("https://jd.com");
|
|
|
+ request.setOrderId(orderId);
|
|
|
+ request.setExpiration(30);
|
|
|
+ request.setOrderType("POP");
|
|
|
+ rsp = client.execute(request);
|
|
|
+ if ("0".equals(rsp.getCode())) {
|
|
|
+ ResponseData result = rsp.getResult();
|
|
|
+ logger.info("result code:{}, message:{}", result.getCode(), result.getMessage());
|
|
|
+ if ("200".equals(result.getCode() + "")) {
|
|
|
+ logger.info("查询京东订单收货人电话:data.code: {}, data.message:{}", result.getCode(), result.getMessage());
|
|
|
+ Map<String, OrderPrivacyModel> data = result.getData();
|
|
|
+ OrderPrivacyModel orderPrivacyModel = data.get(orderId);
|
|
|
+ return orderPrivacyModel;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ logger.info("查询京东订单收货人手机号返回错误信息:{}", rsp.getMsg());
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 数据还需要完善地址库编码、成本价格
|
|
|
* @param trade
|
|
@@ -227,6 +316,7 @@ public class JingdongTask {
|
|
|
*/
|
|
|
private SalesOrder packageOrder(OrderSearchInfo trade) {
|
|
|
String tid = trade.getOrderId();
|
|
|
+
|
|
|
SalesOrder order = new SalesOrder();
|
|
|
order.setSalesOrderId(tid);
|
|
|
order.setSalesDealCode(tid);
|
|
@@ -234,9 +324,12 @@ public class JingdongTask {
|
|
|
order.setSalesDiscountMoney(changeY2F(StringUtils.isEmpty(trade.getSellerDiscount()) ? "0" : trade.getSellerDiscount()));
|
|
|
order.setSalesDeliver(1);
|
|
|
|
|
|
+ //获取收货人手机号
|
|
|
+ OrderPrivacyModel orderPrivacyModel = getMobile(trade.getOrderId());
|
|
|
+
|
|
|
//收货人信息
|
|
|
UserInfo consigneeInfo = trade.getConsigneeInfo();
|
|
|
- order.setSalesOpenId(consigneeInfo.getMobile());
|
|
|
+ order.setSalesOpenId(orderPrivacyModel == null ? consigneeInfo.getMobile() : orderPrivacyModel.getConsMobilePhone());
|
|
|
order.setSalesPledgeMoney(0);
|
|
|
order.setSalesRemainDeposit(0);
|
|
|
order.setSalesOrderStatus(1);
|
|
@@ -272,7 +365,7 @@ public class JingdongTask {
|
|
|
//京东不返回邮编
|
|
|
order.setSalesAddressPostcode("000000");
|
|
|
order.setSalesAddressName(consigneeInfo.getFullname());
|
|
|
- order.setSalesAddressTel(consigneeInfo.getMobile());
|
|
|
+ order.setSalesAddressTel(orderPrivacyModel == null ? consigneeInfo.getMobile() : orderPrivacyModel.getConsMobilePhone());
|
|
|
order.setSalesAmount(changeY2F(trade.getOrderTotalPrice()));
|
|
|
order.setSalesPayMoney(changeY2F(trade.getOrderPayment()));
|
|
|
order.setSalesPayType(5);
|
|
@@ -293,6 +386,7 @@ public class JingdongTask {
|
|
|
order.setSalesExOrderId(trade.getOrderId());
|
|
|
order.setSalesErrorState(1);
|
|
|
order.setSalesQuality(1);
|
|
|
+ order.setSalesPostFirm("jd");
|
|
|
order.setSalesOrderItemList(new ArrayList<>(trade.getItemInfoList().size()));
|
|
|
// 订单项
|
|
|
int warranty = 0;
|