HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.ankua.asia/beike/Services/ShipmentService.php
<?php
/**
 * ShipmentService.php
 *
 * @copyright  2022 beikeshop.com - All Rights Reserved
 * @link       https://beikeshop.com
 * @author     Edward Yang <yangjin@guangda.work>
 * @created    2022-12-20 17:23:51
 * @modified   2022-12-20 17:23:51
 */

namespace Beike\Services;

class ShipmentService
{
    /**
     * 处理订单运单数据
     *
     * @param $expressCode
     * @param $expressNumber
     * @return array
     */
    public static function handleShipment($expressCode, $expressNumber): array
    {
        if (empty($expressCode) || empty($expressNumber)) {
            return [];
        }

        $expressCompany = self::handleExpressCompany($expressCode);
        if (empty($expressCompany)) {
            return [];
        }

        return [
            'express_code'    => $expressCode,
            'express_company' => $expressCompany,
            'express_number'  => $expressNumber,
        ];
    }

    /**
     * 根据快递公司编号获取快递公司名称
     *
     * @param $expressCode
     * @return mixed
     */
    public static function handleExpressCompany($expressCode): mixed
    {
        $expressCompanies = system_setting('base.express_company');
        if (empty($expressCompanies)) {
            return '';
        }
        $company = collect($expressCompanies)->where('code', $expressCode)->first();

        return $company ? $company['name'] ?? '' : '';
    }

    /**
     * @param             $orderShipment
     * @param             $data
     * @throws \Throwable
     */
    public static function updateShipment($orderShipment, $data)
    {
        $shipmentData = [
            'express_code'      => $data['express_code']    ?? '',
            'express_company'   => $data['express_name']    ?? '',
            'express_number'    => $data['express_number']  ?? '',
        ];
        $orderShipment->updateOrFail($shipmentData);
    }
}