protected function _post_args($key, $type = ARGS_TYPE_STRING, $default = '', $params = array())
 {
     $value = '';
     $post_default = '';
     $key_exist = array_key_exists($key, $_POST);
     $override = array_key_exists('override', $params) ? $params['override'] : FALSE;
     $entities_to_ascii = array_key_exists('entities_to_ascii', $params) ? $params['entities_to_ascii'] : FALSE;
     $gtzero = array_key_exists('gtzero', $params) ? $params['gtzero'] : TRUE;
     switch ($type) {
         case ARGS_TYPE_STRING:
             $post_default = $override ? $default : '';
             $value = $key_exist ? $this->input->post($key, TRUE) ? $this->input->post($key, TRUE) : $post_default : $default;
             if ($entities_to_ascii) {
                 $value = entities_to_ascii($value);
             }
             break;
         case ARGS_TYPE_INT:
             $default = validate_integer($default) ? to_int($default) : 0;
             $post_default = $override ? $default : 0;
             $value = $key_exist ? ($value = $this->input->post($key)) && gtzero_integer($value) ? to_int($value) : $post_default : $default;
             break;
         case ARGS_TYPE_TRUE_FALSE:
             $default = validate_integer($default) ? gtzero_integer($default) ? TRUE : FALSE : FALSE;
             $post_default = $override ? $default : FALSE;
             $value = $key_exist ? ($value = $this->input->post($key)) && ($gtzero && gtzero_integer($value) || !$gtzero && validate_integer($value)) ? TRUE : $post_default : $default;
             break;
         case ARGS_TYPE_ARRAY:
             $value = $key_exist ? ($value = $this->input->post($key)) && is_array($value) ? $value : array() : (is_array($default) ? $default : array());
             break;
         case ARGS_TYPE_DECIMAL:
             $default = gtzero_decimal($default) ? to_float($default) : 0;
             $post_default = $override ? $default : 0;
             $value = $key_exist ? ($value = $this->input->post($key)) && gtzero_decimal($value) ? to_float($value) : $post_default : $default;
             break;
         case ARGS_TYPE_DATE:
             $default = validate_date($default) ? $default : '';
             $post_default = $override ? $default : '';
             $value = $key_exist ? ($value = $this->input->post($key)) && validate_date($value) ? $value : $post_default : $default;
             break;
         case ARGS_TYPE_DATETIME:
             $default = validate_datetime($default) ? $default : '';
             $post_default = $override ? $default : '';
             $value = $key_exist ? ($value = $this->input->post($key)) && validate_date($value) ? $value : $post_default : $default;
             break;
         default:
             $post_default = $override ? $default : '';
             $value = $key_exist ? $this->input->post($key, TRUE) ? $this->input->post($key, TRUE) : $post_default : $default;
             break;
     }
     unset($post_default);
     return $value;
 }
