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.
158 lines
5.6 KiB
158 lines
5.6 KiB
<?php
|
|
|
|
include_once(dirname(__FILE__)."/library/publicBase.php");
|
|
|
|
class run extends publicBase {
|
|
public $control_name;
|
|
public $control_func;
|
|
|
|
public function __construct() {
|
|
session_start();
|
|
$this->checkpara();
|
|
$this->aftercheckpara();
|
|
$this->action();
|
|
$this->display();
|
|
}
|
|
|
|
private function checkpara() {
|
|
$argv = trim(trim($_GET['argv']),'/');
|
|
if(empty($argv)) {
|
|
$this->control_name = 'index';
|
|
$this->control_func = 'home';
|
|
} else {
|
|
$array = explode('/', $argv);
|
|
$this->control_name = $array[0] == '' ? 'index' : $array[0];
|
|
$this->control_func = $array[1] == '' ? 'home' : $array[1];
|
|
}
|
|
|
|
// 还原GET
|
|
if(!empty($array)) {
|
|
unset($_GET['argv']);
|
|
unset($array[0]);
|
|
unset($array[1]);
|
|
|
|
$count = count($array);
|
|
for($i=1;$i<=$count/2;$i++) {
|
|
$_GET[$array[$i*2]] = $array[$i*2+1];
|
|
}
|
|
}
|
|
|
|
// 如果URI带有常规传参形式,并入$_GET
|
|
$pos = strpos($_SERVER['REQUEST_URI'], '?');
|
|
if($pos!==false) {
|
|
$new_uri = substr($_SERVER['REQUEST_URI'], $pos+1);
|
|
$new_uri_arr = explode("&", $new_uri);
|
|
foreach($new_uri_arr as $v) {
|
|
$new_para = explode("=", $v);
|
|
$_GET[$new_para[0]] = $new_para[1];
|
|
}
|
|
}
|
|
}
|
|
|
|
private function aftercheckpara() {
|
|
$no_login_list = array('callback', 'tpl', 'api', 'login');
|
|
$is_need_login = in_array($this->control_name, $no_login_list) ? false : true;
|
|
|
|
if (!$is_need_login) {
|
|
// 接口
|
|
if ($this->control_name == 'api') {
|
|
if (empty($_POST['_uid'])) $this->ajax_json(false, '_uid参数不能为空');
|
|
if (empty($_POST['_token'])) $this->ajax_json(false, '_token参数不能为空');
|
|
|
|
if ($_POST['_uid'] != API_PDD_UID) $this->ajax_json(false, '_uid参数值不正确');
|
|
if ($_POST['_token'] != API_PDD_TOKEN) $this->ajax_json(false, '_token参数值不正确');
|
|
|
|
$obj = new mShop();
|
|
$shopinfo = $obj->getShopByName($_POST['name']);
|
|
if (empty($shopinfo)) $this->ajax_json(false, '店铺信息不存在');
|
|
if (empty($shopinfo['access_token'])) $this->ajax_json(false, '店铺授权信息不存在');
|
|
if (strtotime($shopinfo['expire_time']) < time()) $this->ajax_json(false, '店铺授权已过期,过期时间'.$shopinfo['expire_time']);
|
|
|
|
$this->para['_access_token'] = $shopinfo['access_token'];
|
|
$this->para['_shopinfo'] = $shopinfo;
|
|
|
|
$this->control_func = '_api_'.$this->control_func;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
$app_uid = $_SESSION['app_uid'];
|
|
$app_name = $_SESSION['app_name'];
|
|
|
|
if (empty($app_uid) || empty($app_name)) {
|
|
header('Location:/login');
|
|
exit();
|
|
}
|
|
|
|
$sobj = new mShop();
|
|
$shopinfo = $sobj->getShopByName($app_name);
|
|
if (empty($shopinfo)) {
|
|
header('Location:/login');
|
|
exit();
|
|
}
|
|
|
|
$this->view['_shopinfo'] = $this->para['_shopinfo'] = $shopinfo;
|
|
|
|
$obj = new mOrder();
|
|
$this->view['_wait_deliver_count'] = $this->para['_wait_deliver_count'] = $obj->getOrdersCount($shopinfo['uid'], $shopinfo['id'], ORDER_STATUS_WAIT_DELIVER_GOODS, REFUND_STATUS_NO_AFTER_SALES)+0;
|
|
$this->view['_after_sale_count'] = $this->para['_after_sale_count'] = $obj->getOrdersCount($shopinfo['uid'], $shopinfo['id'], 0, REFUND_STATUS_AFTER_SALE_ING)+0;
|
|
}
|
|
|
|
private function action() {
|
|
$control_func = empty($this->control_func) ? 'index' : $this->control_func;
|
|
|
|
// 判断控制层文件是否存在
|
|
$control_path = dirname(__FILE__).'/control/'.$this->control_name.'.php';
|
|
if(!file_exists($control_path)) {
|
|
die('class '.$this->control_name.' not exist.');
|
|
}
|
|
include_once ($control_path);
|
|
|
|
// 判断控制层方法是否存在
|
|
$obj = new $this->control_name;
|
|
|
|
##如下根据情况传递公共变量值##################
|
|
if (is_array($this->para)) {
|
|
foreach ($this->para as $k=>$v) {
|
|
$func = 'set' . $k;
|
|
$obj->$func($v);
|
|
}
|
|
}
|
|
##如上根据情况传递公共变量值##################
|
|
if (method_exists($obj, $control_func)) {
|
|
$res = $obj->$control_func();
|
|
} else {
|
|
die('method '.$this->control_func.' not exist.');
|
|
}
|
|
|
|
if($obj->getViewFormat()=='json' && $res===false) {
|
|
echo urldecode($obj->getError());
|
|
exit;
|
|
}
|
|
|
|
$this->view = array_merge($this->view, $obj->getView());
|
|
$this->viewFormat = $obj->getViewFormat();
|
|
$this->viewTpl = $obj->getViewTpl();
|
|
}
|
|
|
|
private function display() {
|
|
if($this->viewFormat=='json') {
|
|
$display = new DisplayJson();
|
|
} elseif($this->viewFormat=='string') {
|
|
$display = new DisplayNone();
|
|
} else {
|
|
$tpl_path = $this->viewTpl=='' ? $this->control_name.'/'.$this->control_func.'.html' : $this->viewTpl;
|
|
if(!file_exists(dirname(__FILE__) . '/view/templates/'.$tpl_path)) { // 判断模板是否存在
|
|
echo dirname(__FILE__) . '/view/templates/'.$tpl_path;
|
|
die("{$tpl_path} not exist.");
|
|
}
|
|
$display = new DisplaySmarty($tpl_path);
|
|
}
|
|
|
|
$display->setView($this->view);
|
|
$display->execute();
|
|
}
|
|
}
|
|
|
|
new run();
|