Пример #1
0
 /**
  * @param string regions_en 国家或地区英文
  * @return Boolean
  * @author yxd
  */
 public function checkIsExists($country)
 {
     $checkdata = $this->sql("SELECT * FROM " . $this->getTableName() . " WHERE regions_en='{$country}' AND is_delete=0")->select();
     if (empty($checkdata)) {
         self::$errMsg[10017] = get_promptmsg(10017, '系统不存在此国家');
         return true;
     }
     return false;
 }
Пример #2
0
 /**
  * 实例化父类,完成数据库插入判断
  * @see commonModel::checkIsExists()
  * @param string $data
  * @return bool
  * @author lzx
  */
 public function checkIsExists($data)
 {
     $checkdata = $this->sql("SELECT * FROM " . C('DB_PREFIX') . "platform WHERE platform='{$data['platform']}' AND is_delete=0")->select();
     if (!empty($checkdata)) {
         self::$errMsg[10017] = get_promptmsg(10017, $data['platform']);
         return true;
     }
     return false;
 }
Пример #3
0
 /**
  * 执行修改
  */
 public function view_update()
 {
     if (!A('PromptMsg')->act_update()) {
         $errorinfo = A('PromptMsg')->act_getErrorMsg();
         $msg = empty($errorinfo) ? get_promptmsg(10103) : implode('<br>', $errorinfo);
         $this->error($msg, 'index.php?mod=PromptMsg&act=index');
     } else {
         $this->success(get_promptmsg(200, '修改成功'), 'index.php?mod=PromptMsg&act=index&rc=reset');
     }
 }
Пример #4
0
 public function view_insert()
 {
     if (!A('StatusMenu')->act_insert()) {
         $errorinfo = A('StatusMenu')->act_getErrorMsg();
         $msg = empty($errorinfo) ? get_promptmsg(10021) : implode('<br>', $errorinfo);
         $this->error($msg, 'index.php?mod=StatusMenu&act=index');
     } else {
         $this->success(get_promptmsg(200, "新增成功"), "index.php?mod=StatusMenu&act=index&rc=reset");
     }
 }
Пример #5
0
 public function view_delete()
 {
     if (!A('Platform')->act_delete()) {
         $errorinfo = A('Platform')->act_getErrorMsg();
         $msg = empty($errorinfo) ? get_promptmsg(10021) : implode('<br>', $errorinfo);
         $this->error($msg, 'index.php?mod=platform&act=index');
     } else {
         $this->success(get_promptmsg(200, '删除平台'), 'index.php?mod=platform&act=index&rc=reset');
     }
 }
Пример #6
0
 public function view_insert()
 {
     if (!A('Currency')->act_insert()) {
         $errorinfo = A('Curecny')->act_getErrorMsg();
         $msg = empty($errorinfo) ? get_promptmsg(10021) : implode('<br>', $errorinfo);
         $this->error($msg, 'index.php?mod=FromOpenConfig&act=index');
     } else {
         $this->success(get_promptmsg(200, "新增成功"), "index.php?mod=Currency&act=index&re=reset");
     }
 }
Пример #7
0
 /**
  * 根据Id删除文件信息   异步实现
  * @return array
  * @author yxd
  */
 public function act_delete()
 {
     $id = trim($_POST['id']);
     if (M('StatusMenu')->deleteData($id)) {
         self::$errMsg[200] = get_promptmsg(200, "删除");
         return array('state' => 'ok');
     } else {
         return array('state' => 'no');
     }
 }
Пример #8
0
 public function view_saveEub()
 {
     if (A('EubAccount')->act_saveEub()) {
         $this->success(get_promptmsg(200, '保存成功'), 'index.php?mod=Account&act=index&rc=reset');
     } else {
         $errorinfo = A('Account')->act_getErrorMsg();
         $msg = empty($errorinfo) ? get_promptmsg(10110, "更新EUB") : implode('<br>', $errorinfo);
         $this->error($msg, 'index.php?mod=Account&act=index');
     }
 }
Пример #9
0
 /**
  * 综合调用函数返回最后计算出来的运费和运输方式
  */
 public function calcOrderCarrierAndShippingFee()
 {
     if (empty($this->orderData)) {
         $this->errMsg[10118] = get_promptmsg(10118);
         return false;
     }
     $carriers = $this->calcOrderCarriers();
     if (!($shippingfees = $this->calcOrderShippingFee($carriers))) {
         //记录错误,需要自己写到消息提示配置里面。
         return false;
     }
     return $this->chooseOrderShipping($shippingfees);
 }
