跳到主要内容

商品参数架构文档

概述

  1. 参数分为参数组和参数值,二者为一对多的关系
  2. 参数和商品是通过分类进行关联的,也就是说,必须想将分类和参数进行绑定,发布商品时才能根据选择的商品分类来绑定相关参数

数据结构图

image-20230815170642929

数据库设计

参数组表

表名:es_parameter_group

字段名类型与长度备注
group_idbigint(20)主键ID
group_namevarchar(50)参数组名称
category_idbigint(20)分类ID
sortint(10)排序值

参数表

表名:es_parameters

字段名类型与长度备注
param_idbigint(20)主键ID
param_namevarchar(100)参数名称
param_typeint(1)参数设置方式(1:输入项,2:选择项)
optionsvarchar(255)选择值(当param_type=2时,必填,英文逗号分隔,例如:常温,冷藏,冷冻,控温)
is_indexint(1)是否可索引(0:否,1:是)
requiredint(1)是否必填(0:否,1:是)
group_idbigint(20)参数组ID
category_idbigint(20)分类ID
sortint(10)排序值

商品参数表

表名:es_goods_params

字段名类型与长度备注
idbigint(20)主键ID
goods_idbigint(20)商品ID
param_idbigint(20)参数ID
param_namevarchar(100)参数名称
param_valuevarchar(255)参数值

API规划

实体类参数可参考下方的类图展示

参数组

管理端:com.enation.app.javashop.api.manager.goods.ParameterGroupManagerController

请求方式API地址参数说明作用
POSThttps://{admin-api-domain}/admin/goods/parameter-groupsParameterGroupDO parameterGroup:参数组信息新增参数组信息
PUThttps://{admin-api-domain}/admin/goods/parameter-groups/{id}String groupName:参数组名称;Long id:参数组主键ID修改参数组信息
GEThttps://{admin-api-domain}/admin/goods/parameter-groups/{id}Long id:参数组主键ID根据主键ID获取参数组信息
DELETEhttps://{admin-api-domain}/admin/goods/parameter-groups/{id}Long id:参数组主键ID根据主键ID删除参数组数据
PUThttps://{admin-api-domain}/admin/goods/parameter-groups/{group_id}/sortLong id:参数组主键ID;String sortType:操作类型,上移-up,下移-down参数组排序上移或者下移

参数

管理端:com.enation.app.javashop.api.manager.goods.ParametersManagerController

请求方式API地址参数说明作用
POSThttps://{admin-api-domain}/admin/goods/parametersParametersDO parameters:参数信息新增参数信息
PUThttps://{admin-api-domain}/admin/goods/parameters/{id}ParametersDO parameters:参数信息;Long id:参数主键ID修改参数信息
GEThttps://{admin-api-domain}/admin/goods/parameters/{id}Long id:参数主键ID根据主键ID获取参数信息
DELETEhttps://{admin-api-domain}/admin/goods/parameters/{id}Long id:参数主键ID根据主键ID删除参数数据
PUThttps://{admin-api-domain}/admin/goods/parameters/{param_id}/sortLong 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地址参数说明作用
GEThttps://{admin-api-domain}/admin/goods/categories/{category_id}/paramLong categoryId:分类ID查询分类绑定的参数信息,包括参数组和参数
GEThttps://{admin-api-domain}/admin/goods/categories/category/{category_id}/{goods_id}/paramsLong 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地址参数说明作用
GEThttps://{seller-api-domain}/seller/goods/category/{category_id}/{goods_id}/paramsLong categoryId:分类ID;Long goodsId:商品ID编辑商品时,获取商品分类绑定的参数信息集合
GEThttps://{seller-api-domain}/seller/goods/category/{category_id}/paramsLong categoryId:分类ID发布商品时,获取商品分类绑定的参数信息集合

类图展示

参数组

image-20230815175403535

参数

image-20230815175651431

实体类

image-20230816090024880