src/Biz/OrderFacade/Service/Impl/OrderFacadeServiceImpl.php

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace Biz\OrderFacade\Service\Impl;

use Biz\BaseService;
use Biz\Order\OrderException;
use Biz\OrderFacade\Command\OrderPayCheck\OrderPayChecker;
use Biz\OrderFacade\Currency;
use Biz\OrderFacade\Exception\OrderPayCheckException;
use Biz\OrderFacade\Product\Product;
use Biz\OrderFacade\Service\OrderFacadeService;
use Biz\OrderFacade\Service\ProductDealerService;
use AppBundle\Common\MathToolkit;
use Biz\System\Service\LogService;
use Biz\System\Service\SettingService;
use Biz\User\UserException;
use Codeages\Biz\Order\Service\OrderService;
use Codeages\Biz\Order\Service\WorkflowService;
use Codeages\Biz\Order\Status\Order\FailOrderStatus;
use Codeages\Biz\Order\Status\Order\FinishedOrderStatus;
use Codeages\Biz\Order\Status\Order\PaidOrderStatus;
use Codeages\Biz\Order\Status\Order\SuccessOrderStatus;

class OrderFacadeServiceImpl extends BaseService implements OrderFacadeService
{
    private $deductTypeName = array('discount' => '打折', 'coupon' => '优惠券', 'paidCourse' => '班级课程抵扣', 'adjust_price' => '改价');

    /*
     * 用于处理 商品
     * ProductDealer 数组
     */
    private $dealers;

    public function create(Product $product)
    {
        $product->validate();
        $product = $this->dealBeforeCreate($product);

        $user = $this->biz['user'];
        /* @var $currency Currency */
        $currency = $this->getCurrency();
        $orderFields = array(
            'title' => $product->title,
            'user_id' => $user['id'],
            'created_reason' => 'site.join_by_purchase',
            'price_type' => 'CNY',
            'currency_exchange_rate' => $currency->exchangeRate,
            'expired_refund_days' => $this->getRefundDays(),
        );

        $orderItems = $this->makeOrderItems($product);

        $order = $this->getWorkflowService()->start($orderFields, $orderItems);

        return $order;
    }

    public function getRefundDays()
    {
        $refundSetting = $this->getSettingService()->get('refund');

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。