Пример #10
0
 public function act_updateData()
 {
     $id = $_REQUEST['id'];
     $data = array("functionname" => trim($_REQUEST['functionname']), "name" => trim($_REQUEST['name']), "requesturl" => trim($_REQUEST['requesturl']), "method" => trim($_REQUEST['method']), "format" => trim($_REQUEST['format']), "v" => trim($_REQUEST['v']), "username" => empty($_REQUEST['username']) ? 'purchase' : $_REQUEST['username'], "getOrPost" => $_REQUEST['getOrPost'] == '2' ? '2' : '1', "cachetime" => (int) $_REQUEST['cachetime']);
     $ret = M($this->act_getModel())->getData("id", "functionname='" . mysql_real_escape_string($data['functionname']) . "' or method='" . mysql_real_escape_string($data['method']) . "'");
     foreach ($ret as $k => $v) {
         if ($v['id'] != $id) {
             self::$errMsg[10119] = get_promptmsg(10119, "函数名称或请求API");
             return false;
         }
     }
     return M($this->act_getModel())->updateData($id, $data);
 }
Пример #11
0
 public function act_changePassWord()
 {
     $curPwd = trim($_POST['curPwd']);
     $newPwd = trim($_POST['newPwd']);
     $repPwd = trim($_POST['repPwd']);
     if ($newPwd == $repPwd) {
         $userInfor = M('Developer')->getDeveloper("*", "id = " . $this->act_getUserInfor("id"));
         $pwdIsRight = false;
         $powerInfo = M("interfacePower")->getUserInfoByLoginEmail($this->act_getUserInfor("email"));
         if (!empty($powerInfo)) {
             //以鉴权为准
             if ($powerInfo['loginPsd'] == md5(md5(trim($curPwd)))) {
                 $pwdIsRight = true;
             }
         } else {
             //以本系统为准
             if ($userInfor[0]['login_pwd'] == md5(md5(trim($curPwd)))) {
                 $pwdIsRight = true;
             }
         }
         if ($pwdIsRight) {
             M('Developer')->begin();
             $updatePwd = M('Developer')->updateDataByColumn("id", $this->act_getUserInfor("id"), array("login_pwd" => md5(md5($newPwd))));
             if ($updatePwd > 0) {
                 if (!empty($powerInfo)) {
                     //以鉴权为准
                     $loginName = $this->act_getUserInfor("email");
                     $psw = $newPwd;
                     $updateStatus = M('interfacePower')->updateGlobalUserPsw($loginName, $psw);
                     if ($updateStatus['errCode'] == "0") {
                         M('Developer')->commit();
                         self::$errMsg[200] = get_promptmsg(200);
                     } else {
                         M('Developer')->rollback();
                         self::$errMsg[1903] = '密码同步到鉴权系统失败!';
                     }
                 } else {
                     M('Developer')->commit();
                     self::$errMsg[200] = get_promptmsg(200);
                 }
             } else {
                 self::$errMsg[10151] = get_promptmsg(10151);
             }
         } else {
             self::$errMsg[10152] = get_promptmsg(10152);
         }
     } else {
         self::$errMsg[10153] = get_promptmsg(10153);
     }
 }
Пример #12
0
 public function act_getAccountListByPlatform($uid, $platformId)
 {
     $accountList = M('UserCompetence')->getAcountPowerByUserId($uid, $platformId);
     $returnArr = array();
     if (!empty($accountList)) {
         foreach ($accountList as $accountId) {
             $accountInfo = M('Account')->getAccountById($accountId);
             $returnArr[$accountId] = $accountInfo['account'];
         }
         self::$errMsg[200] = get_promptmsg(200, '获取账号信息');
     } else {
         self::$errMsg[10040] = get_promptmsg(10040);
     }
     return $returnArr;
 }
Пример #13
0
 /**
  * 仓库订单拆分逻辑,调用该方法前必须调用FormatOrder中的MarkOverSeaOrder标记订单仓库类型并插入到数据库中,然后再进行拆分
  */
 public function splitOrderForStore()
 {
     $orderData = $this->orderData;
     if (empty($orderData) || empty($orderData['order']['id'])) {
         $this->errMsg[10118] = get_promptmsg(10118);
         return false;
     }
     $orderStore = $orderData['order']['orderStore'];
     if (empty($orderStore)) {
         $this->errMsg[10126] = get_promptmsg(10126);
         //异常仓库订单
         return false;
     } elseif (in_array($orderStore, array(2))) {
         //判断该订单是否处于包含海外料号和国内料号订单(orderStore=2),后面可能会扩展多个仓混合订单,所以这里用in_array
         $storeIdArr = array();
         //定义一个数组存放orderData中sku所在仓库id;
         $orderDetail = $orderData['orderDetail'];
         if (!empty($orderDetail)) {
             $returnArr = array();
             //要返回的订单数组信息,可能返回多个(拆分后)也可能只返回一个(不拆分)
             $detailArr = array();
             //这个是模拟orderManage发货单拆分的格式(将storeId当成是虚拟发货单id),按照sku及数量对订单进行拆分
             foreach ($orderDetail as $value) {
                 $storeIdArr[] = intval($value['orderDetail']['storeId']) > 0 ? $value['orderDetail']['storeId'] : 0;
             }
             $storeIdArr = array_unique($storeIdArr);
             foreach ($storeIdArr as $storeId) {
                 foreach ($orderDetail as $value) {
                     if ($storeId == $value['orderDetail']['storeId']) {
                         $detailArr[$storeId] = array($value['orderDetail']['sku'] => $value['orderDetail']['amount']);
                     }
                 }
             }
             $newOrderDataArr = M('OrderManage')->splitOrderWithOrderDetail($orderData['order']['id'], $detailArr);
             return 'SPLITTED';
         } else {
             $this->errMsg[10075] = get_promptmsg(10075);
             //明细为空,不能拆
             return false;
         }
     } else {
         $this->errMsg[10127] = get_promptmsg(10127);
         //不是混合仓订单,不需要拆分
         return false;
     }
 }
