MaterialServiceInterface.php 2.62 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 11 12 13 14 15 16

interface MaterialServiceInterface
{

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

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

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

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

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

55 56 57 58 59 60 61
    /**
     * 获取某原料品类下的所有原料品名
     * @param $categoryId
     * @return array
     */
    public function getMaterialNamesByCategoryId($categoryId);

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

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

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

85 86 87 88 89 90 91
    /**
     * 获取维护完全原料数量的颜色id
     * @param $productId
     * @return array
     */
    public function getFullMaterialCountColorIds($productId);

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