ProductServiceInterface.php 5.35 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<?php
/**
 * Created by PhpStorm.
 * User: 王源
 * Date: 2020/1/9
 * Time: 15:07
 */

namespace Meibuyu\Micro\Service\Interfaces\Product;

interface ProductServiceInterface
{

    /**
     * 获取单个数据
     * @param int $id 产品id
     * @param array $relations 产品的关联关系,支持:["brand","category","ingredient","product_name","status","type","images","price_info","product_children"]
王源's avatar
王源 committed
18
     * @param array $columns 产品表的字段,默认
王源's avatar
王源 committed
19 20
     * ['id', 'sku', 'name', 'en_name', 'brand_id', 'team_id', 'hs_code', 'origin_country_id', 'production_address',
     * 'unit', 'category_id', 'ingredient_id', 'product_name_id', 'type_id', 'status_id', 'style', 'info_completed'
21
     * , 'bar_code', 'bar_code_image', 'creator_id', 'hot']
王源's avatar
王源 committed
22
     * @return array|null
23
     */
王源's avatar
王源 committed
24
    public function get($id, array $relations = [], array $columns = ['*']);
25 26 27

    /**
     * 通过id列表获取产品数组
王源's avatar
王源 committed
28
     * @param array $idList 产品id的列表, 默认去重
29 30 31 32 33
     * @param array $relations 产品的关联关系,支持["brand","category","ingredient","product_name","status","type","images","price_info","product_children"]
     * @param array $columns 产品表的字段,默认['id', 'sku', 'name', 'en_name', 'brand_id'
     * , 'team_id', 'hs_code', 'origin_country_id', 'production_address', 'unit', 'category_id'
     * , 'ingredient_id', 'product_name_id', 'type_id', 'status_id', 'style', 'info_completed'
     * , 'bar_code', 'bar_code_image', 'creator_id', 'hot']
王源's avatar
王源 committed
34
     * @return array 默认keyBy('id')
35
     */
王源's avatar
王源 committed
36
    public function getByIdList(array $idList, array $relations = [], array $columns = ['*']): array;
37

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

47 48 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
    /**
     * 获取全部品类列表
     * @param bool $asTree 是否作为树返回
     * @param array $columns 默认['id', 'name', 'parent_id']
     * @return array
     */
    public function categories($asTree = false, array $columns = ['id', 'name', 'parent_id']): array;

    /**
     * 获取全部品牌列表
     * @param array $columns 默认['id', 'name']
     * @return array
     */
    public function brands(array $columns = ['id', 'name']): array;

    /**
     * 获取全部报关品名列表
     * @param array $columns 默认['id', 'name','en_name']
     * @return array
     */
    public function productNames(array $columns = ['id', 'name', 'en_name']): array;

    /**
     * 获取全部成分列表
     * @param array $columns 默认['id', 'name']
     * @return array
     */
    public function ingredients(array $columns = ['id', 'name', 'en_name']): array;

    /**
77 78 79 80 81 82 83 84 85 86 87
     * 通过id数组获取品类列表
     * @param array $ids 默认去重
     * @param array $columns
     * @return array 默认keyBY('id')
     */
    public function getCategoriesByIds(array $ids, array $columns = ['id', 'name', 'parent_id']): array;

    /**
     * 通过id数组获取品名列表
     * @param array $ids 默认去重
     * @param array $columns
88
     * @param array $relations ['report_points']
89 90
     * @return array 默认keyBY('id')
     */
王源's avatar
王源 committed
91
    public function getProductNamesByIds(array $ids, array $columns = ['id', 'name', 'en_name'], array $relations = []): array;
92 93 94 95 96 97 98 99 100 101 102 103 104

    /**
     * 通过id获取品类
     * @param int $id
     * @param array $columns
     * @return array|null
     */
    public function getCategoryById(int $id, array $columns = ['id', 'name', 'parent_id']);

    /**
     * 通过id获取品名
     * @param int $id
     * @param array $columns
105
     * @param array $relations ['report_points']
106
     * @return array|null
107
     */
王源's avatar
王源 committed
108
    public function getProductNameById(int $id, array $columns = ['id', 'name', 'en_name'], array $relations = []);
109

王源's avatar
王源 committed
110 111 112 113 114 115 116
    /**
     * 通过id数组获取申报要素列表
     * @param array $ids 默认去重
     * @param array $columns
     * @param array $relations ['product_name', 'ingredient']
     * @return array 默认keyBY('id')
     */
王源's avatar
王源 committed
117
    public function getReportPointsByIds(array $ids, array $relations = [], array $columns = ['id', 'hs_code', 'point']): array;
王源's avatar
王源 committed
118 119 120 121 122 123 124 125

    /**
     * 通过id获取申报要素
     * @param int $id
     * @param array $columns
     * @param array $relations ['product_name', 'ingredient']
     * @return array|null
     */
王源's avatar
王源 committed
126
    public function getReportPointById(int $id, array $relations = [], array $columns = ['id', 'hs_code', 'point']);
王源's avatar
王源 committed
127

128 129 130 131 132 133 134 135
    /**
     * 获取申报要素数据
     * @param array $idList 默认去重
     * @param bool $groupByFlag
     * @return array keyBy('id')
     */
    public function getWithPoint(array $idList, $groupByFlag = false);

136 137 138 139 140 141 142
    /**
     * 获取全部申报要素列表
     * @param array $columns 默认['*']
     * @return array
     */
    public function reportPoints(array $columns = ['*']): array;

143 144 145 146 147 148 149 150
    /**
     * 通过产品id获取维护的所有尺码
     * @param $id
     * @return array
     * @author Zero
     */
    public function getSizesById($id): array;

151 152 153 154 155 156 157
    /**
     * 完成产品审批
     * @param $data
     * @author Zero
     */
    public function downApprove($data);

158
}