A-A+

ecshop手动执行定时脚本

2018年01月15日 PHP开源系统 暂无评论 阅读 0 views 次

有段时间没怎么写关于ecshop系统文章了,因为最近一直在开发tp系统了,大多数的开发都在tp平台之上,不过最近要做一个商城嵌入到app软件里面,所以又重新开启了ecshop系统的开发,目前正在做一个同步订单的接口,除了可以使用定时脚本之外,客服部还希望可以在后台点击同步提交执行的功能,其实很简单,无非就是把定时任务的功能做成了手动而已。

ecshop有自己的一套定时脚本规则,只是研究起来费劲一点,所以只好自己去做一套了,主要是手动去执行,在定时脚本中,我们只要批量扫描就可以了,但如果是手动执行的话就不能直接批量扫描了,需要进行分页扫描,这样才不至于因为数据量太大而导致浏览器卡掉的情况。

好了,目前主要看一下如何自动分页扫描数据表,代码如上:

  1. /** 
  2.  * app同步订单接口 
  3.  * @param member_id = 会员id 
  4.  * @param order_no = 订单号 
  5.  * @param goods_name  = 商品名称 
  6.  * @param return json 
  7.  */  
  8.   
  9. function syn_order($order_id){  
  10.       
  11.     echo $order_id;echo '<br>';  
  12.   
  13. }  
  14.   
  15. //订单同步接口  
  16. if ($_GET['act'] == 'syn_order'){  
  17.       
  18.     $pagesize=20;  
  19.     $sql = 'SELECT `order_id` FROM ' . $ecs->table('order_info') . ' WHERE `order_status`=\'1\' and `pay_status`=\'2\' ORDER BY `order_id` desc ' . $limit . ' ';  
  20.     $rs = $db->query($sql);  
  21.     $recordcount=mysql_num_rows($rs);  
  22.     $pagecount=($recordcount-1)/$pagesize+1;  
  23.     $pagecount=(int)$pagecount;  
  24.     $pageno=$_GET["pageno"];  
  25.     $page = $_GET["pageno"]+1;  
  26.     if($pageno==""){  
  27.         $pageno=1;  
  28.     }  
  29.     if($pageno<1)  
  30.     {  
  31.         $pageno=1;  
  32.     }  
  33.     if($pageno>$pagecount)  
  34.     {  
  35.         echo '全部处理完成';exit();  
  36.         $pageno=$pagecount;  
  37.     }  
  38.     $startno=($pageno-1)*$pagesize;  
  39.     //分页显示  
  40.     $sql = 'SELECT `order_id` FROM ' . $ecs->table('order_info') . ' WHERE `order_status`=\'1\' and `pay_status`=\'2\' ORDER BY `order_id` desc limit '.$startno.','.$pagesize.'';  
  41.     $rs = $db->query($sql);  
  42.   
  43.     while ($rows = $db->fetch_array($rs)) {  
  44.         $res = syn_order($rows['order_id']);  
  45.     }  
  46.     //www.xiariboke.net  
  47.     $url = "/api/Fix.php?act=syn_order&pageno=".$page;  
  48.     echo('<script language="JavaScript">');echo("location.href='$url';");echo('</script>');  
  49. }  

其实就是一个很简单的分页跳转,这样可以减轻批量扫描的负担,syn_order 方法则是逻辑代码,可以post到其它项目进行订单的同步,如果认真看代码的话,这里基本使用了php的原生代码,在其它开源软件里面可以通用。

标签:

给我留言