Пример #14
0
 /**
  * 提供给仓库上传EUB跟踪号,获取EUB参数的接口
  * @param accountId
  * @return aray
  * @author zqt
  */
 public function act_getEubAccountByAccountId()
 {
     $accountId = intval($_GET['accountId']) ? intval($_GET['accountId']) : 0;
     if ($accountId <= 0) {
         self::$errMsg[10046] = get_promptmsg(10046);
         return false;
     } else {
         $accountEUBList = M('EubAccount')->geteubAccountByAcid($accountId);
         if (empty($accountEUBList[0])) {
             self::$errMsg[10140] = get_promptmsg(10140);
             return false;
         } else {
             $conditionArr = array('id' => array('$e' => $accountId));
             $AccountList = M('Account')->getAccountList($conditionArr);
             if (!empty($AccountList)) {
                 $accountEUBList[0]['suffix'] = $AccountList[0]['suffix'];
             }
             return $accountEUBList[0];
         }
     }
 }
Пример #15
0
 /**
  * 根据开始和结束时间,抓取订单抓取号
  * @param datetime $starttime
  * @param datetime $endtime
  * @return bool
  * @author lzx
  */
 public function spiderOrderId($starttime, $endtime)
 {
     $OrderObject = F('ebay.package.GetOrders');
     $OrderObject->setRequestConfig($this->authorize);
     $page = 1;
     $hasmore = true;
     $simplelists = array();
     while ($hasmore) {
         $receivelists = $OrderObject->getOrderIds($starttime, $endtime, $page);
         $receivelists = XML_unserialize($receivelists);
         if (!isset($receivelists['GetOrdersResponse']['Ack']) || $receivelists['GetOrdersResponse']['Ack'] == 'Failure') {
             self::$errMsg[10095] = get_promptmsg(10095);
             break;
         }
         if ($receivelists['GetOrdersResponse']['PaginationResult']['TotalNumberOfPages'] < $page) {
             self::$errMsg[10096] = get_promptmsg(10096, $page, $receivelists['GetOrdersResponse']['PaginationResult']['TotalNumberOfPages']);
             break;
         }
         $page++;
         $hasmore = $receivelists['GetOrdersResponse']['HasMoreOrders'] == 'true' ? true : false;
         foreach ($receivelists['GetOrdersResponse']['OrderArray']['Order'] as $simpleorder) {
             /*参考变量
             		 * $orderid = $simpleorder['OrderID'];
             		$eBayPaymentStatus = $simpleorder['CheckoutStatus']['eBayPaymentStatus'];
             		$OrderStatus = $simpleorder['CheckoutStatus']['Status'];
             		$PaidTime = $simpleorder['PaidTime'];
             		$ShippedTime = isset($simpleorder['ShippedTime']) ? $simpleorder['ShippedTime'] : '';*/
             if ($simpleorder['CheckoutStatus']['Status'] != 'Complete') {
                 continue;
             }
             /*//如果要抓取刷单的这里需要做修改
             		if ($simpleorder['CheckoutStatus']['eBayPaymentStatus']!='NoPaymentFailure') {
             			break;
             		}*/
             $simplelists[] = array('ebay_orderid' => $simpleorder['OrderID'], 'ebay_account' => $this->authorize['account']);
         }
     }
     return $simplelists;
 }
Пример #16
0
 public function act_login()
 {
     $userName = trim($_REQUEST['useremail']);
     $password = trim($_REQUEST['userpassword']);
     $where = 'is_delete=0 AND email="' . $userName . '"';
     $ret = M("BacksatagesLogin")->getAdmin("*", $where);
     if (empty($ret)) {
         self::$errMsg[10135] = get_promptmsg(10135);
         //self::$errMsg=g;
         return false;
     }
     $loginInfo = M("interfacePower")->userLogin($userName, $password);
     if (!$loginInfo) {
         self::$errMsg[10136] = get_promptmsg(10136);
         return false;
     } else {
         //登录成功
         $tmp = array("userId" => $loginInfo['userId'], "userToken" => $loginInfo['userToken'], "userName" => $loginInfo['userName'], "userCnName" => $loginInfo['userCnName'], "globalUserId" => $loginInfo['globalUserId']);
         setcookie('hcAdmin', _authcode(json_encode($tmp), 'ENCODE'), 0, "/");
         $_SESSION['loginStatus'] = "in";
         self::$errMsg[200] = get_promptmsg(200);
         return true;
     }
 }
