admin
2025-05-09 6159dc58f50d3e4680779b7989bbd4d49a76bad5
src/main/java/com/taoke/autopay/utils/order/DYOrderApi.java
@@ -39,7 +39,7 @@
    }
    private static String requestByOrderNo2(String orderNo) {
        String url = String.format("https://api.bpshe.com/mall/douyinOMS/getSubsidyOrderInfo?orderId=%s", 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);
@@ -48,57 +48,53 @@
    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("抖音订单查询出错(1):%s - %s",orderNo, result));
            throw new KeyOrderException(root.optString("message"));
        try {
            JSONObject root = JSONObject.fromObject(result);
            if (root.optInt("code") != 1000) {
                logger.error(String.format("抖音订单查询出错(超享佣):%s - %s", orderNo, result));
                throw new KeyOrderException(root.optString("message"));
            }
            JSONObject data = root.optJSONObject("data");
            DYOrderDto dto = JsonUtil.getSimpleGson().fromJson(data.toString(), DYOrderDto.class);
            dto.setOrderChannel(Constant.ORDER_CHANNEL_CYX);
            return dto;
        }catch(Exception e){
            throw new KeyOrderException(e.getMessage());
        }
        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("抖音订单查询出错(2):%s - %s",orderNo, result));
            throw new KeyOrderException(root.optString("errMsg"));
        JSONObject data = null;
        try {
            JSONObject root = JSONObject.fromObject(result);
            if (root.optInt("errCode") != 0) {
                logger.error(String.format("抖音订单查询出错(爆品社):%s - %s", orderNo, result));
                throw new KeyOrderException(root.optString("errMsg"));
            }
            data = root.optJSONObject("data");
        }catch(Exception e){
        }
        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");
        JSONArray subsidyDetailData = data.optJSONArray("subsidyDetail");
        if(orderDetailData==null||subsidyDetailData==null){
            logger.error(String.format("订单与补贴无数据(2):%s - %s",orderNo, result));
            throw new KeyOrderException("订单与补贴无数据");
        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);
        List<DYSubsidyDto> subsidyList = gson.fromJson(subsidyDetailData.toString(), new TypeToken<List<DYSubsidyDto>>(){}.getType());
        if(subsidyList.size()!=dyOrder.getSku_order_list().size()){
            throw new KeyOrderException("订单商品与补贴商品不相等");
        }
        Map<String, DYSkuOrderDto> skuMap=new HashMap<>();
        for(DYSkuOrderDto d: dyOrder.getSku_order_list()){
            skuMap.put(d.getProduct_id()+"", d);
        }
        for(DYSubsidyDto d:subsidyList){
            if(skuMap.get(d.getGoodsId())==null){
                throw new KeyOrderException("补贴商品没在订单商品中");
            }
            if(skuMap.get(d.getGoodsId()).getPay_amount()> d.getSubsidyAmount()){
                throw new KeyOrderException("订单商品金额高于补贴金额");
            }
            if(!d.getStatus().equalsIgnoreCase("online")){
                throw new KeyOrderException("补贴下线");
            }
        }
        dyOrder.setOrderChannel(Constant.ORDER_CHANNEL_BPS);
        return  dyOrder;
    }
@@ -132,8 +128,9 @@
    public static void main(String[] args) throws Exception {
//        DYOrderDto dto = (DYOrderApi.getOrderDetail("6932591080266339994"));
        DYOrderDto result = getOrderDetail("6932676890890213137");
        System.out.println(result);
//        DYOrderDto result = getOrderDetail("6933551928932504940");
//        System.out.println(result);
        System.out.println(getOrderDetail("6934328696568616274"));
    }
}