zhaojs
2023-07-06 eaca947882711ccec82976f4e70ff21398556b63
application/api/logic/taoke/device/Dataoke.php
@@ -3,6 +3,7 @@
use app\api\logic\taoke\Parser;
use app\api\logic\taoke\device\Haodanku as LogicHaodanku;
use think\log;
class Dataoke extends Parser
{
@@ -28,7 +29,16 @@
        'goods_list' => 'https://openapi.dataoke.com/api/goods/get-goods-list',
        'price_trend_url'=>'https://openapi.dataoke.com/api/goods/price-trend',
        'album_url' => 'https://openapi.dataoke.com/api/album/album-list',
        'album_goods_url'=>'https://openapi.dataoke.com/api/album/goods-list'
        'album_goods_url'=>'https://openapi.dataoke.com/api/album/goods-list',
        'fqb_url'=>'https://dtkapi.ffquan.cn/dtk_go_app_api/v1/page-goods-ranking',
        'zsz_url'=>'https://dtkapi.ffquan.cn/dtk_go_app_api/v1/page-super-discount',
        'xy_url'=>'https://v2.api.haodanku.com/makeup_items',
        'friends-circle-list'=>'https://openapi.dataoke.com/api/goods/friends-circle-list',
        'parse_url'=>'https://openapi.dataoke.com/api/dels/kit/contentParse',
        'similer_url'=>'https://openapi.dataoke.com/api/goods/list-similer-goods-by-open',
        'gift_money_url'=>'https://openapi.dataoke.com/api/goods/first-order-gift-money',
        'bottom_price_url'=>'https://openapi.dataoke.com/api/goods/get-history-low-price-list',
        'jdnines_url'=>'https://openapi.dataoke.com/api/dels/jd/column/list-nines',
    ];
    const shop_type = ["0"=>"淘宝","1"=>"天猫","2"=>"天猫超市","3"=>"天猫国际"];