Пример #17
0
 /**
  * sql记录条数统计
  * @param array $data
  * @author lzx
  */
 public function replaceSql2Count($sql)
 {
     if (preg_match("/(`[a-z]*`)\\.\\*/", $sql) > 0) {
         return preg_replace("/(`[a-z]*`)\\.\\*/", "COUNT(\$1.id) AS count", $sql);
     } else {
         if (preg_match("/^SELECT\\s*\\*/i", $sql) > 0) {
             return preg_replace("/^SELECT\\s*\\*/i", "SELECT COUNT(*) AS count", $sql);
         } else {
             self::$errMsg[10111] = get_promptmsg(10111);
             return false;
         }
     }
 }
Пример #18
0
 /**
  * 验证基础信息是否完整
  */
 protected function act_checkBaseInfo()
 {
     $type = trim($_REQUEST['type']);
     //开发者类型
     $company = trim($_REQUEST['company']);
     //公司名称
     $companyShortName = trim($_REQUEST['companyShortName']);
     //公司英文简称
     $companyLegalPerson = trim($_REQUEST['companyLegalPerson']);
     //公司法人
     $companyAddressProvince = trim($_REQUEST['companyAddressProvince']);
     //地址-省
     $companyAddressCity = trim($_REQUEST['companyAddressCity']);
     //地址-市
     $companyAddressDistrict = trim($_REQUEST['companyAddressDistrict']);
     //地址-区
     $companyAddressExtend = trim($_REQUEST['companyAddressExtend']);
     //地址-详细
     $contactPerson = trim($_REQUEST['contactPerson']);
     //联系人
     $contactPersonPhone = trim($_REQUEST['contactPersonPhone']);
     //联系人电话
     $contactPersonExt = $_REQUEST['contactPersonExt'];
     //其他联系人
     $contactPersonPhoneExt = $_REQUEST['contactPersonPhoneExt'];
     //其他联系人电话
     $mainProducts = $_REQUEST['mainProducts'];
     //主销产品
     $soldToCountries = trim($_REQUEST['soldToCountries']);
     //卖往国家
     if (strlen($company) < 2 || empty($company)) {
         $this::$errMsg[10112] = get_promptmsg(10112, "名称");
         return false;
     }
     if (strlen($companyShortName) < 2 || empty($companyShortName)) {
         $this::$errMsg[10112] = get_promptmsg(10112, "简称");
         return false;
     }
     if (empty($companyAddressProvince) || empty($companyAddressCity) || empty($companyAddressDistrict)) {
         $this::$errMsg[10112] = get_promptmsg(10112, "地址");
         return false;
     }
     if (strlen($companyAddressExtend) < 5 || empty($companyAddressExtend)) {
         $this::$errMsg[10112] = get_promptmsg(10112, "详细地址");
         return false;
     }
     if (strlen($contactPerson) < 4 || empty($contactPerson)) {
         $this::$errMsg[10112] = get_promptmsg(10112, "联系人名字");
         return false;
     }
     if (!preg_match_all('/^[0-9]{6,20}$/i', $contactPersonPhone, $tmp)) {
         $this::$errMsg[10112] = get_promptmsg(10112, "联系人电话不");
         return false;
     }
     foreach ($contactPersonExt as $k => $v) {
         if (!empty($v) || !empty($contactPersonPhoneExt[$k])) {
             if (strlen($v) < 4 || empty($v)) {
                 $this::$errMsg[10112] = get_promptmsg(10112, "其他联系人名字");
                 return false;
             }
             if (!preg_match_all('/^[0-9]{6,20}$/i', $contactPersonPhoneExt[$k], $tmp)) {
                 $this::$errMsg[10112] = get_promptmsg(10112, "其他联系人电话");
                 return false;
             }
         }
     }
     if (empty($mainProducts)) {
         $this::$errMsg[10115] = get_promptmsg(10115);
         return false;
     }
     $pcApi = M('InterfacePc');
     $category = $pcApi->getRootCategoryInfo();
     $category = array_flip($category);
     foreach ($mainProducts as $v) {
         if (!in_array($v, $category)) {
             $this::$errMsg[10114] = get_promptmsg(10114);
             return false;
         }
     }
     if ($type == '1') {
         if (strlen($companyLegalPerson) < 4 || empty($companyLegalPerson)) {
             //公司法人
             $this::$errMsg[10112] = get_promptmsg(10112, "公司法人");
             return false;
         }
     }
     if ($type != '2' && $type != '1') {
         $this::$errMsg[10113] = get_promptmsg(10113);
         return false;
     }
     return true;
 }
