| | |
| | | use app\api\logic\taoke\Parser; |
| | | use fast\Http; |
| | | use think\Cache; |
| | | |
| | | use think\log; |
| | | |
| | | class Haodanku extends Parser |
| | | { |
| | |
| | | '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', |
| | | ]; |
| | | |
| | | /** |
| | |
| | | $this->apikey = $this->config['apikey']; |
| | | |
| | | if(empty($this->apikey)) return fault('配置信息错误'); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * 获取个人cms地址 |
| | | */ |
| | | public function getCmsUrl($tb_rid) |
| | | { |
| | | $send_data = [ |
| | | 'method' => 'cms.promotion.url', |
| | | 'app_id' => '20237820', |
| | | 'app_secret'=>'608e183d8bc44742ab544179bd54b2c3', |
| | | 'date' => date('Y-m-d H:i:s'), |
| | | 'tb_name' => $this->config['tb_name'], |
| | | 'tb_pid' => 'mm_4091757048_2861600076_114781900494', |
| | | 'tb_rid' => $tb_rid, |
| | | ]; |
| | | $send_data['sign'] = $this->sign_create($send_data,'608e183d8bc44742ab544179bd54b2c3'); |
| | | $http = new Http(); |
| | | $param = json_encode($send_data); |
| | | $result = $http->post(self::request_url['tk_rest_url'],$param,[ |
| | | CURLOPT_HTTPHEADER => [ |
| | | 'Content-Type: application/json', |
| | | 'Content-Length: ' . strlen($param) |
| | | ]]); |
| | | $result = json_decode($result,true); |
| | | if(empty($result) || $result['code'] != 200) fault('转链失败'); |
| | | return $result['data']['url']; |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 京东榜单(实时热榜) 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 |
| | |
| | | |
| | | $goods = isset($result['data'][0]) ? $result['data'][0] : []; |
| | | |
| | | if(empty($goods['goods_id'])) return []; |
| | | if(empty($goods['product_id'])) return []; |
| | | |
| | | $goods = self::initDyDetailGoods($goods); |
| | | |
| | |
| | | 'back' => $pageSize |
| | | ]; |
| | | $result = send_get(self::request_url['dy_goods_url'],$send_data); |
| | | |
| | | if(empty($result) || $result['code'] != 200) fault('数据获取失败'); |
| | | |
| | | $list = $result['data']; |