<?php /** * Created by PhpStorm. * User: 王源 * Date: 2020/1/9 * Time: 15:07 */ namespace Meibuyu\Rpc\Service\Interfaces\Product; interface ProductServiceInterface { /** * 获取单个数据 * @param int $id 产品id * @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'] * @return array|null */ public function get($id, array $relations = [], array $columns = ['*']); /** * 通过id列表获取产品数组 * @param array $idList 产品id的列表, 默认去重 * @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'] * @return array 默认keyBy('id') */ public function getByIdList(array $idList, array $relations = [], array $columns = ['*']): array; /** * 通过sku列表获取产品列表 * @param array $skuList 默认去重 * @param array $relations 产品的关联关系,可传入['color', 'size','brand', 'category', 'product_name', 'images', 'cost', 'weight'] * @param array $columns 产品表的字段,默认返回id * @return array 默认keyBy('sku') */ public function getListBySkuList(array $skuList, array $relations = [], array $columns = ['id']); /** * 获取全部品类列表 * @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; /** * 通过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 * @param array $relations ['report_points'] * @return array 默认keyBY('id') */ public function getProductNamesByIds(array $ids, array $columns = ['id', 'name', 'en_name'], array $relations = []): array; /** * 通过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 * @param array $relations ['report_points'] * @return array|null */ public function getProductNameById(int $id, array $columns = ['id', 'name', 'en_name'], array $relations = []); /** * 通过id数组获取申报要素列表 * @param array $ids 默认去重 * @param array $columns * @param array $relations ['product_name', 'ingredient'] * @return array 默认keyBY('id') */ public function getReportPointsByIds(array $ids, array $relations = [], array $columns = ['id', 'hs_code', 'point']): array; /** * 通过id获取申报要素 * @param int $id * @param array $columns * @param array $relations ['product_name', 'ingredient'] * @return array|null */ public function getReportPointById(int $id, array $relations = [], array $columns = ['id', 'hs_code', 'point']); /** * 获取申报要素数据 * @param array $idList 默认去重 * @param bool $groupByFlag * @return array keyBy('id') */ public function getWithPoint(array $idList, $groupByFlag = false); /** * 获取全部申报要素列表 * @param array $columns 默认['*'] * @return array */ public function reportPoints(array $columns = ['*']): array; /** * 通过产品id获取维护的所有尺码 * @param $id * @return array * @author Zero */ public function getSizesById($id): array; /** * 完成产品审批 * @param $data * @author Zero */ public function downApprove($data); // /** // * 通过id数组获取品牌列表 // * @param array $ids 默认去重 // * @param array $columns // * @return array 默认keyBY('id') // */ // public function getBrandsByIds(array $ids, array $columns = ['id', 'name']): array; /** * 样品转换产品 * @param array $params 传入的参数 * $params = [ * 'product' => [ // 产品信息 * 'sku' => 'ABC123', // SKU,必填 * 'name' => '裙子', // 产品中文名,选填 * 'en_name' => 'dress', // 产品英文名,选填 * 'brand_id' => 123, // 品牌id,选填 * 'team_ids' => [1,2,3], // 团队id数组,选填 * 'hs_code' => '6109909060', // 海关编号,选填 * 'origin_country_id' => 123, // 原产国,选填 * 'production_address' => '苏州', // 境内货源地,选填 * 'unit' => '件', // 单位,必填 * 'category_id' => 123, // 品类id,必填 * 'ingredient_id' => 123, // 成分id,选填 * 'product_name_id' => 123, // 品名id,必填 * 'style' => '复古', // 风格/款式,选填 * 'creator_id' => 123, // 创建人id,必填 * 'images' => [], // 图片地址数组 * 'cost' => 12,5, // 生产成本 * 'package_cost' => 12,5, // 包装成本 * 'customs_unit_price' => 12,5, // 报关单价 * 'customs_cost' => 12,5, // 报关成本 * 'product_weight' => 15.2, // 产品重量(g) * 'product_length' => 15.2, // 产品长度(cm) * 'product_width' => 15.2, // 产品宽度(cm) * 'product_height' => 15.2, // 产品高度(cm) * 'product_volume' => 15.2, // 产品体积(cm3) * 'package_weight' => 15.2, // 包装重量(g) * 'package_length' => 15.2, // 包装长度(cm) * 'package_width' => 15.2, // 包装宽度(cm) * 'package_height' => 15.2, // 包装高度(cm) * 'package_volume' => 15.2, // 包装体积(cm3) * ], * 'material' => [] // 原料信息,暂无 * ]; * @return array * @throws \Meibuyu\Rpc\Exceptions\RpcException * @author Zero */ public function specimenTransformToProduct(array $params); /** * 更新样品转换的产品 * @param string $sku_id 主键 * @param array $status_id 允许转换的状态 * @param array $params 传入的参数 * $params = [ * 'product' => [ // 产品信息 * 'sku' => 'ABC123', // SKU,必填 * 'name' => '裙子', // 产品中文名,选填 * 'en_name' => 'dress', // 产品英文名,选填 * 'brand_id' => 123, // 品牌id,选填 * 'team_ids' => [1,2,3], // 团队id数组,选填 * 'hs_code' => '6109909060', // 海关编号,选填 * 'origin_country_id' => 123, // 原产国,选填 * 'production_address' => '苏州', // 境内货源地,选填 * 'unit' => '件', // 单位,必填 * 'category_id' => 123, // 品类id,必填 * 'ingredient_id' => 123, // 成分id,选填 * 'product_name_id' => 123, // 品名id,必填 * 'style' => '复古', // 风格/款式,选填 * 'creator_id' => 123, // 创建人id,必填 * 'images' => [], // 图片地址数组 * 'cost' => 12,5, // 生产成本 * 'package_cost' => 12,5, // 包装成本 * 'customs_unit_price' => 12,5, // 报关单价 * 'customs_cost' => 12,5, // 报关成本 * 'product_weight' => 15.2, // 产品重量(g) * 'product_length' => 15.2, // 产品长度(cm) * 'product_width' => 15.2, // 产品宽度(cm) * 'product_height' => 15.2, // 产品高度(cm) * 'product_volume' => 15.2, // 产品体积(cm3) * 'package_weight' => 15.2, // 包装重量(g) * 'package_length' => 15.2, // 包装长度(cm) * 'package_width' => 15.2, // 包装宽度(cm) * 'package_height' => 15.2, // 包装高度(cm) * 'package_volume' => 15.2, // 包装体积(cm3) * ], * 'material' => [] // 原料信息,暂无 * 'child_sku_data' => [] //必填 * ]; * @return array * @throws \Meibuyu\Rpc\Exceptions\RpcException * @author Zero */ public function updateSpecimenTransformToProduct(array $params,$sku_id,$status_id); /** * 创建样品转换的产品 * @param string $sku_id 主键 * @param array $status_id 允许转换的状态 * @param array $params 传入的参数 * $params = [ * 'product' => [ // 产品信息 * 'sku' => 'ABC123', // SKU,必填 * 'name' => '裙子', // 产品中文名,选填 * 'en_name' => 'dress', // 产品英文名,选填 * 'brand_id' => 123, // 品牌id,选填 * 'team_ids' => [1,2,3], // 团队id数组,选填 * 'hs_code' => '6109909060', // 海关编号,选填 * 'origin_country_id' => 123, // 原产国,选填 * 'production_address' => '苏州', // 境内货源地,选填 * 'unit' => '件', // 单位,必填 * 'category_id' => 123, // 品类id,必填 * 'ingredient_id' => 123, // 成分id,选填 * 'product_name_id' => 123, // 品名id,必填 * 'style' => '复古', // 风格/款式,选填 * 'creator_id' => 123, // 创建人id,必填 * 'images' => [], // 图片地址数组 * 'cost' => 12,5, // 生产成本 * 'package_cost' => 12,5, // 包装成本 * 'customs_unit_price' => 12,5, // 报关单价 * 'customs_cost' => 12,5, // 报关成本 * 'product_weight' => 15.2, // 产品重量(g) * 'product_length' => 15.2, // 产品长度(cm) * 'product_width' => 15.2, // 产品宽度(cm) * 'product_height' => 15.2, // 产品高度(cm) * 'product_volume' => 15.2, // 产品体积(cm3) * 'package_weight' => 15.2, // 包装重量(g) * 'package_length' => 15.2, // 包装长度(cm) * 'package_width' => 15.2, // 包装宽度(cm) * 'package_height' => 15.2, // 包装高度(cm) * 'package_volume' => 15.2, // 包装体积(cm3) * ], * 'material' => [] // 原料信息,暂无 * 'child_sku_data' => [] //必填 * ]; * @return array * @throws \Meibuyu\Rpc\Exceptions\RpcException * @author Zero */ public function createSpecimenTransformToProduct(array $params); /** * 检查产品是否上架 * @param array $params * 参数可以通过id数组或者sku数组查询,二者传一就行,都传仅id生效 * $params = [ * 'ids' => [1,2,3], // 产品id数组 * 'skus' => ['sku1', 'sku2', 'sku3'], // 产品sku数组,全等查询非模糊 * ]; * @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', 'hs_code', 'origin_country_id', 'production_address', * 'unit', 'category_id', 'ingredient_id', 'product_name_id', 'type_id', 'status_id', 'style', * 'info_completed', 'creator_id'] * @return array 返回已上架产品信息 * @throws \Meibuyu\Rpc\Exceptions\RpcException * @author Zero */ public function checkPublished(array $params, array $relations = [], array $columns = ['*']): array; /** * 检查产品是否同时维护工艺信息核原料信息 * @param * 参数可以通过id * @return bool 同时维护true,未同时维护false * @throws \Meibuyu\Rpc\Exceptions\RpcException * @author Zero */ public function checkMaterialCraftById($id); /** * 通过产品id 获取工艺信息 * @param * 参数产品id数组 * @return array * @throws \Meibuyu\Rpc\Exceptions\RpcException * @author Zero */ public function getCraftByProductIds(array $productIds); /** * 获取产品数据 * @param array $where * @param array $whereIn * @param array $select * @param array|null $limitIds * @return array * @author chentianyu */ public function getProductsByWhere(array $where, array $whereIn = [], array $select = ['id'], array $limitIds = null): array; /** * 获取报关品名 * @param array $where * @param array $select * @param array|null $limitIds * @return array * @author chentianyu */ public function getProductNamesByWhere(array $where, array $select = ['id'], array $limitIds = null): array; /** * 获取ProductChild产品数组 * @param array $where * @param array $whereIn * @param array $columns 子SKU表的字段,默认显示全部 * @param array $relations 子SKU的关联关系,可传入['brand', 'category', 'product_name', 'images', 'cost', 'weight', 'packs'] * @return array 默认keyBy('id') */ public function getProductChildByWhere(array $where, array $whereIn = [], array $columns = ['*'], array $relations = []): array; /** * 根据主 SKU 获取子 SKU 相关信息 * @param $filters * @param string[] $childProductFields * @return array */ public function getChildProductsByProductFilter($filters, $childProductFields = ['*']): array; public function createDraftProduct(array $params); /** * Notes: 通过站点和团队获取仓库主sku列表 * User: linjixin * DateTime: 2022/11/7 11:12 */ public function getSkuListByTeamAndSite($params); /** * Notes: 通过仓库主sku获取子sku属性 * User: linjixin * DateTime: 2022/11/7 11:13 */ public function getChildSkuByStoreSku($params); /** * 创建属于草稿状态(不展示出来)的主 SKU * @return array * @throws \Meibuyu\Rpc\Exceptions\RpcException * @author QJK */ /** * @param array $skuList * @param array $relations * @param array|string[] $columns * @return array */ public function getProductsBySkuList(array $skuList, array $relations = [], array $columns = ['*']):array; /** * @param array $skuList * @param array $relations * @param array|string[] $columns * @return array */ public function getProductsByChildSkuList(array $skuList, array $relations = [], array $columns = ['*']):array; /** * 通过产品id,获取子sku * @param array $productList * @param array $relations * @param array|string[] $columns * @return array */ public function getChildSkuByProductsLst(array $productList, array $relations = [], array $columns = ['*']):array; /** * 查询子产品id 获取子产品信息 * @param array $productChildList * @param array $relations * @param array|string[] $columns * @return array */ public function getChildSkuByProductChildIds(array $productChildList, array $relations = [], array $columns = ['*']):array; }