@@ -94,6 +104,114 @@
        return $data;
        
    }
    /**
     * 京东9.9包邮 https://www.dataoke.com/pmc/api-d.html?id=66
     *
     */
    public function jdNine($pageId,$pageSize)
    {
        $params = $this->setParams(['pageId'=>$pageId,'pageSize' => $pageSize]);
        $result = send_get(self::request_url['jdnines_url'],$params);
        if(empty($result) || $result['code'] != 0) return [];
        $list = $result['data']['list'];
        $list_new=[];
        if(!empty($list)){
            foreach($list as &$goods){
                $goods = self::initJdGoods($goods);
                array_push($list_new,$goods);
            }
        }
         return $list_new;
    }
      /**
     * 大淘客疯抢榜
     *
     */
     public function fqbGoodsList($cid,$type,$pid)
     {
        $params = $this->setParams(['cId'=>$cid,'type'=>$type,'app_key'=>$pid]);
        $result = send_get(self::request_url['fqb_url'],$params);
        if(empty($result) || $result['code'] != 1) return [];
        $list = $result['data']['data'];
        if(!empty($list)){
            foreach($list as &$goods){
                $goods = self::GetGoodsFy($goods,$goods["jiage"],$goods["yongjin"]/100);
            }
        }
        $result['data']['data']=$list;
        return $result;
     }
     /**
      *
      *折上折单页接口
      */
     public function zszGoodsList($cid,$appkey)
     {
        $params = $this->setParams(['cId'=>$cid,'app_key'=>$appkey]);
        $result = send_get(self::request_url['zsz_url'],$params);
        if(empty($result) || $result['code'] != 1) return [];
        $list = $result['data']['data']['list'];
        if(!empty($list)){
            foreach($list as &$goods){
                $goods = self::GetGoodsFy($goods,$goods["jiage"],$goods["yongjin"]/100);
            }
        }
        $result['data']['data']['list']=$list;
        return $result;
     }
     /**
      *
      *小样单页接口
      */
      public function xyGoodsList($apikey,$keyword,$min_id,$back)
      {
         $params = $this->setParams(['apikey'=>$apikey,'keyword'=>$keyword,'min_id'=>$min_id,'back'=>$back]);
         $result = send_get(self::request_url['xy_url'],$params);
         if(empty($result) || $result['code'] != 200) return [];
         $list = $result['data'];
         if(!empty($list)){
             foreach($list as &$goods){
                 $goods = self::GetGoodsFy($goods,$goods["itemendprice"],$goods["tkrates"]);
             }
         }
         $result['data']=$list;
         return $result;
      }
      /**
       * 历史新低商品
       */
      public function bottomPrice($pageSize,$pageId,$cids,$sort)
      {
            if($cids==0)
            {
                $cids="";
            }
            $params_data = [
                'pageSize'=>$pageSize,
                'pageId' =>$pageId,
                'cids' => $cids,
                'sort'=>$sort
            ];
            $params = $this->setParams($params_data);
            $result = send_get(self::request_url['bottom_price_url'],$params);
            if(empty($result) || $result['code'] != 0) return [];
            $list = $result['data']['list'];
            if(!empty($list)){
                foreach($list as &$goods){
                    $goods = self::GetGoodsFy($goods,$goods["actualPrice"],$goods["commissionRate"]);
                }
            }
            $result['data']['list']=$list;
            return $result;
      }
    /**
     * 获取专辑列表
@@ -184,10 +302,35 @@
     * @param mixed 大淘客的二级类目id,通过超级分类API获取。仅允许传一个二级id,当一级类目id和二级类目id同时传入时,会自动忽略二级类目id
     * @return void
     */
    public function getGoodsList($cids,$subcid,$sort=0,$page = 1,$page_size)
     public function getGoodsList($cids,$subcid,$sort=0,$page = 1,$page_size,$tchaoshi=0,$secrend_search=0)
    {
        $params = $this->setParams(['cids'=>$cids,'subcid'=>$subcid,'sort'=>$sort,'pageId'=>$page,'pageSize'=>$page_size]);
        $params = $this->setParams(['cids'=>$cids,'tchaoshi'=>$tchaoshi,'subcid'=>$subcid,'sort'=>$sort,'pageId'=>$page,'pageSize'=>$page_size]);
        if($secrend_search>0)
        {//有二级筛选
            switch($secrend_search)
            {
                case 1://60天最低价
                    $params['lowestPrice']=1;
                    break;
                case 2://聚划算
                    $params['juHuaSuan']=1;
                    break;
                case 3://淘抢购
                    $params['taoQiangGou']=1;
                    break;
                case 4://多买多送
                    $params['specialId']=2;
                    break;
                case 5://限量抢购
                    $params['specialId']=3;
                    break;
                case 6://额外满减
                    $params['specialId']=4;
                    break;
                default:
                    break;
            }
        }
        $result = send_get(self::request_url['goods_list'],$params);
        if(empty($result) || $result['code'] != 0) return [];
@@ -240,20 +383,23 @@
     * @param [type] $nineCid 9.9精选的类目id,分类id请求详情:-1-精选,1 -5.9元区,2 -9.9元区,3 -19.9元区(调整字段)
     * @return void
     */
    public function getOpGoodsList($nineCid,$page = 1,$page_size)
    public function getOpGoodsList($nineCid,$page = 1,$page_size,$excludecid=[])
    {
        $params = $this->setParams(['version'=>'v3.0.0','nineCid'=>$nineCid,'pageId'=>$page,'pageSize'=>$page_size]);
        $result = send_get(self::request_url['op_goods_list_url'],$params);
        if(empty($result) || $result['code'] != 0) return [];
        $list = $result['data']['list'];
        $list_new=[];
        if(!empty($list)){
            foreach($list as &$goods){
                //排除指定分类
                if(!empty($excludecid) && in_array($goods['cid'],$excludecid)) continue;
                $goods = self::initGoods($goods);
                array_push($list_new,$goods);
            }
        }
         return $list;
         return $list_new;
    }
@@ -337,7 +483,8 @@
        if(empty($result) || $result['code'] != 0) fault('券链接获取失败');
        $info = $result['data'];
        $info["tpwd"]= $info['longTpwd'];
       //  $info["link"]= $info['shortUrl'];
        $info['kuaiZhanUrl'] = isset($info['kuaiZhanUrl']) ? $info['kuaiZhanUrl'] : '';
        return $info;
@@ -549,7 +696,214 @@
        return $list;
    }
      /**
     * 获取商品分佣信息
     *
     */
     private static function GetGoodsFy($goods,$actprice,$rate)
     {
        //计算返利金额
        $goods['fanli'] = self::rebate($actprice,$rate);
        $goods['topFanli'] = self::rebate($actprice,$rate,self::$topFanliRate);
        return  $goods;
     }
      /**
     * 朋友圈文案 https://www.dataoke.com/kfpt/api-d.html?id=62
     *
     * @param integer $page
     * @param [type] $page_size
     * @return void
     */
     public function getFriendscircles($page = 1,$page_size = 10,$cid,$sort){
        $params = $this->setParams(['pageId'=>$page,'pageSize'=>$page_size,'cid'=>$cid,'sort'=>$sort]);
        $result = send_get(self::request_url['friends-circle-list'],$params);
        if(empty($result) || $result['code'] != 0) fault($result['msg']);
        $list = $result['data'];
        if(empty($list)) return [];
        if(!empty($list)){
            foreach($list['list'] as &$goods){
                $goods = self::GetGoodsFy($goods,$goods["actualPrice"],$goods["commissionRate"]/100);
            }
        }
        return $list;
    }
    /**
     * 剪切板识别 https://www.dataoke.com/kfpt/api-d.html?id=80
     *
     * @param [type] $url
     * @return void
     */
    public function zhuanlian($url)
    {
        $params = $this->setParams(['content'=>$url]);
        $result = send_get(self::request_url['parse_url'],$params);
        if(empty($result) || $result['code'] != 0) return [];
        $list = $result['data'];
        $goods_id=$list["itemId"];
        $params = $this->setParams(['goodsId'=>$goods_id]);
        $result2 = send_get(self::request_url['goods_detail_url'],$params);
        if(empty($result2) || $result2['code'] != 0) return [];
        $goods = $result2['data'];
        $goods = self::initGoods($goods);
        return $goods;
    }
    /**
     * 猜你喜欢商品 https://www.dataoke.com/pmc/api-d.html?id=16
     *
     * @param [type] $goodsId
     * @param [type] $page_size 每页数据
     * @return void
     */
    public function getSimilarInfo($goods_id,$page_size)
    {
        $params = $this->setParams(['id'=>$goods_id,'size'=>$page_size]);
        $result = send_get(self::request_url['similer_url'],$params);
        if(empty($result) || $result['code'] != 0) return [];
        $list = $result['data'];
        if(!empty($list)){
            foreach($list as &$goods){
                $goods = self::initGoods($goods);
            }
        }
        return $list;
    }
    /**
     * 淘礼金商品 https://www.dataoke.com/kfpt/api-d.html?id=29
     *
     * @param [type] $page
     * @param [type] $page_size
     * @return void
     */
    public function GetFirstOrderGiftMoney($pageSize,$pageId)
    {
        log::write($pageSize);
        $params = $this->setParams(['pageSize'=>$pageSize,'pageId'=>$pageId]);
        $result = send_get(self::request_url['gift_money_url'],$params);
        if(empty($result) || $result['code'] != 0) return [];
        $list = $result['data'];
        if(!empty($list)){
            foreach($list as &$goods){
                // log::write($goods);
                // if((double)$goods['firstOrderAmount']<4){
                //    //删除佣金小于4的商品
                //    $list=array_diff_key($data, ['id'=>$goods['id']]);
                // }
            }
        }
        return $list;
    }
    /**
     * 京东数据
     */
    private static function initJdGoods($goods)
    {
        if(empty($goods)) return [];
        $init_goods = self::goodsField();
        $init_goods['id'] = isset($goods['skuId']) ? $goods['skuId'] : '';
        $init_goods['goodsId'] =(isset($goods['skuId']) && !empty($goods['skuId']) ? $goods['skuId'] : (isset($goods['skuId']) ? $goods['skuId'] : ''));   //商品id
        $init_goods['itemLink'] = isset($goods['materialUrl']) ? $goods['materialUrl'] : '';        //商品链接
        $init_goods['title'] = isset($goods['skuName']) ? $goods['skuName'] : '';               //商品标题
        $init_goods["dtitle"] = isset($goods['skuName']) ? $goods['skuName'] : '';               //短标题
        if(empty($init_goods['dtitle'])) $init_goods['skuName'] = $init_goods['skuName'];
        $init_goods["actualPrice"] = isset($goods['actualPrice']) ? $goods['actualPrice'] : '';        //券后价
        $init_goods["originalPrice"] = isset($goods['originPrice']) ? $goods['originPrice'] : '';        //商品原价
        if(isset($goods['originPrice']))$init_goods["originPrice"] = $goods['originPrice'];
        $init_goods["sellerId"] = isset($goods['shopId']) ? $goods['shopId'] : '';           //店铺Id
        $init_goods["shopName"] = isset($goods['shopName']) ? $goods['shopName'] : '';           //店铺名称
        //$init_goods['shopLogo'] = isset($goods['shopLogo']) ? $goods['shopLogo'] : '';
        //$init_goods['shopLevel'] = isset($goods['shopLevel']) ? $goods['shopLevel'] : '';           //店铺等级
        $init_goods['descScore'] = isset($goods['goodsCommentShare']) ? $goods['goodsCommentShare'] : '';           //描述分
        //$init_goods['dsrScore'] = isset($goods['dsrScore']) ? $goods['dsrScore'] : '';           //描述相符
        //$init_goods['dsrPercent'] = isset($goods['dsrPercent']) ? $goods['dsrPercent'] : '';           //描述同行比
        //$init_goods['shipScore'] = isset($goods['shipScore']) ? $goods['shipScore'] : '';           //物流服务
        //$init_goods['serviceScore'] = isset($goods['serviceScore']) ? $goods['serviceScore'] : '';           //服务态度
        $init_goods["couponPrice"] = isset($goods['couponAmount']) ? $goods['couponAmount'] : '';       //优惠券金额
        $init_goods["monthSales"] = isset($goods['inOrderCount30Days']) ? format_number($goods['inOrderCount30Days']) : 0;        //30天销量
        $init_goods['twoHoursSales'] = isset($goods['inOrderCount30Days']) ? format_number($goods['inOrderCount30Days']) : 0; //
        //$init_goods['specialText'] = isset($goods['specialText']) ? $goods['specialText'] : [];
        $init_goods["mainPic"] = isset($goods['picMain']) ? $goods['picMain'] : '';      //商品主图
        //$init_goods["video"] = isset($goods['video']) ? $goods['video'] : '';              //商品视频
        $init_goods['couponLink'] = isset($goods['couponLink']) ? $goods['couponLink'] : '';          //优惠券链接
        $init_goods['couponEndTime'] = isset($goods['couponEndTime']) && !empty($goods['couponEndTime']) ? date('Y-m-d',strtotime($goods['couponEndTime'])) : '';      //优惠券结束时间
        $init_goods['couponStartTime'] = isset($goods['couponStartTime']) && !empty($goods['couponStartTime']) ? date('Y-m-d',strtotime($goods['couponStartTime'])) : '';      //优惠券开始时间
        //if(isset($goods['tchaoshi']) && $goods['tchaoshi'] == 1)$goods['shopType'] = 2; //天猫超市
        $init_goods['sourceType'] = "jd";
      /*   if(isset($goods['shopType'])){
            $init_goods['shopType'] = isset(self::shop_type[$goods['shopType']]) ? self::shop_type[$goods['shopType']] : "未知";            //店铺类型
            switch($goods['shopType']){
                case 1 :
                    $init_goods['sourceType'] = "tm";
                    break;
                case 2 :
                    $init_goods['sourceType'] = "tmshop";
                    break;
                case 3 :
                    $init_goods['sourceType'] = "tminte";
                    break;
            }
        } */
        $init_goods['desc'] = isset($goods['extensionContent']) ? $goods['extensionContent'] : '';  //推广文案
        $init_goods['imgs'] = isset($goods['smallImages']) ? $goods['smallImages'] : [];
        empty($goods['smallImages'])&& $init_goods['smallImages'] =explode(",",$goods['smallImages']);
        //!empty($goods['reimgs']) && $init_goods['reimgs'] = explode(",",$goods['reimgs']);
        if(!empty($goods['detailPics'])){
            $detailPics = json_decode($goods['detailPics'],true);
            if($detailPics){
                $tmp = [];
                foreach($detailPics as $key => $img){
                    array_push($tmp,$img['img']);
                }
                $init_goods['detailPics'] = $tmp;
            }
        }else{
            $init_goods['detailPics'] = $init_goods['imgs'];
        }
        $init_goods['faction']='j';
       /*  $init_goods['isSubdivision'] = isset($goods['isSubdivision']) ? $goods['isSubdivision'] : 0;  //     该商品是否有细分类目
        $init_goods['subdivisionId'] = isset($goods['subdivisionId']) ? $goods['subdivisionId'] : ''; //该商品所属细分类目id
        $init_goods['subdivisionName'] = isset($goods['subdivisionName']) ? $goods['subdivisionName'] : ''; //该商品所属细分类目名称
        $init_goods['subdivisionRank'] = isset($goods['subdivisionRank']) ? $goods['subdivisionRank'] : ''; //该商品所属细分类目排名 */
        $init_goods['labelImg'] = self::initSourse($init_goods['sourceType']);
        //计算返利金额
        $init_goods['fanli'] = self::rebate($goods['actualPrice'],$goods['commissionShare']/100);
        $init_goods['topFanli'] = self::rebate($goods['actualPrice'],$goods['commissionShare']/100,self::$topFanliRate);
        $init_goods['isCollect'] = self::isCollect($init_goods);
        return $init_goods;
    }
    /**
     * 格式化商品信息
@@ -606,6 +960,7 @@
        }
        $init_goods['desc'] = isset($goods['desc']) ? $goods['desc'] : '';  //推广文案
        !empty($goods['imgs']) && $init_goods['imgs'] = explode(",",$goods['imgs']);
        empty($goods['imgs'])&& $init_goods['imgs'] =explode(",",$goods['mainPic']);
        !empty($goods['reimgs']) && $init_goods['reimgs'] = explode(",",$goods['reimgs']);
        if(!empty($goods['detailPics'])){
            $detailPics = json_decode($goods['detailPics'],true);
@@ -625,8 +980,8 @@
        $init_goods['subdivisionRank'] = isset($goods['subdivisionRank']) ? $goods['subdivisionRank'] : ''; //该商品所属细分类目排名
        $init_goods['labelImg'] = self::initSourse($init_goods['sourceType']);
        //计算返利金额
        $init_goods['fanli'] = self::rebate($goods['actualPrice'],$goods['commissionRate']);
        $init_goods['topFanli'] = self::rebate($goods['actualPrice'],$goods['commissionRate'],self::$topFanliRate);
        $init_goods['fanli'] = self::rebate($goods['actualPrice'],$goods['commissionRate']/100);
        $init_goods['topFanli'] = self::rebate($goods['actualPrice'],$goods['commissionRate']/100,self::$topFanliRate);
        $init_goods['isCollect'] = self::isCollect($init_goods);
        return $init_goods;
    }