zoukankan      html  css  js  c++  java
  • 让wego微购购物分享系统采集拍拍数据功能之腾讯paipai功能采集插件

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

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

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

     

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

    adminLibActionitems_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 hinkphpExtendVendorapipaipai

    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

    女鞋定制

  • 相关阅读:
    主从复制(多台服务器搭建环境)【十五】
    Linux中kill,pkill,killall和xkill命令汇总讲解
    redis持久化机制【十三】
    守护进程详解及创建,daemon()使用
    【small项目】MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
    Redis事务【十二】
    乐观锁和悲观锁的区别
    Redis 命令与连接【十一】
    Redis 配置【十】
    DB_Links创建际删除
  • 原文地址:https://www.cnblogs.com/mengdejun/p/wego_paipai_collect_plugin.html
Copyright © 2011-2022 走看看