Commit f14e0b27 authored by Allen Chen's avatar Allen Chen

commit

parent f4c63706
......@@ -36,8 +36,8 @@ public class PddFZController {
private static final String PROVIDER_CODE = "HAIJI_KR";
private static final String WAREHOUSE_CODE = "HJJY001";
private static final String CLIENT_ID = "27dbbb055eef41e28124f03fdb26fba8";
private static final String CLIENT_SECRET = "4be28e29e58012b72b080431a8d47ec2ba7cab4d";
private static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
private static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
@Resource
LogOrderMailDetailImpl logOrderMailDetailImpl;
......
......@@ -48,8 +48,8 @@ public class PddLocalController {
private static final String PROVIDER_CODE = "HAIJI_KR";
private static final String WAREHOUSE_CODE = "HJJY001";
private static final String CLIENT_ID = "d0217707e1194c46b57e696ac7619a06";
private static final String CLIENT_SECRET = "a5aba84483d8387030899f01276b06a194942470";
private static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
private static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
@Resource
private CollectReceiverDetailImpl collectReceiverDetailImpl;
@Resource
......
......@@ -102,39 +102,39 @@ public class PddOpenController {
log.info("Request:\n{}", body);
try {
if (PddSignTool.verifySignFromBody(body, "a5aba84483d8387030899f01276b06a194942470", pdd_sign)) {
log.info("验签成功");
if (!PddSignTool.verifySignFromBody(body, "a5aba84483d8387030899f01276b06a194942470", pdd_sign)) {
log.error("验签失败");
}
switch (requestParam.getType()) {
case "pdd.service.conso.order.create": {
PddServiceConsoOrderCreateRequest createParam = JSON.parseObject(body, PddServiceConsoOrderCreateRequest.class);
OrderCreate(createParam);
log.info("pdd service conso.order.create 集运单创建接口");
// log.info("pdd service conso.order.create 集运单创建接口");
}
break;
case "pdd.service.conso.outbound.notice": {
PddServiceConsoOutboundNoticeRequest noticeParam = JSON.parseObject(body, PddServiceConsoOutboundNoticeRequest.class);
OutboundNotice(noticeParam);
log.info("pdd.service.conso.outbound.notice 出库通知");
// log.info("pdd.service.conso.outbound.notice 出库通知");
}
break;
case "pdd.service.conso.order.update": {
PddServiceConsoOrderUpdateRequest updateRequest = JSON.parseObject(body, PddServiceConsoOrderUpdateRequest.class);
OrderUpdate(updateRequest);
log.info("pdd.service.conso.order.update 集运单更新");
// log.info("pdd.service.conso.order.update 集运单更新");
}
break;
case "pdd.service.conso.reverse.notify": {
PddServiceConsoReverseNotifyRequest notifyRequest = JSON.parseObject(body, PddServiceConsoReverseNotifyRequest.class);
ReverseNotify(notifyRequest);
log.info("pdd.service.conso.reverse.notify 逆向通知");
// log.info("pdd.service.conso.reverse.notify 逆向通知");
// todo 不需特殊回复,但是code区分状态码
}
break;
case "pdd.service.conso.fee.query": {
PddServiceConsoFeeQueryRequest queryRequest = JSON.parseObject(body, PddServiceConsoFeeQueryRequest.class);
FeeQuery(queryRequest);
log.info("pdd.service.conso.fee.query 集运费用查询");
// log.info("pdd.service.conso.fee.query 集运费用查询");
long freightFee = 0L;
int rentFee = 0;
int weight = 0;
......@@ -197,49 +197,44 @@ public class PddOpenController {
jsonObject.put("freightFee", freightFee);
jsonObject.put("rentFee", rentFee);
jsonObject.put("weight", weight);
log.info("RESP:\n{}", jsonObject.toJSONString());
return jsonObject;
}
case "pdd.service.conso.order.query": {
PddServiceConsoOrderQueryRequest queryRequest = JSON.parseObject(body, PddServiceConsoOrderQueryRequest.class);
OrderQuery(queryRequest);
log.info("pdd.service.conso.order.query 集运单查询");
// todo 回复 PddServiceConsoOrderQueryResponse
// log.info("pdd.service.conso.order.query 集运单查询");
}
break;
case "pdd.service.conso.pack.order.query": {
PddServiceConsoPackOrderQueryRequest queryRequest = JSON.parseObject(body, PddServiceConsoPackOrderQueryRequest.class);
PackOrderQuery(queryRequest);
log.info("pdd.service.conso.pack.order.query 集运合包单状态查询接口");
// todo 回复 PddServiceConsoPackOrderQueryQueryResponse
// log.info("pdd.service.conso.pack.order.query 集运合包单状态查询接口");
}
break;
case "pdd.service.conso.return.order.query": {
PddServiceConsoReturnOrderQueryRequest queryRequest = JSON.parseObject(body, PddServiceConsoReturnOrderQueryRequest.class);
ReturnOrderQuery(queryRequest);
log.info("pdd.service.conso.return.order.query");
// todo 回复 PddServiceConsoReturnOrderQueryResponse
// log.info("pdd.service.conso.return.order.query");
}
break;
case "pdd.service.conso.package.query": {
PddServiceConsoPackageQueryRequest queryRequest = JSON.parseObject(body, PddServiceConsoPackageQueryRequest.class);
PackageQuery(queryRequest);
log.info("pdd.service.conso.package.query");
// todo 回复 PddServiceConsoPackageQueryResponse
// log.info("pdd.service.conso.package.query");
}
break;
case "pdd.service.conso.package.notice": {
PddServiceConsoPackageNoticeRequest noticeRequest = JSON.parseObject(body, PddServiceConsoPackageNoticeRequest.class);
PackageNotice(noticeRequest);
log.info("pdd.service.conso.package.notice");
// todo 不需特殊回复,但是code区分状态码
// log.info("pdd.service.conso.package.notice");
}
break;
case "pdd.service.conso.unpack.notice": {
PddServiceConsoUnpackNoticeRequest noticeRequest = JSON.parseObject(body, PddServiceConsoUnpackNoticeRequest.class);
UnpackNotice(noticeRequest);
log.info("pdd.service.conso.unpack.notice");
// todo 不许特殊回复
// log.info("pdd.service.conso.unpack.notice");
}
break;
case "pdd.service.conso.user.identify": {
......@@ -252,6 +247,7 @@ public class PddOpenController {
jsonObject.put("success", false);
jsonObject.put("code", errorType.getValue());
jsonObject.put("message", errorType.getDesc());
log.info("RESP:\n{}", jsonObject.toJSONString());
return jsonObject;
}
......@@ -264,9 +260,10 @@ public class PddOpenController {
} catch (Exception e) {
e.printStackTrace();
}
log.info("request_body = {}", JSON.toJSON(requestParam));
return JsonResponse.generateOpenCommonSuccessResponse();
// log.info("request_body = {}", JSON.toJSON(requestParam));
JSONObject jsonObject = JsonResponse.generateOpenCommonSuccessResponse();
log.info("RESP:\n{}", jsonObject.toJSONString());
return jsonObject;
}
/**
......@@ -292,30 +289,29 @@ public class PddOpenController {
@PostMapping("/pdd-lg")
public JSONObject pddLogisticAPI(HttpServletRequest request,
@RequestBody LGBaseModel requestParam) {
log.info("PDD pddLogisticAPI, type={}", requestParam.getType());
log.info("target_client_id = {}, client_id = {}, sign={}, timestamp = {}, type={}",
requestParam.getTarget_client_id(), requestParam.getClient_id(), requestParam.getSign(), requestParam.getTimestamp(), requestParam.getType()
);
// log.info("PDD pddLogisticAPI, type={}", requestParam.getType());
// log.info("target_client_id = {}, client_id = {}, sign={}, timestamp = {}, type={}",
// requestParam.getTarget_client_id(), requestParam.getClient_id(), requestParam.getSign(), requestParam.getTimestamp(), requestParam.getType()
// );
if (PddSignTool.verifyLGSign(requestParam, "4be28e29e58012b72b080431a8d47ec2ba7cab4d")) {
log.info("验签成功");
if (!PddSignTool.verifyLGSign(requestParam, "4be28e29e58012b72b080431a8d47ec2ba7cab4d")) {
log.error("验签失败");
}
String body = getStringFromRequest(request);
log.info("Request:\n{}", body);
switch (requestParam.getType()) {
case "pdd.logistics.co.track.sub": {
log.info("pdd.logistics.co.track.sub 拼多多向物流公司订阅指定运单号的物流轨迹详情");
PddLogisticsCoTrackSubRequest subRequest = JSON.parseObject(body, PddLogisticsCoTrackSubRequest.class);
subRequest.parseData();
log.info("快递公司运单号:{}", subRequest.getDataObject().getTrackingOrderNo());
// todo 不需特殊回复,但是code区分状态码
log.info("pdd.logistics.co.track.sub 拼多多向物流公司订阅指定运单号的物流轨迹详情,快递公司运单号:{}", subRequest.getDataObject().getTrackingOrderNo());
}
break;
case "pdd.logistics.co.track.query": {
log.info("pdd.logistics.co.track.query 拼多多向物流公司查询指定运单号当前的完整物流轨迹信息。");
PddLogisticsCoTrackQueryRequest subRequest = JSON.parseObject(body, PddLogisticsCoTrackQueryRequest.class);
subRequest.parseData();
log.info("快递公司运单号:{}", subRequest.getDataObject().getTrackingNumber());
log.info("pdd.logistics.co.track.query 拼多多向物流公司查询指定运单号当前的完整物流轨迹信息。快递公司运单号:{}", subRequest.getDataObject().getTrackingNumber());
List<TraceObjectEntity> TraceObjectlist = traceObjectImpl.selectByTrackingNumber(subRequest.getDataObject().getTrackingNumber());
List<TraceObject> list = new ArrayList<TraceObject>();
......@@ -323,11 +319,12 @@ public class PddOpenController {
for (TraceObjectEntity traceObjectEntity : TraceObjectlist) {
list.add(TraceObject.createFromTraceEntity(traceObjectEntity));
}
return JsonResponse.generateLGCommonSuccessResponse(requestParam.getShip_id(), list);
JSONObject jsonObject = JsonResponse.generateLGCommonSuccessResponse(requestParam.getShip_id(), list);
log.info("RESP:\n{}", jsonObject.toJSONString());
return jsonObject;
}
default: {
log.info("request_body = {}", JSON.toJSON(requestParam));
log.error("未知请求");
return JsonResponse.generateLGCommonFailedResponse(requestParam.getShip_id(), "999", "UNKNOWN API");
}
}
......
......@@ -38,7 +38,7 @@ public class PddLogisticsCoTrackNotifyRequest extends LGBaseModel {
@Override
public void encodeData() {
this.data = JSON.toJSONString(this.dataObject.getTraces());
log.info("data={}", this.data);
// log.info("data={}", this.data);
this.dataObject = null;
}
}
......@@ -12,8 +12,8 @@ import java.util.List;
@Slf4j
public class PddGDUtil {
private static final String CLIENT_ID = "7c75c365a1a64036a598ab6b09ce0c06";
private static final String CLIENT_SECRET = "f0752b6d5d6c214b7e255586fc4dfde382e9a6df";
private static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
private static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
private static final int page_size = 100;
......@@ -24,12 +24,17 @@ public class PddGDUtil {
List<GDTicketRepsonse> list = new ArrayList<GDTicketRepsonse>();
while (page * page_size <= total_count) {
page++;
JSONObject jsonObject = getTicketsByPage(1, end);
total_count = jsonObject.getInteger("total_count");
List<GDTicketRepsonse> tempList = jsonObject.getJSONArray("logistics_ticket_list").toJavaList(GDTicketRepsonse.class);
if (tempList != null && !tempList.isEmpty()) {
list.addAll(tempList);
try {
JSONObject jsonObject = getTicketsByPage(1, end);
total_count = jsonObject.getInteger("total_count");
List<GDTicketRepsonse> tempList = jsonObject.getJSONArray("logistics_ticket_list").toJavaList(GDTicketRepsonse.class);
if (tempList != null && !tempList.isEmpty()) {
list.addAll(tempList);
}
} catch (Exception e) {
log.error("工单获取失败");
}
}
return list;
}
......
......@@ -14,9 +14,10 @@ import java.util.Map;
public class PddHttpTool {
private static final String URL = "https://opengw-api.hutaojie.com/ark/router";
private static final String URL_GD = "https://opengw-api.hutaojie.com/api/router";
// private static final String URL = "https://ark-api.pinduoduo.com/ark/router";
// private static final String URL = "https://opengw-api.hutaojie.com/ark/router";
// private static final String URL_GD = "https://opengw-api.hutaojie.com/api/router";
private static final String URL = "https://ark-api.pinduoduo.com/ark/router";
private static final String URL_GD = "https://gw-api.pinduoduo.com/api/router";
public static String postRequest(JYBaseRequestModel request) {
......
package org.ta.pddserver.xxl;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.ta.pddserver.entity.GDTicketEntity;
import org.ta.pddserver.model.pddgd.response.GDTicketRepsonse;
......@@ -9,17 +12,25 @@ import org.ta.pddserver.service.GDTicketService;
import org.ta.pddserver.service.impl.GDTicketImpl;
import org.ta.pddserver.utils.PddGDUtil;
import java.util.Date;
import java.util.List;
@Service
@Component
@Slf4j
public class GDOperator {
@Resource
GDTicketImpl gdTicketImpl;
@PostConstruct
public void init(){
getGdTickets();
}
@Scheduled(fixedRate = 1000 * 60 * 5) // 每5分钟执行一次
public void getGdTickets() {
List<GDTicketRepsonse> list = PddGDUtil.getTickets();
log.info("{} 工单数量:{}", new Date().toLocaleString(), list.size());
for (GDTicketRepsonse gdTicketRepsonse : list) {
GDTicketEntity gdTicketEntity = gdTicketImpl.getByTicketId(gdTicketRepsonse.getTicket_id());
if (gdTicketEntity == null) {
......
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.2.222:3306/pdd_api?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
username: root
password: root
# url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: pdd
# password: pdd123
# url: jdbc:mysql://192.168.2.222:3306/pdd_api?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: root
# password: root
url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
username: pdd
password: pdd123
hikari:
minimum-idle: 5 # 最小空闲连接数
maximum-pool-size: 10 # 最大活跃连接数
......
......@@ -19,8 +19,8 @@ public class CommonTest {
private static final String PROVIDER_CODE = "HAIJI_KR";
private static final String WAREHOUSE_CODE = "HJJY001";
private static final String CLIENT_ID = "d0217707e1194c46b57e696ac7619a06";
private static final String CLIENT_SECRET = "a5aba84483d8387030899f01276b06a194942470";
private static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
private static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
private String firstLogisticsOrderCode = "PC25110416466837504037527";
......
......@@ -26,8 +26,8 @@ import java.util.List;
@Slf4j
public class GDTest3 {
private static final String CLIENT_ID = "7c75c365a1a64036a598ab6b09ce0c06";
private static final String CLIENT_SECRET = "f0752b6d5d6c214b7e255586fc4dfde382e9a6df";
private static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
private static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
@Test
public void test1() {
......
......@@ -15,8 +15,8 @@ import java.util.ArrayList;
@Slf4j
public class LGTest2 {
private static final String CLIENT_ID = "d0217707e1194c46b57e696ac7619a06";
private static final String CLIENT_SECRET = "a5aba84483d8387030899f01276b06a194942470";
private static final String CLIENT_ID = "8f5f3f9c92e847b2894fc9c0afce3d61";
private static final String CLIENT_SECRET = "281d79ad5117d20a51efb9e7b0d5f7ee336399b0";
@Test
public void test1() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment