src/Biz/OrderFacade/Product/ClassroomProduct.php
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\OrderFacade\Product;
use Biz\Accessor\AccessorInterface;
use Biz\Classroom\Service\ClassroomService;
use Biz\OrderFacade\Exception\OrderPayCheckException;
use Codeages\Biz\Order\Status\OrderStatusCallback;
class ClassroomProduct extends Product implements OrderStatusCallback
{
const TYPE = 'classroom';
public $targetType = self::TYPE;
public $showTemplate = 'order/show/classroom-item.html.twig';
public function init(array $params)
{
$classroom = $this->getClassroomService()->getClassroom($params['targetId']);
$this->targetId = $params['targetId'];
$this->backUrl = array('routing' => 'classroom_show', 'params' => array('id' => $classroom['id']));
$this->successUrl = array('classroom_show', array('id' => $this->targetId));
$this->title = $classroom['title'];
$this->originPrice = $classroom['price'];
$this->middlePicture = $classroom['middlePicture'];
$this->maxRate = $classroom['maxRate'];
$this->cover = array(
'small' => $classroom['smallPicture'],
'middle' => $classroom['middlePicture'],
'large' => $classroom['largePicture'],
);
}
public function validate()
{
$access = $this->getClassroomService()->canJoinClassroom($this->targetId);
$classroom = $this->getClassroomService()->getClassroom($this->targetId);
if (!$classroom['buyable']) {
throw OrderPayCheckException::UNPURCHASABLE_PRODUCT();
}
if (AccessorInterface::SUCCESS !== $access['code']) {
throw OrderPayCheckException::UNPURCHASABLE_PRODUCT();
}
}
public function onPaid($orderItem)
{
$classroomSet = $this->getSettingService()->get('classroom');
$targetName = empty($classroomSet['name']) ? '班级' : $classroomSet['name'];
$this->smsCallback($orderItem, $targetName);
$order = $this->getOrderService()->getOrder($orderItem['order_id']);
$info = array(
'orderId' => $order['id'],
'note' => $order['created_reason'],
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。