商品参数架构文档
概述
- 参数分为参数组和参数值,二者为一对多的关系
- 参数和商品是通过分类进行关联的,也就是说,必须想将分类和参数进行绑定,发布商品时才能根据选择的商品分类来绑定相关参数
数据结构图
数据库设计
参数组表
表名:es_parameter_group
字段名 | 类型与长度 | 备注 |
---|---|---|
group_id | bigint(20) | 主键ID |
group_name | varchar(50) | 参数组名称 |
category_id | bigint(20) | 分类ID |
sort | int(10) | 排序值 |
参数表
表名:es_parameters
字段名 | 类型与长度 | 备注 |
---|---|---|
param_id | bigint(20) | 主键ID |
param_name | varchar(100) | 参数名称 |
param_type | int(1) | 参数设置方式(1:输入项,2:选择项) |
options | varchar(255) | 选择值(当param_type=2时,必填,英文逗号分隔,例如:常温,冷藏,冷冻,控温) |
is_index | int(1) | 是否可索引(0:否,1:是) |
required | int(1) | 是否必填(0:否,1:是) |
group_id | bigint(20) | 参数组ID |
category_id | bigint(20) | 分类ID |
sort | int(10) | 排序值 |
商品参数表
表名:es_goods_params
字段名 | 类型与长度 | 备注 |
---|---|---|
id | bigint(20) | 主键ID |
goods_id | bigint(20) | 商品ID |
param_id | bigint(20) | 参数ID |
param_name | varchar(100) | 参数名称 |
param_value | varchar(255) | 参数值 |
API规划
实体类参数可参考下方的类图展示
参数组
管理端:com.enation.app.javashop.api.manager.goods.ParameterGroupManagerController
请求方式 | API地址 | 参数说明 | 作用 |
---|---|---|---|
POST | https://{admin-api-domain}/admin/goods/parameter-groups | ParameterGroupDO parameterGroup:参数组信息 | 新增参数组信息 |
PUT | https://{admin-api-domain}/admin/goods/parameter-groups/{id} | String groupName:参数组名称;Long id:参数组主键ID | 修改参数组信息 |
GET | https://{admin-api-domain}/admin/goods/parameter-groups/{id} | Long id:参数组主键ID | 根据主键ID获取参数组信息 |
DELETE | https://{admin-api-domain}/admin/goods/parameter-groups/{id} | Long id:参数组主键ID | 根据主键ID删除参数组数据 |
PUT | https://{admin-api-domain}/admin/goods/parameter-groups/{group_id}/sort | Long id:参数组主键ID;String sortType:操作类型,上移-up,下移-down | 参数组排序上移或者下移 |
参数
管理端:com.enation.app.javashop.api.manager.goods.ParametersManagerController
请求方式 | API地址 | 参数说明 | 作用 |
---|---|---|---|
POST | https://{admin-api-domain}/admin/goods/parameters | ParametersDO parameters:参数信息 | 新增参数信息 |
PUT | https://{admin-api-domain}/admin/goods/parameters/{id} | ParametersDO parameters:参数信息;Long id:参数主键ID | 修改参数信息 |
GET | https://{admin-api-domain}/admin/goods/parameters/{id} | Long id:参数主键ID | 根据主键ID获取参数信息 |
DELETE | https://{admin-api-domain}/admin/goods/parameters/{id} | Long id:参数主键ID | 根据主键ID删除参数数据 |
PUT | https://{admin-api-domain}/admin/goods/parameters/{param_id}/sort | Long paramId:参数主键ID;String sortType:操作类型,上移-up,下移-down | 参数排序上移或者下移 |
参数与分类关联
管理端:
com.enation.app.javashop.api.manager.goods.CategoryManagerController#getCatParam
com.enation.app.javashop.api.manager.goods.CategoryManagerController#queryParams
请求方式 | API地址 | 参数说明 | 作用 |
---|---|---|---|
GET | https://{admin-api-domain}/admin/goods/categories/{category_id}/param | Long categoryId:分类ID | 查询分类绑定的参数信息,包括参数组和参数 |
GET | https://{admin-api-domain}/admin/goods/categories/category/{category_id}/{goods_id}/params | Long categoryId:分类ID;Long goodsId:商品ID | 查询商品所选分类关联的参数信息 |
商家端:
com.enation.app.javashop.api.seller.goods.CategorySellerController#queryParams(java.lang.Long, java.lang.Long)
com.enation.app.javashop.api.seller.goods.CategorySellerController#queryParams(java.lang.Long)
请求方式 | API地址 | 参数说明 | 作用 |
---|---|---|---|
GET | https://{seller-api-domain}/seller/goods/category/{category_id}/{goods_id}/params | Long categoryId:分类ID;Long goodsId:商品ID | 编辑商品时,获取商品分类绑定的参数信息集合 |
GET | https://{seller-api-domain}/seller/goods/category/{category_id}/params | Long categoryId:分类ID | 发布商品时,获取商品分类绑定的参数信息集合 |