Example #2
0
 private function act_getOrderCondition()
 {
     #########################################################################
     #########					 查询条件 start			 			#########
     #########################################################################
     $nowtime = time();
     $starttime = $endtime = 0;
     $searcherrs = $ordercd = $userinfo = array();
     if (isset($_GET['KeywordsType']) && $_GET['KeywordsType'] != '*' && !empty($_GET['KeywordsType'])) {
         $field = trim($_GET['KeywordsType']);
         if (isset($_GET['Keywords']) && !empty($_GET['Keywords'])) {
             $Keywords = trim($_GET['Keywords']);
             if (in_array($field, array('platformId'))) {
                 $Keywords = getPlatformIdFromName($Keywords);
             } elseif (in_array($field, array('accountId'))) {
                 $Keywords = getAccountIdFromName($Keywords);
             }
             $keycond = strpos($Keywords, ',') !== false ? array('$in' => array2strarray(explode(',', $Keywords))) : array('$e' => $Keywords);
             if (in_array($field, array('id', 'recordNumber', 'platformId', 'accountId'))) {
                 $ordercd[$field] = $keycond;
             } else {
                 if (in_array($field, array('email', 'platformUsername'))) {
                     $userinfo[$field] = $keycond;
                 } else {
                     if (in_array($field, array('tracknumber'))) {
                         $trackcd[$field] = $keycond;
                     } else {
                         if (in_array($field, array('PayPalPaymentId'))) {
                             $orderextcd[$field] = $keycond;
                         }
                     }
                 }
             }
         }
     }
     if (isset($_GET['status']) && $_GET['status'] != '*' && !empty($_GET['status'])) {
         $ordercd['status'] = array('$e' => intval($_GET['status']));
         $ordercd['menu'] = array('$e' => intval($_GET['menu']));
     }
     if (isset($_GET['platformId']) && $_GET['platformId'] != '*' && !empty($_GET['platformId'])) {
         $ordercd['platformId'] = array('$e' => intval($_GET['platformId']));
     }
     if (isset($_GET['accountId']) && $_GET['accountId'] != '*' && !empty($_GET['accountId'])) {
         $ordercd['accountId'] = array('$e' => intval($_GET['accountId']));
     }
     if (isset($_GET['transportationType']) && $_GET['transportationType'] != '*' && !empty($_GET['transportationType'])) {
         $ordercd['transportationType'] = array('$e' => intval($_GET['transportationType']));
     }
     if (isset($_GET['transportation']) && $_GET['transportation'] != '*' && !empty($_GET['transportation'])) {
         $ordercd['transportId'] = array('$e' => intval($_GET['transportation']));
     }
     if (isset($_GET['isNote']) && $_GET['isNote'] != '*' && !empty($_GET['isNote'])) {
         $ordercd['isNote'] = array('$e' => intval($_GET['isNote']));
     }
     if (isset($_GET['ostatus']) && !empty($_GET['ostatus']) && $_GET['ostatus'] != '*') {
         $ordercd['orderStatus'] = array('$e' => intval($_GET['ostatus']));
     }
     if (isset($_GET['isexpressdelivery']) && !empty($_GET['isexpressdelivery']) && $_GET['isexpressdelivery'] != '*') {
         $ordercd['isExpressDelivery'] = array('$e' => intval($_GET['isexpressdelivery']));
     }
     if (isset($_GET['otype']) && !empty($_GET['otype']) && $_GET['otype'] != '*') {
         $ordercd['orderType'] = array('$e' => intval($_GET['otype']));
     }
     if (isset($_GET['countrySn']) && !empty($_GET['countrySn'])) {
         $countrySn = trim($_GET['countrySn']);
         if ($this->act_checkCountryCode($countrySn) !== false) {
             $userinfo['countrySn'] = array('$e' => $countrySn);
         } else {
             $searcherrs[$this->errCode] = get_promptmsg($this->errCode, $countrySn);
         }
     }
     $sTimeType = isset($_GET['searchTimeType']) && !empty($_GET['searchTimeType']) ? trim($_GET['searchTimeType']) : 'paymentTime';
     if (isset($_GET['OrderTime1']) && !empty($_GET['OrderTime1'])) {
         $OrderTime1 = trim($_GET['OrderTime1']);
         if (validate_datetime($OrderTime1)) {
             $starttime = strtotime($OrderTime1);
         } else {
             $searcherrs[10005] = get_promptmsg(10005, $OrderTime1);
         }
     }
     if (isset($_GET['OrderTime2']) && !empty($_GET['OrderTime2'])) {
         $OrderTime2 = trim($_GET['OrderTime2']);
         if (validate_datetime($OrderTime2)) {
             $endtime = strtotime($OrderTime2);
         } else {
             $searcherrs[10006] = get_promptmsg(10006, $OrderTime2);
         }
     }
     if ($starttime > 0 && $endtime === 0 && $nowtime) {
         $ordercd[$sTimeType] = array('$gt' => $starttime);
     } else {
         if ($starttime === 0 && $endtime > 0) {
             $ordercd[$sTimeType] = array('$lt' => $endtime);
         } else {
             if ($starttime < $endtime) {
                 $ordercd[$sTimeType] = array('$b' => "{$starttime}-{$endtime}");
             } else {
                 if ($starttime > $endtime) {
                     $searcherrs[10007] = get_promptmsg(10007, $OrderTime1, $OrderTime2);
                 } else {
                     if ($starttime > 0 && ($starttime = $endtime)) {
                         $searcherrs[10008] = get_promptmsg(10008, $OrderTime1, $OrderTime2);
                     }
                 }
             }
         }
     }
     if (isset($this->orderpower) && !empty($this->orderpower)) {
         foreach ($this->orderpower as $name => $plist) {
             $ordercds[] = "{$name} IN (" . implode(',', $plist) . ")";
         }
     }
     //分表相关
     $ordercd['is_delete'] = array('$e' => 0);
     //查询条件合并
     $conditions = array();
     $conditions['order'] = $ordercd;
     //主表必须在前面
     if (!empty($userinfo)) {
         $conditions['userinfo'] = $userinfo;
     }
     if (!empty($trackcd)) {
         $conditions['trackcd'] = $trackcd;
     }
     if (!empty($orderextcd)) {
         $conditions['orderextcd'] = $orderextcd;
     }
     #########################################################################
     #########					 查询条件 end			 				#########
     #########################################################################
     return $conditions;
 }
