vendor/codeages/biz-order-pay/src/Order/Status/Refund/AuditingStatus.php

(开头部分) 1KB

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

<?php

namespace Codeages\Biz\Order\Status\Refund;

use Codeages\Biz\Framework\Service\Exception\AccessDeniedException;
use Codeages\Biz\Framework\Service\Exception\NotFoundException;

class AuditingStatus extends AbstractRefundStatus
{
    const NAME = 'auditing';

    public function getName()
    {
        return self::NAME;
    }

    public function process($data = array())
    {
        $orderRefund = $this->createOrderRefund($data['orderId'], $data);
        return $this->createOrderRefundItems($data['orderItemIds'], $orderRefund);
    }

    protected function createOrderRefund($orderId, $data)
    {
        $order = $this->getOrderDao()->get($orderId);
        if (empty($order)) {
            throw new NotFoundException("order #{$orderId} is not found.");
        }

        if ($this->biz['user']['id'] != $order['user_id']) {
            throw new AccessDeniedException("order #{$orderId} can not refund.");
        }

        $orderRefund = $this->getOrderRefundDao()->create(array(
            'order_id' => $order['id'],
            'title' => $order['title'],
            'order_item_id' => 0,
            'sn' => $this->generateSn(),
            'user_id' => $order['user_id'],
            'created_user_id' => $this->biz['user']['id'],
            'reason' => empty($data['reason']) ? '' : $data['reason'],
            'amount' => $order['pay_amount'],
            'status' => self::NAME,
            'refund_cash_amount' => $order['paid_cash_amount'],
            'refund_coin_amount' => $order['paid_coin_amount'],
        ));

        return $orderRefund;
    }

    protected function generateSn()
    {
        return date('YmdHis', time()).mt_rand(10000, 99999);
    }

    protected function createOrderRefundItems($orderItemIds, $orderRefund)
    {
        $totalAmount = 0;
        $orderItemRefunds = array();
        foreach ($orderItemIds as $orderItemId) {

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

AI 解读 AI

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

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