Commit 4ee95a5c authored by 王源's avatar 王源
Browse files

Merge branch 'test'

parents 12945121 3543942c
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -23,5 +23,16 @@ interface DatacenterServiceInterface
    public function getCurrencyRate($currencyId, $field = ['id', 'currency_id', 'rate_val']): array;


    /**
     * description:获取国家汇率 默认取最新一个汇率值
     * author: fuyunnan
     * @param array $currencyIds 货币ids
     * @param array $field 字段
     * @return array
     * @throws
     * Date: 2020/8/11
     */
    public function getCurrencyListRate($currencyIds, $field = ['id', 'currency_id', 'rate_val']): array;


}
 No newline at end of file
+20 −0
Original line number Diff line number Diff line
@@ -13,7 +13,12 @@ use Meibuyu\Micro\Shopify\lib\AbstractShopify;
use Meibuyu\Micro\Shopify\lib\Collect;
use Meibuyu\Micro\Shopify\lib\Collection;
use Meibuyu\Micro\Shopify\lib\CustomCollection;
use Meibuyu\Micro\Shopify\lib\InventoryItem;
use Meibuyu\Micro\Shopify\lib\InventoryLevel;
use Meibuyu\Micro\Shopify\lib\Location;
use Meibuyu\Micro\Shopify\lib\Metafield;
use Meibuyu\Micro\Shopify\lib\Product;
use Meibuyu\Micro\Shopify\lib\ProductVariant;
use Meibuyu\Micro\Shopify\lib\SmartCollection;
use Meibuyu\Micro\Shopify\lib\Webhook;

@@ -27,12 +32,22 @@ use Meibuyu\Micro\Shopify\lib\Webhook;
 * @property-read CustomCollection $CustomCollection
 * @property-read SmartCollection $SmartCollection
 * @property-read Metafield $Metafield
 * @property-read Product $Product
 * @property-read ProductVariant $ProductVariant
 * @property-read InventoryItem $InventoryItem
 * @property-read InventoryLevel $InventoryLevel
 * @property-read Location $Location
 *
 * @method Webhook Webhook(integer $id = null)
 * @method Collection Collection(integer $id = null)
 * @method CustomCollection CustomCollection(integer $id = null)
 * @method SmartCollection SmartCollection(integer $id = null)
 * @method Metafield Metafield(integer $id = null)
 * @method Product Product(integer $id = null)
 * @method ProductVariant ProductVariant(integer $id = null)
 * @method InventoryItem InventoryItem(integer $id = null)
 * @method InventoryLevel InventoryLevel(integer $id = null)
 * @method Location Location(integer $id = null)
 *
 */
class ShopifyApp
@@ -45,6 +60,11 @@ class ShopifyApp
        'CustomCollection',
        'SmartCollection',
        'Metafield',
        'Product',
        'ProductVariant',
        'InventoryItem',
        'InventoryLevel',
        'Location',
    ];

    protected $childResources = array(
+115 −19
Original line number Diff line number Diff line
@@ -153,6 +153,95 @@ abstract class AbstractShopify
        return $resourceUrl . ($customAction ? "/$customAction" : '') . '.json' . (!empty($urlParams) ? '?' . http_build_query($urlParams) : '');
    }

