You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							99 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							99 lines
						
					
					
						
							2.7 KiB
						
					
					
				
								<?php
							 | 
						|
								/**
							 | 
						|
								 *
							 | 
						|
								 */
							 | 
						|
								include_once(SERVER_ROOT."/model/mBase.php");
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								class mShop extends mBase {
							 | 
						|
								
							 | 
						|
								    private $obj;
							 | 
						|
								    private $shop;
							 | 
						|
								
							 | 
						|
								    public function __construct() {
							 | 
						|
								        $this->obj = new dShop();
							 | 
						|
								        $this->shop = 'shop_list';
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function addShop($name, $access_token, $owner_id, $expire_time, $uid=0) {
							 | 
						|
								        // 设置推送
							 | 
						|
								        $pobj = new mPdd();
							 | 
						|
								        $r = $pobj->getPddDdyPdpUsers($owner_id);
							 | 
						|
								        if (empty($r['users'])) $pobj->addPddDdyPdpUser($name, $access_token);
							 | 
						|
								
							 | 
						|
								        $data = array();
							 | 
						|
								        $data['access_token'] = $access_token;
							 | 
						|
								        $data['owner_id'] = $owner_id;
							 | 
						|
								        $data['expire_time'] = $expire_time;
							 | 
						|
								
							 | 
						|
								        $info = $this->getShopByName($name);
							 | 
						|
								        if ($info) {
							 | 
						|
								            $res = $this->updateShop($info['id'], $data);
							 | 
						|
								
							 | 
						|
								            return $info;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        if ($uid) {
							 | 
						|
								            $data['uid'] = $uid;
							 | 
						|
								        } else {
							 | 
						|
								            $uobj = new mUser();
							 | 
						|
								            $uid = $uobj->addUser();
							 | 
						|
								            if (!$uid) {
							 | 
						|
								                $this->setError('uid创建失败');
							 | 
						|
								                return false;
							 | 
						|
								            }
							 | 
						|
								            $data['uid'] = $uid;
							 | 
						|
								        }
							 | 
						|
								        $data['name'] = $name;
							 | 
						|
								
							 | 
						|
								        $res = $this->obj->insert($this->shop, $data);
							 | 
						|
								
							 | 
						|
								        $info = $this->getShopByName($name);
							 | 
						|
								
							 | 
						|
								        return $info;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * 同步最近3个月历史订单
							 | 
						|
								     * @param unknown $name
							 | 
						|
								     * @return boolean
							 | 
						|
								     */
							 | 
						|
								    public function syncHistoricalOrders($name) {
							 | 
						|
								        $rdobj = $this->initRedis();
							 | 
						|
								
							 | 
						|
								        $start_date = date("Y-m-d", strtotime('-3 month'));
							 | 
						|
								
							 | 
						|
								        for($i=0; $i<100; $i++) {
							 | 
						|
								            $date = date("Y-m-d", strtotime($start_date)+$i*86400);
							 | 
						|
								            if ($date > date("Y-m-d H:i:s")) break;
							 | 
						|
								
							 | 
						|
								            // 同步历史订单
							 | 
						|
								            $rdobj->lpush(_RQ_SYNC_HISTORICAL_ORDERS, json_encode(array('name'=>$name, 'start_date'=>$date)));
							 | 
						|
								
							 | 
						|
								            // 同步增量订单开始时间
							 | 
						|
								            if ($date == date("Y-m-d")) {
							 | 
						|
								                $rdobj->lpush(_RQ_SYNC_INCREMENT_ORDERS, json_encode(array('name'=>$name, 'start_date'=>date("Y-m-d H:i:s"), 'end_date'=>date("Y-m-d H:i:s", strtotime("+5 minute")))));
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        return true;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function getShopByName($name) {
							 | 
						|
								        return $this->obj->select($this->shop, array('sql'=>'`name`=?', 'vals'=>array($name)));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function getShopById($id) {
							 | 
						|
								        return $this->obj->select($this->shop, array('sql'=>'`id`=?', 'vals'=>array($id)));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function getShopByOwnerid($owner_id) {
							 | 
						|
								        return $this->obj->select($this->shop, array('sql'=>'`owner_id`=?', 'vals'=>array($owner_id)));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								    public function updateShop($id, $data) {
							 | 
						|
								        return $this->obj->update($this->shop, $data, array('sql'=>'`id`=?', 'vals'=>array($id)));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								}
							 |