mengdejun

wego是一款很不错的导购系统,无论前后台设计风格和功能都还不错,可有时我们的确需要一些自定义的功能,毕竟万千世界,大家都做一样的东西,采集同样的数据,能不烦吗?哈哈,今天就奉献上一个wego拍拍采集的插件,虽有瑕疵,但愿能和大家一起完善。如果做paipai推广,需要注册一些帐号资料,主要是腾讯开放平台的应用和易推广ID http://etg.qq.com/,我要-人气购物平台就是采用这种方式调用数据的。

推广者ID是推广人身份的唯一编号,可不能搞错。其次需要我们在腾讯开放平台上http://fuwu.paipai.com/app/ui/my/list/all.xhtml创建我们的应用已获得CPS调用权限。

接下来我们完成功能实现吧,既然是插件就需要配置吧,咱们首先完成配置吧。

 

配置完成了,可后台功能,咱们还没实现了,别着急,马上附上代码,只附上有用的,如果大家觉得自己替换马上,可使用本文的附件直接替换,替换前记得要备份哟。

\admin\Lib\Action\items_collectAction.class.php

拍拍API设置:

/**
     * @desc 拍拍API
     */
    public function paipaiapi(){
        $setting_mod = M(\'setting\');
        if (isset($_POST[\'dosubmit\'])) {    
            $paipai[\'paipai_userid\'] = isset($_POST[\'paipai_userid\']) && trim($_POST[\'paipai_userid\']) ? trim($_POST[\'paipai_userid\']) : $this->error(\'请填写userid\');
            $paipai[\'paipai_appoauthid\'] = isset($_POST[\'paipai_appoauthid\']) && trim($_POST[\'paipai_appoauthid\']) ? trim($_POST[\'paipai_appoauthid\']) : $this->error(\'请填写appoauthid\');
            $paipai[\'paipai_appoauthkey\'] = isset($_POST[\'paipai_appoauthkey\']) && trim($_POST[\'paipai_appoauthkey\']) ? trim($_POST[\'paipai_appoauthkey\']) : $this->error(\'请填写appoauthkey\');
            $paipai[\'paipai_accesstoken\'] = isset($_POST[\'paipai_accesstoken\']) && trim($_POST[\'paipai_accesstoken\']) ? trim($_POST[\'paipai_accesstoken\']) : $this->error(\'请填写accesstoken\');
            $paipai[\'paipai_uid\'] = isset($_POST[\'paipai_uid\']) && trim($_POST[\'paipai_uid\']) ? trim($_POST[\'paipai_uid\']) : $this->error(\'请填写uid\');
            foreach( $paipai as $key=>$val ){
                $setting_mod->where("name=\'$key\'")->save(array(\'data\'=>$val));
            }            
            $this->success(\'修改成功\', U(\'items_collect/paipaiapi\'));
        }
        $res = $setting_mod->where("name=\'paipai_userid\' OR name=\'paipai_appoauthid\' OR name=\'paipai_appoauthkey\' OR name=\'paipai_accesstoken\' OR name=\'paipai_uid\'")->select();
        foreach( $res as $val ){
            $paipaiset[$val[\'name\']] = $val[\'data\'];
        }
        $this->assign(\'paipai\',$paipaiset);
        $this->display();
    }

 

//拍拍秒数据采集入库
    private function paipai_collect_insert($item,$cate_id){
        $items_mod=D(\'items\');
        $items_tags_mod=D(\'items_tags\');
        $items_tags_item_mod=D(\'items_tags_item\');
        //需要判断商品是否已经存在
        $isset=$items_mod->where("item_key=\'".$item[\'item_key\']."\'")->getField(\'id\');
        if($isset){
            return;
        }
        $add_time=time();
        $item[\'img\']=$item[\'bigUri\'];
        $item[\'simg\']=$item[\'imgUri\'];
        $item[\'bimg\']=$item[\'bigUri\'];
        if($item[\'popular\']==0){
            $item[\'popular\']=1;
        }
        
        $item_id=$items_mod->add(array(
            \'title\'=>ReplaceKeywords(strip_tags($item[\'title\'])),
            \'cid\'=>$cate_id,
            \'sid\'=>$item[\'sid\'],
            \'item_key\'=>$item[\'item_key\'],
            \'img\'=>$item[\'img\'],
            \'simg\'=>$item[\'simg\'],
            \'bimg\'=>$item[\'bimg\'],
            \'price\'=>$item[\'price\'],
            \'url\'=>$item[\'tagUrl\'],
            \'likes\'=>$item[\'popular\'],
            \'seller_name\'=>$item[\'nickName\'],
            \'cash_back_rate\'=>$item[\'cvValue\'],
            \'haves\'=>1,
            \'add_time\'=>$add_time,        
        ));
        //处理标签
        $tags = $items_tags_mod->get_tags_by_title(strip_tags($item[\'title\']));
        if ($tags) {
            $tags = array_unique($tags);
            foreach ($tags as $tag) {
                $isset_id = $items_tags_mod->where("name=\'".$tag."\'")->getField(\'id\');
                if ($isset_id) {
                    $items_tags_mod->where(\'id=\'.$isset_id)->setInc(\'item_nums\');  //如果存在此标签的商品  让item_nums+1
                    $items_tags_item_mod->add(array(
                        \'item_id\' => $item_id,
                        \'tag_id\' => $isset_id
                    ));
                } else {
                    $tag_id = $items_tags_mod->add(array(\'name\'=>$tag));
                    $items_tags_item_mod->add(array(
                        \'item_id\' => $item_id,
                        \'tag_id\' => $tag_id
                    ));
                }
            }
        }
    }
public function collect()
    {
        if(isset($_REQUEST[\'dosubmit\'])){
            $cate=implode(\',\',$_REQUEST[\'cate\']);
                
            header("location:".U(\'items_collect/taobao_batch_collect_jump?act=batch&cate=\'.$cate));
            exit;
        }
        $code = isset($_REQUEST[\'code\']) ? trim($_REQUEST[\'code\']) : $this->error(\'参数错误\');
        $items_cate_mod = D(\'items_cate\');
        switch ($code) {    
            case \'taobao\':
                $res=get_items_cate_list();
                $this->assign(\'items_cate_list\', $res[\'sort_list\']);
                break;        
            case \'miao\':
                $res=get_items_cate_list(\'0\',\'0\',\'1\',\'collect_miao\');
                $this->assign(\'items_cate_list\', $res[\'sort_list\']);
                break;
            case "paipai":
                $this->error("暂不支持此功能。");
                break;
        }
        $this->assign(\'code\',$code);
        $this->display();
    }
//分类采集
    public function cate_collect()
    {
        if(isset($_REQUEST[\'dosubmit\'])){
            $cate=implode(\',\',$_REQUEST[\'cate\']);
            header("location:".U(\'items_collect/taobao_batch_collect_jump?act=batch&cate=\'.$cate));
            exit;
        }
        $code = isset($_REQUEST[\'code\']) ? trim($_REQUEST[\'code\']) : $this->error(\'参数错误\');
        $items_cate_mod = D(\'items_cate\');
        switch ($code) {    
            case \'taobao\':
                    $items_cate_mod = D(\'items_cate\');
                    $taocate=$this->get_taocats();                    
                    $this->assign(\'cate_list\', $taocate);
                break;        
            case \'miao\':
                    $items_cate_mod = D(\'items_cate\');
                    $miaocate=$this->get_miaocats();                    
                    $this->assign(\'cate_list\', $miaocate);
                break;
            case "paipai":
                    $items_cate_mod = D(\'items_cate\');
                    $paipaicate=$this->get_paipaicats();                    
                break;
        }
        $this->assign(\'code\',$code);
        $this->display();
    }    
 /**
     * @desc 获取拍拍分类
     */
    private function get_paipaicats($cid){
        //$paipai_api=$this->paipai_client();
        //$paipai_api->setApiPath("/deal/sellerSearchDealList.xhtml")
        //exit;
        return null;
    }

拍拍搜索功能

public function search_paipai(){
        $_GET=setFormString($_GET); 
        $keyword = isset($_GET[\'keyword\']) && trim($_GET[\'keyword\']) ? trim($_GET[\'keyword\']) : \'\';
        $pages = isset($_GET[\'pages\']) && intval($_GET[\'pages\']) ? intval($_GET[\'pages\']) : 1;
        $p=isset($_GET[\'p\'])?$_GET[\'p\']:1; 
        $start_price=$_GET[\'begPrice\'];        
        $end_price=$_GET[\'endPrice\'];
        //获取此商品对应的商家sid
        $items_cate_mod = D(\'items_cate\');
        $items_site_mod = D(\'items_site\');
        $paipai_api = $this->paipai_client();   //获取59秒api设置信息
        $paipai_api->setApiPath("/cps/cpsCommSearch.xhtml");//这个是用户需要调用的 接口函数
        $paipai_api->setMethod("get");//post
        $paipai_api->setCharset("utf-8");//gbk
        $paipai_api->setFormat("json");//gbk
        !empty($_GET[\'begPrice\'])&&$params[\'begPrice\']=$_GET[\'begPrice\'];
        !empty($_GET[\'endPrice\'])&&$params[\'endPrice\']=$_GET[\'endPrice\'];
        !empty($_GET[\'keyWord\'])&&$params[\'keyWord\']=$_GET[\'keyWord\'];
        !empty($_GET[\'pageSize\'])&&$params[\'pageSize\']=$_GET[\'pageSize\'];
        !empty($_GET[\'degree\'])&&$params[\'degree\']=$_GET[\'degree\'];
        !empty($_GET[\'saleType\'])&&$params[\'saleType\']=$_GET[\'saleType\'];
        //填写推广者ID
        $params[\'userId\']=$this->setting[\'paipai_userid\'];
        $paipai_api->setParams($params);
        $data=$paipai_api->invoke();
        if(!$data||$data->CpsCommSearchResult->errorCode!=0)
            return;
        $data=json_decode($data);
        $goods_list= $data->CpsCommSearchResult->vecComm;
        $goods_list_s = array();
        foreach ($goods_list as $val){
            $val->price=doubleval(($val->price/100));
            $val->cvValue=doubleval(($val->cvValue/10000));
            $goods_list_s[$val->itemId]=get_object_vars_final($val);
        }      
        //每次保存
        count($goods_list_s)>0 && F(\'goods_list_paipai\',$goods_list_s);
        $this->assign(\'list\', $goods_list_s);      
        $this->display();
        
    }
/**
     * @desc 拍拍数据发布
     */
    public function publishpaipai(){
        $ids=$_GET[\'ids\'];
        if(isset($_POST[\'dosubmit\'])){                 
            //从缓存中获取本页商品数据
            $items_cate_mod = D(\'items_cate\');
            $ids=$_POST[\'ids\'];
               $ids_arr = explode(\',\', $ids);
               $cate_id=$_POST[\'cid\'];
            $goods_list_s = F(\'goods_list_paipai\');    
            $items_site_mod = D(\'items_site\');
              $sid = $items_site_mod->where("alias=\'paipai\'")->getField(\'id\');
              $items_nums = 0;
            foreach ($goods_list_s as $key => $val) {
               if (in_array($key,$ids_arr)) {    
                   $val[\'item_key\'] = \'paipai_\'.$val[\'itemId\'];
                $val[\'sid\'] = $sid;
                $this->paipai_collect_insert($val,$cate_id);   //数据入库
                $items_nums++;
               }
            }  
            if ($items_nums>0) {
                $items_cate_mod->where(\'id=\'.$cate_id)->setInc(\'item_nums\', $items_nums);
            }            
            $this->collect_success(\'采集完成\', \'\', \'collect\');      
        }else{
            $items_cate_mod = D(\'items_cate\');
            $cate_list=$items_cate_mod->get_top2_list();
            $this->assign(\'cate_list\', $cate_list);
            $this->assign(\'ids\',$ids);
        }
        $this->display();
    }
    

最后一步我们追加系统需要的API到系统vendar库中:\includes\thinkphp\Extend\Vendor\apipaipai

HttpClient.class.php

PaiPaiOpenApiOauth.php

拍拍易推广CPSAPI:http://files.cnblogs.com/mengdejun/apipaipai.zip

整个插件附件:http://files.cnblogs.com/mengdejun/wyao.in.paipai.zip

现在我们可以畅快的使用拍拍产品了,多一种选择,多一种收获,何乐而不为了。

wyao.in

我要

 原创文章,拒绝采集,如需转载请保留出处及其作者信息。

 作者:孟德军<mengdj@outlook.com> QQ:280759843 自定义开发可Q我。

本文地址:http://www.cnblogs.com/mengdejun/p/wego_paipai_collect_plugin.html

女鞋定制

分类:

技术点:

相关文章:

  • 2021-09-13
  • 2021-09-26
  • 2022-12-23
  • 2021-12-06
  • 2021-09-27
  • 2021-11-20
  • 2021-07-15
  • 2021-08-13
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-03
  • 2021-09-24
  • 2022-01-08
  • 2021-08-07
相关资源
相似解决方案