zhaojs
2023-06-29 c6aed7b39a4e95a25e5bcac47a55ac98cb222b49
application/api/logic/taoke/device/Haodanku.php
@@ -4,7 +4,7 @@
use app\api\logic\taoke\Parser;
use fast\Http;
use think\Cache;
use think\log;
class Haodanku extends Parser
{
@@ -35,7 +35,10 @@
        'dy_goods_detail_url' => 'https://v2.api.haodanku.com/dy_detail',
        'get_dyitem_link_url'=>'https://v2.api.haodanku.com/get_dyitem_link',
        'dy_analyze_code_url'=>'https://v2.api.haodanku.com/dy_analyze_code',
        'tk_rest_url'=>'https://v3.api.haodanku.com/rest'
        'tk_rest_url'=>'https://v3.api.haodanku.com/rest',
        'jd_hot_rank_url'=>'http://v2.api.haodanku.com/jd_hot_rank',
        'dy_hot_rank_url'=>'https://v3.api.haodanku.com/dy_rankitem_list',
        'pdd_hot_rank_url'=>'http://v2.api.haodanku.com/pdd_hot_rank',
    ];
    /**
@@ -96,6 +99,7 @@
        if(empty($result) || $result['code'] != 200) fault('转链失败');
        return $result['data']['url'];
    }
    public function getShareLink($goods_id,$common_relation_id,$relation_id)
@@ -173,6 +177,133 @@
    }
    /**
     * 京东榜单(实时热榜) https://www.haodanku.com/Openapi/api_detail?id=52
     *
     */
    public function getJdHotRank($cid,$mainid)
    {
        $send_data = [
            'apikey' => $this->apikey,
            'sort'=>3,
            'min_id'=>$mainid,
            'cid'=>$cid
        ];
        $result = send_get(self::request_url['jd_hot_rank_url'],$send_data);
        if(empty($result) || $result['code'] != 200) return [];
        $goodsList = isset($result['data']) ? $result['data'] : [];
        foreach($goodsList as &$goods){
            $goods = self::initJdGoodsFy($goods);
        }
        return $goodsList;
    }
    /**
     * 抖音榜单 https://www.haodanku.com/Openapi/api_detail?id=135
     *
     */
    public function getDyHotRank($cid,$mainid)
    {
        $send_data = [
            'apikey' => $this->apikey,
            'sort_id'=>1,
            'min_id'=>$mainid,
            'cate_id'=>$cid,
            'back'=>50
        ];
        $result = send_get(self::request_url['dy_hot_rank_url'],$send_data);
        if(empty($result) || $result['code'] != 200) return [];
        $goodsList = isset($result['data']) ? $result['data'] : [];
        foreach($goodsList as &$goods){
            $goods = self::initDyGoodsFy($goods);
        }
        return $goodsList;
    }
    /**
     * 拼多多榜单 https://www.haodanku.com/Openapi/api_detail?id=53
     */
    public function getPddHotRank($cid,$mainid)
    {
        $send_data = [
            'apikey' => $this->apikey,
            'sort'=>1,
            'min_id'=>$mainid,
            'cid'=>$cid
        ];
        $result = send_get(self::request_url['pdd_hot_rank_url'],$send_data);
        if(empty($result) || $result['code'] != 200) return [];
        $goodsList = isset($result['data']) ? $result['data'] : [];
        foreach($goodsList as &$goods){
            $goods = self::initPddGoodsFy($goods);
        }
        return $goodsList;
    }
    public function initJdGoodsFy($goods)
    {
        if(empty($goods)) return [];
        $init_goods = self::FqgoodsField();
        $init_goods['dtitle'] = isset($goods['goodsname']) ? $goods['goodsname'] : '';
        $init_goods['goodsid'] = isset($goods['skuid']) ? $goods['skuid'] : '';
        $init_goods['jiage'] = isset($goods['itemendprice']) ? $goods['itemendprice'] : '';
        $init_goods['mallDesc'] = isset($goods['shopname']) ? $goods['shopname'] : '';
        $init_goods['pic'] = isset($goods['itempic']) ? $goods['itempic'] : '';
        $init_goods['quanJine'] = isset($goods['couponmoney']) ? $goods['couponmoney'] : '';
        $init_goods['quanNum'] = isset($goods['couponnum']) ? $goods['couponnum'] : '';
        $init_goods['salesNum'] = isset($goods['itemsale']) ? $goods['itemsale'] : '';
        $init_goods['yuanjia'] = isset($goods['itemprice']) ? $goods['itemprice'] : '';
        $init_goods['fanli'] = self::rebate($goods["itemendprice"],$goods['commissionshare']/100);
        $init_goods['topFanli'] = self::rebate($goods['itemendprice'],$goods['commissionshare']/100,self::$topFanliRate);
        $init_goods['sourceType']='jd';
        return $init_goods;
    }
    public function initDyGoodsFy($goods)
    {
        if(empty($goods)) return [];
        $init_goods = self::FqgoodsField();
        $init_goods['dtitle'] = isset($goods['itemtitle']) ? $goods['itemtitle'] : '';
        $init_goods['goodsid'] = isset($goods['product_id']) ? $goods['product_id'] : '';
        $init_goods['goodsId'] = isset($goods['product_id']) ? $goods['product_id'] : '';
        $init_goods['jiage'] = isset($goods['itemendprice']) ? $goods['itemendprice'] : '';
        $init_goods['mallDesc'] = isset($goods['shop_name']) ? $goods['shop_name'] : '';
        $init_goods['pic'] = isset($goods['itempic']) ? $goods['itempic'] : '';
        $init_goods['quanJine'] = 0;
        $init_goods['salesNum'] = isset($goods['sales']) ? $goods['sales'] : '';
        $init_goods['yuanjia'] = isset($goods['itemprice']) ? $goods['itemprice'] : '';
        $init_goods['fanli'] = self::rebate($goods["itemendprice"],$goods['dyrates']/100);
        $init_goods['topFanli'] = self::rebate($goods['itemendprice'],$goods['dyrates']/100,self::$topFanliRate);
        $init_goods['sourceType']='dy';
        return $init_goods;
    }
    public function initPddGoodsFy($goods)
    {
        if(empty($goods)) return [];
        $init_goods = self::FqgoodsField();
        $init_goods['dtitle'] = isset($goods['goodsname']) ? $goods['goodsname'] : '';
        $init_goods['goodsid'] = isset($goods['goods_id']) ? $goods['goods_id'] : '';
        $init_goods['goods_sign'] = isset($goods['goods_sign']) ? $goods['goods_sign'] : '';
        $init_goods['jiage'] = isset($goods['itemendprice']) ? $goods['itemendprice'] : '';
        $init_goods['mallDesc'] = '拼多多';
        $init_goods['pic'] = isset($goods['itempic']) ? $goods['itempic'] : '';
        $init_goods['quanJine'] = isset($goods['couponmoney']) ? $goods['couponmoney'] : '';
        $init_goods['quanNum'] = isset($goods['couponnum']) ? $goods['couponnum'] : '';
        $init_goods['salesNum'] = isset($goods['itemsale']) ? $goods['itemsale'] : '';
        $init_goods['yuanjia'] = isset($goods['itemprice']) ? $goods['itemprice'] : '';
        $init_goods['fanli'] = self::rebate($goods["itemendprice"],$goods['promotion_rate']/100);
        $init_goods['topFanli'] = self::rebate($goods['itemendprice'],$goods['promotion_rate']/100,self::$topFanliRate);
        $init_goods['sourceType']='pdd';
        return $init_goods;
    }
    /**
     * 获取抖音商品详情https://www.haodanku.com/Openapi/api_detail?id=112
     *
     * @param [type] $itemid
@@ -185,9 +316,11 @@
            'apikey' => $this->apikey,
        ];
        $result = send_get(self::request_url['dy_goods_detail_url'],$send_data);
        if(empty($result) || $result['code'] != 200) fault('数据获取失败');
        if(empty($result) || $result['code'] != 200) return [];
        $goods = isset($result['data'][0]) ? $result['data'][0] : [];
        if(empty($goods['product_id'])) return [];
        
        $goods = self::initDyDetailGoods($goods);
        
@@ -593,7 +726,6 @@
            'back' => $pageSize
        ];
        $result = send_get(self::request_url['dy_goods_url'],$send_data);
        if(empty($result) || $result['code'] != 200) fault('数据获取失败');
        $list = $result['data'];