From 8c00bd0245ca4756ca04483a4980ad202714e43e Mon Sep 17 00:00:00 2001 From: zhaojs <349234519@qq.com> Date: 星期四, 20 七月 2023 09:40:44 +0800 Subject: [PATCH] Merge branch 'release/v1.1.4发布' --- application/api/logic/taoke/device/Haodanku.php | 285 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 279 insertions(+), 6 deletions(-) diff --git a/application/api/logic/taoke/device/Haodanku.php b/application/api/logic/taoke/device/Haodanku.php index 62ca469..2da1d1e 100644 --- a/application/api/logic/taoke/device/Haodanku.php +++ b/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,12 @@ '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', + 'sign_red_url'=>'http://v2.api.haodanku.com/sign_red_pack_goods', + 'dy_onebuy_url'=>'https://v3.api.haodanku.com/dy_onebuy' ]; /** @@ -67,6 +72,67 @@ $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; + } + + /** + * + * 鑾峰彇涓汉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']; } @@ -144,6 +210,133 @@ } return isset($result['data']) ? $result['data'] : []; } + + /** + * 浜笢姒滃崟锛堝疄鏃剁儹姒滐級 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 @@ -568,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']; @@ -709,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; } @@ -819,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; } @@ -852,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; } @@ -890,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; + } + } -- Gitblit v1.9.3