src/ApiBundle/Api/Resource/OrderInfo/OrderInfo.php

(开头部分) 2KB

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

<?php

namespace ApiBundle\Api\Resource\OrderInfo;

use ApiBundle\Api\ApiRequest;
use ApiBundle\Api\Resource\AbstractResource;
use AppBundle\Common\MathToolkit;
use Biz\Common\CommonException;
use Biz\OrderFacade\Currency;
use Biz\OrderFacade\Exception\OrderPayCheckException;
use Biz\OrderFacade\Product\Product;
use Codeages\Biz\Pay\Service\AccountService;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Biz\Coupon\Service\CouponService;

class OrderInfo extends AbstractResource
{
    public function add(ApiRequest $request)
    {
        $params = $request->request->all();

        if (empty($params['targetId']) || empty($params['targetType'])) {
            throw CommonException::ERROR_PARAMETER_MISSING();
        }

        try {
            $this->addVipParams($params);
            $product = $this->getProduct($params['targetType'], $params);
            $product->validate();
            $product->setAvailableDeduct();
            $product->setPickedDeduct(array());

            return $this->getOrderInfoFromProduct($product);
        } catch (OrderPayCheckException $payCheckException) {
            throw new BadRequestHttpException($payCheckException->getMessage(), $payCheckException, $payCheckException->getCode());
        }
    }

    private function getOrderInfoFromProduct(Product $product)
    {
        $biz = $this->getBiz();
        /** @var $currency Currency */
        $currency = $biz['currency'];

        $user = $this->getCurrentUser();
        $balance = $this->getAccountService()->getUserBalanceByUserId($user->getId());

        $orderInfo = array(
            'targetId' => $product->targetId,
            'targetType' => $product->targetType,
            'cover' => $product->cover,
            'title' => $product->title,
            'maxRate' => $product->maxRate,
            'unitType' => $product->unit,
            'duration' => $product->num,
            'totalPrice' => $product->getPayablePrice(),
            'availableCoupons' => array(),
            'coinName' => '',
            'cashRate' => '1',
            'buyType' => '',

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

AI 解读 AI

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

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