From fa677dec1c55db004a31beefb1e346e18c7858c2 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 20 二月 2025 18:41:29 +0800
Subject: [PATCH] bug修改

---
 src/main/java/com/taoke/autopay/utils/order/DYOrderApi.java |   97 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 91 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/taoke/autopay/utils/order/DYOrderApi.java b/src/main/java/com/taoke/autopay/utils/order/DYOrderApi.java
index 4cda4e3..aa25c6e 100644
--- a/src/main/java/com/taoke/autopay/utils/order/DYOrderApi.java
+++ b/src/main/java/com/taoke/autopay/utils/order/DYOrderApi.java
@@ -1,12 +1,24 @@
 package com.taoke.autopay.utils.order;
 
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
 import com.taoke.autopay.dto.DYOrderDto;
+import com.taoke.autopay.dto.DYSkuOrderDto;
+import com.taoke.autopay.dto.DYSubsidyDto;
 import com.taoke.autopay.exception.KeyOrderException;
+import com.taoke.autopay.utils.Constant;
 import com.taoke.autopay.utils.HttpUtil;
 import com.taoke.autopay.utils.JsonUtil;
+import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author hxh
@@ -17,26 +29,99 @@
 public class DYOrderApi {
     private static Logger logger = LoggerFactory.getLogger("dyorderApiLogger");
 
+    private static Gson gson=JsonUtil.getSimpleGson();
+
     private static String requestByOrderNo1(String orderNo) {
         String url = String.format("https://api.youihuo.com/open/order.getFreeOrder?apiKey=sTIFFTyunIFZfp5i4V6g19PN9biudl4v&orderId=%s", orderNo);
         String result = HttpUtil.get(url);
+        System.out.println(result);
         return result;
     }
 
-    public static DYOrderDto getOrderDetail(String orderNo) throws KeyOrderException {
+    private static String requestByOrderNo2(String orderNo) {
+        String url = String.format("https://api.bpshe.com/mall/douyinOMS/getSubsidyOrderInfo?appKey=cdaef330f1324961a73e15a85ab67fd2&orderId=%s", orderNo);
+        Map<String,String> headers=new HashMap<>();
+        headers.put("Accept","application/json;charset=utf-8");
+        String result = HttpUtil.get(url, headers);
+        return result;
+    }
+
+    private static DYOrderDto getOrderDetail1(String orderNo) throws KeyOrderException {
         String result = requestByOrderNo1(orderNo);
         JSONObject root = JSONObject.fromObject(result);
         if (root.optInt("code") != 1000) {
-            logger.error(String.format("鎶栭煶璁㈠崟鏌ヨ鍑洪敊锛�%s - %s",orderNo, result));
+            logger.error(String.format("鎶栭煶璁㈠崟鏌ヨ鍑洪敊(瓒呬韩浣�)锛�%s - %s",orderNo, result));
             throw new KeyOrderException(root.optString("message"));
         }
-       JSONObject data = root.optJSONObject("data");
-       return  JsonUtil.getSimpleGson().fromJson(data.toString(),DYOrderDto.class);
+        JSONObject data = root.optJSONObject("data");
+        DYOrderDto dto =  JsonUtil.getSimpleGson().fromJson(data.toString(),DYOrderDto.class);
+        dto.setOrderChannel(Constant.ORDER_CHANNEL_CYX);
+        return dto;
+    }
+
+    private static DYOrderDto getOrderDetail2(String orderNo) throws KeyOrderException {
+        String result = requestByOrderNo2(orderNo);
+        logger.info(String.format("鐖嗗搧绀炬帴鍙�%s:%s", orderNo, result));
+        System.out.println(result);
+        JSONObject root = JSONObject.fromObject(result);
+        if (root.optInt("errCode") != 0) {
+            logger.error(String.format("鎶栭煶璁㈠崟鏌ヨ鍑洪敊(鐖嗗搧绀�)锛�%s - %s",orderNo, result));
+            throw new KeyOrderException(root.optString("errMsg"));
+        }
+        JSONObject data = root.optJSONObject("data");
+        if(data==null){
+            logger.error(String.format("鎶栭煶璁㈠崟鏌ヨ鏃犳暟鎹�(2)锛�%s - %s",orderNo, result));
+            throw new KeyOrderException("璁㈠崟鏌ヨ鏃犳暟鎹�");
+        }
+        if(!data.optBoolean("subsidyFullyCoversOrder")){
+            throw new KeyOrderException("涓嶆弧瓒虫敮浠樻潯浠�");
+        }
+
+
+        JSONObject orderDetailData = data.optJSONObject("orderDetail");
+
+        if(orderDetailData==null){
+            logger.error(String.format("璁㈠崟鏃犳暟鎹�(2)锛�%s - %s",orderNo, result));
+            throw new KeyOrderException("璁㈠崟鏃犳暟鎹�");
+        }
+        orderDetailData = orderDetailData.optJSONObject("shop_order_detail");
+        DYOrderDto dyOrder =   gson.fromJson(orderDetailData.toString(),DYOrderDto.class);
+        dyOrder.setOrderChannel(Constant.ORDER_CHANNEL_BPS);
+        return  dyOrder;
+    }
+
+
+    public static DYOrderDto getOrderDetail(String orderNo) throws KeyOrderException {
+        DYOrderDto dto=null;
+        List<KeyOrderException> exceptions=new ArrayList<>();
+        try {
+            dto = getOrderDetail1(orderNo);
+        }catch(KeyOrderException e){
+            exceptions.add(e);
+        }
+        if(dto==null){
+            try {
+                dto = getOrderDetail2(orderNo);
+            }catch(KeyOrderException e){
+                exceptions.add(e);
+            }
+        }
+
+        if(dto!=null){
+            return dto;
+        }
+        String exception="";
+        for(KeyOrderException e:exceptions){
+            exception+=e.getMessage()+";";
+        }
+       throw new KeyOrderException(exception);
     }
 
     public static void main(String[] args) throws Exception {
-        DYOrderDto dto = (DYOrderApi.getOrderDetail("6931134387948820382"));
-        System.out.println("123123");
+//        DYOrderDto dto = (DYOrderApi.getOrderDetail("6932591080266339994"));
+//        DYOrderDto result = getOrderDetail("6933551928932504940");
+//        System.out.println(result);
+        System.out.println(getOrderDetail("6934328696568616274"));
     }
 
 }

--
Gitblit v1.8.0