zhaojs
2023-07-20 8c00bd0245ca4756ca04483a4980ad202714e43e
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
{
@@ -36,8 +36,11 @@
        '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',
        'jd_hot_rank_url'=>'http://v2.api.haodanku.com/jd_hot_rank'
        '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',
        'sign_red_url'=>'http://v2.api.haodanku.com/sign_red_pack_goods',
        'dy_onebuy_url'=>'https://v3.api.haodanku.com/dy_onebuy'
    ];
    /**
@@ -69,6 +72,39 @@
        $this->apikey = $this->config['apikey'];
        if(empty($this->apikey)) return fault('配置信息错误');
    }
    /**
     * 获取签到红包商品
     */
    public function getSignRedGoods($apikey,$min_size,$sort,$min_id,$keyword)
    {
        $send_data = [
            'apikey' => $apikey,
            'min_size' => $min_size,
            'sort' => $sort,
            'min_id' => $min_id,
            'keyword' => $keyword
        ];
        $result = send_get(self::request_url['sign_red_url'],$send_data);
        if(empty($result) || $result['code'] != 200) return [];
        $list = $result['data'];
        if(!empty($list)){
            foreach($list as &$goods){
                $goods = self::GetGoodsred($goods,$goods["itemendprice"],$goods["tkrates"]);
            }
        }
        $result['data']=$list;
        return $result;
    }
    private static function GetGoodsred($goods,$actprice,$rate)
    {
       //计算返利金额
       $goods['fanli'] = self::rebate($actprice,$rate);
       $goods['topFanli'] = self::rebate($actprice,$rate,self::$topFanliRate);
       return  $goods;
    }
    /**
@@ -179,12 +215,12 @@
     * 京东榜单(实时热榜) https://www.haodanku.com/Openapi/api_detail?id=52
     * 
     */
    public function getJdHotRank($cid)
    public function getJdHotRank($cid,$mainid)
    {
        $send_data = [
            'apikey' => $this->apikey,
            'sort'=>3,
            'min_id'=>1,
            'min_id'=>$mainid,
            'cid'=>$cid
        ];
        $result = send_get(self::request_url['jd_hot_rank_url'],$send_data);
@@ -196,6 +232,50 @@
        }
        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)
    {
@@ -203,17 +283,55 @@
        $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['itemprice']) ? $goods['itemprice'] : '';
        $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['itemendprice']) ? $goods['itemendprice'] : '';
        $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;
    }
@@ -643,7 +761,6 @@
            'back' => $pageSize
        ];
        $result = send_get(self::request_url['dy_goods_url'],$send_data);
        if(empty($result) || $result['code'] != 200) fault('数据获取失败');
        $list = $result['data'];
@@ -784,12 +901,58 @@
            'id' => $id
        ];
        $result = send_get(self::request_url['talent_article_url'],$send_data);
        if(empty($result) || $result['code'] != 1) fault('数据获取失败');
        $info = $result['data'];
       
        return $info;
    }
      /**
     * 抖音1.9元/3.9元低价包邮商品
     */
    public function getDyOnebyGood($page,$pageSize){
        $send_data = [
            'apikey' => $this->apikey,
            'min_id' => $page,
            'back' => $pageSize
        ];
        $result = send_get(self::request_url['dy_onebuy_url'],$send_data);
        if(empty($result) || $result['code'] != 200) fault('数据获取失败');
        $list = $result['data'];
        $list_new=[];
        $title_list=[];
        if(!empty($list)){
            foreach($list as &$goods){
                $itemtitle=$goods['itemtitle'];
                if(empty($title_list)){
                    array_push($title_list,$itemtitle);
                }
                else{
                    //判断商品标题是否相似
                    $is_same=false;
                    foreach($title_list as &$title){
                        similar_text($title,$itemtitle,$percent);
                        log::write($title.'----------'.$itemtitle.'--------------'.$percent);
                        if($percent>60){
                            $is_same=true;
                            break;
                        }
                    }
                    if($is_same){
                        continue;
                    }
                    array_push($title_list,$itemtitle);
                }
                $goods['shoptype']='';
               // $goods = self::initDyOneByGoods($goods);
               array_push($list_new,self::initDyOneByGoods($goods));
            }
        }
        return $list_new;
    }
@@ -894,7 +1057,8 @@
        $init_goods['isCollect'] = self::isCollect($init_goods);
        $init_goods['fanli'] = self::rebate($init_goods["actualPrice"],$goods['dyrates']/100);
        $init_goods['topFanli'] = self::rebate($init_goods['actualPrice'],$goods['dyrates']/100,self::$topFanliRate);
        //新增商品类目ID--byhyt
        $init_goods['cid'] = isset($goods['cate_id']) ? $goods['cate_id'] : '';
        return $init_goods;
    }
@@ -927,7 +1091,8 @@
        $init_goods['isCollect'] = self::isCollect($init_goods);
        $init_goods['fanli'] = self::rebate($init_goods["actualPrice"],$goods['dyrates']/100);
        $init_goods['topFanli'] = self::rebate($init_goods['actualPrice'],$goods['dyrates']/100,self::$topFanliRate);
        //新增商品类目ID--byhyt
        $init_goods['cid'] = isset($goods['cate_id']) ? $goods['cate_id'] : '';
        return $init_goods;
    }
@@ -965,6 +1130,39 @@
        return $init_goods;
    }
    /**
     * 格式化抖音1.9元/3.9元低价包邮商品
     *
     * @param [type] $goods
     * @return void
     */
    private static function initDyOneByGoods($goods)
    {
        if(empty($goods)) return [];
        $init_goods = self::goodsField();
        $init_goods['id'] = isset($goods['product_id']) ? $goods['product_id'] : '';
        $init_goods['goodsId'] = isset($goods['product_id']) ? $goods['product_id'] : '';   //商品id
        $init_goods['itemLink'] = isset($goods['detail_url']) ? $goods['detail_url'] : '';            //商品链接
        $init_goods['dtitle'] = isset($goods['itemshorttitle']) ? $goods['itemshorttitle'] : '';               //商品标题
        $init_goods['title'] = $init_goods['dtitle'];
        $init_goods["actualPrice"] = isset($goods['itemendprice']) ? $goods['itemendprice'] : '';        //券后价
        $init_goods["originalPrice"] = isset($goods['itemprice']) ? $goods['itemprice'] : '';        //商品原价
        $init_goods["shopName"] = isset($goods['shop_name']) ? $goods['shop_name'] : '';          //店铺名称
        $init_goods["monthSales"] = isset($goods['itemsale']) ? format_number($goods['itemsale']) : 0;        //30天销量
        $init_goods["mainPic"] = isset($goods['itempic']) ? $goods['itempic'] : '';      //商品主图
        $init_goods['shopType'] = '抖音';            //店铺类型
        $init_goods['sourceType'] = "dy";
        $init_goods['desc'] = "";
        $init_goods['faction'] = 'd';
        $init_goods['labelImg'] = self::initSourse($init_goods['sourceType']);
        $init_goods['isCollect'] = self::isCollect($init_goods);
        $init_goods['fanli'] =isset($goods['itemendprice']) ? $goods['itemendprice'] : 0;
        $init_goods['topFanli'] =0;
        //新增商品类目ID--byhyt
        $init_goods['cid'] = isset($goods['cate_id']) ? $goods['cate_id'] : '';
        return $init_goods;
    }
    
}