Compare commits
10 Commits
e3a0cb4bc1
...
1abaaad9c5
Author | SHA1 | Date |
---|---|---|
|
1abaaad9c5 | |
|
cd0304954a | |
|
931b0d3646 | |
|
61b0b14749 | |
|
dc1e669dc5 | |
|
74b67dae1c | |
|
e2c7f8e070 | |
|
29e536f837 | |
|
79a7391d39 | |
|
c9d7cd5653 |
|
@ -14,10 +14,11 @@ spring:
|
|||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
namespace: a7ca2016-3e34-485e-95ea-e0ea98d6c647
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
|
|
|
@ -14,10 +14,11 @@ spring:
|
|||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
namespace: a7ca2016-3e34-485e-95ea-e0ea98d6c647
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
|
@ -28,12 +29,12 @@ spring:
|
|||
eager: true
|
||||
transport:
|
||||
# 控制台地址
|
||||
dashboard: 127.0.0.1:8718
|
||||
dashboard: 111.229.37.54:8718
|
||||
# nacos配置持久化
|
||||
datasource:
|
||||
ds1:
|
||||
nacos:
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
dataId: sentinel-muyu-gateway
|
||||
groupId: DEFAULT_GROUP
|
||||
data-type: json
|
||||
|
|
|
@ -14,10 +14,11 @@ spring:
|
|||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
namespace: a7ca2016-3e34-485e-95ea-e0ea98d6c647
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
|
|
|
@ -14,10 +14,11 @@ spring:
|
|||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
namespace: a7ca2016-3e34-485e-95ea-e0ea98d6c647
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
|
|
|
@ -14,10 +14,11 @@ spring:
|
|||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
namespace: a7ca2016-3e34-485e-95ea-e0ea98d6c647
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
package com.muyu.product.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.muyu.product.domain.model.AttrValueModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -51,4 +54,12 @@ public class AsProductAttributeInfo extends BaseEntity {
|
|||
@ApiModelProperty(name = "属性值", value = "属性值", required = true)
|
||||
private String value;
|
||||
|
||||
public static AsProductAttributeInfo attrValueModelBuild(AttrValueModel attrValueModel, Supplier<Long> projectId){
|
||||
return AsProductAttributeInfo.builder()
|
||||
.productId(projectId.get())
|
||||
.attributeId(attrValueModel.getId())
|
||||
.value(attrValueModel.getValue())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.muyu.product.domain.model.TemplateAttributeModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -50,6 +51,14 @@ public class AttributeInfo extends BaseEntity {
|
|||
private String name;
|
||||
|
||||
|
||||
public TemplateAttributeModel buildTemplateModel(){
|
||||
return TemplateAttributeModel.builder()
|
||||
.id(this.getId())
|
||||
.code(this.getCode())
|
||||
.name(this.getName())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询构造器
|
||||
*/
|
||||
|
|
|
@ -44,7 +44,7 @@ public class BrandInfo extends BaseEntity {
|
|||
*/
|
||||
@Excel(name = "品牌名称")
|
||||
@ApiModelProperty(name = "品牌名称", value = "品牌名称", required = true)
|
||||
private String nam;
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* LOGO
|
||||
|
@ -72,7 +72,7 @@ public class BrandInfo extends BaseEntity {
|
|||
*/
|
||||
public static BrandInfo queryBuild(BrandInfoQueryReq brandInfoQueryReq) {
|
||||
return BrandInfo.builder()
|
||||
.nam(brandInfoQueryReq.getNam())
|
||||
.name(brandInfoQueryReq.getName())
|
||||
.logo(brandInfoQueryReq.getLogo())
|
||||
.start(brandInfoQueryReq.getStart())
|
||||
.introduction(brandInfoQueryReq.getIntroduction())
|
||||
|
@ -84,7 +84,7 @@ public class BrandInfo extends BaseEntity {
|
|||
*/
|
||||
public static BrandInfo saveBuild(BrandInfoSaveReq brandInfoSaveReq) {
|
||||
return BrandInfo.builder()
|
||||
.nam(brandInfoSaveReq.getNam())
|
||||
.name(brandInfoSaveReq.getName())
|
||||
.logo(brandInfoSaveReq.getLogo())
|
||||
.start(brandInfoSaveReq.getStart())
|
||||
.introduction(brandInfoSaveReq.getIntroduction())
|
||||
|
@ -98,7 +98,7 @@ public class BrandInfo extends BaseEntity {
|
|||
public static BrandInfo editBuild(Long id, BrandInfoEditReq brandInfoEditReq) {
|
||||
return BrandInfo.builder()
|
||||
.id(id)
|
||||
.nam(brandInfoEditReq.getNam())
|
||||
.name(brandInfoEditReq.getName())
|
||||
.logo(brandInfoEditReq.getLogo())
|
||||
.start(brandInfoEditReq.getStart())
|
||||
.introduction(brandInfoEditReq.getIntroduction())
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.muyu.product.domain;
|
|||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.muyu.product.domain.model.ProjectAddModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -11,10 +12,11 @@ import lombok.experimental.SuperBuilder;
|
|||
import io.swagger.annotations.*;
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.product.domain.req.ProjectInfoQueryReq;
|
||||
import com.muyu.product.domain.req.ProjectInfoSaveReq;
|
||||
import com.muyu.product.domain.req.ProjectInfoEditReq;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* 商品信息对象 project_info
|
||||
*
|
||||
|
@ -50,7 +52,7 @@ public class ProjectInfo extends BaseEntity {
|
|||
/** 主类型 */
|
||||
@Excel(name = "主类型")
|
||||
@ApiModelProperty(name = "主类型", value = "主类型")
|
||||
private String mianType;
|
||||
private String mainType;
|
||||
|
||||
/** 父类型 */
|
||||
@Excel(name = "父类型")
|
||||
|
@ -94,7 +96,7 @@ public class ProjectInfo extends BaseEntity {
|
|||
return ProjectInfo.builder()
|
||||
.name(projectInfoQueryReq.getName())
|
||||
.introduction(projectInfoQueryReq.getIntroduction())
|
||||
.mianType(projectInfoQueryReq.getMianType())
|
||||
.mainType(projectInfoQueryReq.getMainType())
|
||||
.parentType(projectInfoQueryReq.getParentType())
|
||||
.type(projectInfoQueryReq.getType())
|
||||
.image(projectInfoQueryReq.getImage())
|
||||
|
@ -108,38 +110,39 @@ public class ProjectInfo extends BaseEntity {
|
|||
/**
|
||||
* 添加构造器
|
||||
*/
|
||||
public static ProjectInfo saveBuild(ProjectInfoSaveReq projectInfoSaveReq){
|
||||
public static ProjectInfo saveModelBuild(ProjectAddModel projectAddModel, Supplier<String> createBy){
|
||||
return ProjectInfo.builder()
|
||||
.name(projectInfoSaveReq.getName())
|
||||
.introduction(projectInfoSaveReq.getIntroduction())
|
||||
.mianType(projectInfoSaveReq.getMianType())
|
||||
.parentType(projectInfoSaveReq.getParentType())
|
||||
.type(projectInfoSaveReq.getType())
|
||||
.image(projectInfoSaveReq.getImage())
|
||||
.carouselImages(projectInfoSaveReq.getCarouselImages())
|
||||
.status(projectInfoSaveReq.getStatus())
|
||||
.ruleId(projectInfoSaveReq.getRuleId())
|
||||
.brandId(projectInfoSaveReq.getBrandId())
|
||||
.name(projectAddModel.getName())
|
||||
.introduction(projectAddModel.getIntroduction())
|
||||
.mainType(projectAddModel.getMainType())
|
||||
.parentType(projectAddModel.getParentType())
|
||||
.type(projectAddModel.getType())
|
||||
.image(projectAddModel.getImage())
|
||||
.carouselImages(projectAddModel.getCarouselImages())
|
||||
.status(projectAddModel.getStatus())
|
||||
.ruleId(projectAddModel.getRuleId())
|
||||
.brandId(projectAddModel.getBrandId())
|
||||
.createBy(createBy.get())
|
||||
.createTime(new Date())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改构造器
|
||||
*/
|
||||
public static ProjectInfo editBuild(Long id, ProjectInfoEditReq projectInfoEditReq){
|
||||
public static ProjectInfo editBuild(Long id, ProjectAddModel projectAddModel){
|
||||
return ProjectInfo.builder()
|
||||
.id(id)
|
||||
.name(projectInfoEditReq.getName())
|
||||
.introduction(projectInfoEditReq.getIntroduction())
|
||||
.mianType(projectInfoEditReq.getMianType())
|
||||
.parentType(projectInfoEditReq.getParentType())
|
||||
.type(projectInfoEditReq.getType())
|
||||
.image(projectInfoEditReq.getImage())
|
||||
.carouselImages(projectInfoEditReq.getCarouselImages())
|
||||
.status(projectInfoEditReq.getStatus())
|
||||
.ruleId(projectInfoEditReq.getRuleId())
|
||||
.brandId(projectInfoEditReq.getBrandId())
|
||||
.name(projectAddModel.getName())
|
||||
.introduction(projectAddModel.getIntroduction())
|
||||
.mainType(projectAddModel.getMainType())
|
||||
.parentType(projectAddModel.getParentType())
|
||||
.type(projectAddModel.getType())
|
||||
.image(projectAddModel.getImage())
|
||||
.carouselImages(projectAddModel.getCarouselImages())
|
||||
.status(projectAddModel.getStatus())
|
||||
.ruleId(projectAddModel.getRuleId())
|
||||
.brandId(projectAddModel.getBrandId())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.muyu.product.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.muyu.product.domain.model.ProjectSkuModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -103,4 +106,14 @@ public class ProjectSkuInfo extends BaseEntity {
|
|||
.build();
|
||||
}
|
||||
|
||||
public static ProjectSkuInfo projectSkuModelBuild(ProjectSkuModel projectSkuModel, Supplier<Long> projectId){
|
||||
return ProjectSkuInfo.builder()
|
||||
.projectId(projectId.get())
|
||||
.sku(projectSkuModel.getSku())
|
||||
.stock(projectSkuModel.getStock())
|
||||
.image(projectSkuModel.getImage())
|
||||
.price(projectSkuModel.getPrice())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class AttrValueModel {
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 值
|
||||
*/
|
||||
private String value;
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "ProjectAddModel", description = "商品信息")
|
||||
public class ProjectAddModel extends BaseEntity {
|
||||
/** 商品名称 */
|
||||
@ApiModelProperty(name = "商品名称", value = "商品名称")
|
||||
private String name;
|
||||
|
||||
/** 商品描述 */
|
||||
@ApiModelProperty(name = "商品描述", value = "商品描述")
|
||||
private String introduction;
|
||||
|
||||
/** 主类型 */
|
||||
@ApiModelProperty(name = "主类型", value = "主类型")
|
||||
private String mainType;
|
||||
|
||||
/** 父类型 */
|
||||
@ApiModelProperty(name = "父类型", value = "父类型")
|
||||
private String parentType;
|
||||
|
||||
/** 商品类型 */
|
||||
@ApiModelProperty(name = "商品类型", value = "商品类型")
|
||||
private String type;
|
||||
|
||||
/** 商品图片 */
|
||||
@ApiModelProperty(name = "商品图片", value = "商品图片")
|
||||
private String image;
|
||||
|
||||
/** 商品轮播图 */
|
||||
@ApiModelProperty(name = "商品轮播图", value = "商品轮播图")
|
||||
private String carouselImages;
|
||||
|
||||
/** 商品状态 */
|
||||
@ApiModelProperty(name = "商品状态", value = "商品状态")
|
||||
private String status;
|
||||
|
||||
/** 规格 */
|
||||
@ApiModelProperty(name = "规格", value = "规格")
|
||||
private Long ruleId;
|
||||
|
||||
/** 品牌 */
|
||||
@ApiModelProperty(name = "品牌", value = "品牌")
|
||||
private Long brandId;
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProjectSkuModel {
|
||||
|
||||
/** sku */
|
||||
@ApiModelProperty(name = "sku", value = "sku", required = true)
|
||||
private String sku;
|
||||
|
||||
/** 商品库存 */
|
||||
@ApiModelProperty(name = "商品库存", value = "商品库存", required = true)
|
||||
private Long stock;
|
||||
|
||||
/** 商品价格 */
|
||||
@ApiModelProperty(name = "商品价格", value = "商品价格", required = true)
|
||||
private BigDecimal price;
|
||||
|
||||
/** 规格图片 */
|
||||
@ApiModelProperty(name = "规格图片", value = "规格图片", required = true)
|
||||
private String image;
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.product.domain.RuleAttrInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
@ -8,6 +9,7 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
|
@ -32,4 +34,11 @@ public class RuleAttrAddModel extends BaseEntity {
|
|||
* 规格属性值集合
|
||||
*/
|
||||
private List<String> valueList;
|
||||
|
||||
public static RuleAttrAddModel infoBuild (RuleAttrInfo ruleAttrInfo) {
|
||||
return RuleAttrAddModel.builder()
|
||||
.name(ruleAttrInfo.getName())
|
||||
.valueList(Arrays.stream(ruleAttrInfo.getAttrValue().split(",")).toList())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import com.muyu.common.core.utils.StringUtils;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.product.domain.AttributeGroup;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* @author DongZl
|
||||
* @description: 共有属性组
|
||||
* @Date 2024-3-6 下午 02:29
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TemplateAttributeGroupModel extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 组名称
|
||||
*/
|
||||
private String groupName;
|
||||
|
||||
/**
|
||||
* 属性组下属性集合
|
||||
*/
|
||||
private List<TemplateAttributeModel> attributeList;
|
||||
|
||||
/**
|
||||
* 是否有效
|
||||
* @return
|
||||
*/
|
||||
public boolean isEffective(){
|
||||
return StringUtils.isNotEmpty(groupName) && attributeList != null && !attributeList.isEmpty();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param attributeGroup
|
||||
* @param attributeList
|
||||
* @return
|
||||
*/
|
||||
public static TemplateAttributeGroupModel attributeGroupBuild(AttributeGroup attributeGroup,
|
||||
Function<Long, List<TemplateAttributeModel>> attributeList){
|
||||
return TemplateAttributeGroupModel.builder()
|
||||
.groupName(attributeGroup.getName())
|
||||
.attributeList(attributeList.apply(attributeGroup.getId()))
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* @author DongZl
|
||||
* @description: 共有属性
|
||||
* @Date 2024-3-6 下午 02:30
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TemplateAttributeModel extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 属性名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
private String code;
|
||||
}
|
|
@ -25,7 +25,7 @@ public class BrandInfoEditReq extends BaseEntity {
|
|||
|
||||
/** 品牌名称 */
|
||||
@ApiModelProperty(name = "品牌名称", value = "品牌名称", required = true)
|
||||
private String nam;
|
||||
private String name;
|
||||
|
||||
/** LOGO */
|
||||
@ApiModelProperty(name = "LOGO", value = "LOGO", required = true)
|
||||
|
|
|
@ -25,7 +25,7 @@ public class BrandInfoQueryReq extends BaseEntity {
|
|||
|
||||
/** 品牌名称 */
|
||||
@ApiModelProperty(name = "品牌名称", value = "品牌名称")
|
||||
private String nam;
|
||||
private String name;
|
||||
|
||||
/** LOGO */
|
||||
@ApiModelProperty(name = "LOGO", value = "LOGO")
|
||||
|
|
|
@ -31,7 +31,7 @@ public class BrandInfoSaveReq extends BaseEntity {
|
|||
/** 品牌名称 */
|
||||
|
||||
@ApiModelProperty(name = "品牌名称", value = "品牌名称", required = true)
|
||||
private String nam;
|
||||
private String name;
|
||||
|
||||
/** LOGO */
|
||||
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
package com.muyu.product.domain.req;
|
||||
|
||||
import com.muyu.product.domain.model.AttrValueModel;
|
||||
import com.muyu.product.domain.model.ProjectAddModel;
|
||||
import com.muyu.product.domain.model.ProjectSkuModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import io.swagger.annotations.*;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品信息对象 project_info
|
||||
*
|
||||
|
@ -23,44 +27,19 @@ public class ProjectInfoEditReq extends BaseEntity {
|
|||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 商品名称 */
|
||||
@ApiModelProperty(name = "商品名称", value = "商品名称")
|
||||
private String name;
|
||||
|
||||
/** 商品描述 */
|
||||
@ApiModelProperty(name = "商品描述", value = "商品描述")
|
||||
private String introduction;
|
||||
/**
|
||||
* 商品基本属性
|
||||
*/
|
||||
private ProjectAddModel projectAddModel;
|
||||
|
||||
/** 主类型 */
|
||||
@ApiModelProperty(name = "主类型", value = "主类型")
|
||||
private String mianType;
|
||||
|
||||
/** 父类型 */
|
||||
@ApiModelProperty(name = "父类型", value = "父类型")
|
||||
private String parentType;
|
||||
|
||||
/** 商品类型 */
|
||||
@ApiModelProperty(name = "商品类型", value = "商品类型")
|
||||
private String type;
|
||||
|
||||
/** 商品图片 */
|
||||
@ApiModelProperty(name = "商品图片", value = "商品图片")
|
||||
private String image;
|
||||
|
||||
/** 商品轮播图 */
|
||||
@ApiModelProperty(name = "商品轮播图", value = "商品轮播图")
|
||||
private String carouselImages;
|
||||
|
||||
/** 商品状态 */
|
||||
@ApiModelProperty(name = "商品状态", value = "商品状态")
|
||||
private String status;
|
||||
|
||||
/** 规格 */
|
||||
@ApiModelProperty(name = "规格", value = "规格")
|
||||
private Long ruleId;
|
||||
|
||||
/** 品牌 */
|
||||
@ApiModelProperty(name = "品牌", value = "品牌")
|
||||
private Long brandId;
|
||||
/**
|
||||
* 商品属性
|
||||
*/
|
||||
private List<AttrValueModel> attrValueList;
|
||||
|
||||
/**
|
||||
* 商品sku
|
||||
*/
|
||||
private List<ProjectSkuModel> projectSkuList;
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ public class ProjectInfoQueryReq extends BaseEntity {
|
|||
|
||||
/** 主类型 */
|
||||
@ApiModelProperty(name = "主类型", value = "主类型")
|
||||
private String mianType;
|
||||
private String mainType;
|
||||
|
||||
/** 父类型 */
|
||||
@ApiModelProperty(name = "父类型", value = "父类型")
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package com.muyu.product.domain.req;
|
||||
|
||||
import com.muyu.product.domain.model.AttrValueModel;
|
||||
import com.muyu.product.domain.model.ProjectAddModel;
|
||||
import com.muyu.product.domain.model.ProjectSkuModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -8,6 +11,8 @@ import lombok.experimental.SuperBuilder;
|
|||
import io.swagger.annotations.*;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品信息对象 project_info
|
||||
*
|
||||
|
@ -23,59 +28,19 @@ public class ProjectInfoSaveReq extends BaseEntity {
|
|||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键 */
|
||||
/**
|
||||
* 商品基本属性
|
||||
*/
|
||||
private ProjectAddModel projectAddModel;
|
||||
|
||||
@ApiModelProperty(name = "主键", value = "主键")
|
||||
private Long id;
|
||||
/**
|
||||
* 商品属性
|
||||
*/
|
||||
private List<AttrValueModel> attrValueList;
|
||||
|
||||
/** 商品名称 */
|
||||
|
||||
@ApiModelProperty(name = "商品名称", value = "商品名称")
|
||||
private String name;
|
||||
|
||||
/** 商品描述 */
|
||||
|
||||
@ApiModelProperty(name = "商品描述", value = "商品描述")
|
||||
private String introduction;
|
||||
|
||||
/** 主类型 */
|
||||
|
||||
@ApiModelProperty(name = "主类型", value = "主类型")
|
||||
private String mianType;
|
||||
|
||||
/** 父类型 */
|
||||
|
||||
@ApiModelProperty(name = "父类型", value = "父类型")
|
||||
private String parentType;
|
||||
|
||||
/** 商品类型 */
|
||||
|
||||
@ApiModelProperty(name = "商品类型", value = "商品类型")
|
||||
private String type;
|
||||
|
||||
/** 商品图片 */
|
||||
|
||||
@ApiModelProperty(name = "商品图片", value = "商品图片")
|
||||
private String image;
|
||||
|
||||
/** 商品轮播图 */
|
||||
|
||||
@ApiModelProperty(name = "商品轮播图", value = "商品轮播图")
|
||||
private String carouselImages;
|
||||
|
||||
/** 商品状态 */
|
||||
|
||||
@ApiModelProperty(name = "商品状态", value = "商品状态")
|
||||
private String status;
|
||||
|
||||
/** 规格 */
|
||||
|
||||
@ApiModelProperty(name = "规格", value = "规格")
|
||||
private Long ruleId;
|
||||
|
||||
/** 品牌 */
|
||||
|
||||
@ApiModelProperty(name = "品牌", value = "品牌")
|
||||
private Long brandId;
|
||||
/**
|
||||
* 商品sku
|
||||
*/
|
||||
private List<ProjectSkuModel> projectSkuList;
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
package com.muyu.product.domain.resp;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.product.domain.model.TemplateAttributeGroupModel;
|
||||
import com.muyu.product.domain.model.TemplateAttributeModel;
|
||||
import lombok.*;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author DongZl
|
||||
* @description: 商品类别公共元素
|
||||
* @Date 2024-3-6 下午 02:25
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CategoryCommonElementResp extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 共有属性组
|
||||
*/
|
||||
private List<TemplateAttributeGroupModel> templateAttributeGroupList;
|
||||
|
||||
/**
|
||||
* 共有属性
|
||||
*/
|
||||
private List<TemplateAttributeModel> templateAttributeList;
|
||||
|
||||
/**
|
||||
* 自有属性(所有未包含属性)
|
||||
*/
|
||||
private List<TemplateAttributeModel> attributeList;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
package com.muyu.product.domain.resp;
|
||||
|
||||
import com.muyu.product.domain.AsProductAttributeInfo;
|
||||
import com.muyu.product.domain.ProjectInfo;
|
||||
import com.muyu.product.domain.ProjectSkuInfo;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProjectInfoEditResp {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 商品基本属性
|
||||
*/
|
||||
private ProjectInfo projectInfo;
|
||||
// private ProjectEditModel projectEditModel;
|
||||
|
||||
/**
|
||||
* 商品属性
|
||||
*/
|
||||
private List<AsProductAttributeInfo> asProductAttributeInfoList;
|
||||
// private List<AttrValueModel> attrValueList;
|
||||
|
||||
/**
|
||||
* 商品SKu
|
||||
*/
|
||||
private List<ProjectSkuInfo> projectSkuInfoList;
|
||||
// private List<ProjectSkuModel> projectSkuList;
|
||||
|
||||
public static ProjectInfoEditResp allBuild(ProjectInfo projectInfo, List<AsProductAttributeInfo> asProductAttributeInfoList, List<ProjectSkuInfo> projectSkuInfoList) {
|
||||
return ProjectInfoEditResp.builder()
|
||||
.projectInfo(projectInfo)
|
||||
.asProductAttributeInfoList(asProductAttributeInfoList)
|
||||
.projectSkuInfoList(projectSkuInfoList)
|
||||
.build();
|
||||
}
|
||||
|
||||
// public static ProjectInfoEditResp projectBuilder(ProjectInfo projectInfo, List<AttrValueModel> attrValueList, List<ProjectSkuModel> projectSkuModelList) {
|
||||
// return ProjectInfoEditResp.builder()
|
||||
// .projectEditModel(ProjectInfoEditResp.projectEditBuilder(projectInfo))
|
||||
// .attrValueList(attrValueList)
|
||||
// .projectSkuList(projectSkuModelList)
|
||||
// .build();
|
||||
// }
|
||||
//
|
||||
// private static ProjectEditModel projectEditBuilder(ProjectInfo projectInfo) {
|
||||
// return ProjectEditModel.builder()
|
||||
// .id(projectInfo.getId())
|
||||
// .name(projectInfo.getName())
|
||||
// .introduction(projectInfo.getIntroduction())
|
||||
// .mainType(projectInfo.getMainType())
|
||||
// .parentType(projectInfo.getParentType())
|
||||
// .type(projectInfo.getType())
|
||||
// .image(projectInfo.getImage())
|
||||
// .carouselImages(projectInfo.getCarouselImages())
|
||||
// .status(projectInfo.getStatus())
|
||||
// .ruleId(projectInfo.getRuleId())
|
||||
// .brandId(projectInfo.getBrandId())
|
||||
// .build();
|
||||
// }
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.muyu.product.domain.resp;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.product.domain.RuleInfo;
|
||||
import com.muyu.product.domain.model.RuleAttrAddModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* @author DongZl
|
||||
* @description: 规格返回结果集
|
||||
* @Date 2024-3-4 下午 04:08
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class RuleInfoResp extends BaseEntity {
|
||||
|
||||
private Long id;
|
||||
|
||||
/** 规格名称 */
|
||||
private String name;
|
||||
|
||||
/** 规格状态 */
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 规格属性集合
|
||||
*/
|
||||
private List<RuleAttrAddModel> ruleAttrList;
|
||||
|
||||
public static RuleInfoResp infoBuild (RuleInfo ruleInfo, Function<Long, List<RuleAttrAddModel>> ruleAttrList) {
|
||||
return RuleInfoResp.builder()
|
||||
.id(ruleInfo.getId())
|
||||
.name(ruleInfo.getName())
|
||||
.status(ruleInfo.getStatus())
|
||||
.ruleAttrList(ruleAttrList.apply(ruleInfo.getId()))
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -36,6 +36,8 @@ import com.muyu.common.core.web.page.TableDataInfo;
|
|||
@RestController
|
||||
@RequestMapping("/attribute")
|
||||
public class AttributeInfoController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private AttributeInfoService attributeInfoService;
|
||||
|
||||
|
@ -83,7 +85,8 @@ public class AttributeInfoController extends BaseController {
|
|||
@PostMapping
|
||||
@ApiOperation("新增商品属性")
|
||||
public Result<String> add(@RequestBody AttributeInfoSaveReq attributeInfoSaveReq) {
|
||||
return toAjax(attributeInfoService.save(AttributeInfo.saveBuild(attributeInfoSaveReq)));
|
||||
AttributeInfo attributeInfo = AttributeInfo.saveBuild(attributeInfoSaveReq);
|
||||
return attributeInfoService.save(attributeInfo) ? success(attributeInfo.getId()) : error();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.muyu.product.controller;
|
|||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.muyu.common.core.text.Convert;
|
||||
import io.swagger.annotations.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@ -45,10 +46,13 @@ public class BrandInfoController extends BaseController {
|
|||
@ApiOperation("获取品牌信息列表")
|
||||
@RequiresPermissions("product:brand:list")
|
||||
@GetMapping("/list")
|
||||
public Result<TableDataInfo<BrandInfo>> list(BrandInfoQueryReq brandInfoQueryReq) {
|
||||
startPage();
|
||||
public Result list(BrandInfoQueryReq brandInfoQueryReq) {
|
||||
boolean isPage = brandInfoQueryReq.getParams().get("isPage") == null || Convert.toBool(brandInfoQueryReq.getParams().get("isPage"), true);
|
||||
if (isPage){
|
||||
startPage();
|
||||
}
|
||||
List<BrandInfo> list = brandInfoService.list(BrandInfo.queryBuild(brandInfoQueryReq));
|
||||
return getDataTable(list);
|
||||
return isPage ? getDataTable(list) : Result.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.muyu.product.domain.AttributeGroup;
|
|||
import com.muyu.product.domain.AttributeInfo;
|
||||
import com.muyu.product.domain.BrandInfo;
|
||||
import com.muyu.product.domain.model.CategoryInfoSaveModel;
|
||||
import com.muyu.product.domain.resp.CategoryCommonElementResp;
|
||||
import com.muyu.product.domain.resp.CategoryParentCommonElementResp;
|
||||
import io.swagger.annotations.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -80,6 +81,17 @@ public class CategoryInfoController extends BaseController {
|
|||
return Result.success(categoryInfoService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取品类信息详细信息
|
||||
*/
|
||||
@ApiOperation("获取品类信息共有属性信息")
|
||||
@RequiresPermissions("product:category:query")
|
||||
@GetMapping(value = "/getTemplateAttribute/{cateGoryId}")
|
||||
@ApiImplicitParam(name = "cateGoryId", value = "cateGoryId", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
|
||||
public Result<CategoryCommonElementResp> getTemplateAttributeByCateGoryId(@PathVariable("cateGoryId") Long cateGoryId) {
|
||||
return Result.success(categoryInfoService.getTemplateAttributeByCateGoryId(cateGoryId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增品类信息
|
||||
*/
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.muyu.product.controller;
|
|||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.muyu.product.domain.resp.ProjectInfoEditResp;
|
||||
import io.swagger.annotations.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@ -71,8 +72,8 @@ public class ProjectInfoController extends BaseController {
|
|||
@RequiresPermissions("product:info:query")
|
||||
@GetMapping(value = "/{id}")
|
||||
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
|
||||
public Result<ProjectInfo> getInfo(@PathVariable("id") Long id) {
|
||||
return Result.success(projectInfoService.getById(id));
|
||||
public Result<ProjectInfoEditResp> getInfo(@PathVariable("id") Long id) {
|
||||
return Result.success(projectInfoService.getDetailById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -83,7 +84,7 @@ public class ProjectInfoController extends BaseController {
|
|||
@PostMapping
|
||||
@ApiOperation("新增商品信息")
|
||||
public Result<String> add(@RequestBody ProjectInfoSaveReq projectInfoSaveReq) {
|
||||
return toAjax(projectInfoService.save(ProjectInfo.saveBuild(projectInfoSaveReq)));
|
||||
return toAjax(projectInfoService.save(projectInfoSaveReq));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -94,7 +95,7 @@ public class ProjectInfoController extends BaseController {
|
|||
@PutMapping("/{id}")
|
||||
@ApiOperation("修改商品信息")
|
||||
public Result<String> edit(@PathVariable Long id, @RequestBody ProjectInfoEditReq projectInfoEditReq) {
|
||||
return toAjax(projectInfoService.updateById(ProjectInfo.editBuild(id,projectInfoEditReq)));
|
||||
return toAjax(projectInfoService.updateById(id,projectInfoEditReq));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,7 +3,9 @@ package com.muyu.product.controller;
|
|||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.muyu.common.core.text.Convert;
|
||||
import com.muyu.product.domain.model.RuleInfoAddModel;
|
||||
import com.muyu.product.domain.resp.RuleInfoResp;
|
||||
import io.swagger.annotations.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@ -46,10 +48,13 @@ public class RuleInfoController extends BaseController {
|
|||
@ApiOperation("获取商品规格列表")
|
||||
@RequiresPermissions("product:rule:list")
|
||||
@GetMapping("/list")
|
||||
public Result<TableDataInfo<RuleInfo>> list(RuleInfoQueryReq ruleInfoQueryReq) {
|
||||
startPage();
|
||||
List<RuleInfo> list = ruleInfoService.list(RuleInfo.queryBuild(ruleInfoQueryReq));
|
||||
return getDataTable(list);
|
||||
public Result list(RuleInfoQueryReq ruleInfoQueryReq) {
|
||||
boolean isPage = ruleInfoQueryReq.getParams().get("isPage") == null || Convert.toBool(ruleInfoQueryReq.getParams().get("isPage"), true);
|
||||
if (isPage){
|
||||
startPage();
|
||||
}
|
||||
TableDataInfo<RuleInfoResp> tableDataInfo = ruleInfoService.queryList(ruleInfoQueryReq);
|
||||
return isPage ? Result.success(tableDataInfo) : Result.success(tableDataInfo.getRows());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.muyu.product.domain.BrandInfo;
|
|||
import com.muyu.product.domain.CategoryInfo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.product.domain.model.CategoryInfoSaveModel;
|
||||
import com.muyu.product.domain.resp.CategoryCommonElementResp;
|
||||
import com.muyu.product.domain.resp.CategoryParentCommonElementResp;
|
||||
|
||||
/**
|
||||
|
@ -59,4 +60,11 @@ public interface CategoryInfoService extends IService<CategoryInfo> {
|
|||
* @return 父级以上的属性、属性组、品牌集合
|
||||
*/
|
||||
CategoryParentCommonElementResp parentCommonElement (Long categoryId);
|
||||
|
||||
/**
|
||||
* 通过品类ID获取品类共有属性
|
||||
* @param cateGoryId 品类ID
|
||||
* @return 品类共有属性
|
||||
*/
|
||||
CategoryCommonElementResp getTemplateAttributeByCateGoryId (Long cateGoryId);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,9 @@ package com.muyu.product.service;
|
|||
import java.util.List;
|
||||
import com.muyu.product.domain.ProjectInfo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.product.domain.req.ProjectInfoEditReq;
|
||||
import com.muyu.product.domain.req.ProjectInfoSaveReq;
|
||||
import com.muyu.product.domain.resp.ProjectInfoEditResp;
|
||||
|
||||
/**
|
||||
* 商品信息Service接口
|
||||
|
@ -19,4 +22,14 @@ public interface ProjectInfoService extends IService<ProjectInfo> {
|
|||
*/
|
||||
public List<ProjectInfo> list(ProjectInfo projectInfo);
|
||||
|
||||
/**
|
||||
* 保存商品信息
|
||||
* @param projectInfoSaveReq
|
||||
* @return
|
||||
*/
|
||||
boolean save(ProjectInfoSaveReq projectInfoSaveReq);
|
||||
|
||||
boolean updateById(Long id, ProjectInfoEditReq projectInfoEditReq);
|
||||
|
||||
ProjectInfoEditResp getDetailById(Long id);
|
||||
}
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
package com.muyu.product.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.muyu.common.core.web.page.TableDataInfo;
|
||||
import com.muyu.product.domain.RuleInfo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.product.domain.model.RuleInfoAddModel;
|
||||
import com.muyu.product.domain.req.RuleInfoQueryReq;
|
||||
import com.muyu.product.domain.resp.RuleInfoResp;
|
||||
|
||||
/**
|
||||
* 商品规格Service接口
|
||||
|
@ -26,4 +30,6 @@ public interface RuleInfoService extends IService<RuleInfo> {
|
|||
* @return 时候成功
|
||||
*/
|
||||
public boolean save(RuleInfoAddModel ruleInfoAddModel);
|
||||
|
||||
TableDataInfo<RuleInfoResp> queryList (RuleInfoQueryReq ruleInfoQueryReq);
|
||||
}
|
||||
|
|
|
@ -40,10 +40,6 @@ public class AsAttributeGroupServiceImpl extends ServiceImpl<AsAttributeGroupMap
|
|||
queryWrapper.eq(AsAttributeGroup::getAttributeId, asAttributeGroup.getAttributeId());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return list(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,8 +34,8 @@ public class BrandInfoServiceImpl extends ServiceImpl<BrandInfoMapper, BrandInfo
|
|||
LambdaQueryWrapper<BrandInfo> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
|
||||
if (ObjUtils.notNull(brandInfo.getNam())){
|
||||
queryWrapper.eq(BrandInfo::getNam, brandInfo.getNam());
|
||||
if (ObjUtils.notNull(brandInfo.getName())){
|
||||
queryWrapper.like(BrandInfo::getName, brandInfo.getName());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(brandInfo.getLogo())){
|
||||
|
|
|
@ -1,25 +1,31 @@
|
|||
package com.muyu.product.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.muyu.common.core.utils.ObjUtils;
|
||||
import com.muyu.product.domain.*;
|
||||
import com.muyu.product.domain.base.CategoryBase;
|
||||
import com.muyu.product.domain.model.CategoryInfoSaveModel;
|
||||
import com.muyu.product.domain.model.TemplateAttributeGroupModel;
|
||||
import com.muyu.product.domain.model.TemplateAttributeModel;
|
||||
import com.muyu.product.domain.resp.CategoryCommonElementResp;
|
||||
import com.muyu.product.domain.resp.CategoryParentCommonElementResp;
|
||||
import com.muyu.product.mapper.CategoryInfoMapper;
|
||||
import com.muyu.product.service.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.muyu.product.mapper.CategoryInfoMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* 品类信息Service业务层处理
|
||||
*
|
||||
|
@ -28,7 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, CategoryInfo> implements CategoryInfoService {
|
||||
public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, CategoryInfo> implements CategoryInfoService {
|
||||
|
||||
|
||||
@Autowired
|
||||
|
@ -40,6 +46,9 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
@Autowired
|
||||
private AsCategoryBrandService asCategoryBrandService;
|
||||
|
||||
@Autowired
|
||||
private AsAttributeGroupService asAttributeGroupService;
|
||||
|
||||
@Autowired
|
||||
private AttributeInfoService attributeInfoService;
|
||||
|
||||
|
@ -53,30 +62,31 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
* 查询品类信息列表
|
||||
*
|
||||
* @param categoryInfo 品类信息
|
||||
*
|
||||
* @return 品类信息
|
||||
*/
|
||||
@Override
|
||||
public List<CategoryInfo> list(CategoryInfo categoryInfo) {
|
||||
public List<CategoryInfo> list (CategoryInfo categoryInfo) {
|
||||
LambdaQueryWrapper<CategoryInfo> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
|
||||
if (ObjUtils.notNull(categoryInfo.getName())){
|
||||
if (ObjUtils.notNull(categoryInfo.getName())) {
|
||||
queryWrapper.like(CategoryInfo::getName, categoryInfo.getName());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(categoryInfo.getImage())){
|
||||
if (ObjUtils.notNull(categoryInfo.getImage())) {
|
||||
queryWrapper.eq(CategoryInfo::getImage, categoryInfo.getImage());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(categoryInfo.getParentId())){
|
||||
if (ObjUtils.notNull(categoryInfo.getParentId())) {
|
||||
queryWrapper.eq(CategoryInfo::getParentId, categoryInfo.getParentId());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(categoryInfo.getStart())){
|
||||
if (ObjUtils.notNull(categoryInfo.getStart())) {
|
||||
queryWrapper.eq(CategoryInfo::getStart, categoryInfo.getStart());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(categoryInfo.getIntroduction())){
|
||||
if (ObjUtils.notNull(categoryInfo.getIntroduction())) {
|
||||
queryWrapper.eq(CategoryInfo::getIntroduction, categoryInfo.getIntroduction());
|
||||
}
|
||||
|
||||
|
@ -85,12 +95,12 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean save(CategoryInfoSaveModel categoryInfoSaveModel) {
|
||||
public boolean save (CategoryInfoSaveModel categoryInfoSaveModel) {
|
||||
CategoryInfo categoryInfo = CategoryInfo.saveModelBuild(categoryInfoSaveModel);
|
||||
boolean save = this.save(categoryInfo);
|
||||
Long categoryInfoId = categoryInfo.getId();
|
||||
List<Long> attributeIdList = categoryInfoSaveModel.getAttributeIdList();
|
||||
if (attributeIdList != null && !attributeIdList.isEmpty()){
|
||||
if (attributeIdList != null && !attributeIdList.isEmpty()) {
|
||||
asCategoryAttributeService.saveBatch(
|
||||
attributeIdList.stream()
|
||||
.map(attributeId -> AsCategoryAttribute.categoryBuild(categoryInfoId, attributeId))
|
||||
|
@ -98,7 +108,7 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
);
|
||||
}
|
||||
List<Long> attributeGroupIdList = categoryInfoSaveModel.getAttributeGroupIdList();
|
||||
if (attributeGroupIdList != null && !attributeGroupIdList.isEmpty()){
|
||||
if (attributeGroupIdList != null && !attributeGroupIdList.isEmpty()) {
|
||||
asCategoryAttributeGroupService.saveBatch(
|
||||
attributeGroupIdList.stream()
|
||||
.map(attributeGroupId -> AsCategoryAttributeGroup.categoryBuild(categoryInfoId, attributeGroupId))
|
||||
|
@ -106,7 +116,7 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
);
|
||||
}
|
||||
List<Long> brandIdList = categoryInfoSaveModel.getBrandIdList();
|
||||
if (brandIdList != null && !brandIdList.isEmpty()){
|
||||
if (brandIdList != null && !brandIdList.isEmpty()) {
|
||||
asCategoryBrandService.saveBatch(
|
||||
brandIdList.stream()
|
||||
.map(brandId -> AsCategoryBrand.categoryBuild(categoryInfoId, brandId))
|
||||
|
@ -129,20 +139,20 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
LambdaQueryWrapper<AsCategoryAttributeGroup> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AsCategoryAttributeGroup::getCategoryId, categoryId);
|
||||
List<AsCategoryAttributeGroup> asCategoryAttributeGroupList = asCategoryAttributeGroupService.list(queryWrapper);
|
||||
if (asCategoryAttributeGroupList != null && !asCategoryAttributeGroupList.isEmpty()){
|
||||
if (asCategoryAttributeGroupList != null && !asCategoryAttributeGroupList.isEmpty()) {
|
||||
List<Long> attributeGroupIdList = asCategoryAttributeGroupList.stream()
|
||||
.map(AsCategoryAttributeGroup::getAttributeGroupId)
|
||||
.toList();
|
||||
attributeGroupList.addAll(attributeGroupService.listByIds(attributeGroupIdList));
|
||||
}
|
||||
CategoryInfo categoryInfo = this.getById(categoryId);
|
||||
if (categoryInfo.getParentId() != 0){
|
||||
if (attributeGroupList.isEmpty()){
|
||||
if (categoryInfo.getParentId() != 0) {
|
||||
if (attributeGroupList.isEmpty()) {
|
||||
attributeGroupList.addAll(getAttributeGroup(categoryInfo.getParentId()));
|
||||
}else {
|
||||
} else {
|
||||
List<AttributeGroup> attributeGroups = getAttributeGroup(categoryInfo.getParentId());
|
||||
attributeGroups.forEach(attributeGroup -> {
|
||||
if (!attributeGroupList.contains(attributeGroup)){
|
||||
if (!attributeGroupList.contains(attributeGroup)) {
|
||||
attributeGroupList.add(attributeGroup);
|
||||
}
|
||||
});
|
||||
|
@ -164,20 +174,20 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
LambdaQueryWrapper<AsCategoryBrand> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AsCategoryBrand::getCategoryId, categoryId);
|
||||
List<AsCategoryBrand> asCategoryBrandList = asCategoryBrandService.list(queryWrapper);
|
||||
if (asCategoryBrandList != null && !asCategoryBrandList.isEmpty()){
|
||||
if (asCategoryBrandList != null && !asCategoryBrandList.isEmpty()) {
|
||||
List<Long> brandIdList = asCategoryBrandList.stream()
|
||||
.map(AsCategoryBrand::getBrandId)
|
||||
.toList();
|
||||
brandInfoList.addAll(brandInfoService.listByIds(brandIdList));
|
||||
}
|
||||
CategoryInfo categoryInfo = this.getById(categoryId);
|
||||
if (categoryInfo.getParentId() != 0){
|
||||
if (brandInfoList.isEmpty()){
|
||||
if (categoryInfo.getParentId() != 0) {
|
||||
if (brandInfoList.isEmpty()) {
|
||||
brandInfoList.addAll(getBrand(categoryInfo.getParentId()));
|
||||
}else {
|
||||
} else {
|
||||
List<BrandInfo> brandInfos = getBrand(categoryInfo.getParentId());
|
||||
brandInfos.forEach(brandInfo -> {
|
||||
if (!brandInfoList.contains(brandInfo)){
|
||||
if (!brandInfoList.contains(brandInfo)) {
|
||||
brandInfoList.add(brandInfo);
|
||||
}
|
||||
});
|
||||
|
@ -200,20 +210,20 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
LambdaQueryWrapper<AsCategoryAttribute> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AsCategoryAttribute::getCategoryId, categoryId);
|
||||
List<AsCategoryAttribute> asCategoryAttributeList = asCategoryAttributeService.list(queryWrapper);
|
||||
if (asCategoryAttributeList != null && !asCategoryAttributeList.isEmpty()){
|
||||
if (asCategoryAttributeList != null && !asCategoryAttributeList.isEmpty()) {
|
||||
List<Long> attributeIdList = asCategoryAttributeList.stream()
|
||||
.map(AsCategoryAttribute::getAttributeId)
|
||||
.toList();
|
||||
attributeInfoList.addAll(attributeInfoService.listByIds(attributeIdList));
|
||||
}
|
||||
CategoryInfo categoryInfo = this.getById(categoryId);
|
||||
if (categoryInfo.getParentId() != 0){
|
||||
if (attributeInfoList.isEmpty()){
|
||||
if (categoryInfo.getParentId() != 0) {
|
||||
if (attributeInfoList.isEmpty()) {
|
||||
attributeInfoList.addAll(getAttribute(categoryInfo.getParentId()));
|
||||
}else {
|
||||
} else {
|
||||
List<AttributeInfo> attributeInfos = getAttribute(categoryInfo.getParentId());
|
||||
attributeInfos.forEach(attributeInfoQuery -> {
|
||||
if (!attributeInfoList.contains(attributeInfoQuery)){
|
||||
if (!attributeInfoList.contains(attributeInfoQuery)) {
|
||||
attributeInfoList.add(attributeInfoQuery);
|
||||
}
|
||||
});
|
||||
|
@ -223,16 +233,15 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
}
|
||||
|
||||
|
||||
|
||||
public <T,AS> List<T> getCommon(Long categoryId,IService<AS> iService,IService<T> bsiService){
|
||||
public <T, AS> List<T> getCommon (Long categoryId, IService<AS> iService, IService<T> bsiService) {
|
||||
List<T> list = new ArrayList();
|
||||
QueryWrapper<AS> asQueryWrapper = new QueryWrapper<>();
|
||||
asQueryWrapper.eq("category_id", categoryId);
|
||||
List<AS> asList = iService.list(asQueryWrapper);
|
||||
if (asList != null && !asList.isEmpty()){
|
||||
if (asList != null && !asList.isEmpty()) {
|
||||
List<Long> baseIdList = asList.stream()
|
||||
.map(as -> {
|
||||
if (as instanceof CategoryBase categoryBase){
|
||||
if (as instanceof CategoryBase categoryBase) {
|
||||
return categoryBase.getBaseId();
|
||||
}
|
||||
return null;
|
||||
|
@ -241,13 +250,13 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
list.addAll(bsiService.listByIds(baseIdList));
|
||||
}
|
||||
CategoryInfo categoryInfo = this.getById(categoryId);
|
||||
if (categoryInfo.getParentId() != 0){
|
||||
if (list.isEmpty()){
|
||||
if (categoryInfo.getParentId() != 0) {
|
||||
if (list.isEmpty()) {
|
||||
list.addAll(getCommon(categoryInfo.getParentId(), iService, bsiService));
|
||||
}else {
|
||||
} else {
|
||||
List<T> commonList = getCommon(categoryInfo.getParentId(), iService, bsiService);
|
||||
commonList.forEach(common -> {
|
||||
if (!list.contains(common)){
|
||||
if (!list.contains(common)) {
|
||||
list.add(common);
|
||||
}
|
||||
});
|
||||
|
@ -271,4 +280,96 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
.brandInfoList(getCommon(categoryId, asCategoryBrandService, brandInfoService))
|
||||
.build();
|
||||
}
|
||||
|
||||
private void getParentIdListByCateGoryId(List<Long> parentIdList, Long cateGoryId){
|
||||
if (cateGoryId.equals(0L)){
|
||||
return;
|
||||
}
|
||||
CategoryInfo categoryInfo = this.getById(cateGoryId);
|
||||
parentIdList.add(categoryInfo.getId());
|
||||
getParentIdListByCateGoryId(parentIdList, categoryInfo.getParentId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过品类ID获取品类共有属性
|
||||
*
|
||||
* @param cateGoryId 品类ID
|
||||
*
|
||||
* @return 品类共有属性
|
||||
*/
|
||||
@Override
|
||||
public CategoryCommonElementResp getTemplateAttributeByCateGoryId (Long cateGoryId) {
|
||||
List<Long> cateGoryIdList = new ArrayList<>();
|
||||
getParentIdListByCateGoryId(cateGoryIdList, cateGoryId);
|
||||
// 取出和品类相关联的属性组关系 - 中间表
|
||||
LambdaQueryWrapper<AsCategoryAttributeGroup> asCategoryAttributeGroupLambdaQueryWrapper = new LambdaQueryWrapper<>(){{
|
||||
in(AsCategoryAttributeGroup::getCategoryId, cateGoryIdList);
|
||||
}};
|
||||
List<AsCategoryAttributeGroup> categoryAttributeGroupList = asCategoryAttributeGroupService.list(asCategoryAttributeGroupLambdaQueryWrapper);
|
||||
List<TemplateAttributeGroupModel> attributeGroupModelList = categoryAttributeGroupList.stream()
|
||||
.map(AsCategoryAttributeGroup::getAttributeGroupId)
|
||||
.distinct()
|
||||
.map(attributeGroupId -> TemplateAttributeGroupModel.attributeGroupBuild(
|
||||
attributeGroupService.getById(attributeGroupId),
|
||||
applyAttributeGroupId -> {
|
||||
LambdaQueryWrapper<AsAttributeGroup> asAttributeGroupQueryWrapper = new LambdaQueryWrapper<>() {{
|
||||
eq(AsAttributeGroup::getGroupId, applyAttributeGroupId);
|
||||
}};
|
||||
List<Long> attributeIdList = asAttributeGroupService.list(asAttributeGroupQueryWrapper).stream()
|
||||
.map(AsAttributeGroup::getAttributeId)
|
||||
.toList();
|
||||
if (attributeIdList.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return attributeInfoService.listByIds(attributeIdList).stream()
|
||||
.map(AttributeInfo::buildTemplateModel)
|
||||
.toList();
|
||||
}
|
||||
))
|
||||
.filter(TemplateAttributeGroupModel::isEffective)
|
||||
.toList();
|
||||
// 查重集合
|
||||
Set<Long> attributeIdSet = new HashSet<>();
|
||||
// 获取组内所有的属性Id
|
||||
if (!attributeGroupModelList.isEmpty()){
|
||||
attributeIdSet.addAll(
|
||||
attributeGroupModelList.stream()
|
||||
.flatMap((Function<TemplateAttributeGroupModel, Stream<TemplateAttributeModel>>) templateAttributeGroupModel -> templateAttributeGroupModel.getAttributeList().stream())
|
||||
.map(TemplateAttributeModel::getId)
|
||||
.toList()
|
||||
);
|
||||
}
|
||||
|
||||
List<TemplateAttributeModel> templateAttributeModelList = new ArrayList<>();
|
||||
LambdaQueryWrapper<AsCategoryAttribute> categoryAttributeQueryWrapper = new LambdaQueryWrapper<>();
|
||||
categoryAttributeQueryWrapper.in(AsCategoryAttribute::getCategoryId, cateGoryIdList);
|
||||
List<AsCategoryAttribute> asCategoryAttributeList = asCategoryAttributeService.list(categoryAttributeQueryWrapper);
|
||||
if (asCategoryAttributeList != null && !asCategoryAttributeList.isEmpty()){
|
||||
List<Long> templateAttributeIdList = asCategoryAttributeList.stream()
|
||||
.map(AsCategoryAttribute::getAttributeId)
|
||||
.filter(templateAttributeId -> !attributeIdSet.contains(templateAttributeId))
|
||||
.toList();
|
||||
templateAttributeModelList = attributeInfoService.listByIds(templateAttributeIdList).stream()
|
||||
.map(AttributeInfo::buildTemplateModel)
|
||||
.toList();
|
||||
}
|
||||
|
||||
List<TemplateAttributeModel> attributeModelList = new ArrayList<>();
|
||||
|
||||
if (!templateAttributeModelList.isEmpty()){
|
||||
attributeIdSet.addAll(
|
||||
templateAttributeModelList.stream().map(TemplateAttributeModel::getId).toList()
|
||||
);
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<AttributeInfo> attributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
attributeInfoLambdaQueryWrapper.notIn(!attributeIdSet.isEmpty(), AttributeInfo::getId, attributeIdSet);
|
||||
attributeModelList = attributeInfoService.list(attributeInfoLambdaQueryWrapper).stream().map(AttributeInfo::buildTemplateModel).toList();
|
||||
|
||||
return CategoryCommonElementResp.builder()
|
||||
.templateAttributeGroupList(attributeGroupModelList)
|
||||
.templateAttributeList(templateAttributeModelList)
|
||||
.attributeList(attributeModelList)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,11 +3,19 @@ package com.muyu.product.service.impl;
|
|||
import java.util.List;
|
||||
|
||||
import com.muyu.common.core.utils.ObjUtils;
|
||||
import com.muyu.common.security.utils.SecurityUtils;
|
||||
import com.muyu.product.domain.*;
|
||||
import com.muyu.product.domain.model.AttrValueModel;
|
||||
import com.muyu.product.domain.model.ProjectAddModel;
|
||||
import com.muyu.product.domain.model.ProjectSkuModel;
|
||||
import com.muyu.product.domain.req.ProjectInfoEditReq;
|
||||
import com.muyu.product.domain.req.ProjectInfoSaveReq;
|
||||
import com.muyu.product.domain.resp.ProjectInfoEditResp;
|
||||
import com.muyu.product.service.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.muyu.product.mapper.ProjectInfoMapper;
|
||||
import com.muyu.product.domain.ProjectInfo;
|
||||
import com.muyu.product.service.ProjectInfoService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
||||
|
@ -21,6 +29,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
@Service
|
||||
public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, ProjectInfo> implements ProjectInfoService {
|
||||
|
||||
@Autowired
|
||||
private AsProductAttributeInfoService asProductAttributeInfoService;
|
||||
|
||||
@Autowired
|
||||
private ProjectSkuInfoService projectSkuInfoService;
|
||||
|
||||
@Autowired
|
||||
private AttributeInfoService attributeInfoService;
|
||||
|
||||
@Autowired
|
||||
private AsBrandProjectService asBrandProjectService;
|
||||
|
||||
/**
|
||||
* 查询商品信息列表
|
||||
*
|
||||
|
@ -40,8 +60,8 @@ public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, Proje
|
|||
queryWrapper.eq(ProjectInfo::getIntroduction, projectInfo.getIntroduction());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(projectInfo.getMianType())){
|
||||
queryWrapper.eq(ProjectInfo::getMianType, projectInfo.getMianType());
|
||||
if (ObjUtils.notNull(projectInfo.getMainType())){
|
||||
queryWrapper.eq(ProjectInfo::getMainType, projectInfo.getMainType());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(projectInfo.getParentType())){
|
||||
|
@ -72,10 +92,139 @@ public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, Proje
|
|||
queryWrapper.eq(ProjectInfo::getBrandId, projectInfo.getBrandId());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean save(ProjectInfoSaveReq projectInfoSaveReq) {
|
||||
ProjectAddModel projectAddModel = projectInfoSaveReq.getProjectAddModel();
|
||||
ProjectInfo projectInfo = ProjectInfo.saveModelBuild(projectAddModel, SecurityUtils::getUsername);
|
||||
boolean save = this.save(projectInfo);
|
||||
if(save){
|
||||
// 商品属性
|
||||
List<AttrValueModel> attrValueList = projectInfoSaveReq.getAttrValueList();
|
||||
List<AsProductAttributeInfo> asProductAttributeInfoList = attrValueList.stream()
|
||||
.map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel, projectInfo::getId))
|
||||
.toList();
|
||||
if(!asProductAttributeInfoList.isEmpty()){
|
||||
asProductAttributeInfoService.saveBatch(asProductAttributeInfoList);
|
||||
}
|
||||
|
||||
// 商品sku
|
||||
List<ProjectSkuModel> projectSkuList = projectInfoSaveReq.getProjectSkuList();
|
||||
List<ProjectSkuInfo> projectSkuInfoList = projectSkuList.stream()
|
||||
.map(projectSkuModel -> ProjectSkuInfo.projectSkuModelBuild(projectSkuModel, projectInfo::getId))
|
||||
.toList();
|
||||
if(!projectSkuInfoList.isEmpty()){
|
||||
projectSkuInfoService.saveBatch(projectSkuInfoList);
|
||||
}
|
||||
}
|
||||
return save;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ProjectInfoEditResp getDetailById(Long id) {
|
||||
// 获取商品基本信息
|
||||
ProjectInfo projectInfo = this.getById(id);
|
||||
|
||||
// 商品属性
|
||||
LambdaQueryWrapper<AsProductAttributeInfo> asProductAttributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
asProductAttributeInfoLambdaQueryWrapper.eq(AsProductAttributeInfo::getProductId, id);
|
||||
List<AsProductAttributeInfo> asProductAttributeInfoList = asProductAttributeInfoService.list(asProductAttributeInfoLambdaQueryWrapper);
|
||||
|
||||
// 商品规格信息
|
||||
LambdaQueryWrapper<ProjectSkuInfo> projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
projectSkuInfoLambdaQueryWrapper.eq(ProjectSkuInfo::getProjectId, id);
|
||||
List<ProjectSkuInfo> projectSkuInfoList = projectSkuInfoService.list(projectSkuInfoLambdaQueryWrapper);
|
||||
|
||||
ProjectInfoEditResp projectInfoEditResp = ProjectInfoEditResp.allBuild(projectInfo, asProductAttributeInfoList, projectSkuInfoList);
|
||||
|
||||
return projectInfoEditResp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateById(Long id, ProjectInfoEditReq projectInfoEditReq) {
|
||||
ProjectAddModel projectAddModel = projectInfoEditReq.getProjectAddModel();
|
||||
|
||||
// 删除品牌中间表
|
||||
LambdaQueryWrapper<AsBrandProject> asBrandProjectLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
asBrandProjectLambdaQueryWrapper.eq(AsBrandProject::getProjectId,id);
|
||||
asBrandProjectService.remove(asBrandProjectLambdaQueryWrapper);
|
||||
|
||||
asBrandProjectService.save(AsBrandProject.builder()
|
||||
.brandId(projectAddModel.getBrandId())
|
||||
.projectId(String.valueOf(id))
|
||||
.build()
|
||||
);
|
||||
|
||||
ProjectInfo projectInfo = ProjectInfo.editBuild(id, projectAddModel);
|
||||
boolean update = this.updateById(projectInfo);
|
||||
if(update){
|
||||
//删除属性值
|
||||
LambdaQueryWrapper<AsProductAttributeInfo> asProductAttributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
asProductAttributeInfoLambdaQueryWrapper.eq(AsProductAttributeInfo::getProductId,id);
|
||||
asProductAttributeInfoService.remove(asProductAttributeInfoLambdaQueryWrapper);
|
||||
|
||||
//添加属性值
|
||||
List<AttrValueModel> attrValueList = projectInfoEditReq.getAttrValueList();
|
||||
List<AsProductAttributeInfo> asProductAttributeInfoList = attrValueList.stream()
|
||||
.map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel, projectInfo::getId))
|
||||
.toList();
|
||||
if(!asProductAttributeInfoList.isEmpty()){
|
||||
asProductAttributeInfoService.saveBatch(asProductAttributeInfoList);
|
||||
}
|
||||
|
||||
// 删除sku
|
||||
LambdaQueryWrapper<ProjectSkuInfo> projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
projectSkuInfoLambdaQueryWrapper.eq(ProjectSkuInfo::getProjectId,id);
|
||||
projectSkuInfoService.remove(projectSkuInfoLambdaQueryWrapper);
|
||||
|
||||
//添加sku
|
||||
List<ProjectSkuModel> projectSkuList = projectInfoEditReq.getProjectSkuList();
|
||||
List<ProjectSkuInfo> projectSkuInfoList = projectSkuList.stream()
|
||||
.map(projectSkuModel -> ProjectSkuInfo.projectSkuModelBuild(projectSkuModel, projectInfo::getId))
|
||||
.toList();
|
||||
if(!projectSkuInfoList.isEmpty()){
|
||||
projectSkuInfoService.saveBatch(projectSkuInfoList);
|
||||
}
|
||||
}
|
||||
|
||||
return update;
|
||||
|
||||
// // 删除商品属性
|
||||
// LambdaQueryWrapper<AsProductAttributeInfo> asProductAttributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
// asProductAttributeInfoLambdaQueryWrapper.eq(AsProductAttributeInfo::getProductId,id);
|
||||
// asProductAttributeInfoService.remove(asProductAttributeInfoLambdaQueryWrapper);
|
||||
//
|
||||
// // 删除商品sku
|
||||
// LambdaQueryWrapper<ProjectSkuInfo> projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
// projectSkuInfoLambdaQueryWrapper.eq(ProjectSkuInfo::getProjectId,id);
|
||||
// projectSkuInfoService.remove(projectSkuInfoLambdaQueryWrapper);
|
||||
//
|
||||
// // 修改商品基本属性
|
||||
// ProjectEditModel projectEditModel = projectInfoEditReq.getProjectEditModel();
|
||||
// ProjectInfo projectInfo = ProjectInfo.editBuild(id, projectEditModel);
|
||||
// boolean update = this.updateById(projectInfo);
|
||||
// if(update){
|
||||
// // 添加商品属性
|
||||
// List<AttrValueModel> attrValueList = projectInfoEditReq.getAttrValueList();
|
||||
// List<AsProductAttributeInfo> asProductAttributeInfoList = attrValueList.stream()
|
||||
// .map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel,projectInfo::getId))
|
||||
// .toList();
|
||||
// if(!asProductAttributeInfoList.isEmpty()){
|
||||
// asProductAttributeInfoService.saveBatch(asProductAttributeInfoList);
|
||||
// }
|
||||
//
|
||||
// // 添加商品sku
|
||||
// List<ProjectSkuModel> projectSkuList = projectInfoEditReq.getProjectSkuList();
|
||||
// List<ProjectSkuInfo> projectSkuInfoList = projectSkuList.stream()
|
||||
// .map(projectSkuModel -> ProjectSkuInfo.projectSkuModelBuild(projectSkuModel, projectInfo::getId))
|
||||
// .toList();
|
||||
// if(!projectSkuInfoList.isEmpty()){
|
||||
// projectSkuInfoService.saveBatch(projectSkuInfoList);
|
||||
// }
|
||||
// }
|
||||
// return update;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,13 +3,20 @@ package com.muyu.product.service.impl;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.muyu.common.core.text.Convert;
|
||||
import com.muyu.common.core.utils.ObjUtils;
|
||||
import com.muyu.common.core.web.page.TableDataInfo;
|
||||
import com.muyu.common.security.utils.SecurityUtils;
|
||||
import com.muyu.product.domain.RuleAttrInfo;
|
||||
import com.muyu.product.domain.model.RuleAttrAddModel;
|
||||
import com.muyu.product.domain.model.RuleInfoAddModel;
|
||||
import com.muyu.product.domain.req.RuleInfoQueryReq;
|
||||
import com.muyu.product.domain.resp.RuleInfoResp;
|
||||
import com.muyu.product.service.RuleAttrInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -77,4 +84,22 @@ public class RuleInfoServiceImpl extends ServiceImpl<RuleInfoMapper, RuleInfo>
|
|||
);
|
||||
return save;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<RuleInfoResp> queryList (RuleInfoQueryReq ruleInfoQueryReq) {
|
||||
List<RuleInfo> list = this.list(RuleInfo.queryBuild(ruleInfoQueryReq));
|
||||
List<RuleInfoResp> ruleInfoRespList = list.stream()
|
||||
.map(ruleInfo -> RuleInfoResp.infoBuild(ruleInfo, ruleId -> {
|
||||
LambdaQueryWrapper<RuleAttrInfo> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(RuleAttrInfo::getRuleId, ruleId);
|
||||
return ruleAttrInfoService.list(queryWrapper).stream().map(RuleAttrAddModel::infoBuild).toList();
|
||||
}))
|
||||
.toList();
|
||||
boolean isPage = ruleInfoQueryReq.getParams().get("isPage") == null || Convert.toBool(ruleInfoQueryReq.getParams().get("isPage"), true);
|
||||
|
||||
return TableDataInfo.<RuleInfoResp>builder()
|
||||
.rows(ruleInfoRespList)
|
||||
.total(isPage ? new PageInfo<>(list).getTotal() : 0)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,10 +14,11 @@ spring:
|
|||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
namespace: a7ca2016-3e34-485e-95ea-e0ea98d6c647
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
|
|
|
@ -14,10 +14,11 @@ spring:
|
|||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
namespace: a7ca2016-3e34-485e-95ea-e0ea98d6c647
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Tomcat
|
||||
server:
|
||||
port: 9100
|
||||
port: 9101
|
||||
|
||||
# Spring
|
||||
spring:
|
||||
|
@ -14,10 +14,11 @@ spring:
|
|||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8848
|
||||
server-addr: 111.229.37.54:8848
|
||||
namespace: a7ca2016-3e34-485e-95ea-e0ea98d6c647
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
|
|
|
@ -0,0 +1,425 @@
|
|||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : 本地5.7
|
||||
Source Server Type : MySQL
|
||||
Source Server Version : 50737
|
||||
Source Host : 127.0.0.1:3306
|
||||
Source Schema : product
|
||||
|
||||
Target Server Type : MySQL
|
||||
Target Server Version : 50737
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 08/03/2024 14:41:20
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for as_attribute_group
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `as_attribute_group`;
|
||||
CREATE TABLE `as_attribute_group` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`group_id` bigint(20) NOT NULL COMMENT '组ID',
|
||||
`attribute_id` bigint(20) NOT NULL COMMENT '属性id',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '属性与组中间表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of as_attribute_group
|
||||
-- ----------------------------
|
||||
INSERT INTO `as_attribute_group` VALUES (1, 6, 1, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_attribute_group` VALUES (2, 6, 2, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_attribute_group` VALUES (3, 6, 4, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for as_brand_project
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `as_brand_project`;
|
||||
CREATE TABLE `as_brand_project` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`brand_id` bigint(20) NOT NULL COMMENT '品牌id',
|
||||
`project_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品id',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '品牌商品中间表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of as_brand_project
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for as_category_attribute
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `as_category_attribute`;
|
||||
CREATE TABLE `as_category_attribute` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`category_id` bigint(20) NOT NULL COMMENT '品类id',
|
||||
`attribute_id` bigint(20) NOT NULL COMMENT '属性id',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '品类属性中间表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of as_category_attribute
|
||||
-- ----------------------------
|
||||
INSERT INTO `as_category_attribute` VALUES (1, 12, 2, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (2, 12, 10, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (3, 12, 6, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (4, 12, 13, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (5, 13, 1, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (6, 14, 2, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (7, 15, 1, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (8, 15, 2, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (9, 16, 2, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (10, 16, 1, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (11, 16, 10, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute` VALUES (12, 16, 9, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for as_category_attribute_group
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `as_category_attribute_group`;
|
||||
CREATE TABLE `as_category_attribute_group` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`category_id` bigint(20) NOT NULL COMMENT '品类id',
|
||||
`attribute_group_id` bigint(20) NOT NULL COMMENT '属性组',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '品类属性组中间表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of as_category_attribute_group
|
||||
-- ----------------------------
|
||||
INSERT INTO `as_category_attribute_group` VALUES (1, 12, 6, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute_group` VALUES (2, 13, 6, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute_group` VALUES (3, 14, 7, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute_group` VALUES (4, 15, 6, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_attribute_group` VALUES (5, 15, 7, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for as_category_brand
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `as_category_brand`;
|
||||
CREATE TABLE `as_category_brand` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`category_id` bigint(20) NOT NULL COMMENT '品类id',
|
||||
`brand_id` bigint(20) NOT NULL COMMENT '品牌id',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '品类品牌中间表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of as_category_brand
|
||||
-- ----------------------------
|
||||
INSERT INTO `as_category_brand` VALUES (1, 12, 1, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_brand` VALUES (2, 14, 1, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_brand` VALUES (3, 15, 1, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_brand` VALUES (4, 16, 1, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `as_category_brand` VALUES (5, 16, 2, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for as_product_attribute_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `as_product_attribute_info`;
|
||||
CREATE TABLE `as_product_attribute_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '属性编号',
|
||||
`product_id` bigint(20) NOT NULL COMMENT '商品',
|
||||
`attribute_id` bigint(20) NOT NULL COMMENT '属性',
|
||||
`value` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性值',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
`remark` varchar(900) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品属性表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of as_product_attribute_info
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for attribute_group
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `attribute_group`;
|
||||
CREATE TABLE `attribute_group` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '属性组编号',
|
||||
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组名称',
|
||||
`states` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
`remark` varchar(900) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '属性组表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of attribute_group
|
||||
-- ----------------------------
|
||||
INSERT INTO `attribute_group` VALUES (6, '测试', 'Y', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_group` VALUES (7, '成都', 'Y', NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for attribute_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `attribute_info`;
|
||||
CREATE TABLE `attribute_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '属性编号',
|
||||
`code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性编码',
|
||||
`name` varchar(90) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性名',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
`remark` varchar(900) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品属性表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of attribute_info
|
||||
-- ----------------------------
|
||||
INSERT INTO `attribute_info` VALUES (1, 'CPU', 'CPU', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (2, 'memory', '内存', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (3, 'screen_size', '屏幕尺寸', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (4, 'color', '颜色', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (5, 'material', '材质', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (6, 'capacity', '容量', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (7, 'the_year_listing', '上市年份', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (8, 'listing_month', '上市月份', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (9, 'date_of_sale', '销售日期', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (10, 'Length', '长度', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (11, 'width', '宽度', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (12, 'thickness', '厚度', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (13, 'weight', '重量', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (19, 'A', 'A', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (20, 'B', 'B', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (21, 'C', 'C', NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `attribute_info` VALUES (22, 'D', '测试D', NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for brand_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `brand_info`;
|
||||
CREATE TABLE `brand_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`nam` varchar(90) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '品牌名称',
|
||||
`logo` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'LOGO',
|
||||
`start` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '是否启用',
|
||||
`introduction` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '介绍',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NOT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '品牌信息' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of brand_info
|
||||
-- ----------------------------
|
||||
INSERT INTO `brand_info` VALUES (1, '小米', 'http://127.0.0.1:9300/statics/2024/02/27/1709021128851_20240227160548A001.png', 'Y', '小米', '小米', 'admin', '2024-02-27 16:10:12', 'admin', '2024-02-27 16:16:27');
|
||||
INSERT INTO `brand_info` VALUES (2, '华为', 'http://127.0.0.1:9300/statics/2024/03/05/仓鼠_20240305092606A001.png', 'Y', NULL, NULL, 'admin', '2024-03-05 09:26:09', NULL, NULL);
|
||||
INSERT INTO `brand_info` VALUES (3, '苹果', 'http://127.0.0.1:9300/statics/2024/03/05/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240305092615A002.png', 'Y', NULL, NULL, 'admin', '2024-03-05 09:26:18', NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for category_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `category_info`;
|
||||
CREATE TABLE `category_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '品类名称',
|
||||
`image` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '图片',
|
||||
`parent_id` bigint(20) NOT NULL COMMENT '父级品类',
|
||||
`start` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '是否启用',
|
||||
`introduction` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '介绍',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NOT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '品类信息' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of category_info
|
||||
-- ----------------------------
|
||||
INSERT INTO `category_info` VALUES (1, '节点1', 'http://127.0.0.1:9300/statics/2024/02/28/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240228170131A002.png', 0, 'Y', '介绍', NULL, 'admin', '2024-02-28 17:09:11', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (2, '节点1-1', 'http://127.0.0.1:9300/statics/2024/02/28/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240228170926A003.png', 1, 'Y', '测试', NULL, 'admin', '2024-02-28 17:09:31', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (3, '节点1-1-1', 'http://127.0.0.1:9300/statics/2024/02/28/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240228170944A004.png', 2, 'Y', '测试', NULL, 'admin', '2024-02-28 17:09:48', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (4, '节点2', 'http://127.0.0.1:9300/statics/2024/02/28/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240228170956A005.png', 0, 'Y', '', NULL, 'admin', '2024-02-28 17:09:58', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (5, '节点2-1', 'http://127.0.0.1:9300/statics/2024/02/28/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240228171012A006.png', 4, 'Y', '测试', NULL, 'admin', '2024-02-28 17:10:14', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (6, '节点2-1-1', 'http://127.0.0.1:9300/statics/2024/02/28/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240228171031A007.png', 5, 'Y', '', NULL, 'admin', '2024-02-28 17:10:34', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (7, '节点1-1-2', 'http://127.0.0.1:9300/statics/2024/02/28/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240228171047A008.png', 2, 'Y', '测试', NULL, 'admin', '2024-02-28 17:10:50', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (13, '测试-1', 'http://127.0.0.1:9300/statics/2024/03/01/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240301114154A001.png', 0, 'Y', NULL, NULL, 'admin', '2024-03-01 11:42:03', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (14, '测试1-1', 'http://127.0.0.1:9300/statics/2024/03/01/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240301114209A002.png', 13, 'Y', NULL, NULL, 'admin', '2024-03-01 11:42:22', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (15, '测试1-2', 'http://127.0.0.1:9300/statics/2024/03/01/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240301114446A003.png', 13, 'Y', NULL, NULL, 'admin', '2024-03-01 11:44:56', NULL, NULL);
|
||||
INSERT INTO `category_info` VALUES (16, '测试1-1-1', 'http://127.0.0.1:9300/statics/2024/03/06/7GHOYz1SWffN43a77d257b422464c35bc1da44fc6742_20240306162814A001.png', 14, 'Y', NULL, NULL, 'admin', '2024-03-06 16:28:27', NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for comment_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `comment_info`;
|
||||
CREATE TABLE `comment_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`project_id` bigint(20) NOT NULL COMMENT '商品id',
|
||||
`comment` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '评论',
|
||||
`images` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片',
|
||||
`parent_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父类id',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NOT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品评论表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of comment_info
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for comment_like_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `comment_like_info`;
|
||||
CREATE TABLE `comment_like_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`comment_id` bigint(20) NOT NULL COMMENT '评论id',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '点赞人id',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NOT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '评论点赞表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of comment_like_info
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for project_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `project_info`;
|
||||
CREATE TABLE `project_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`name` varchar(90) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
|
||||
`introduction` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '商品描述',
|
||||
`mian_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主类型',
|
||||
`parent_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父类型',
|
||||
`type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品类型',
|
||||
`image` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品图片',
|
||||
`carousel_images` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品轮播图',
|
||||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品状态',
|
||||
`rule_id` bigint(20) NULL DEFAULT NULL COMMENT '规格',
|
||||
`brand_id` bigint(20) NULL DEFAULT NULL COMMENT '品牌',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NOT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品信息' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of project_info
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for project_sku_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `project_sku_info`;
|
||||
CREATE TABLE `project_sku_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`project_id` bigint(20) NOT NULL COMMENT '商品id',
|
||||
`sku` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'sku',
|
||||
`stock` int(11) NOT NULL COMMENT '商品库存',
|
||||
`price` decimal(24, 6) NOT NULL COMMENT '商品价格',
|
||||
`image` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '规格图片',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NOT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品SKU表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of project_sku_info
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for rule_attr_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `rule_attr_info`;
|
||||
CREATE TABLE `rule_attr_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`rule_id` bigint(20) NOT NULL COMMENT '规格id',
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类目名称',
|
||||
`attr_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规格值',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NOT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '规格详情表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of rule_attr_info
|
||||
-- ----------------------------
|
||||
INSERT INTO `rule_attr_info` VALUES (1, 4, '规格1', '属性1,属性2', NULL, 'admin', '2024-03-04 15:06:16', NULL, NULL);
|
||||
INSERT INTO `rule_attr_info` VALUES (2, 4, '规格2', '属性3,属性4', NULL, 'admin', '2024-03-04 15:06:16', NULL, NULL);
|
||||
INSERT INTO `rule_attr_info` VALUES (3, 5, 'CPU', '骁龙888,骁龙888plus', NULL, 'admin', '2024-03-04 15:15:35', NULL, NULL);
|
||||
INSERT INTO `rule_attr_info` VALUES (4, 5, '内存', '8G,16G', NULL, 'admin', '2024-03-04 15:15:35', NULL, NULL);
|
||||
INSERT INTO `rule_attr_info` VALUES (5, 5, '储存', '128G,512G', NULL, 'admin', '2024-03-04 15:15:35', NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for rule_info
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `rule_info`;
|
||||
CREATE TABLE `rule_info` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规格名称',
|
||||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规格状态',
|
||||
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
|
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime(0) NOT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品规格表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of rule_info
|
||||
-- ----------------------------
|
||||
INSERT INTO `rule_info` VALUES (4, '测试', NULL, NULL, 'admin', '2024-03-04 15:06:16', NULL, NULL);
|
||||
INSERT INTO `rule_info` VALUES (5, '手机', NULL, NULL, 'admin', '2024-03-04 15:15:35', NULL, NULL);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
Loading…
Reference in New Issue