www.gusucode.com > iWebshop开源PHP商城系统 v2.8源码程序 > iwebshop/classes/sendgoods.php

    <?php
/**
 * @copyright Copyright(c) 2014 aircheng.com
 * @file sendgoods.php
 * @brief 发货接口
 * @author chendeshan
 * @date 2014/4/18 16:22:33
 * @version 1.0.0
 */

/**
 * @class sendgoods
 * @brief 发货接口类
 */
class sendgoods
{
	/**
	 * @brief 开始发货
	 * @param $orderId int 订单ID号
	 */
	public static function run($orderId)
	{
		$orderRow = self::getOrderInfo($orderId);
		if($orderRow['trade_no'] && $sendObj = self::createObject($orderRow['class_name']))
		{
			$sendObj->send($orderRow);
		}
	}

	/**
	 * @brief 获取订单信息
	 * @param $orderId int 订单ID
	 * @return array 订单信息
	 */
	private static function getOrderInfo($orderId)
	{
		$orderDB         = new IQuery('order as o');
		$orderDB->fields = 'p.class_name,o.trade_no,dd.delivery_code,fc.freight_type,o.pay_type';
		$orderDB->join   = 'left join payment as p on o.pay_type = p.id left join delivery_doc as dd on o.id = dd.order_id left join delivery as d on d.id = o.distribution left join freight_company as fc on fc.id = dd.freight_id';
		$orderDB->where  = 'o.id = '.$orderId;
		$result          = $orderDB->find();
		return current($result);
	}

	/**
	 * @brief 获取类文件路径
	 * @param $className string 支付类名称
	 * @return object 发货类实力
	 */
	private static function createObject($className)
	{
		$basePath = IWeb::$app->getBasePath().'plugins/sendGoods/';
		switch($className)
		{
			case "trade_alipay":
			case "alipay":
			{
				include($basePath.'alipay/sendgoods_alipay.php');
				return new sendgoods_alipay();
			}
			break;
		}
		return '';
	}
}