src/Biz/OrderFacade/Product/CourseProduct.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\OrderFacade\Product;
use Biz\Accessor\AccessorInterface;
use Biz\Course\Service\CourseService;
use Biz\Course\Service\CourseSetService;
use Biz\Course\Service\MemberService;
use Biz\OrderFacade\Exception\OrderPayCheckException;
use Biz\Course\Util\CourseTitleUtils;
use Codeages\Biz\Order\Status\OrderStatusCallback;
class CourseProduct extends Product implements OrderStatusCallback
{
const TYPE = 'course';
public $showTemplate = 'order/show/course-item.html.twig';
public $targetType = self::TYPE;
public $courseSet;
/**
* 课程展示价格
*
* @var float
*/
public $price;
public function init(array $params)
{
$this->targetId = $params['targetId'];
$course = $this->getCourseService()->getCourse($this->targetId);
$this->backUrl = array('routing' => 'course_show', 'params' => array('id' => $this->targetId));
$this->successUrl = array('my_course_show', array('id' => $this->targetId));
$this->courseSet = $this->getCourseSetService()->getCourseSet($course['courseSetId']);
$this->title = CourseTitleUtils::getDisplayedTitle($course);
if (empty($this->title) && isset($params['orderItemId'])) {
$orderItem = $this->getOrderService()->getOrderItem($params['orderItemId']);
$this->title = $orderItem['title'];
}
$this->price = $course['price'];
$this->originPrice = $course['originPrice'];
$this->maxRate = $course['maxRate'];
$this->cover = $this->courseSet['cover'];
}
public function validate()
{
$access = $this->getCourseService()->canJoinCourse($this->targetId);
$course = $this->getCourseService()->getCourse($this->targetId);
if (!$course['buyable']) {
throw OrderPayCheckException::UNPURCHASABLE_PRODUCT();
}
if (AccessorInterface::SUCCESS !== $access['code']) {
throw OrderPayCheckException::UNPURCHASABLE_PRODUCT();
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。