Пример #19
0
if (empty($ret)) {
    $errmsg = A($class)->act_getErrorMsg();
    if (!empty($errmsg)) {
        json_return($errmsg);
    }
}
//对返回数据进行封装
$package = !empty($data[0]['extend_package']) ? $data[0]['extend_package'] : 'Package:commonPackage';
list($pclass, $pfun) = explode(':', $package);
$pmethod = ucfirst($pclass . "Act");
$pfun = 'act_' . $pfun;
if (!class_exists($pmethod)) {
    json_return(10176);
}
if (!method_exists($pmethod, $pfun)) {
    json_return(10176);
}
$ret = A($pclass)->{$pfun}($ret);
$callback = isset($_GET['callback']) ? $_GET['callback'] : "";
$jsonp = isset($_GET['jsonp']) ? $_GET['jsonp'] : "";
$data = array("errCode" => 200, "errMsg" => get_promptmsg(10172), "status" => true, "data" => $ret);
if (!empty($callback)) {
    if (!empty($jsonp)) {
        echo "try{ " . $callback . "(" . json_encode($data) . "); }catch(){alert(e);}";
    } else {
        echo $callback . "(" . json_encode($data) . ");";
    }
} else {
    echo json_encode($data);
}
exit;
Пример #20
0
 /**
  * 订单拦截总流程
  */
 public function interceptOrder($orderData = array())
 {
     if (!empty($orderData)) {
         $this->setOrder($orderData);
     }
     if (empty($this->orderData)) {
         $this->errMsg[10118] = get_promptmsg(10118);
         return false;
     }
     $tmp_order_id = $this->orderData['order']['id'];
     //可以根据这个获取orderstatus所以只需要这一个就可以了
     $StatusMenu = M('StatusMenu');
     $ORDER_PENDING = $StatusMenu->getOrderStatusByStatusCode('ORDER_PENDING', 'id');
     $ORDER_NO_NEED_SHIP = $StatusMenu->getOrderStatusByStatusCode('ORDER_NO_NEED_SHIP', 'id');
     $ORDER_INVALID_ORDER = $StatusMenu->getOrderStatusByStatusCode('ORDER_INVALID_ORDER', 'id');
     $ORDER_BLACKLIST = $StatusMenu->getOrderStatusByStatusCode('ORDER_BLACKLIST', 'id');
     $ORDER_AUTOMATIC = $StatusMenu->getOrderStatusByStatusCode('ORDER_AUTOMATIC', 'id');
     $order_type = 0;
     $result_status_type_arr = array();
     $order_log = "";
     $stmOb = F('SpecialTransportMethod');
     $stmOb->setOrder($orderData);
     $stmOb->updateOrderUsefulTransportId();
     $orderData = $stmOb->getOrder();
     $this->setOrder($orderData);
     M('orderLog')->orderOperatorLog('no sql', '物流策略拦截完成,开始其他拦截:', $tmp_order_id);
     //amazon平台无需发货订单
     if ($this->isfulfillByAmazon()) {
         $order_log .= "该订单是Amazon发货订单;";
         $result_status_type_arr = array('status' => $ORDER_PENDING, 'type' => $ORDER_NO_NEED_SHIP);
     }
     //ebay平台检查paypal账号是否合法
     if (empty($result_status_type_arr) && !$this->isValidPaypalAccount()) {
         $order_log .= "该订单paypal账号非法;";
         $result_status_type_arr = array('status' => $ORDER_PENDING, 'type' => $ORDER_INVALID_ORDER);
     }
     //检查是否在黑名单
     $error = $this->isInBlackList();
     if (empty($result_status_type_arr) && false !== $error) {
         $order_log .= "该订单的买家信息在黑名单中:" . $error . ";";
         $result_status_type_arr = array('status' => $ORDER_PENDING, 'type' => $ORDER_BLACKLIST);
     }
     //检查订单信息是否完整
     $error = $this->isMissingInfoOrder();
     if (empty($result_status_type_arr) && false !== $error) {
         $order_log .= "该订单信息不完整:" . $error . ";";
         $ORDER_MISSING_INFO = $StatusMenu->getOrderStatusByStatusCode('ORDER_MISSING_INFO', 'id');
         $result_status_type_arr = array('status' => $ORDER_PENDING, 'type' => $ORDER_MISSING_INFO);
     }
     //检查订单sku信息是否完整
     $error = $this->isContainInvalidSkuOrder();
     if (empty($result_status_type_arr) && false !== $error) {
         $order_log .= "该订单sku信息错误:" . $error . ";";
         $ORDER_INVALID_SKU = $StatusMenu->getOrderStatusByStatusCode('ORDER_INVALID_SKU', 'id');
         $result_status_type_arr = array('status' => $ORDER_PENDING, 'type' => $ORDER_INVALID_SKU);
     }
     //检查订单是否有留言
     if (empty($result_status_type_arr) && $this->isLeaveWordOrder()) {
         $order_log .= "该订单有留言;";
         $ORDER_LEAVE_WORD = $StatusMenu->getOrderStatusByStatusCode('ORDER_LEAVE_WORD', 'id');
         $result_status_type_arr = array('status' => $ORDER_PENDING, 'type' => $ORDER_LEAVE_WORD);
     }
     //检查订单是否是超大订单
     if (empty($result_status_type_arr) && $this->isSuperLargeOrder()) {
         $order_log .= "该订单是超大订单;";
         $ORDER_SUPER_LARGE = $StatusMenu->getOrderStatusByStatusCode('ORDER_SUPER_LARGE', 'id');
         $result_status_type_arr = array('status' => $ORDER_AUTOMATIC, 'type' => $ORDER_SUPER_LARGE);
     }
     //检查订单是否缺货
     if (empty($result_status_type_arr) && ($outOfStockResult = $this->isOutOfStockOrder())) {
         if ($outOfStockResult === 'ORDER_EXPRESS_OUT_OF_STOCK') {
             $order_log .= "该订单是快递缺货订单,需手动拆分;";
             $ORDER_EXPRESS_OUT_OF_STOCK = $StatusMenu->getOrderStatusByStatusCode('ORDER_EXPRESS_OUT_OF_STOCK', 'id');
             $result_status_type_arr = array('status' => $ORDER_AUTOMATIC, 'type' => $ORDER_EXPRESS_OUT_OF_STOCK);
         } else {
             if (is_array($outOfStockResult)) {
                 $orderId = $this->order_id;
                 $error_tmp = A('orderManage')->act_splitOrderWithOrderDetail($orderId, $outOfStockResult);
                 M('Base')->begin();
                 M('orderLog')->orderOperatorLog('no sql', '自动拆分全部完成,返回数据:' . json_encode($error_tmp), $orderId);
                 if (is_string($error_tmp)) {
                     $order_log .= $error_tmp;
                 }
                 $ORDER_PACKAGE_OUT_OF_STOCK = $StatusMenu->getOrderStatusByStatusCode('ORDER_PACKAGE_OUT_OF_STOCK', 'id');
                 //原订单虽然已经删除,还是需要更新原订单的状态,防止下面的超重拆分
                 $result_status_type_arr = array('status' => $ORDER_AUTOMATIC, 'type' => $ORDER_PACKAGE_OUT_OF_STOCK);
             } else {
                 if ($outOfStockResult === true) {
                     $order_log .= "该订单是小包缺货订单,订单不能自动拆分;";
                     $ORDER_PACKAGE_OUT_OF_STOCK = $StatusMenu->getOrderStatusByStatusCode('ORDER_PACKAGE_OUT_OF_STOCK', 'id');
                     $result_status_type_arr = array('status' => $ORDER_AUTOMATIC, 'type' => $ORDER_PACKAGE_OUT_OF_STOCK);
                 } else {
                     $order_log .= "该订单是小包缺货订单,自动拆分失败;";
                     $ORDER_PACKAGE_OUT_OF_STOCK = $StatusMenu->getOrderStatusByStatusCode('ORDER_PACKAGE_OUT_OF_STOCK', 'id');
                     $result_status_type_arr = array('status' => $ORDER_AUTOMATIC, 'type' => $ORDER_PACKAGE_OUT_OF_STOCK);
                 }
             }
         }
         //缺货同样占用库存 , 更新该订单中sku的待发货数量
         F('SkuDailyInfo')->updateDailyAverageInfoByOrder($this->order_id);
     }
     if (empty($result_status_type_arr)) {
         //超重订单处理(超重订单自动拆分,包括修改主订单和子订单的状态)
         $is_over_weight = M('orderManage')->handleOverWeightOrder($this->orderData);
         //订单只有一个sku,并且超重
         if ($is_over_weight === 'ONLY_ONE_SKU_OVER_HEIGHT') {
             $order_log .= "该订单是单sku超重订单,不能拆分;";
             $ONLY_ONE_SKU_OVER_HEIGHT = $StatusMenu->getOrderStatusByStatusCode('ONLY_ONE_SKU_OVER_HEIGHT', 'id');
             $result_status_type_arr = array('status' => $ORDER_AUTOMATIC, 'type' => $ONLY_ONE_SKU_OVER_HEIGHT);
         } else {
             if ($is_over_weight === true) {
                 $order_log .= "该订单是超重订单,已经自动拆分;";
                 $NO_NEED_SHIP = $StatusMenu->getOrderStatusByStatusCode('NO_NEED_SHIP', 'id');
                 $result_status_type_arr = array('status' => $ORDER_AUTOMATIC, 'type' => $NO_NEED_SHIP);
             } else {
                 $order_log .= $is_over_weight;
             }
         }
     }
     if (empty($order_log)) {
         $order_log = "订单拦截结果:正常订单";
         //进入待发货状态
         $ORDER_WAIT_SHIP = $StatusMenu->getOrderStatusByStatusCode('ORDER_WAIT_SHIP', 'id');
         $result_status_type_arr = array('status' => $ORDER_WAIT_SHIP, 'type' => $ORDER_WAIT_SHIP);
     } else {
         $order_log = "订单拦截结果:" . $order_log;
     }
     $order_log = $order_log . json_encode($result_status_type_arr);
     M('orderLog')->orderOperatorLog('no sql', $order_log, $tmp_order_id);
     if (!empty($result_status_type_arr)) {
         $update_data = array('orderStatus' => $result_status_type_arr['status'], 'orderType' => $result_status_type_arr['type']);
         M('orderModify')->updateOrderInfo($tmp_order_id, $update_data);
         //更新该订单中sku的待发货数量
         F('SkuDailyInfo')->updateDailyAverageInfoByOrder($this->order_id);
     }
     M('Base')->commit();
     /**
     		//为后面的超大订单拦截和缺货拦截使用
     		$this->orderbelong = $this->MarkOverSeaOrder();
     		if ($ordertype = $this->interceptLargeOrder()){
     			return $ordertype;
     		}
     		if ($ordertype = $this->interceptOutOfStockOrder()){
     			return $ordertype;
     		}
     		/**/
     #####  其他需要拦截的以此类推    ######
     //通过所有拦截为正常待处理订单
     return true;
 }
