MaterialServiceInterface.php 3.9 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\Rpc\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);

92 93 94 95 96 97 98 99 100 101 102 103

    /**
     * 获取产品原料名称绑定信息
     * @param $productMaterialNameIds
     * @param array $columns
     * @return mixed
     * @author Liu lu
     * date 2022-08-29
     */
    public function getProductColorMaterialsByNameIds($productMaterialNameIds,$columns=['*']);


104 105 106
    /**
     * 获取当前产品所有原料信息
     * @param $productId
107
     * @param array $productChildIds 追加子产品原料数据
108
     * @param string $keyBy
109 110 111
     * @author Liu lu
     * date 2023-01-31
     */
112
    public function getProductColorMaterialInfo($productId,$productChildIds=[],$keyBy='id');
113 114


 林继鑫's avatar
林继鑫 committed
115 116 117 118 119 120 121 122 123

    /**
     * 获取产品原料信息工艺单等
     * @param $params
     * @return array
     */
    public function getProductStuffInfo($params);


124 125 126 127 128 129 130 131 132

    /**
     * 查询某一主产品指定子产品绑定的包装原料信息
     * @param $productChildIds
     * @author Liu lu
     * date 2023-08-28
     */
    public function getProductPackageMaterialInfo($productChildIds);

133 134 135 136 137 138 139 140 141 142 143


    /**
     * 获取指定子产品指定原料尺码绑定相关信息
     * @param $productChildIds 子产品id
     * @param $materialName 原料名称
     * @return mixed
     * @author Liu lu
     * date 2024-01-29
     */
    public function getProductMaterialSizeBindInfo($productChildIds,$materialName);
梁俊杰's avatar
梁俊杰 committed
144
}