|
@@ -2,12 +2,18 @@ package com.fjhx.victoriatourist.service.jd.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
|
|
|
+import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
|
|
|
import com.fjhx.victoriatourist.service.jd.JdApiService;
|
|
|
+import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
|
|
|
import com.fjhx.victoriatourist.service.jd.JdOrderService;
|
|
|
import com.jd.open.api.sdk.DefaultJdClient;
|
|
|
import com.jd.open.api.sdk.JdClient;
|
|
|
+import com.jd.open.api.sdk.domain.supplier.PoQueryForJosWebService.response.getdetailbyorderid.JOSDetailResultDto;
|
|
|
+import com.jd.open.api.sdk.domain.supplier.PoQueryForJosWebService.response.getdetailbyorderid.PurchaseAllocationDetailDto;
|
|
|
import com.jd.open.api.sdk.domain.supplier.PoQueryForJosWebService.response.getpurchaseorderlist.JOSOrderResultDto;
|
|
|
import com.jd.open.api.sdk.domain.supplier.PoQueryForJosWebService.response.getpurchaseorderlist.PurchaseOrderDto;
|
|
|
import com.jd.open.api.sdk.request.supplier.VcGetdetailbyorderidRequest;
|
|
@@ -48,6 +54,8 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
|
|
|
@Autowired
|
|
|
private JdOrderService jdOrderService;
|
|
|
+ @Autowired
|
|
|
+ private JdOrderDetailsService jdOrderDetailsService;
|
|
|
|
|
|
/**
|
|
|
* 获取AccessToken
|
|
@@ -104,12 +112,15 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// @PostConstruct//项目启动时运行一次
|
|
|
-// @Scheduled(cron = "0 0/1 * * * ? ")// 每1分钟执行一次
|
|
|
+ @DSTransactional
|
|
|
+ //项目启动时运行一次
|
|
|
+// @PostConstruct
|
|
|
+ // 每1分钟执行一次
|
|
|
+// @Scheduled(cron = "0 0/1 * * * ? ")
|
|
|
void orderSync() throws Exception {
|
|
|
+ String tenantId = "prod".equals(SpringUtil.getActiveProfile()) ? "wdly" : "wdlytest";
|
|
|
|
|
|
-// JSONObject jdTokenJson = JSONObject.parseObject(ConfigUtil.get("jd_token_json"));
|
|
|
- JSONObject jdTokenJson = JSONObject.parseObject("{\"access_token\":\"eaea297f24944a1e9f88de4ef9f67605lyti\",\"expires_in\":86399,\"refresh_token\":\"d42c559aed09415aacd32df4c5712711yyzu\",\"scope\":\"snsapi_base\",\"open_id\":\"CqJo6jtBlMczlbw1LWVshD1Re_qBaw6BLQSYQWPPNKs\",\"uid\":\"0063800318\",\"time\":1699422692835,\"token_type\":\"bearer\",\"code\":0,\"xid\":\"o*AAQrc1AbQq2SNpnAmdEFbwM-ZGU3ZUdz2_M6Wu3p3d_-3U273S4pUQYjFXGrDJzp3YTAVN4R\"}");
|
|
|
+ JSONObject jdTokenJson = JSONObject.parseObject(ConfigUtil.get("jd_token_json"));
|
|
|
if (ObjectUtil.isEmpty(jdTokenJson)) {
|
|
|
log.error("京东token详细为空请检查");
|
|
|
return;
|
|
@@ -158,13 +169,33 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
//转为系统自己的实体类
|
|
|
List<JdOrder> jdOrderList = BeanUtil.copyToList(purchaseOrderListFilter, JdOrder.class);
|
|
|
//赋值租户id
|
|
|
-// jdOrderList.forEach(item->item.setTenantId("wdly"));
|
|
|
+ jdOrderList.forEach(item -> item.setTenantId(tenantId));
|
|
|
//将数据存储到库
|
|
|
TenantHolder.setIgnore(true);//忽略租户
|
|
|
jdOrderService.saveBatch(jdOrderList);
|
|
|
TenantHolder.clear();
|
|
|
|
|
|
//获取明细
|
|
|
+ List<JdOrderDetails> jdOrderDetailsList = new ArrayList<>();
|
|
|
+ for (JdOrder jdOrder : jdOrderList) {
|
|
|
+ VcGetdetailbyorderidRequest request = new VcGetdetailbyorderidRequest();
|
|
|
+ request.setOrderId(jdOrder.getOrderId());
|
|
|
+ request.setIsPage(false);
|
|
|
+ VcGetdetailbyorderidResponse response = client.execute(request);
|
|
|
+
|
|
|
+ JOSDetailResultDto josDetailResultDto = response.getJosDetailResultDto();
|
|
|
+ List<PurchaseAllocationDetailDto> purchaseAllocationDetailList = josDetailResultDto.getPurchaseAllocationDetailList();
|
|
|
+
|
|
|
+ List<JdOrderDetails> jdOrderDetails = BeanUtil.copyToList(purchaseAllocationDetailList, JdOrderDetails.class);
|
|
|
+ jdOrderDetails.forEach(item -> item.setJdOrderId(jdOrder.getId()));
|
|
|
+
|
|
|
+ jdOrderDetailsList.addAll(jdOrderDetails);
|
|
|
+ }
|
|
|
+ //赋值租户id
|
|
|
+ jdOrderList.forEach(item -> item.setTenantId(tenantId));
|
|
|
+ TenantHolder.setIgnore(true);//忽略租户
|
|
|
+ jdOrderDetailsService.saveBatch(jdOrderDetailsList);
|
|
|
+ TenantHolder.clear();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -193,20 +224,28 @@ public class JdApiServiceImpl implements JdApiService {
|
|
|
return JSONObject.parseObject(responseStr);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
public static void main(String[] args) throws Exception {
|
|
|
- JSONObject jdTokenJson = JSONObject.parseObject("{\"access_token\":\"eaea297f24944a1e9f88de4ef9f67605lyti\",\"expires_in\":86399,\"refresh_token\":\"d42c559aed09415aacd32df4c5712711yyzu\",\"scope\":\"snsapi_base\",\"open_id\":\"CqJo6jtBlMczlbw1LWVshD1Re_qBaw6BLQSYQWPPNKs\",\"uid\":\"0063800318\",\"time\":1699422692835,\"token_type\":\"bearer\",\"code\":0,\"xid\":\"o*AAQrc1AbQq2SNpnAmdEFbwM-ZGU3ZUdz2_M6Wu3p3d_-3U273S4pUQYjFXGrDJzp3YTAVN4R\"}");
|
|
|
- if (ObjectUtil.isEmpty(jdTokenJson)) {
|
|
|
- log.error("京东token详细为空请检查");
|
|
|
- return;
|
|
|
+ JdClient client = new DefaultJdClient("http://api.jd.com/routerjson", "a1f79f4670fd43a28fa2de02abd86f03ytfm", appKey, appSecret);
|
|
|
+
|
|
|
+
|
|
|
+ {
|
|
|
+ VcGetpurchaseorderlistRequest request = new VcGetpurchaseorderlistRequest();
|
|
|
+ request.setCreatedDateStart(sdf.parse("2023-11-01 00:00:00"));
|
|
|
+ request.setCreatedDateEnd(new Date());
|
|
|
+ request.setPageIndex(1);
|
|
|
+ request.setPageSize(10);
|
|
|
+ VcGetpurchaseorderlistResponse response = client.execute(request);
|
|
|
+ System.out.println(JSONObject.toJSONString(response));
|
|
|
}
|
|
|
|
|
|
- JdClient client = new DefaultJdClient("http://api.jd.com/routerjson", jdTokenJson.getString("access_token"), appKey, appSecret);
|
|
|
|
|
|
- VcGetdetailbyorderidRequest request=new VcGetdetailbyorderidRequest();
|
|
|
- request.setOrderId(1526033586L);
|
|
|
- request.setIsPage(false);
|
|
|
- VcGetdetailbyorderidResponse response=client.execute(request);
|
|
|
- System.out.println(JSONObject.toJSONString(response.getJosDetailResultDto()));
|
|
|
+ {
|
|
|
+ VcGetdetailbyorderidRequest request = new VcGetdetailbyorderidRequest();
|
|
|
+ request.setOrderId(1490391996L);
|
|
|
+ request.setIsPage(false);
|
|
|
+ VcGetdetailbyorderidResponse response = client.execute(request);
|
|
|
+ System.out.println(JSONObject.toJSONString(response));
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|