Пример #21
0
 /**
  * 提供给运输方式管理系统及仓库系统接口,批量根据订单编号获取申请跟踪号所需信息
  * @return array
  * @author zqt
  */
 public function act_getOrderInfoListByOmOrderIds()
 {
     $omOrderIdArr = explode(',', $_REQUEST['omOrderIds'] ? $_REQUEST['omOrderIds'] : '');
     if (empty($omOrderIdArr[0])) {
         self::$errMsg[10027] = get_promptmsg(10027);
         return false;
     }
     $orderData = M('Order')->getFullUnshippedOrderById($omOrderIdArr);
     foreach ($orderData as $omOrderId => $orderArr) {
         foreach ($orderArr['orderDetail'] as $orderdetailIndex => $detailArr) {
             $orderData[$omOrderId]['orderDetail'][$orderdetailIndex]['skuDetail'] = M('InterfacePc')->getSkuInfo($detailArr['orderDetail']['sku']);
         }
         $orderCalcList = M('Order')->getOrderCalcListById($omOrderId);
         if (!empty($orderCalcList[0])) {
             $orderData[$omOrderId]['orderCalculation'] = $orderCalcList[0];
         }
         $orderDeclarationContentList = M('ExpressRemark')->getRemarkById($omOrderId);
         if (!empty($orderDeclarationContentList)) {
             $orderData[$omOrderId]['orderDeclarationContent'] = $orderDeclarationContentList;
         }
     }
     return $orderData;
 }
