MaterialServiceInterface.php 2.79 KB
Newer Older
梁俊杰's avatar
梁俊杰 committed
1 2 3 4 5 6 7 8
<?php
/**
 * Created by PhpStorm.
 * User: 梁俊杰
 * Date: 2020/5/15
 * Time: 15:07
 */

9
namespace Meibuyu\Micro\Service\Interfaces\Product;
梁俊杰's avatar
梁俊杰 committed
10

王源's avatar
王源 committed
11 12 13 14
/**
 * @deprecated 此接口废弃,在之后的版本会被删除
 * 请引入meibuyu/rpc组件,使用Meibuyu\Rpc\Service\Interfaces\Product\MaterialServiceInterface
 */
梁俊杰's avatar
梁俊杰 committed
15 16 17 18 19 20
interface MaterialServiceInterface
{

    /**
     * 获取单个数据
     * @param int $id 原料id
21 22
     * @param array $columns 原料表的字段,默认显示全部
     * @return array|null
梁俊杰's avatar
梁俊杰 committed
23
     */
24
    public function get($id, array $columns = ['*']);
梁俊杰's avatar
梁俊杰 committed
25 26 27

    /**
     * 通过id列表获取原料数组
28
     * @param array $idList 原料id的列表, 默认去重
梁俊杰's avatar
梁俊杰 committed
29
     * @param array $columns 原料表的字段,默认显示全部
30
     * @return array 默认keyBy('id')
梁俊杰's avatar
梁俊杰 committed
31
     */
32
    public function getByIdList(array $idList, array $columns = ['*']): array;
梁俊杰's avatar
梁俊杰 committed
33

34
    /**
35
     * 通过内部code列表获取原料列表
36
     * @param array $codeList 默认去重
37
     * @param array $columns
38
     * @return array 默认keyBy('internal_code')
梁俊杰's avatar
梁俊杰 committed
39
     */
40
    public function getByCodeList(array $codeList, array $columns = ['id']);
梁俊杰's avatar
梁俊杰 committed
41

42 43 44 45
    /**
     * 获取指定品名下所有的原料数据
     * @param array $nameIds 默认去重
     * @param array $columns
46
     * @return array 默认groupBy('material_name_id')
47 48 49
     */
    public function getListByNameIds(array $nameIds, array $columns = ['*']);

王源's avatar
王源 committed
50 51 52
    /**
     * 通过原料品名id列表获取原料品名数组
     * @param array $idList 原料品名id的列表, 默认去重
53
     * @param bool $withMaterials 是否关联原料数据
王源's avatar
王源 committed
54 55 56
     * @param array $columns 原料品名表的字段,默认显示全部
     * @return array 默认keyBy('id')
     */
57
    public function getMaterialNamesByIdList(array $idList, $withMaterials = false, array $columns = ['*']): array;
王源's avatar
王源 committed
58

59 60 61 62 63 64 65
    /**
     * 获取某原料品类下的所有原料品名
     * @param $categoryId
     * @return array
     */
    public function getMaterialNamesByCategoryId($categoryId);

66
    /**
67
     * 判断产品是否绑定原料品名
68
     * @param $productId
69 70 71 72 73 74 75 76
     * @return bool
     */
    public function hasProductMaterialNames($productId): bool;

    /**
     * 获取产品绑定的原料品名
     * @param $productId
     * @return array keyBy('id')
77 78 79
     */
    public function getProductMaterialNames($productId);

80 81 82
    /**
     * 获取产品对应颜色绑定的原料
     * @param $productId
83
     * @param array $colorIds 默认去重
王源's avatar
王源 committed
84
     * @param bool $withMaterials
85
     * @return array 默认keyBy('color_id')
86
     */
王源's avatar
王源 committed
87
    public function getProductColorMaterials($productId, array $colorIds, $withMaterials = false);
88

89 90 91 92 93 94 95
    /**
     * 获取维护完全原料数量的颜色id
     * @param $productId
     * @return array
     */
    public function getFullMaterialCountColorIds($productId);

梁俊杰's avatar
梁俊杰 committed
96
}