From d01dbe195c5dc2886ce4bf62d66d7459cefda667 Mon Sep 17 00:00:00 2001
From: zhaojs <349234519@qq.com>
Date: 星期四, 13 七月 2023 11:36:39 +0800
Subject: [PATCH] Merge branch 'feature/v1.1.4开发' of http://60.204.153.149:8081/r/dfgApi into feature/v1.1.4开发

---
 application/api/logic/taoke/device/Haodanku.php |  262 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 255 insertions(+), 7 deletions(-)

diff --git a/application/api/logic/taoke/device/Haodanku.php b/application/api/logic/taoke/device/Haodanku.php
index f32058c..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'
     ];
 
     /**
@@ -70,6 +75,39 @@
     }
 
     /**
+     * 鑾峰彇绛惧埌绾㈠寘鍟嗗搧
+     */
+
+    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鍦板潃
      */
@@ -96,6 +134,7 @@
         if(empty($result) || $result['code'] != 200) fault('杞摼澶辫触');
         return $result['data']['url'];
     }
+
 
 
     public function getShareLink($goods_id,$common_relation_id,$relation_id)
@@ -173,6 +212,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 +351,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 +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'];
@@ -734,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;
     }
 
 
@@ -844,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;
     }
 
@@ -877,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;
     }
 
@@ -915,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