Пример #22
0
 protected function ajaxReturn($data = '', $prompt = 'auto')
 {
     header('Content-Type:application/json; charset=utf-8');
     //设置格式
     $result = array();
     //设置成{"errCode":"","errMsg":"","data":""}这种格式
     if ($prompt == 'auto') {
         $prompt = A('Common')->act_getErrorMsg();
         if (empty($prompt)) {
             $result['errCode'] = "200";
             $result['errMsg'] = get_promptmsg(200);
         }
     }
     foreach ($prompt as $key => $msg) {
         //只要其中有出现非200的就拦截
         if ($key != '200') {
             $result['errCode'] = $key;
             $result['errMsg'] = $msg;
             break;
         }
         //只判断最后一个错误码
         $result['errCode'] = $key;
         $result['errMsg'] = $msg;
     }
     $result['data'] = $data;
     return json_encode($result);
 }
Пример #23
0
 /**
  * 根据鉴权的公司ID更新本地ebay申请状态
  * @return array
  * @author wcx
  */
 public function act_updateOpenServiceStatus()
 {
     $companyId = trim($_REQUEST['companyId']);
     $serverId = trim($_REQUEST['serverId']);
     $status = trim($_REQUEST['status']);
     $allInfo = M("InterfacePower")->getCompanyInfo();
     $company = "";
     foreach ($allInfo as $k => $v) {
         if ($v['companyId'] == $companyId) {
             $company = $v['companyName'];
             break;
         }
     }
     if (empty($company)) {
         self::$errMsg[10133] = get_promptmsg(10133);
         return false;
     }
     $ret = M("Developer")->getDeveloper("id", "company='{$company}'");
     if (empty($ret)) {
         self::$errMsg[10134] = get_promptmsg(10134);
         return false;
     } else {
         $whereData = array("dp_id" => $ret[0]['id'], "open_service_id" => $serverId);
         $data = array('status' => $status, 'apply_time' => time());
         return M('MyEmpower')->updateMyEmpower($whereData, $data);
     }
 }
Пример #24
0
 /**
  * 根据查询条件组装查询SQL语句
  * @param array $conditions
  * @return string 查询语句
  * @author lzx
  */
 private function getOrderSQL($conditions)
 {
     $this->tablekey = $this->getOrderTableKey(isset($conditions['order']['completeTime']) ? $conditions['order']['completeTime'] : 0);
     if (!$this->tablekey) {
         return false;
     }
     $tablelist = $this->getOrderTable();
     if (!in_array($tablelist['order'], $this->getOrderTableList())) {
         self::$errMsg[10024] = get_promptmsg(10024, json_encode($conditions['order']['completeTime']), $tablelist['order']);
         return false;
     }
     $mainkey = '';
     $wherearray = array();
     foreach ($conditions as $key => $condition) {
         $formatwhere = $this->formatWhereField($tablelist[$key], $condition);
         if (!$formatwhere) {
             return false;
         }
         if ($key == 'order') {
             $mainkey = $key;
             $sql = "SELECT `{$key}`.* FROM `{$tablelist[$key]}` AS `{$key}` ";
         } else {
             $sql .= " LEFT JOIN `{$tablelist[$key]}` AS `{$key}` ON `{$mainkey}`.id=`{$key}`.omOrderId ";
         }
         $wherearray = array_merge($wherearray, array2where($formatwhere, "`{$key}`"));
     }
     return "{$sql} WHERE " . implode(' AND ', $wherearray) . (isset($conditions['detail']) ? "GROUP BY `{$mainkey}`.id" : '');
 }
