ProductChildServiceInterface.php 4.48 KB
Newer Older
1 2 3 4 5 6 7 8
<?php
/**
 * Created by PhpStorm.
 * User: 王源
 * Date: 2020/1/9
 * Time: 15:07
 */

9
namespace Meibuyu\Rpc\Service\Interfaces\Product;
10 11 12 13 14 15 16 17

interface ProductChildServiceInterface
{

    /**
     * 获取单个数据
     * @param int $id 子SKU id
     * @param array $columns 子SKU表的字段,默认显示全部
王源's avatar
王源 committed
18
     * @param array $relations 子SKU的关联关系,可传入['brand', 'category', 'product_name', 'images', 'cost', 'weight', 'packs']
19 20 21 22 23 24
     * @return array|null
     */
    public function get($id, array $columns = ['*'], array $relations = []);

    /**
     * 通过id列表获取产品数组
王源's avatar
王源 committed
25
     * @param array $idList 子SKUid的列表, 默认去重
26
     * @param array $columns 子SKU表的字段,默认显示全部
王源's avatar
王源 committed
27
     * @param array $relations 子SKU的关联关系,可传入['brand', 'category', 'product_name', 'images', 'cost', 'weight', 'packs']
王源's avatar
王源 committed
28
     * @return array 默认keyBy('id')
29 30 31 32 33
     */
    public function getByIdList(array $idList, array $columns = ['*'], array $relations = []): array;

    /**
     * 通过sku列表获取子产品列表
王源's avatar
王源 committed
34
     * @param array $skuList 默认去重
35
     * @param array $columns 子SKU表的字段,默认返回id
王源's avatar
王源 committed
36
     * @param array $relations 子SKU的关联关系,可传入['color', 'size','brand', 'category', 'product_name', 'images', 'cost', 'weight', 'packs']
王源's avatar
王源 committed
37
     * @return array 默认keyBy('child_sku')
38
     */
39
    public function getListBySkuList(array $skuList, array $columns = ['id'], array $relations = []);
40

41 42 43 44 45 46 47 48
    /**
     * 根据SKU 获取对应的子 SKU 相关信息
     * @param $filters
     * @param string[] $childSkuFields
     * @return array
     */
    public function getChildProductsBySkuFilter($filters, array $childSkuFields = ['*']): array;

49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
    /**
     * 获取全部尺码列表
     * @param array $columns 默认['id', 'name']
     * @return array
     */
    public function sizes(array $columns = ['id', 'name']): array;

    /**
     * 获取全部颜色列表
     * @param array $columns 默认['id', 'code', 'cn_name', 'en_name']
     * @return array
     */
    public function colors(array $columns = ['id', 'code', 'cn_name', 'en_name']): array;

    /**
     * 通过id数组获取尺码列表
     * @param array $ids 默认去重
     * @param array $columns
     * @return array 默认keyBY('id')
     */
    public function getSizesByIds(array $ids, $columns = ['id', 'name']): array;

    /**
     * 通过id数组获取颜色列表
     * @param array $ids 默认去重
     * @param array $columns
     * @return array 默认keyBY('id')
     */
    public function getColorsByIds(array $ids, array $columns = ['id', 'code', 'cn_name', 'en_name']): array;

    /**
     * 通过id获取尺码
     * @param int $id
     * @param array $columns
     * @return array|null
     */
    public function getSizeById(int $id, $columns = ['id', 'name']);

    /**
     * 通过id获取颜色
     * @param int $id
     * @param array $columns
     * @return array|null
     */
    public function getColorById(int $id, array $columns = ['id', 'code', 'cn_name', 'en_name']);

王源's avatar
王源 committed
95 96 97 98 99 100 101 102
    /**
     * 获取某产品下的所有子产品
     * @param int $productId
     * @param array $columns
     * @return array
     */
    public function getListByProductId(int $productId, $columns = ['id', 'child_sku']);

103 104 105 106 107 108 109 110
    /**
     * 模糊搜索仓库子sku,获取id数组
     * @param string $childSku 仓库子sku
     * @param array|null $limitIds 限制id数组,不传为不限制
     * @return array
     */
    public function getIdsByChildSku(string $childSku, array $limitIds = null);

111 112 113 114 115 116 117 118 119
    /**
     * 根据主sku品类id获取仓库子sku的id数组
     * @param int $categoryId
     * @param int|null $limit
     * @return array
     * @author Zero
     */
    public function getIdsByCategoryId(int $categoryId, int $limit = null);

120 121 122 123 124 125
    /**
     * 创建对应的子产品
     * @param array $childDetails
     * @return array
     */
    public function createChildrenProducts(array $childDetails): array;
126 127 128 129 130 131 132 133 134 135 136 137


    /**
     * 通过id列表获取产品数组---(组合产品颜色展示兼容) 主要用于坐标渲染
     * @param array $idList 子SKUid的列表, 默认去重
     * @param array $columns 子SKU表的字段,默认显示全部
     * @param array $relations 子SKU的关联关系,可传入['brand', 'category', 'product_name', 'images', 'cost', 'weight', 'packs']
     * @author Liu lu
     * date 2023-03-13
     */
    public function getByIdListNew(array $idList, array $columns = ['*'], array $relations = ['color', 'size','packs.color']);

138
}