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