微擎 人人商城 对接京东vop 对接京东商品,同步商品 地址,库存,价格,上下架等。三 layer +微擎+人人商城 使用ajax 打造 jdvop 京东大客户 商品后台图形界面对接流程

匿名 (未验证) 提交于 2019-12-03 00:02:01

今天突然成运营那里得知,我们可能有5000左右的商品需要同步, 于是我觉得需要写一个后台更新的页面

先上效果图  如下 

更新新增商品 和单个商品更新如下

 

 

 

更新全部商品效果如下:

 

 

 

 

 

上面的弹窗使用的layer 的弹窗,不得不说 这个弹窗做的很好

 

 话不多说,直接上代码吧

首先肯定是要在 header 头中引入 layer.js

 

 

 

 

 接下来便是前端的js部分

<script>     var num=0;     var total=0;     $("#updateAll").click(function(){         if (num==0) {             layer.msg('启动更新,获取商品总数中请等待', {time: 5000, icon:1});             var url = ";             var data = {type: 'getTotal'};             $.ajax({                 type: 'get',                 async: true,                 url: url,                 data: data,                 dataType: "json",                 timeout: 90000,                 success: function (dates) {                     if (dates.error == 0) {                         num=num+20;                         total = dates.total;                         layer.msg('成功获取总商品数'+total+' 个 准备更新', {time: 6000, icon:1});                         layer.msg('正在更新0/'+total+'个商品 请耐心等待', {time: 40000, icon:1});                         $("#updateAll").click();                     } else {                         layer.alert('获取商品池数量失败')                     }                 }             })         }else{                 var url = ";                 var data = {type: 'updateAll',num:num};                 $.ajax({                     type: 'get',                     async: true,                     url: url,                     data: data,                     dataType: "json",                     timeout: 90000,                     success: function (dates) {                         if (dates.error == 0&&dates.status==0) {                             //提示层                             layer.msg('正在更新第 '+num+'/'+total +' 请耐心等待', {time: 40000, icon:1});                             num=num+20;                             $("#updateAll").click();                         } else {                             if (dates.status == 1){                                 layer.alert('更新完成,本次共更新'+total+'个商品,请刷新页面。如遇更新不完整,请单独更新,或者重新更新');                                 num=0;                                 total=0;                             }else {                                 layer.confirm('更新第' + num + '个区间商品失败,错误信息'+dates.errorMsg+'是否跳过该区间?', {                                     btn: ['跳过', '取消'] //按钮                                 }, function () {                                     num+=num+20;                                     $("#updateAll").click();                                 }, function () {                                     layer.msg('您选择了取消');                                 });                             }                         }                     }                 })              }     });     $("#update").click(         function(){             if (num==0) {                 layer.msg('启动更新,获取商品总数中请等待', {time: 5000, icon:1});                 var url = "http://amuying1.mynatapp.cc/web/index.php?c=site&a=entry&m=ewei_shopv2&do=web&r=goods.vopUpdateAll";                 var data = {type: 'getTotal',style:'update'};                 $.ajax({                     type: 'get',                     async: true,                     url: url,                     data: data,                     dataType: "json",                     timeout: 90000,                     success: function (dates) {                         if (dates.error == 0) {                             num=num+20;                             total = dates.total;                             layer.msg('成功获取总商品数'+total+' 个 准备更新', {time: 6000, icon:1});                             layer.msg('正在更新0/'+total+'个商品 请耐心等待', {time: 40000, icon:1});                             $("#update").click();                         } else {                             layer.alert('获取商品池数量失败')                         }                     }                 })             }else{                 var url = "http://amuying1.mynatapp.cc/web/index.php?c=site&a=entry&m=ewei_shopv2&do=web&r=goods.vopUpdateAll";                 var data = {type: 'update',num:num};                 $.ajax({                     type: 'get',                     async: true,                     url: url,                     data: data,                     dataType: "json",                     timeout: 90000,                     success: function (dates) {                         if (dates.error == 0&&dates.status==0) {                             //提示层                             layer.msg('正在更新第 '+num+'/'+total +' 请耐心等待', {time: 40000, icon:1});                             num=num+20;                             $("#update").click();                         } else {                             if (dates.status == 1){                                 layer.alert('更新完成,本次共更新'+total+'个商品,请刷新页面。如遇更新不完整,请单独更新,或者重新更新');                                 num=0;                                 total=0;                             }else {                                 layer.confirm('更新第' + num + '个区间商品失败,错误信息'+dates.errorMsg+'是否跳过该区间?', {                                     btn: ['跳过', '取消'] //按钮                                 }, function () {                                     num+=num+20;                                     $("#update").click();                                 }, function () {                                     layer.msg('您选择了取消');                                 });                             }                         }                     }                 })              }         }      ) </script>

后端代码:

 /**      * 更新全部商品,有就update  没有就 insert      *      */     public function vopUpdateAll(){         global $_GPC;         if ($_GPC['type']=='getTotal'){             // 获取部分全部商品数             include_once EWEI_SHOPV2_PATH . 'jdvop/goods/controller/Index.php';             $res=new \jdvop_goods\Index();             if ($_GPC['style']=='update'){                 $result= $res->getAllSku(2);             }else{                 $result= $res->getAllSku();             }             if ($result['error']!=0){                 echo json_encode(array('error'=>1,'errorMsg'=>$result['errorMsg'],'status'=>0));                 die;             }else{                 echo json_encode(array('error'=>0,'total'=>$result['total'],'status'=>0));                 die;             }         }else if ($_GPC['type']=='updateAll'){             // 更新商品 每次更新二十个             if (isset($_GPC['num'])&&$_GPC['num']>=20){                 $psize=20;                 $pindex=$_GPC['num']-20;                 $getSku=pdo_fetchall('select sku from '.tablename('ewei_shop_jdvop_goods')." order by id asc  limit $pindex".','."$psize");                 if ($getSku){                     // 获取部分全部商品数                     include_once EWEI_SHOPV2_PATH . 'jdvop/goods/controller/Index.php';                     $res=new \jdvop_goods\Index();                    $result= $res->getDetail(1,$getSku);                    if ($result==true){                        echo json_encode(array('error'=>0,'status'=>0));                        die;                    }else{                        echo json_encode(array('error'=>1,'status'=>0,'errorMsg'=>'获取商品信息错误,请重试'));                        die;                    }                 }else{                     echo json_encode(array('error'=>0,'status'=>1));                     die;                 }             }         }else if($_GPC['type']=='update'){             // 更新商品 每次更新二十个             if (isset($_GPC['num'])&&$_GPC['num']>=20){                 $psize=20;                 $pindex=$_GPC['num']-20;                 $getSku=pdo_fetchall('select sku from '.tablename('ewei_shop_jdvop_goods')." where status=0 order by id asc  limit $pindex".','."$psize");                 if ($getSku){                     // 获取部分全部商品数                     include_once EWEI_SHOPV2_PATH . 'jdvop/goods/controller/Index.php';                     $res=new \jdvop_goods\Index();                     $result= $res->getDetail(1,$getSku);                     if ($result==true){                         echo json_encode(array('error'=>0,'status'=>0));                         die;                     }else{                         echo json_encode(array('error'=>1,'status'=>0,'errorMsg'=>'获取商品信息错误,请重试'));                         die;                     }                 }else{                     echo json_encode(array('error'=>0,'status'=>1));                     die;                 }             }          }      }      /**      * 更新单个商品      */     public function vopUpdate(){         global $_GPC;         global $_W;         if (empty($_GPC['id'])){             show_json(0,'ID 非法');         }else{            $check= pdo_fetch('select jdsku from '.tablename('ewei_shop_goods')." where id=:id and uniacid=:uniacid",array(':id'=>$_GPC['id'],':uniacid'=>$_W['uniacid']));           if ($check){               // 获取部分全部商品数               include_once EWEI_SHOPV2_PATH . 'jdvop/goods/controller/Index.php';               $res=new \jdvop_goods\Index();               $result= $res->getDetail(2,$check);               if ($result==true){                   show_json(1, array('url' => referer()));               }else{                   show_json(0,'更新失败'.$result['errorMsg']);               }           }else{               show_json(0,'ID 非法');           }         }      }

采用的是面向切面编程(oop) 里面具体的逻辑 控制器,不在赘述。 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!