Example #3
0
// $_GET['xhprof']['query'] is used throughout the code to filter data. NULL value will be ignored.
// This is a convenience method to prevent repetitious variable presence checking.
if (empty($_GET['xhprof']['query'])) {
    $_GET['xhprof']['query'] = NULL;
} else {
    foreach ($_GET['xhprof']['query'] as $e) {
        if (is_array($e)) {
            throw new \Exception('Defining a filter with a multidimensional array is not supported.');
        }
    }
    // ay_input() will look for the default input value in this globally accessible variable.
    $input = array('query' => $_GET['xhprof']['query']);
    if (!empty($_GET['xhprof']['query']['datetime_from']) && !validate_datetime($_GET['xhprof']['query']['datetime_from'])) {
        \ay\message('Invalid <mark>from</mark> date-time format.');
    }
    if (!empty($_GET['xhprof']['query']['datetime_to']) && !validate_datetime($_GET['xhprof']['query']['datetime_to'])) {
        \ay\message('Invalid <mark>to</mark> date-time format.');
    }
    if (isset($_GET['xhprof']['query']['host'], $_GET['xhprof']['query']['host_id'])) {
        \ay\message('<mark>host_id</mark> will overwrite <mark>host</mark>. Unset either to prevent unexpected results.');
    }
    if (isset($_GET['xhprof']['query']['uri'], $_GET['xhprof']['query']['uri_id'])) {
        \ay\message('<mark>uri_id</mark> will overwrite <mark>uri</mark>. Unset either to prevent unexpected results.');
    }
}
$xhprof_data_obj = new Data($config['pdo']);
ob_start();
require BASE_PATH . '/templates/' . $template['file'] . '.tpl.php';
$template['body'] = ob_get_clean();
require BASE_PATH . '/templates/frontend.layout.tpl.php';
unset($_SESSION['ay']['flash']);
Example #4
0
    /**
     * 插入订单的验证和转化
     * @author yxd
     * @return boolean
     */
    public function act_transformInsertOrder()
    {
        #################order表信息验证及格式化##############################
        $distributorsData = json_decode('[
    {
        "order": {
            "recordNumber": "12680437",
            "account": "hello",
            "ordersTime": "2014-08-02 09:44:38",
            "paymentMethod": "PayPal",
            "paymentTime": "2014-08-02 09:44:38",
            "onlineTotal": "7.26",
            "currency": "AUD",
            "actualShipping": "22.000",
            "ORtransport": "chinapost"
        },
        "orderExtension": {
			"companyId": "yks",
            "payPalPaymentId": "7HE13018KL3271431",
            "orderId": "380882639665-508802711025",
            "feedback": "none"
        },
        "orderUserInfo": {
            "username": "******",
            "platformUsername": "******",
            "email": "*****@*****.**",
            "countryName": "Australia",
            "countrySn": "AU",
            "currency": "AUD",
            "state": "New South Wales",
            "city": "Peakhurst",
            "address1": "760a forest road",
            "address2": "760a forest road",
			"address3": "760a forest road",
            "phone": "02 91536215",
            "zipCode": "2210"
        },
	    "orderDeclarationContent" :[{
			"spu": "SV003829",
			"amount": 10,
			"price": 100,
			"enTitle": "T-Shirt",
			"cnTitle": "T恤",
			"hamcodes": "8531100000",
			"material":"棉",
			"unit": "pics"
	    }],
        "orderDetails": [
            {
                "orderDetail": {
                    "recordNumber": "630634",
                    "itemPrice": "7.26",
				    "itemId": "7733333",
                    "sku": "SV001920_BE_M",
                    "onlinesku": "SV001920_BE_M:N98B",
                    "amount": "1",
                    "shippingFee": "3.00",
                    "createdTime": "2014-08-02 09:44:38"
                },
                "orderDetailExtension": {
                    "itemTitle": "Womens Tummy Control Underbust Slimming Shapewear Shaper Suit Body Control N98B[Beige,Asian M (US S(4-6)  UK 6-8  EU ...",
                    "itemURL": "11"
                }
            }
        ]
    }
]', true);
        $order = $distributorsData[0]['order'];
        $recordNumber = $order['recordNumber'];
        //平台对应的订单号
        if (!isset($recordNumber)) {
            self::$errMsg[123] = '平台对应的订单号不能为空';
            return false;
        }
        if (!preg_match("/^\\w*\$/", $recordNumber)) {
            self::$errMsg[123] = 'recordnumber格式不规范';
        }
        $account = $order['account'];
        //账号
        if (!isset($account)) {
            self::$errMsg[123] = '账号不能为空';
            return false;
        }
        //验证账号是否存在
        if (!M('Account')->checkIsExists(array('account' => $account))) {
            self::$errMsg[1234] = '非法账号--不存在';
            return false;
        }
        //根据账号查找账号Id
        $accountId = M('Account')->getAccountIdByName($account);
        //账号id
        if (empty($accountId)) {
            self::$errMsg[1235] = '非法账号--不存在';
            return false;
        }
        //根据账号查平台Id
        $platformId = M('Account')->getPlatformid($accountId);
        //平台id
        $platformId = $platformId[0]['platformId'];
        if (empty($platformId)) {
            self::$errMsg[1236] = '非法账号';
            return false;
        }
        //这里还要验证该$account_id下这个$recordNumber是否存在查重
        if (M('OrderAdd')->checkIsExists(array('recordNumber' => $recordNumber, 'accountId' => $accountId))) {
            self::$errMsg[10043] = get_promptmsg(10043, $recordNumber);
            //"该recordNumber已经存在<br/>";
            return false;
        }
        //验证时间格式
        $ordersTime = $order['ordersTime'];
        //订单在平台的生成时间
        if (!validate_datetime($ordersTime)) {
            self::$errMsg[124] = '非法时间格式ordersTime标准格式为[2014-08-03 18:58:23]';
            return false;
        }
        $ordersTime = strtotime($ordersTime);
        //系统以时间戳格式存放
        $paymentTime = $order['paymentTime'];
        //订单付款时间
        if (!validate_datetime($paymentTime)) {
            self::$errMsg[124] = "非法时间格式paymentTime标准格式为[2014-08-03 18:58:23]";
            return false;
        }
        $paymentTime = strtotime(paymentTime);
        //系统以时间戳格式存放
        $orderAddTime = time();
        //订单进入系统时间时间
        $onlineTotal = $order['onlineTotal'];
        //线上总价 可以为空
        if (!validate_float2($onlineTotal)) {
            self::$errMsg[125] = "非法线上总价标准格式为[12.00]";
            return false;
        }
        $currency = $order['currency'];
        //币种3个大写字母,必填
        if (!preg_match("/^([A-Z]{3})\$/", $currency)) {
            self::$errMsg[124] = "非法币种标准格式为[3个大写字母组成]";
            return false;
        }
        $paymentMethod = $order['paymentMethod'];
        //付款方式
        if (empty($paymentMethod)) {
            self::$errMsg[111] = "付款方式不能为空";
            return false;
        }
        $ORtransport = $order['ORtransport'];
        // 订单进系统时分配给它的原始运输方式,只用作备份
        $actualShipping = $order['actualShipping'];
        //线上时间付款运费 可以为空
        if (!validate_float3($actualShipping)) {
            self::$errMsg[125] = "运费格式非法标准格式为[12.000]";
            return false;
        }
        $orderArr = array('recordNumber' => $recordNumber, 'platformId' => $platformId, 'accountId' => $accountId, 'ordersTime' => $ordersTime, 'paymentMethod' => $paymentMethod, 'paymentTime' => $paymentTime, 'onlineTotal' => $onlineTotal, 'currency' => $currency, 'ORtransport' => $ORtransport, 'actualShipping' => $actualShipping, 'orderAddTime' => $orderAddTime);
        ################orderdetail 及exteendtion数据验证#######################
        $orderDetails = $distributorsData[0]['orderDetails'];
        $orderDetailArr = array();
        foreach ($orderDetails as $value) {
            $orderDetail = $value['orderDetail'];
            //订单详情表
            $itemPrice = isset($orderDetail['itemPrice']) ? $orderDetail['itemPrice'] : 0.0;
            //平台对应的销售单价
            if (!validate_float2($itemPrice)) {
                self::$errMsg[123] = "平台对应的销售单价不规范标准格式为[12.00]";
                return false;
            }
            $itemId = isset($orderDetail['itemId']) ? $orderDetail['itemId'] : null;
            //商品在平台上的ID
            if (!preg_match("/^\\d*\$/", $itemId)) {
                self::$errMsg[123] = "商品在平台上的ID不规范标准格式为[5454143004]";
                return false;
            }
            $sku = $orderDetail['sku'];
            $isSkuExsit = M("InterfacePc")->getSkuinfo($sku);
            if (empty($isSkuExsit)) {
                self::$errMsg[123] = "sku在系统中不存在";
                return false;
            }
            $onlinesku = isset($orderDetail['onlinesku']) ? $orderDetail['onlinesku'] : null;
            //线上sku
            $amount = isset($orderDetail['amount']) ? $orderDetail['amount'] : 0;
            if (!preg_match("/^\\d*\$/", $amount)) {
                self::$errMsg = "订单中的商品数量不规范,必须为有效数字";
                return false;
            }
            $amount = intval($orderDetail['amount']);
            $shippingFee = $orderDetail['shippingFee'];
            //平台对应料号的运费
            if (!validate_float2($shippingFee)) {
                self::$errMsg[123] = "平台对应料号的运费不规范标准格式为[12.00]";
                return false;
            }
            $orderDetailExtension = $value['orderDetailExtension'];
            //订单详情扩展表
            $itemTitle = isset($orderDetailExtension['itemTitle']) ? $orderDetailExtension['itemTitle'] : null;
            $itemTitle = htmlentities($itemTitle);
            $itemURL = isset($orderDetailExtension['itemURL']) ? $orderDetailExtension['itemURL'] : null;
            $orderDetailArr[] = array("orderDetail" => array("recordNumber" => $recordNumber, 'itemId' => $itemId, "itemPrice" => $itemPrice, "sku" => $sku, "onlinesku" => $onlinesku, "amount" => $amount, "shippingFee" => $shippingFee), "orderDetailExtension" => array("itemTitle" => $itemTitle, "itemURL" => $itemURL));
        }
        ################# orderUserInfo###################################
        $orderUserInfo = $distributorsData[0]['orderUserInfo'];
        //获取分销商订单用户数据
        $username = $orderUserInfo['username'];
        //收件人
        $platformUsername = isset($orderUserInfo['platformUsername']) ? $orderUserInfo['platformUsername'] : null;
        //对应平台的用户登陆名称
        $platformUsername = htmlspecialchars($platformUsername);
        $email = $orderUserInfo['email'];
        //客户邮箱
        if (!validate_email($email)) {
            self::$errMsg['146'] = "非法邮箱格式";
            return false;
        }
        $countryname = $orderUserInfo['countryName'];
        //收件人国家名
        if (M('CountryList')->checkIsExists($countryname)) {
            self::$errMsg[145] = "非法国家";
            return false;
        }
        $countrySn = M('CountryList')->geZhByEn($countryname);
        //国家简码
        if (empty($countrySn)) {
            self::$errMsg[145] = "非法国家";
            return false;
        }
        $currency = isset($orderUserInfo['currency']) ? $orderUserInfo['currency'] : null;
        //币种
        $city = $orderUserInfo['city'];
        //买家所在城市
        $city = htmlspecialchars($city);
        $state = $orderUserInfo['state'];
        //买家所在州
        $state = htmlspecialchars($state);
        $address1 = isset($orderUserInfo['address1']) ? $orderUserInfo['address1'] : 0;
        $address1 = htmlspecialchars($address1);
        $address2 = isset($orderUserInfo['address2']) ? $orderUserInfo['address2'] : 0;
        $address2 = htmlspecialchars($address2);
        $address3 = isset($orderUserInfo['address3']) ? $orderUserInfo['address3'] : 0;
        $address3 = htmlspecialchars($address3);
        $landline = isset($orderUserInfo['landline']) ? $orderUserInfo['landline'] : 0;
        //座机
        $phone = isset($orderUserInfo['phone']) ? $orderUserInfo['phone'] : 0;
        //手机
        if (!validate_phone($phone)) {
            self::$errMsg[124] = "phone格式不规范";
            return false;
        }
        $zipCode = $orderUserInfo['zipCode'];
        //邮编
        if (!validate_zipCode($zipCode)) {
            self::$errMsg[124] = "zipCode不规范";
            return false;
        }
        $orderUserInfoArr = array('username' => $username, 'platformUsername' => $platformUsername, 'email' => $email, 'countryName' => $countryname, 'countrySn' => $countrySn, 'currency' => $currency, 'state' => $state, 'city' => $city, 'county' => "sss", 'address1' => $address1, 'address2' => $address2, 'address3' => $address3, 'phone' => $phone, 'zipCode' => $zipCode);
        ################# orderextension#######################################
        $orderExtensions = $distributorsData[0]['orderExtension'];
        $companyId = $orderExtensions['companyId'];
        $orderId = $orderExtensions['orderId'];
        //ebay系统线上抓取组合ID,格式为itemid-transid
        $feedback = $orderExtensions['feedback'];
        //客户留言
        $orderExtensionArr = array('companyId' => $companyId, 'orderId' => $orderId, 'feedback' => $feedback);
        #####################orderDeclarationContent##########################
        $orderDeclarationContent = $distributorsData[0]['orderDeclarationContent'];
        $orderDeclarationContentArr = array();
        foreach ($orderDeclarationContent as $value) {
            $spu = $value['spu'];
            //申报料号
            $amount = $value['amount'];
            //申报数量
            if (!preg_match("/^\\d*\$/", $amount)) {
                self::$errMsg[124] = "申报数量必须为有效数字";
                return false;
            }
            $price = $value['price'];
            //申报价值(美金)
            if (validate_float2($price)) {
                self::$errMsg[125] = "申报价值格式不规范标准格式为[12.00]";
                return false;
            }
            $enTitle = $value['enTitle'];
            //申报名称(英文)
            $enTitle = htmlspecialchars($enTitle);
            $cnTitle = $value['cnTitle'];
            //申报名称(文)
            $cnTitle = htmlspecialchars($cnTitle);
            $hamcodes = $value['hamcodes'];
            //海关编码
            $material = $value['material'];
            //申报材质
            $unit = $value['unit'];
            //计量单位
            /* 	$description    = $value['description'];//申报描述
               	$description    = htmlspecialchars($description); */
            $orderDeclarationContentArr[] = array("spu" => $spu, "amount" => $amount, "price" => $price, "enTitle" => $enTitle, "cnTitle" => $cnTitle, "hamcodes" => $hamcodes, "material" => $material, "unit" => $unit, "datetime" => time());
        }
        //格式化数据
        $data[] = array('order' => $orderArr, 'orderDetail' => $orderDetailArr, 'orderExtension' => $orderExtensionArr, 'orderUserInfo' => $orderUserInfoArr, 'orderDeclarationContent' => $orderDeclarationContentArr);
        ################  end 格式化POST信息到统一数组   ##################
        return array($data);
    }