//    /**
//     * @param array $urlParams
//     * @param null $url
//     * @param null $dataKey
//     * @return mixed
//     * @throws Exception
//     */
//    public function get($urlParams = [], $url = null, $dataKey = null)
//    {
//        if (!$url) $url = $this->generateUrl($urlParams);
//        $response = HttpRequestJson::get($url, $this->httpHeaders);
//        if (!$dataKey) $dataKey = $this->id ? $this->resourceKey : $this->pluralizeKey;
//        return $this->processResponse($response, $dataKey);
//    }
//
//    /**
//     * 根据id获取一条数据
//     * @param $id
//     * @param array $urlParams
//     * @return mixed
//     * @throws Exception
//     */
//    public function show($id, $urlParams = [])
//    {
//        $url = $this->generateUrl($urlParams, $id);
//        $response = HttpRequestJson::get($url, $this->httpHeaders);
//        return $this->processResponse($response, $this->resourceKey);
//    }
//
//    /**
//     * 获取数量
//     * @param array $urlParams
//     * @return mixed
//     * @throws Exception
//     */
//    public function count($urlParams = [])
//    {
//        if (!$this->countEnabled) {
//            throw new Exception("当前类{$this->getResourceName()}不支持count()方法");
//        }
//        $url = $this->generateUrl($urlParams, null, 'count');
//        return $this->get([], $url, 'count');
//    }
//
//    /**
//     * @param $dataArray
//     * @param null $url
//     * @param bool $wrapData
//     * @return mixed
//     * @throws Exception
//     */
//    public function post($dataArray, $url = null, $wrapData = true)
//    {
//        if (!$url) $url = $this->generateUrl();
//        if ($wrapData && !empty($dataArray)) $dataArray = $this->wrapData($dataArray);
//        $response = HttpRequestJson::post($url, $dataArray, $this->httpHeaders);
//        return $this->processResponse($response, $this->resourceKey);
//    }
//
//    /**
//     * @param int|string $id
//     * @param $dataArray
//     * @param null $url
//     * @param bool $wrapData
//     * @return mixed
//     * @throws Exception
//     */
//    public function put($id, $dataArray, $url = null, $wrapData = true)
//    {
//        if (!$url) $url = $this->generateUrl([], $id);
//        if ($wrapData && !empty($dataArray)) $dataArray = $this->wrapData($dataArray);
//        $response = HttpRequestJson::put($url, $dataArray, $this->httpHeaders);
//        return $this->processResponse($response, $this->resourceKey);
//    }
//
//    /**
//     * @param int|string $id
//     * @param array $urlParams
//     * @param null $url
//     * @return mixed
//     * @throws Exception
//     */
//    public function delete($id = null, $urlParams = [], $url = null)
//    {
//        if (!$url) $url = $this->generateUrl($urlParams, $id);
//        $response = HttpRequestJson::delete($url, $this->httpHeaders);
//        return $this->processResponse($response);
//    }

    /**
     * @param array $urlParams
     * @param null $url
@@ -196,21 +285,6 @@ abstract class AbstractShopify
        return $this->processResponse($response, $this->resourceKey);
    }

    /**
     * 获取数量
     * @param array $urlParams
     * @return mixed
     * @throws Exception
     */
    public function count($urlParams = [])
    {
        if (!$this->countEnabled) {
            throw new Exception("当前类{$this->getResourceName()}不支持count()方法");
        }
        $url = $this->generateUrl($urlParams, null, 'count');
        return $this->get([], $url, 'count');
    }

    /**
     * @param $dataArray
     * @param null $url
@@ -282,14 +356,36 @@ abstract class AbstractShopify
     * @return mixed
     * @throws Exception
     */
//    public function processResponse($response, $dataKey = null)
//    {
//        $httpCode = $response->getStatusCode();
//        $content = $response->getBody()->getContents();
//        $content = json_decode($content, true);
//
//        if (isset($content['errors'])) {
//            throw new Exception($this->castString($content['errors']), $httpCode);
//        }
//        if ($dataKey && isset($content[$dataKey])) {
//            return $content[$dataKey];
//        } else {
//            return $content;
//        }
//    }

    /**
     * 处理响应
     * @param array $response
     * @param null $dataKey
     * @return mixed
     * @throws Exception
     */
    public function processResponse($response, $dataKey = null)
    {
        $httpCode = $response->getStatusCode();
        $content = $response->getBody()->getContents();
        $content = json_decode($content, true);
        [$code, $header, $body] = $response;
        $content = json_decode($body, true);

        if (isset($content['errors'])) {
            throw new Exception($this->castString($content['errors']), $httpCode);
            throw new Exception($this->castString($content['errors']), $code);
        }
        if ($dataKey && isset($content[$dataKey])) {
            return $content[$dataKey];
+16 −0
Original line number Diff line number Diff line
<?php
/**
 * Created by PhpStorm.
 * User: Zero
 * Date: 2020/9/23
 * Time: 8:58
 */

namespace Meibuyu\Micro\Shopify\lib;

class InventoryItem extends AbstractShopify
{

    protected $resourceKey = 'inventory_item';

}
+30 −0
Original line number Diff line number Diff line
<?php
/**
 * Created by PhpStorm.
 * User: Zero
 * Date: 2020/9/23
 * Time: 8:58
 */

namespace Meibuyu\Micro\Shopify\lib;

/**
 * Class InventoryLevel
 * @package Meibuyu\Micro\Shopify\lib
 *
 * @method array adjust($data)  Adjust inventory level.
 * @method array connect($data) Connect an inventory item to a location.
 * @method array set($data)     Sets an inventory level for a single inventory item within a location.
 */
class InventoryLevel extends AbstractShopify
{

    protected $resourceKey = 'inventory_level';

    protected $customPostActions = [
        'adjust',
        'connect',
        'set',
    ];

}
Loading