// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\api\service\order\source\checkout; use app\common\service\BaseService; use app\common\enum\order\OrderSource as OrderSourceEnum; /** * 订单结算台扩展工厂类 * Class Factory * @package app\common\service\stock */ class Factory extends BaseService { // 订单来源的结算台服务类 private static $class = [ OrderSourceEnum::MASTER => Master::class, OrderSourceEnum::BARGAIN => Master::class, OrderSourceEnum::GROUPBUY => Master::class, OrderSourceEnum::GROUPBUYLB => Master::class, OrderSourceEnum::MIAOSHA => Master::class, OrderSourceEnum::ZA => Master::class, ]; /** * 根据订单来源获取商品库存类 * @param $user * @param $goodsList * @param int $orderSource * @return mixed */ public static function getFactory($user, $goodsList, $deliveryType, $shopId = 0, $orderSource = OrderSourceEnum::MASTER) { return new static::$class[$orderSource]($user, $goodsList, $deliveryType, $shopId); } }