Пример #25
0
 /**
  * 获取取消的合并订单
  */
 public function view_findCombineOrder()
 {
     $this->ajaxReturn(A('OrderManage')->act_findCombineOrder(), array('200' => get_promptmsg(200, '获取合并订单')));
 }
Пример #26
0
 /**
  * 实例化父类,完成数据库插入判断
  * @see commonModel::checkIsExists()
  * @param string $data
  * @return bool
  * @author lzx
  */
 public function checkIsExists($data)
 {
     $checkdata = $this->sql("SELECT * FROM " . $this->getTableName() . " WHERE account='{$data['account']}' AND is_delete=0")->select();
     if (!empty($checkdata)) {
         self::$errMsg[10017] = get_promptmsg(10017, $data['account']);
         return true;
     }
     return false;
 }
Пример #27
0
/**
 * API接口返回函数封装
 * @param int|array $message 信息编码 匹配表---om_prompt_msg
 * @param array $data
 * @author lzx
 */
function json_return($message, $data = '')
{
    if (is_array($message)) {
        $msgNo = array_shift(array_keys($message));
        $msg = implode('<br>', $message);
    } else {
        $msgNo = intval($message);
        $numargs = func_num_args();
        if ($numargs < 3) {
            $msg = get_promptmsg($msgNo);
        } else {
            $arg_list = func_get_args();
            $varlist = array_slice($arg_list, 2);
            $varstr = implode(',', array2strarray(array_map('addslashes', array_map('htmlspecialchars', $varlist))));
            eval("\$msg = get_promptmsg({$msgNo}, {$varstr});");
        }
    }
    echo json_encode(array("errCode" => $msgNo, "errMsg" => $msg, "status" => $msg == 'Success' ? true : false, "data" => $data));
    exit;
}
Пример #28
0
 public function act_synDistributorOpenCategoryToPaSys()
 {
     $dpId = $_REQUEST['dpId'];
     $developerMod = M('Developer');
     if (!$dpId) {
         self::$errMsg[10147] = get_promptmsg(10147);
         return false;
     }
     $dpInfor = $developerMod->getDeveloper("*", "id = {$dpId}");
     if (empty($dpInfor)) {
         self::$errMsg[10131] = get_promptmsg(10131, '分销商店铺');
         return false;
     }
     //获取鉴权公司id
     $companyName = $dpInfor[0]['company'];
     $ret = $this->act_getPowerCompanyInfo($companyName);
     if (empty($ret)) {
         //鉴权系统不存在该公司
         self::$errMsg[10133] = get_promptmsg(10133);
         return false;
     } else {
         $companyId = $ret['companyId'];
     }
     if (!empty($dpInfor)) {
         if (!empty($dpInfor[0]['intention_products'])) {
             //开始同步
             $synRes = M('interfacePa')->synDistributorOpenCategory($companyId, $dpInfor[0]['intention_products']);
             if (!$synRes) {
                 self::$errMsg[10148] = get_promptmsg(10148);
                 return false;
             } else {
                 self::$errMsg[200] = get_promptmsg(200);
                 return true;
             }
         } else {
             self::$errMsg[10115] = get_promptmsg(10115);
             return false;
         }
     } else {
         self::$errMsg[10118] = get_promptmsg(10118, '店铺');
         return false;
     }
 }
Пример #29
0
 /**
  * 重新封装sql语句删除函数,逻辑删除
  * @return bool 执行结果
  * @author lzx
  */
 protected function delete()
 {
     $sql = isset($this->options['sql']) ? trim($this->options['sql']) : '';
     $this->options = array();
     self::$_sql[] = $sql;
     if (empty($sql)) {
         self::$errMsg[10020] = get_promptmsg(10020, 'delete');
         return false;
     }
     if (preg_match("/^\\s*update.*is_delete\\s*=\\s*1/i", $sql) == 0) {
         self::$errMsg[10019] = get_promptmsg(10019, 'delete', $sql);
         return false;
     }
     $ret = $this->dbConn->query($sql);
     if ($ret) {
         self::$errMsg[200] = get_promptmsg(200);
         return true;
     } else {
         self::$errMsg[10021] = get_promptmsg(10021, 'delete');
         return false;
     }
 }
Пример #30
0
 /**
  * 添加速卖通订单
  */
 public function view_insertAliexpressOrder()
 {
     A('OrderAdd')->act_insertAliexpressOrder();
     $errorinfo = A('OrderAdd')->act_getErrorMsg();
     $msg = empty($errorinfo) ? get_promptmsg(10016) : implode('<br>', $errorinfo);
     $this->notJump($msg, 'index.php?mod=orderAdd&act=addAliexpressOrder');
 }