heyuntao
2023-07-17 166226e8ba606155da3d020742d557de1def3d01
application/api/logic/taoke/Search.php
@@ -123,7 +123,7 @@
                    $user = $ModelUser->get(USERID);
                    $info = $LogicPdd->universal($user['common_relation_id'],$uri);
                    if($info){
                        $goods = $LogicPdd->searchGoods($info,'',$user['common_relation_id'],true,1,1);
                        $goods = $LogicPdd->searchGoods($info,'',$user['common_relation_id'],true,1,10);
                        if($goods !== false && isset($goods[0]))$goods = $goods[0];
                    }
                }  
@@ -143,9 +143,11 @@
        //根据传入的内容调用ast方法
        $goods = $this->ast($content);
        $title = '';
        $newGoods = [];
        //判断goods是否为空
        if(empty($goods)){
            $title = $content;
            $newGoods=array_merge($newGoods,$goods);
        }
        else{
            $title = $goods['title'];
@@ -157,30 +159,96 @@
        $LogicHaodanku = new LogicHaodanku();
        $LogicDataoke=new LogicDataoke();
        //根据标题查询天猫商品
        $newGoods = $LogicDataoke->superSearch($title,1,5,0,1);
        $taobaoGoods = $LogicDataoke->superSearch($title,1,40,0,1);
        //去除销量为0的商品并按照价格排序
        $tmGoods = array_filter($taobaoGoods,function($v){
            return $v['monthSales'] > 0&&strstr($v['shopName'],'旗舰店');
            unset($v);
        });
        //按照价格排序
        $sort1 = array_column($tmGoods, 'actualPrice');
        array_multisort($sort1, SORT_ASC, $tmGoods);
        $tmcsGoods=array_filter($taobaoGoods,function($v){
            return $v['monthSales'] > 0&&strstr($v['shopName'],'天猫超市');
            unset($v);
        });
        //按照价格排序
        $sort1 = array_column($tmcsGoods, 'actualPrice');
        array_multisort($sort1, SORT_ASC, $tmcsGoods);
        //根据标题查询京东自营商品
        $newGoods =array_merge($newGoods,$LogicJd->searchGoods($title,'desc','g',0,'match',1,5));
        $jdGoods=$LogicJd->searchGoods($title,'desc','g',0,'match',1,20);
        //去除销量为0的商品并按照价格排序
        $jdGoods = array_filter($jdGoods,function($v){
            return $v['monthSales'] > 0;
        });
        //按照价格排序
        $sort1 = array_column($jdGoods, 'actualPrice');
        array_multisort($sort1, SORT_ASC, $jdGoods);
        $ppdGoodes=[];
        $common_relation_id='168369887871568';
        //根据标题查询拼多多商品
        if(!empty($common_relation_id)){
            $ppdGoodes=$LogicPdd->searchGoods($title,'',$common_relation_id,'',1,10,0,'');
            $newGoods =array_merge($newGoods,array_slice($ppdGoodes,0,5));
            $ppdGoodes=$LogicPdd->searchGoods($title,'',$common_relation_id,'',1,20,0,'');
            //去除销量为0的商品并按照价格排序
            $ppdGoodes = array_filter($ppdGoodes,function($v){
                return $v['monthSales'] > 0;
            });
            //按照价格排序
            $sort1 = array_column($ppdGoodes, 'actualPrice');
            array_multisort($sort1, SORT_ASC, $ppdGoodes);
        }
        
        //根据标题查询抖音商品
        $newGoods =array_merge($newGoods,$LogicHaodanku->getDygoodsList('',$title,0,1,5));
        if(count($newGoods)<20){
         //根据标题查询淘宝商品
        // $newGoods =array_merge($newGoods,$LogicDataoke->superSearch($title,1,5,0,0));
         //根据标题查询京东POP商品
        // $newGoods =array_merge($newGoods,$LogicJd->searchGoods($title,'desc','p',0,'match',1,5));
         //根据标题查询唯品会商品
        // $newGoods =array_merge($newGoods,$LogicDingdanxia->superSearch($goods['title'],'wph','t'));
        }
        //将newGoods按照价格排序
        $sort1 = array_column($newGoods, 'actualPrice');
        $dyGoods =$LogicHaodanku->getDygoodsList('',$title,0,1,20);
        //去除销量为0的商品并按照价格排序
        $dyGoods = array_filter($dyGoods,function($v){
            return $v['monthSales'] > 0;
        });
        //按照价格排序
        $sort1 = array_column($dyGoods, 'actualPrice');
        array_multisort($sort1, SORT_ASC, $dyGoods);
        array_multisort($sort1, SORT_ASC, $newGoods);
        log::write("goodsList:".json_encode($newGoods));
        $goodscount=count(array_slice($tmGoods,0,5))+count(array_slice($jdGoods,0,5))+count(array_slice($ppdGoodes,0,5))+count(array_slice($dyGoods,0,5))+count(array_slice($tmcsGoods,0,5));
        if($goodscount<20){
            //如果goodscount不满足20则从天猫商品里补足20
            $needcount=20-$goodscount+5;
            $newGoods =array_merge($newGoods,array_slice($tmGoods,0,5));
            $newGoods =array_merge($newGoods,array_slice($tmcsGoods,0,5));
            $newGoods =array_merge($newGoods,array_slice($jdGoods,0,5));
            //按照价格排序
            $sort1 = array_column($newGoods, 'actualPrice');
            array_multisort($sort1, SORT_ASC, $newGoods);
            $newGoods =array_merge($newGoods,array_slice($taobaoGoods,0,$needcount));
            $newGoods =array_merge($newGoods,array_slice($ppdGoodes,0,5));
            $newGoods =array_merge($newGoods,array_slice($dyGoods,0,5));
        }
        else{
            $newGoods =array_merge($newGoods,array_slice($tmGoods,0,5));
            $newGoods =array_merge($newGoods,array_slice($tmcsGoods,0,5));
            $newGoods =array_merge($newGoods,array_slice($jdGoods,0,5));
            //按照价格排序
            $sort1 = array_column($newGoods, 'actualPrice');
            array_multisort($sort1, SORT_ASC, $newGoods);
            $newGoods =array_merge($newGoods,array_slice($ppdGoodes,0,5));
            $newGoods =array_merge($newGoods,array_slice($dyGoods,0,5));
        }
        //如果还是不满足20则从淘宝商品里补足20
        if(count($newGoods)<20){
            $tbGoods = $LogicDataoke->superSearch($title,1,20,0,0);
            //去除销量为0的商品并按照价格排序
            $tbGoods = array_filter($tbGoods,function($v){
                return $v['monthSales'] > 0&&$v['shopType']=='淘宝';
            });
            //按照价格排序
            $sort1 = array_column($tbGoods, 'actualPrice');
            array_multisort($sort1, SORT_ASC, $tbGoods);
            $newGoods =array_merge($newGoods,array_slice($tbGoods,0,20));
        }
        //取出前20个商品
        $goodsList = array_slice($newGoods,0,20);
        return $goodsList;