品牌列表

dev798
wxy 2024-03-10 16:07:03 +08:00
parent 80ebeb8360
commit ec50b6dbc9
93 changed files with 4062 additions and 16 deletions

View File

@ -14,10 +14,10 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -0,0 +1,65 @@
package com.muyu.common.core.utils.uuid;
import org.apache.commons.lang3.ObjectUtils;
import java.math.BigDecimal;
/**
* @author DongZl
* @description:
* @Date 2023-10-9 04:56
*/
public class ObjUtils {
/**
*
* CharSequence:
* Array:
* Collection:
* Map:
* @param o
* @return nulltruefalse
*/
public static boolean notNull(Object o){
return ObjectUtils.isNotEmpty(o);
}
/**
* long0
* @param val
* @return 0
*/
public static boolean notNull(Long val){
return ObjectUtils.isNotEmpty(val) && val != 0;
}
/**
* Integer0
* @param val
* @return 0
*/
public static boolean notNull(Integer val){
return ObjectUtils.isNotEmpty(val) && val != 0;
}
/**
* BigDecimal0
* @param val
* @return 0
*/
public static boolean notNull(BigDecimal val){
return ObjectUtils.isNotEmpty(val) && val.doubleValue() == 0.00;
}
/**
* BigDecimal0
* @param val
* @return 0
*/
public static boolean notChildNull(Object[] val){
for (Object o : val) {
if (!notNull(o)){
return false;
}
}
return true;
}
}

View File

@ -14,10 +14,10 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
# 配置文件格式
file-extension: yml
# 共享配置
@ -28,12 +28,12 @@ spring:
eager: true
transport:
# 控制台地址
dashboard: 127.0.0.1:8718
dashboard: 127.0.0.1:8858
# nacos配置持久化
datasource:
ds1:
nacos:
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
dataId: sentinel-muyu-gateway
groupId: DEFAULT_GROUP
data-type: json

View File

@ -14,10 +14,10 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -14,10 +14,10 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -14,10 +14,10 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-product</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>muyu-product-commo</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 系统公共核心包 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-core</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,56 @@
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.common.core.annotation.Excel;
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.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* as_attribute_group
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("as_attribute_group")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AsAttributeGroup", description = "属性与组中间")
public class AsAttributeGroup extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 组ID */
@Excel(name = "组ID")
@ApiModelProperty(name = "组ID", value = "组ID", required = true)
private Long groupId;
/** 属性id */
@Excel(name = "属性id")
@ApiModelProperty(name = "属性id", value = "属性id", required = true)
private Long attributeId;
public static AsAttributeGroup buildGroup (Long attributeGroupId,
Long attributeId) {
return AsAttributeGroup.builder()
.groupId(attributeGroupId)
.attributeId(attributeId)
.build();
}
}

View File

@ -0,0 +1,48 @@
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.common.core.annotation.Excel;
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.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* as_brand_project
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("as_brand_project")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AsBrandProject", description = "品牌商品中间")
public class AsBrandProject extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 品牌id */
@Excel(name = "品牌id")
@ApiModelProperty(name = "品牌id", value = "品牌id", required = true)
private Long brandId;
/** 商品id */
@Excel(name = "商品id")
@ApiModelProperty(name = "商品id", value = "商品id", required = true)
private String projectId;
}

View File

@ -0,0 +1,61 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.base.CategoryBase;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* as_category_attribute
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("as_category_attribute")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AsCategoryAttribute", description = "品类属性中间")
public class AsCategoryAttribute extends BaseEntity implements CategoryBase {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 品类id */
@Excel(name = "品类id")
@ApiModelProperty(name = "品类id", value = "品类id", required = true)
private Long categoryId;
/** 属性id */
@Excel(name = "属性id")
@ApiModelProperty(name = "属性id", value = "属性id", required = true)
private Long attributeId;
public static AsCategoryAttribute categoryBuild(Long categoryInfoId, Long attributeId) {
return AsCategoryAttribute.builder()
.categoryId(categoryInfoId)
.attributeId(attributeId)
.build();
}
@Override
public Long getBaseId () {
return this.attributeId;
}
}

View File

@ -0,0 +1,61 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.base.CategoryBase;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* as_category_attribute_group
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("as_category_attribute_group")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AsCategoryAttributeGroup", description = "品类属性组中间")
public class AsCategoryAttributeGroup extends BaseEntity implements CategoryBase {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 品类id */
@Excel(name = "品类id")
@ApiModelProperty(name = "品类id", value = "品类id", required = true)
private Long categoryId;
/** 属性组 */
@Excel(name = "属性组")
@ApiModelProperty(name = "属性组", value = "属性组", required = true)
private Long attributeGroupId;
public static AsCategoryAttributeGroup categoryBuild(Long categoryInfoId, Long attributeGroupId) {
return AsCategoryAttributeGroup.builder()
.attributeGroupId(attributeGroupId)
.categoryId(categoryInfoId)
.build();
}
@Override
public Long getBaseId () {
return this.attributeGroupId;
}
}

View File

@ -0,0 +1,60 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.base.CategoryBase;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* as_category_brand
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("as_category_brand")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AsCategoryBrand", description = "品类品牌中间")
public class AsCategoryBrand extends BaseEntity implements CategoryBase {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 品类id */
@Excel(name = "品类id")
@ApiModelProperty(name = "品类id", value = "品类id", required = true)
private Long categoryId;
/** 品牌id */
@Excel(name = "品牌id")
@ApiModelProperty(name = "品牌id", value = "品牌id", required = true)
private Long brandId;
public static AsCategoryBrand categoryBuild(Long categoryInfoId, Long brandId) {
return AsCategoryBrand.builder()
.brandId(brandId)
.categoryId(categoryInfoId)
.build();
}
@Override
public Long getBaseId () {
return this.brandId;
}
}

View File

@ -0,0 +1,53 @@
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.common.core.annotation.Excel;
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.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* as_product_attribute_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("as_product_attribute_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AsProductAttributeInfo", description = "商品属性")
public class AsProductAttributeInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 属性编号 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "属性编号", value = "属性编号")
private Long id;
/** 商品 */
@Excel(name = "商品")
@ApiModelProperty(name = "商品", value = "商品", required = true)
private Long productId;
/** 属性 */
@Excel(name = "属性")
@ApiModelProperty(name = "属性", value = "属性", required = true)
private Long attributeId;
/** 属性值 */
@Excel(name = "属性值")
@ApiModelProperty(name = "属性值", value = "属性值", required = true)
private String value;
}

View File

@ -0,0 +1,83 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.AttributeGroupEditReq;
import com.muyu.product.domain.req.AttributeGroupQueryReq;
import com.muyu.product.domain.req.AttributeGroupSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* attribute_group
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("attribute_group")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AttributeGroup", description = "属性组")
public class AttributeGroup extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 属性组编号 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "属性组编号", value = "属性组编号")
private Long id;
/** 组名称 */
@Excel(name = "组名称")
@ApiModelProperty(name = "组名称", value = "组名称", required = true)
private String name;
/** 状态 */
@Excel(name = "状态")
@ApiModelProperty(name = "状态", value = "状态", required = true)
private String states;
/**
*
*/
public static AttributeGroup queryBuild( AttributeGroupQueryReq attributeGroupQueryReq){
return AttributeGroup.builder()
.name(attributeGroupQueryReq.getName())
.states(attributeGroupQueryReq.getStates())
.build();
}
/**
*
*/
public static AttributeGroup saveBuild(AttributeGroupSaveReq attributeGroupSaveReq){
return AttributeGroup.builder()
.name(attributeGroupSaveReq.getName())
.states(attributeGroupSaveReq.getStates())
.build();
}
/**
*
*/
public static AttributeGroup editBuild(Long id, AttributeGroupEditReq attributeGroupEditReq){
return AttributeGroup.builder()
.id(id)
.name(attributeGroupEditReq.getName())
.states(attributeGroupEditReq.getStates())
.build();
}
}

View File

@ -0,0 +1,92 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.model.TemplateAttributeModel;
import com.muyu.product.domain.req.AttributeInfoEditReq;
import com.muyu.product.domain.req.AttributeInfoQueryReq;
import com.muyu.product.domain.req.AttributeInfoSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* attribute_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("attribute_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AttributeInfo", description = "商品属性")
public class AttributeInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 属性编号 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "属性编号", value = "属性编号")
private Long id;
/** 属性编码 */
@Excel(name = "属性编码")
@ApiModelProperty(name = "属性编码", value = "属性编码", required = true)
private String code;
/** 属性名 */
@Excel(name = "属性名")
@ApiModelProperty(name = "属性名", value = "属性名", required = true)
private String name;
public TemplateAttributeModel buildTemplateModel(){
return TemplateAttributeModel.builder()
.id(this.getId())
.code(this.getCode())
.name(this.getName())
.build();
}
/**
*
*/
public static AttributeInfo queryBuild( AttributeInfoQueryReq attributeInfoQueryReq){
return AttributeInfo.builder()
.name(attributeInfoQueryReq.getName())
.code(attributeInfoQueryReq.getCode())
.build();
}
/**
*
*/
public static AttributeInfo saveBuild(AttributeInfoSaveReq attributeInfoSaveReq){
return AttributeInfo.builder()
.name(attributeInfoSaveReq.getName())
.code(attributeInfoSaveReq.getCode())
.build();
}
/**
*
*/
public static AttributeInfo editBuild(Long id, AttributeInfoEditReq attributeInfoEditReq){
return AttributeInfo.builder()
.id(id)
.name(attributeInfoEditReq.getName())
.code(attributeInfoEditReq.getCode())
.build();
}
}

View File

@ -0,0 +1,114 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.BrandInfoEditReq;
import com.muyu.product.domain.req.BrandInfoQueryReq;
import com.muyu.product.domain.req.BrandInfoSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* brand_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("brand_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "BrandInfo", description = "品牌信息")
public class BrandInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/**
*
*/
@Excel(name = "品牌名称")
@ApiModelProperty(name = "品牌名称", value = "品牌名称", required = true)
private String name;
/**
* LOGO
*/
@Excel(name = "LOGO")
@ApiModelProperty(name = "LOGO", value = "LOGO", required = true)
private String logo;
/**
*
*/
@Excel(name = "是否启用")
@ApiModelProperty(name = "是否启用", value = "是否启用", required = true)
private String start;
/**
*
*/
@Excel(name = "介绍")
@ApiModelProperty(name = "介绍", value = "介绍")
private String introduction;
/**
*
*/
public static BrandInfo queryBuild(BrandInfoQueryReq brandInfoQueryReq) {
return BrandInfo.builder()
.name(brandInfoQueryReq.getName())
.logo(brandInfoQueryReq.getLogo())
.start(brandInfoQueryReq.getStart())
.introduction(brandInfoQueryReq.getIntroduction())
.build();
}
/**
*
*/
public static BrandInfo saveBuild(BrandInfoSaveReq brandInfoSaveReq) {
return BrandInfo.builder()
.name(brandInfoSaveReq.getName())
.logo(brandInfoSaveReq.getLogo())
.start(brandInfoSaveReq.getStart())
.introduction(brandInfoSaveReq.getIntroduction())
.remark(brandInfoSaveReq.getRemark())
.build();
}
/**
*
*/
public static BrandInfo editBuild(Long id, BrandInfoEditReq brandInfoEditReq) {
return BrandInfo.builder()
.id(id)
.name(brandInfoEditReq.getName())
.logo(brandInfoEditReq.getLogo())
.start(brandInfoEditReq.getStart())
.introduction(brandInfoEditReq.getIntroduction())
.createBy(brandInfoEditReq.getCreateBy())
.createTime(brandInfoEditReq.getCreateTime())
.updateBy(brandInfoEditReq.getUpdateBy())
.createTime(brandInfoEditReq.getCreateTime())
.remark(brandInfoEditReq.getRemark())
.build();
}
}

View File

@ -0,0 +1,116 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.TreeEntity;
import com.muyu.product.domain.model.CategoryInfoSaveModel;
import com.muyu.product.domain.req.CategoryInfoEditReq;
import com.muyu.product.domain.req.CategoryInfoQueryReq;
import com.muyu.product.domain.req.CategoryInfoSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.function.Supplier;
/**
* category_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("category_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "CategoryInfo", description = "品类信息")
public class CategoryInfo extends TreeEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 品类名称 */
@Excel(name = "品类名称")
@ApiModelProperty(name = "品类名称", value = "品类名称", required = true)
private String name;
/** 图片 */
@Excel(name = "图片")
@ApiModelProperty(name = "图片", value = "图片", required = true)
private String image;
/** 是否启用 */
@Excel(name = "是否启用")
@ApiModelProperty(name = "是否启用", value = "是否启用", required = true)
private String start;
/** 介绍 */
@Excel(name = "介绍")
@ApiModelProperty(name = "介绍", value = "介绍")
private String introduction;
/**
*
*/
public static CategoryInfo queryBuild( CategoryInfoQueryReq categoryInfoQueryReq){
return CategoryInfo.builder()
.name(categoryInfoQueryReq.getName())
.image(categoryInfoQueryReq.getImage())
.start(categoryInfoQueryReq.getStart())
.introduction(categoryInfoQueryReq.getIntroduction())
.build();
}
/**
*
*/
public static CategoryInfo saveBuild(CategoryInfoSaveReq categoryInfoSaveReq, Supplier<String> supplier){
return CategoryInfo.builder()
.name(categoryInfoSaveReq.getName())
.image(categoryInfoSaveReq.getImage())
.start(categoryInfoSaveReq.getStart())
.introduction(categoryInfoSaveReq.getIntroduction())
.parentId(categoryInfoSaveReq.getParentId())
.createBy(supplier.get())
.createTime(new Date())
.build();
}
/**
*
*/
public static CategoryInfo editBuild(Long id, CategoryInfoEditReq categoryInfoEditReq){
return CategoryInfo.builder()
.id(id)
.name(categoryInfoEditReq.getName())
.image(categoryInfoEditReq.getImage())
.start(categoryInfoEditReq.getStart())
.introduction(categoryInfoEditReq.getIntroduction())
.build();
}
public static CategoryInfo saveModelBuild(CategoryInfoSaveModel categoryInfoSaveModel) {
return CategoryInfo.builder()
.name(categoryInfoSaveModel.getName())
.image(categoryInfoSaveModel.getImage())
.start(categoryInfoSaveModel.getStart())
.introduction(categoryInfoSaveModel.getIntroduction())
.parentId(categoryInfoSaveModel.getParentId())
.createBy(categoryInfoSaveModel.getCreateBy())
.createTime(new Date())
.build();
}
}

View File

@ -0,0 +1,98 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.CommentInfoEditReq;
import com.muyu.product.domain.req.CommentInfoQueryReq;
import com.muyu.product.domain.req.CommentInfoSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* comment_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("comment_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "CommentInfo", description = "商品评论")
public class CommentInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 商品id */
@Excel(name = "商品id")
@ApiModelProperty(name = "商品id", value = "商品id", required = true)
private Long projectId;
/** 评论 */
@Excel(name = "评论")
@ApiModelProperty(name = "评论", value = "评论")
private String comment;
/** 图片 */
@Excel(name = "图片")
@ApiModelProperty(name = "图片", value = "图片")
private String images;
/** 父类id */
@Excel(name = "父类id")
@ApiModelProperty(name = "父类id", value = "父类id")
private String parentId;
/**
*
*/
public static CommentInfo queryBuild( CommentInfoQueryReq commentInfoQueryReq){
return CommentInfo.builder()
.projectId(commentInfoQueryReq.getProjectId())
.comment(commentInfoQueryReq.getComment())
.images(commentInfoQueryReq.getImages())
.parentId(commentInfoQueryReq.getParentId())
.build();
}
/**
*
*/
public static CommentInfo saveBuild(CommentInfoSaveReq commentInfoSaveReq){
return CommentInfo.builder()
.projectId(commentInfoSaveReq.getProjectId())
.comment(commentInfoSaveReq.getComment())
.images(commentInfoSaveReq.getImages())
.parentId(commentInfoSaveReq.getParentId())
.build();
}
/**
*
*/
public static CommentInfo editBuild(Long id, CommentInfoEditReq commentInfoEditReq){
return CommentInfo.builder()
.id(id)
.projectId(commentInfoEditReq.getProjectId())
.comment(commentInfoEditReq.getComment())
.images(commentInfoEditReq.getImages())
.parentId(commentInfoEditReq.getParentId())
.build();
}
}

View File

@ -0,0 +1,82 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.CommentLikeInfoEditReq;
import com.muyu.product.domain.req.CommentLikeInfoQueryReq;
import com.muyu.product.domain.req.CommentLikeInfoSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* comment_like_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("comment_like_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "CommentLikeInfo", description = "评论点赞")
public class CommentLikeInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 评论id */
@Excel(name = "评论id")
@ApiModelProperty(name = "评论id", value = "评论id", required = true)
private Long commentId;
/** 点赞人id */
@Excel(name = "点赞人id")
@ApiModelProperty(name = "点赞人id", value = "点赞人id", required = true)
private Long userId;
/**
*
*/
public static CommentLikeInfo queryBuild( CommentLikeInfoQueryReq commentLikeInfoQueryReq){
return CommentLikeInfo.builder()
.commentId(commentLikeInfoQueryReq.getCommentId())
.userId(commentLikeInfoQueryReq.getUserId())
.build();
}
/**
*
*/
public static CommentLikeInfo saveBuild(CommentLikeInfoSaveReq commentLikeInfoSaveReq){
return CommentLikeInfo.builder()
.commentId(commentLikeInfoSaveReq.getCommentId())
.userId(commentLikeInfoSaveReq.getUserId())
.build();
}
/**
*
*/
public static CommentLikeInfo editBuild(Long id, CommentLikeInfoEditReq commentLikeInfoEditReq){
return CommentLikeInfo.builder()
.id(id)
.commentId(commentLikeInfoEditReq.getCommentId())
.userId(commentLikeInfoEditReq.getUserId())
.build();
}
}

View File

@ -0,0 +1,146 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.ProjectInfoEditReq;
import com.muyu.product.domain.req.ProjectInfoQueryReq;
import com.muyu.product.domain.req.ProjectInfoSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* project_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("project_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ProjectInfo", description = "商品信息")
public class ProjectInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 商品名称 */
@Excel(name = "商品名称")
@ApiModelProperty(name = "商品名称", value = "商品名称")
private String name;
/** 商品描述 */
@Excel(name = "商品描述")
@ApiModelProperty(name = "商品描述", value = "商品描述")
private String introduction;
/** 主类型 */
@Excel(name = "主类型")
@ApiModelProperty(name = "主类型", value = "主类型")
private String mianType;
/** 父类型 */
@Excel(name = "父类型")
@ApiModelProperty(name = "父类型", value = "父类型")
private String parentType;
/** 商品类型 */
@Excel(name = "商品类型")
@ApiModelProperty(name = "商品类型", value = "商品类型")
private String type;
/** 商品图片 */
@Excel(name = "商品图片")
@ApiModelProperty(name = "商品图片", value = "商品图片")
private String image;
/** 商品轮播图 */
@Excel(name = "商品轮播图")
@ApiModelProperty(name = "商品轮播图", value = "商品轮播图")
private String carouselImages;
/** 商品状态 */
@Excel(name = "商品状态")
@ApiModelProperty(name = "商品状态", value = "商品状态")
private String status;
/** 规格 */
@Excel(name = "规格")
@ApiModelProperty(name = "规格", value = "规格")
private Long ruleId;
/** 品牌 */
@Excel(name = "品牌")
@ApiModelProperty(name = "品牌", value = "品牌")
private Long brandId;
/**
*
*/
public static ProjectInfo queryBuild( ProjectInfoQueryReq projectInfoQueryReq){
return ProjectInfo.builder()
.name(projectInfoQueryReq.getName())
.introduction(projectInfoQueryReq.getIntroduction())
.mianType(projectInfoQueryReq.getMianType())
.parentType(projectInfoQueryReq.getParentType())
.type(projectInfoQueryReq.getType())
.image(projectInfoQueryReq.getImage())
.carouselImages(projectInfoQueryReq.getCarouselImages())
.status(projectInfoQueryReq.getStatus())
.ruleId(projectInfoQueryReq.getRuleId())
.brandId(projectInfoQueryReq.getBrandId())
.build();
}
/**
*
*/
public static ProjectInfo saveBuild(ProjectInfoSaveReq projectInfoSaveReq){
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())
.build();
}
/**
*
*/
public static ProjectInfo editBuild(Long id, ProjectInfoEditReq projectInfoEditReq){
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())
.build();
}
}

View File

@ -0,0 +1,108 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.ProjectSkuInfoEditReq;
import com.muyu.product.domain.req.ProjectSkuInfoQueryReq;
import com.muyu.product.domain.req.ProjectSkuInfoSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* SKU project_sku_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("project_sku_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ProjectSkuInfo", description = "商品SKU")
public class ProjectSkuInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 商品id */
@Excel(name = "商品id")
@ApiModelProperty(name = "商品id", value = "商品id", required = true)
private Long projectId;
/** sku */
@Excel(name = "sku")
@ApiModelProperty(name = "sku", value = "sku", required = true)
private String sku;
/** 商品库存 */
@Excel(name = "商品库存")
@ApiModelProperty(name = "商品库存", value = "商品库存", required = true)
private Long stock;
/** 商品价格 */
@Excel(name = "商品价格")
@ApiModelProperty(name = "商品价格", value = "商品价格", required = true)
private BigDecimal price;
/** 规格图片 */
@Excel(name = "规格图片")
@ApiModelProperty(name = "规格图片", value = "规格图片", required = true)
private String image;
/**
*
*/
public static ProjectSkuInfo queryBuild( ProjectSkuInfoQueryReq projectSkuInfoQueryReq){
return ProjectSkuInfo.builder()
.projectId(projectSkuInfoQueryReq.getProjectId())
.sku(projectSkuInfoQueryReq.getSku())
.stock(projectSkuInfoQueryReq.getStock())
.price(projectSkuInfoQueryReq.getPrice())
.image(projectSkuInfoQueryReq.getImage())
.build();
}
/**
*
*/
public static ProjectSkuInfo saveBuild(ProjectSkuInfoSaveReq projectSkuInfoSaveReq){
return ProjectSkuInfo.builder()
.projectId(projectSkuInfoSaveReq.getProjectId())
.sku(projectSkuInfoSaveReq.getSku())
.stock(projectSkuInfoSaveReq.getStock())
.price(projectSkuInfoSaveReq.getPrice())
.image(projectSkuInfoSaveReq.getImage())
.build();
}
/**
*
*/
public static ProjectSkuInfo editBuild(Long id, ProjectSkuInfoEditReq projectSkuInfoEditReq){
return ProjectSkuInfo.builder()
.id(id)
.projectId(projectSkuInfoEditReq.getProjectId())
.sku(projectSkuInfoEditReq.getSku())
.stock(projectSkuInfoEditReq.getStock())
.price(projectSkuInfoEditReq.getPrice())
.image(projectSkuInfoEditReq.getImage())
.build();
}
}

View File

@ -0,0 +1,103 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.model.RuleAttrAddModel;
import com.muyu.product.domain.req.RuleAttrInfoEditReq;
import com.muyu.product.domain.req.RuleAttrInfoQueryReq;
import com.muyu.product.domain.req.RuleAttrInfoSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.function.Supplier;
/**
* rule_attr_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("rule_attr_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "RuleAttrInfo", description = "规格详情")
public class RuleAttrInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 规格id */
@Excel(name = "规格id")
@ApiModelProperty(name = "规格id", value = "规格id", required = true)
private Long ruleId;
/** 类目名称 */
@Excel(name = "类目名称")
@ApiModelProperty(name = "类目名称", value = "类目名称")
private String name;
/** 规格值 */
@Excel(name = "规格值")
@ApiModelProperty(name = "规格值", value = "规格值")
private String attrValue;
/**
*
*/
public static RuleAttrInfo queryBuild( RuleAttrInfoQueryReq ruleAttrInfoQueryReq){
return RuleAttrInfo.builder()
.ruleId(ruleAttrInfoQueryReq.getRuleId())
.name(ruleAttrInfoQueryReq.getName())
.attrValue(ruleAttrInfoQueryReq.getAttrValue())
.build();
}
/**
*
*/
public static RuleAttrInfo saveBuild(RuleAttrInfoSaveReq ruleAttrInfoSaveReq){
return RuleAttrInfo.builder()
.ruleId(ruleAttrInfoSaveReq.getRuleId())
.name(ruleAttrInfoSaveReq.getName())
.attrValue(ruleAttrInfoSaveReq.getAttrValue())
.build();
}
/**
*
*/
public static RuleAttrInfo editBuild(Long id, RuleAttrInfoEditReq ruleAttrInfoEditReq){
return RuleAttrInfo.builder()
.id(id)
.ruleId(ruleAttrInfoEditReq.getRuleId())
.name(ruleAttrInfoEditReq.getName())
.attrValue(ruleAttrInfoEditReq.getAttrValue())
.build();
}
public static RuleAttrInfo addModelBuild (RuleAttrAddModel ruleAttrAddModel, Supplier<Long> ruleId, Supplier<String> createBy) {
return RuleAttrInfo.builder()
.ruleId(ruleId.get())
.name(ruleAttrAddModel.getName())
.attrValue(String.join(",", ruleAttrAddModel.getValueList()))
.createBy(createBy.get())
.createTime(new Date())
.build();
}
}

View File

@ -0,0 +1,100 @@
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.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.model.RuleInfoAddModel;
import com.muyu.product.domain.req.RuleInfoEditReq;
import com.muyu.product.domain.req.RuleInfoQueryReq;
import com.muyu.product.domain.req.RuleInfoSaveReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.function.Supplier;
/**
* rule_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("rule_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "RuleInfo", description = "商品规格")
public class RuleInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 规格名称 */
@Excel(name = "规格名称")
@ApiModelProperty(name = "规格名称", value = "规格名称")
private String name;
/** 规格状态 */
@Excel(name = "规格状态")
@ApiModelProperty(name = "规格状态", value = "规格状态")
private String status;
/**
*
*/
public static RuleInfo queryBuild( RuleInfoQueryReq ruleInfoQueryReq){
return RuleInfo.builder()
.name(ruleInfoQueryReq.getName())
.status(ruleInfoQueryReq.getStatus())
.build();
}
/**
*
*/
public static RuleInfo saveBuild(RuleInfoSaveReq ruleInfoSaveReq){
return RuleInfo.builder()
.name(ruleInfoSaveReq.getName())
.status(ruleInfoSaveReq.getStatus())
.build();
}
/**
*
*/
public static RuleInfo editBuild(Long id, RuleInfoEditReq ruleInfoEditReq){
return RuleInfo.builder()
.id(id)
.name(ruleInfoEditReq.getName())
.status(ruleInfoEditReq.getStatus())
.build();
}
/**
*
* @param ruleInfoAddModel
* @param createBy
* @return
*/
public static RuleInfo addModelBuild (RuleInfoAddModel ruleInfoAddModel, Supplier<String> createBy) {
return RuleInfo.builder()
.name(ruleInfoAddModel.getName())
.status(ruleInfoAddModel.getStatus())
.createBy(createBy.get())
.createTime(new Date())
.build();
}
}

View File

@ -0,0 +1,11 @@
package com.muyu.product.domain.base;
/**
* @author DongZl
* @description: attribute
* @Date 2024-3-1 02:28
*/
public interface CategoryBase {
public Long getBaseId();
}

View File

@ -0,0 +1,55 @@
package com.muyu.product.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.AttributeGroup;
import com.muyu.product.domain.req.AttributeGroupSaveReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @author DongZl
* @description:
* @Date 2024-2-28 03:16
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AttributeGroupSaveModel extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 组名称 */
private String name;
/** 状态 */
private String states;
/**
* ID
*/
private List<Long> attributeIdList;
public static AttributeGroupSaveModel saveReqBuild (AttributeGroupSaveReq req){
return AttributeGroupSaveModel.builder()
.name(req.getName())
.states(req.getStates())
.attributeIdList(req.getAttributeIdList())
.build();
}
public AttributeGroup buildAttributeGroup () {
return AttributeGroup.builder()
.name(this.getName())
.states(this.getStates())
.build();
}
}

View File

@ -0,0 +1,75 @@
package com.muyu.product.domain.model;
import com.muyu.common.core.web.domain.TreeEntity;
import com.muyu.product.domain.req.CategoryInfoSaveReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**
* category_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class CategoryInfoSaveModel extends TreeEntity {
private static final long serialVersionUID = 1L;
/** 品类名称 */
private String name;
/** 图片 */
private String image;
/** 是否启用 */
private String start;
/** 介绍 */
private String introduction;
/**
* ID
*/
private List<Long> attributeGroupIdList;
/**
* ID
*/
private List<Long> attributeIdList;
/**
* ID
*/
private List<Long> brandIdList;
/**
*
*/
public static CategoryInfoSaveModel saveBuild(CategoryInfoSaveReq categoryInfoSaveReq, Supplier<String> supplier){
return CategoryInfoSaveModel.builder()
.name(categoryInfoSaveReq.getName())
.image(categoryInfoSaveReq.getImage())
.start(categoryInfoSaveReq.getStart())
.introduction(categoryInfoSaveReq.getIntroduction())
.parentId(categoryInfoSaveReq.getParentId())
.attributeGroupIdList(categoryInfoSaveReq.getAttributeGroupIdList())
.attributeIdList(categoryInfoSaveReq.getAttributeIdList())
.brandIdList(categoryInfoSaveReq.getBrandIdList())
.createBy(supplier.get())
.createTime(new Date())
.build();
}
}

View File

@ -0,0 +1,43 @@
package com.muyu.product.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.RuleAttrInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Arrays;
import java.util.List;
/**
* @author DongZl
* @description:
* @Date 2024-3-4 02:28
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RuleAttrAddModel extends BaseEntity {
/**
*
*/
private String name;
/**
*
*/
private List<String> valueList;
public static RuleAttrAddModel infoBuild (RuleAttrInfo ruleAttrInfo) {
return RuleAttrAddModel.builder()
.name(ruleAttrInfo.getName())
.valueList(Arrays.stream(ruleAttrInfo.getAttrValue().split(",")).toList())
.build();
}
}

View File

@ -0,0 +1,43 @@
package com.muyu.product.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.RuleInfoSaveReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @author DongZl
* @description:
* @Date 2024-3-4 02:33
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RuleInfoAddModel extends BaseEntity {
/** 规格名称 */
private String name;
/** 规格状态 */
private String status;
/**
*
*/
private List<RuleAttrAddModel> ruleAttrList;
public static RuleInfoAddModel saveReqBuild(RuleInfoSaveReq req){
return RuleInfoAddModel.builder()
.name(req.getName())
.status(req.getStatus())
.ruleAttrList(req.getRuleAttrList())
.build();
}
}

View File

@ -0,0 +1,59 @@
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;
/**
* @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();
}
}

View File

@ -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;
}

View File

@ -0,0 +1,35 @@
package com.muyu.product.domain.req;
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;
/**
* attribute_group
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "AttributeGroupEditReq", description = "属性组")
public class AttributeGroupEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 组名称 */
@ApiModelProperty(name = "组名称", value = "组名称", required = true)
private String name;
/** 状态 */
@ApiModelProperty(name = "状态", value = "状态", required = true)
private String states;
}

View File

@ -0,0 +1,34 @@
package com.muyu.product.domain.req;
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;
/**
* attribute_group
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "AttributeGroupQueryReq", description = "属性组")
public class AttributeGroupQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 组名称 */
@ApiModelProperty(name = "组名称", value = "组名称")
private String name;
/** 状态 */
@ApiModelProperty(name = "状态", value = "状态")
private String states;
}

View File

@ -0,0 +1,46 @@
package com.muyu.product.domain.req;
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;
import java.util.List;
/**
* attribute_group
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "AttributeGroupSaveReq", description = "属性组")
public class AttributeGroupSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 属性组编号 */
@ApiModelProperty(name = "属性组编号", value = "属性组编号")
private Long id;
/** 组名称 */
@ApiModelProperty(name = "组名称", value = "组名称", required = true)
private String name;
/** 状态 */
@ApiModelProperty(name = "状态", value = "状态", required = true)
private String states;
/**
* ID
*/
@ApiModelProperty(name = "属性ID集合", value = "属性ID集合", required = true)
private List<Long> attributeIdList;
}

View File

@ -0,0 +1,38 @@
package com.muyu.product.domain.req;
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;
/**
* attribute_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "AttributeInfoEditReq", description = "商品属性")
public class AttributeInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 属性名 */
@ApiModelProperty(name = "属性名", value = "属性名", required = true)
private String name;
/** 分组 */
@ApiModelProperty(name = "分组", value = "分组")
private Long groupId;
@ApiModelProperty(name = "属性编码", value = "属性编码")
private String code;
}

View File

@ -0,0 +1,34 @@
package com.muyu.product.domain.req;
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;
/**
* attribute_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "AttributeInfoQueryReq", description = "商品属性")
public class AttributeInfoQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 属性名 */
@ApiModelProperty(name = "属性名", value = "属性名")
private String name;
@ApiModelProperty(name = "属性编码", value = "属性编码")
private String code;
}

View File

@ -0,0 +1,39 @@
package com.muyu.product.domain.req;
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;
/**
* attribute_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "AttributeInfoSaveReq", description = "商品属性")
public class AttributeInfoSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 属性编号 */
@ApiModelProperty(name = "属性编号", value = "属性编号")
private Long id;
/** 属性名 */
@ApiModelProperty(name = "属性名", value = "属性名", required = true)
private String name;
@ApiModelProperty(name = "属性编码", value = "属性编码")
private String code;
}

View File

@ -0,0 +1,42 @@
package com.muyu.product.domain.req;
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;
/**
* brand_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "BrandInfoEditReq", description = "品牌信息")
public class BrandInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 品牌名称 */
@ApiModelProperty(name = "品牌名称", value = "品牌名称", required = true)
private String name;
/** LOGO */
@ApiModelProperty(name = "LOGO", value = "LOGO", required = true)
private String logo;
/** 是否启用 */
@ApiModelProperty(name = "是否启用", value = "是否启用", required = true)
private String start;
/** 介绍 */
@ApiModelProperty(name = "介绍", value = "介绍")
private String introduction;
}

View File

@ -0,0 +1,42 @@
package com.muyu.product.domain.req;
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;
/**
* brand_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "BrandInfoQueryReq", description = "品牌信息")
public class BrandInfoQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 品牌名称 */
@ApiModelProperty(name = "品牌名称", value = "品牌名称")
private String name;
/** LOGO */
@ApiModelProperty(name = "LOGO", value = "LOGO")
private String logo;
/** 是否启用 */
@ApiModelProperty(name = "是否启用", value = "是否启用")
private String start;
/** 介绍 */
@ApiModelProperty(name = "介绍", value = "介绍")
private String introduction;
}

View File

@ -0,0 +1,51 @@
package com.muyu.product.domain.req;
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;
/**
* brand_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "BrandInfoSaveReq", description = "品牌信息")
public class BrandInfoSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 品牌名称 */
@ApiModelProperty(name = "品牌名称", value = "品牌名称", required = true)
private String name;
/** LOGO */
@ApiModelProperty(name = "LOGO", value = "LOGO", required = true)
private String logo;
/** 是否启用 */
@ApiModelProperty(name = "是否启用", value = "是否启用", required = true)
private String start;
/** 介绍 */
@ApiModelProperty(name = "介绍", value = "介绍")
private String introduction;
}

View File

@ -0,0 +1,42 @@
package com.muyu.product.domain.req;
import com.muyu.common.core.web.domain.TreeEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* category_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CategoryInfoEditReq", description = "品类信息")
public class CategoryInfoEditReq extends TreeEntity {
private static final long serialVersionUID = 1L;
/** 品类名称 */
@ApiModelProperty(name = "品类名称", value = "品类名称", required = true)
private String name;
/** 图片 */
@ApiModelProperty(name = "图片", value = "图片", required = true)
private String image;
/** 是否启用 */
@ApiModelProperty(name = "是否启用", value = "是否启用", required = true)
private String start;
/** 介绍 */
@ApiModelProperty(name = "介绍", value = "介绍")
private String introduction;
}

View File

@ -0,0 +1,42 @@
package com.muyu.product.domain.req;
import com.muyu.common.core.web.domain.TreeEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* category_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CategoryInfoQueryReq", description = "品类信息")
public class CategoryInfoQueryReq extends TreeEntity {
private static final long serialVersionUID = 1L;
/** 品类名称 */
@ApiModelProperty(name = "品类名称", value = "品类名称")
private String name;
/** 图片 */
@ApiModelProperty(name = "图片", value = "图片")
private String image;
/** 是否启用 */
@ApiModelProperty(name = "是否启用", value = "是否启用")
private String start;
/** 介绍 */
@ApiModelProperty(name = "介绍", value = "介绍")
private String introduction;
}

View File

@ -0,0 +1,67 @@
package com.muyu.product.domain.req;
import com.muyu.common.core.web.domain.TreeEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* category_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CategoryInfoSaveReq", description = "品类信息")
public class CategoryInfoSaveReq extends TreeEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 品类名称 */
@ApiModelProperty(name = "品类名称", value = "品类名称", required = true)
private String name;
/** 图片 */
@ApiModelProperty(name = "图片", value = "图片", required = true)
private String image;
/** 是否启用 */
@ApiModelProperty(name = "是否启用", value = "是否启用", required = true)
private String start;
/** 介绍 */
@ApiModelProperty(name = "介绍", value = "介绍")
private String introduction;
/**
* ID
*/
private List<Long> attributeGroupIdList;
/**
* ID
*/
private List<Long> attributeIdList;
/**
* ID
*/
private List<Long> brandIdList;
}

View File

@ -0,0 +1,42 @@
package com.muyu.product.domain.req;
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;
/**
* comment_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CommentInfoEditReq", description = "商品评论")
public class CommentInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 商品id */
@ApiModelProperty(name = "商品id", value = "商品id", required = true)
private Long projectId;
/** 评论 */
@ApiModelProperty(name = "评论", value = "评论")
private String comment;
/** 图片 */
@ApiModelProperty(name = "图片", value = "图片")
private String images;
/** 父类id */
@ApiModelProperty(name = "父类id", value = "父类id")
private String parentId;
}

View File

@ -0,0 +1,42 @@
package com.muyu.product.domain.req;
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;
/**
* comment_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CommentInfoQueryReq", description = "商品评论")
public class CommentInfoQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 商品id */
@ApiModelProperty(name = "商品id", value = "商品id")
private Long projectId;
/** 评论 */
@ApiModelProperty(name = "评论", value = "评论")
private String comment;
/** 图片 */
@ApiModelProperty(name = "图片", value = "图片")
private String images;
/** 父类id */
@ApiModelProperty(name = "父类id", value = "父类id")
private String parentId;
}

View File

@ -0,0 +1,51 @@
package com.muyu.product.domain.req;
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;
/**
* comment_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CommentInfoSaveReq", description = "商品评论")
public class CommentInfoSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 商品id */
@ApiModelProperty(name = "商品id", value = "商品id", required = true)
private Long projectId;
/** 评论 */
@ApiModelProperty(name = "评论", value = "评论")
private String comment;
/** 图片 */
@ApiModelProperty(name = "图片", value = "图片")
private String images;
/** 父类id */
@ApiModelProperty(name = "父类id", value = "父类id")
private String parentId;
}

View File

@ -0,0 +1,34 @@
package com.muyu.product.domain.req;
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;
/**
* comment_like_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CommentLikeInfoEditReq", description = "评论点赞")
public class CommentLikeInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 评论id */
@ApiModelProperty(name = "评论id", value = "评论id", required = true)
private Long commentId;
/** 点赞人id */
@ApiModelProperty(name = "点赞人id", value = "点赞人id", required = true)
private Long userId;
}

View File

@ -0,0 +1,34 @@
package com.muyu.product.domain.req;
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;
/**
* comment_like_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CommentLikeInfoQueryReq", description = "评论点赞")
public class CommentLikeInfoQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 评论id */
@ApiModelProperty(name = "评论id", value = "评论id")
private Long commentId;
/** 点赞人id */
@ApiModelProperty(name = "点赞人id", value = "点赞人id")
private Long userId;
}

View File

@ -0,0 +1,41 @@
package com.muyu.product.domain.req;
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;
/**
* comment_like_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CommentLikeInfoSaveReq", description = "评论点赞")
public class CommentLikeInfoSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 评论id */
@ApiModelProperty(name = "评论id", value = "评论id", required = true)
private Long commentId;
/** 点赞人id */
@ApiModelProperty(name = "点赞人id", value = "点赞人id", required = true)
private Long userId;
}

View File

@ -0,0 +1,66 @@
package com.muyu.product.domain.req;
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;
/**
* project_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ProjectInfoEditReq", description = "商品信息")
public class ProjectInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 商品名称 */
@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;
}

View File

@ -0,0 +1,66 @@
package com.muyu.product.domain.req;
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;
/**
* project_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ProjectInfoQueryReq", description = "商品信息")
public class ProjectInfoQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 商品名称 */
@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;
}

View File

@ -0,0 +1,81 @@
package com.muyu.product.domain.req;
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;
/**
* project_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ProjectInfoSaveReq", description = "商品信息")
public class ProjectInfoSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 商品名称 */
@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;
}

View File

@ -0,0 +1,48 @@
package com.muyu.product.domain.req;
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;
import java.math.BigDecimal;
/**
* SKU project_sku_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ProjectSkuInfoEditReq", description = "商品SKU")
public class ProjectSkuInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 商品id */
@ApiModelProperty(name = "商品id", value = "商品id", required = true)
private Long projectId;
/** 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;
}

View File

@ -0,0 +1,48 @@
package com.muyu.product.domain.req;
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;
import java.math.BigDecimal;
/**
* SKU project_sku_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ProjectSkuInfoQueryReq", description = "商品SKU")
public class ProjectSkuInfoQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 商品id */
@ApiModelProperty(name = "商品id", value = "商品id")
private Long projectId;
/** sku */
@ApiModelProperty(name = "sku", value = "sku")
private String sku;
/** 商品库存 */
@ApiModelProperty(name = "商品库存", value = "商品库存")
private Long stock;
/** 商品价格 */
@ApiModelProperty(name = "商品价格", value = "商品价格")
private BigDecimal price;
/** 规格图片 */
@ApiModelProperty(name = "规格图片", value = "规格图片")
private String image;
}

View File

@ -0,0 +1,58 @@
package com.muyu.product.domain.req;
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;
import java.math.BigDecimal;
/**
* SKU project_sku_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ProjectSkuInfoSaveReq", description = "商品SKU")
public class ProjectSkuInfoSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 商品id */
@ApiModelProperty(name = "商品id", value = "商品id", required = true)
private Long projectId;
/** 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;
}

View File

@ -0,0 +1,38 @@
package com.muyu.product.domain.req;
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;
/**
* rule_attr_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "RuleAttrInfoEditReq", description = "规格详情")
public class RuleAttrInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 规格id */
@ApiModelProperty(name = "规格id", value = "规格id", required = true)
private Long ruleId;
/** 类目名称 */
@ApiModelProperty(name = "类目名称", value = "类目名称")
private String name;
/** 规格值 */
@ApiModelProperty(name = "规格值", value = "规格值")
private String attrValue;
}

View File

@ -0,0 +1,38 @@
package com.muyu.product.domain.req;
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;
/**
* rule_attr_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "RuleAttrInfoQueryReq", description = "规格详情")
public class RuleAttrInfoQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 规格id */
@ApiModelProperty(name = "规格id", value = "规格id")
private Long ruleId;
/** 类目名称 */
@ApiModelProperty(name = "类目名称", value = "类目名称")
private String name;
/** 规格值 */
@ApiModelProperty(name = "规格值", value = "规格值")
private String attrValue;
}

View File

@ -0,0 +1,46 @@
package com.muyu.product.domain.req;
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;
/**
* rule_attr_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "RuleAttrInfoSaveReq", description = "规格详情")
public class RuleAttrInfoSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 规格id */
@ApiModelProperty(name = "规格id", value = "规格id", required = true)
private Long ruleId;
/** 类目名称 */
@ApiModelProperty(name = "类目名称", value = "类目名称")
private String name;
/** 规格值 */
@ApiModelProperty(name = "规格值", value = "规格值")
private String attrValue;
}

View File

@ -0,0 +1,34 @@
package com.muyu.product.domain.req;
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;
/**
* rule_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "RuleInfoEditReq", description = "商品规格")
public class RuleInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 规格名称 */
@ApiModelProperty(name = "规格名称", value = "规格名称")
private String name;
/** 规格状态 */
@ApiModelProperty(name = "规格状态", value = "规格状态")
private String status;
}

View File

@ -0,0 +1,34 @@
package com.muyu.product.domain.req;
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;
/**
* rule_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "RuleInfoQueryReq", description = "商品规格")
public class RuleInfoQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 规格名称 */
@ApiModelProperty(name = "规格名称", value = "规格名称")
private String name;
/** 规格状态 */
@ApiModelProperty(name = "规格状态", value = "规格状态")
private String status;
}

View File

@ -0,0 +1,41 @@
package com.muyu.product.domain.req;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.model.RuleAttrAddModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* rule_info
*
* @author DongZeLiang
* @date 2024-02-27
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "RuleInfoSaveReq", description = "商品规格")
public class RuleInfoSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 规格名称 */
@ApiModelProperty(name = "规格名称", value = "规格名称")
private String name;
/** 规格状态 */
@ApiModelProperty(name = "规格状态", value = "规格状态")
private String status;
/**
*
*/
private List<RuleAttrAddModel> ruleAttrList;
}

View File

@ -0,0 +1,59 @@
package com.muyu.product.domain.resp;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.AttributeGroup;
import com.muyu.product.domain.AttributeInfo;
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-2-28 04:15
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AttributeGroupPageResp extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 属性组编号 */
private Long id;
/** 组名称 */
private String name;
/** 状态 */
private String states;
/**
*
*/
private List<AttributeInfo> attributeInfoList;
public static AttributeGroupPageResp groupBuild (AttributeGroup attributeGroup, List<AttributeInfo> attributeInfos) {
return AttributeGroupPageResp.builder()
.id(attributeGroup.getId())
.name(attributeGroup.getName())
.states(attributeGroup.getStates())
.attributeInfoList(attributeInfos)
.build();
}
public static AttributeGroupPageResp groupFunBuild (AttributeGroup attributeGroup, Function<Long,List<AttributeInfo> > function) {
return AttributeGroupPageResp.builder()
.id(attributeGroup.getId())
.name(attributeGroup.getName())
.states(attributeGroup.getStates())
.attributeInfoList(function.apply(attributeGroup.getId()))
.build();
}
}

View File

@ -0,0 +1,42 @@
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.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
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;
}

View File

@ -0,0 +1,39 @@
package com.muyu.product.domain.resp;
import com.muyu.product.domain.AttributeGroup;
import com.muyu.product.domain.AttributeInfo;
import com.muyu.product.domain.BrandInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author DongZl
* @description:
* @Date 2024-3-1 11:02
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CategoryParentCommonElementResp {
/**
*
*/
private List<AttributeInfo> attributeInfoList;
/**
*
*/
private List<AttributeGroup> attributeGroupList;
/**
*
*/
private List<BrandInfo> brandInfoList;
}

View File

@ -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();
}
}

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-product</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>muyu-product-remote</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 商品模块 common 依赖 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-product-commo</artifactId>
<version>3.6.3</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-product</artifactId>
<version>3.6.3</version>
</parent>
<groupId>com.bwie</groupId>
<artifactId>muyu-product-server</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 商品模块 common 依赖 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-product-commo</artifactId>
<version>3.6.3</version>
</dependency>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud Alibaba Sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Swagger UI -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.fox.version}</version>
</dependency>
<!-- Mysql Connector -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- MuYu Common DataSource -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datasource</artifactId>
</dependency>
<!-- MuYu Common DataScope -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datascope</artifactId>
</dependency>
<!-- MuYu Common Log -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-log</artifactId>
</dependency>
<!-- MuYu Common Swagger -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-swagger</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 加入maven deploy插件当在deploy时忽略些model-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,17 @@
package com.muyu.product;
import com.muyu.common.security.annotation.EnableCustomConfig;
import com.muyu.common.security.annotation.EnableMyFeignClients;
import com.muyu.common.swagger.annotation.EnableCustomSwagger2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableCustomConfig
@EnableCustomSwagger2
@EnableMyFeignClients
@SpringBootApplication
public class MuYuProductApplication {
public static void main(String[] args) {
SpringApplication.run(MuYuProductApplication.class);
}
}

View File

@ -0,0 +1,38 @@
package com.muyu.product.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.text.Convert;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.product.domain.BrandInfo;
import com.muyu.product.domain.req.BrandInfoQueryReq;
import com.muyu.product.service.BrandInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "品牌信息")
@RestController
@RequestMapping("/brand")
public class BrandInfoController extends BaseController {
@Autowired
private BrandInfoService brandInfoService;
@ApiOperation("获取品牌信息列表")
@RequiresPermissions("product:brand:list")
@GetMapping("/list")
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 isPage ? getDataTable(list) : Result.success(list);
}
}

View File

@ -0,0 +1,7 @@
package com.muyu.product.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.product.domain.BrandInfo;
public interface BrandInfoMapper extends BaseMapper<BrandInfo> {
}

View File

@ -0,0 +1,11 @@
package com.muyu.product.service;
import com.muyu.product.domain.BrandInfo;
import java.util.List;
import java.util.Map;
public interface BrandInfoService {
List<BrandInfo> list(BrandInfo brandInfo);
}

View File

@ -0,0 +1,2 @@
Spring Boot Version: ${spring-boot.version}
Spring Application Name: ${spring.application.name}

View File

@ -0,0 +1,28 @@
# Tomcat
server:
port: 9302
# Spring
spring:
application:
# 应用名称
name: muyu-product
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 111.231.174.71:8848
config:
# 配置中心地址
server-addr: 111.231.174.71:8848
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
logging:
level:
com.muyu.product.mapper: DEBUG

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/muyu-product"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.muyu" level="info"/>
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn"/>
<root level="info">
<appender-ref ref="console"/>
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
</root>
</configuration>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.AsAttributeGroupMapper">
<resultMap type="com.muyu.product.domain.AsAttributeGroup" id="AsAttributeGroupResult">
<result property="id" column="id" />
<result property="groupId" column="group_id" />
<result property="attributeId" column="attribute_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectAsAttributeGroupVo">
select id, group_id, attribute_id, remark, create_by, create_time, update_by, update_time from as_attribute_group
</sql>
</mapper>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.AsBrandProjectMapper">
<resultMap type="com.muyu.product.domain.AsBrandProject" id="AsBrandProjectResult">
<result property="id" column="id" />
<result property="brandId" column="brand_id" />
<result property="projectId" column="project_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectAsBrandProjectVo">
select id, brand_id, project_id, remark, create_by, create_time, update_by, update_time from as_brand_project
</sql>
</mapper>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.AsCategoryAttributeGroupMapper">
<resultMap type="com.muyu.product.domain.AsCategoryAttributeGroup" id="AsCategoryAttributeGroupResult">
<result property="id" column="id" />
<result property="categoryId" column="category_id" />
<result property="attributeGroupId" column="attribute_group_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectAsCategoryAttributeGroupVo">
select id, category_id, attribute_group_id, remark, create_by, create_time, update_by, update_time from as_category_attribute_group
</sql>
</mapper>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.AsCategoryAttributeMapper">
<resultMap type="com.muyu.product.domain.AsCategoryAttribute" id="AsCategoryAttributeResult">
<result property="id" column="id" />
<result property="categoryId" column="category_id" />
<result property="attributeId" column="attribute_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectAsCategoryAttributeVo">
select id, category_id, attribute_id, remark, create_by, create_time, update_by, update_time from as_category_attribute
</sql>
</mapper>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.AsCategoryBrandMapper">
<resultMap type="com.muyu.product.domain.AsCategoryBrand" id="AsCategoryBrandResult">
<result property="id" column="id" />
<result property="categoryId" column="category_id" />
<result property="brandId" column="brand_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectAsCategoryBrandVo">
select id, category_id, brand_id, remark, create_by, create_time, update_by, update_time from as_category_brand
</sql>
</mapper>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.AsProductAttributeInfoMapper">
<resultMap type="com.muyu.product.domain.AsProductAttributeInfo" id="AsProductAttributeInfoResult">
<result property="id" column="id" />
<result property="productId" column="product_id" />
<result property="attributeId" column="attribute_id" />
<result property="value" column="value" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updataBy" column="updata_by" />
<result property="updataTime" column="updata_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectAsProductAttributeInfoVo">
select id, product_id, attribute_id, value, create_by, create_time, updata_by, updata_time, remark from as_product_attribute_info
</sql>
</mapper>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.AttributeGroupMapper">
<resultMap type="com.muyu.product.domain.AttributeGroup" id="AttributeGroupResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="states" column="states" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updataBy" column="updata_by" />
<result property="updataTime" column="updata_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectAttributeGroupVo">
select id, name, states, create_by, create_time, updata_by, updata_time, remark from attribute_group
</sql>
</mapper>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.AttributeInfoMapper">
<resultMap type="com.muyu.product.domain.AttributeInfo" id="AttributeInfoResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="groupId" column="group_id" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updataBy" column="updata_by" />
<result property="updataTime" column="updata_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectAttributeInfoVo">
select id, name, group_id, create_by, create_time, updata_by, updata_time, remark from attribute_info
</sql>
</mapper>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.BrandInfoMapper">
<resultMap type="com.muyu.product.domain.BrandInfo" id="BrandInfoResult">
<result property="id" column="id" />
<result property="nam" column="nam" />
<result property="logo" column="logo" />
<result property="start" column="start" />
<result property="introduction" column="introduction" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectBrandInfoVo">
select id, nam, logo, start, introduction, remark, create_by, create_time, update_by, update_time from brand_info
</sql>
</mapper>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.CategoryInfoMapper">
<resultMap type="com.muyu.product.domain.CategoryInfo" id="CategoryInfoResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="image" column="image" />
<result property="parentId" column="parent_id" />
<result property="start" column="start" />
<result property="introduction" column="introduction" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectCategoryInfoVo">
select id, name, image, parent_id, start, introduction, remark, create_by, create_time, update_by, update_time from category_info
</sql>
</mapper>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.CommentInfoMapper">
<resultMap type="com.muyu.product.domain.CommentInfo" id="CommentInfoResult">
<result property="id" column="id" />
<result property="projectId" column="project_id" />
<result property="comment" column="comment" />
<result property="images" column="images" />
<result property="parentId" column="parent_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectCommentInfoVo">
select id, project_id, comment, images, parent_id, remark, create_by, create_time, update_by, update_time from comment_info
</sql>
</mapper>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.CommentLikeInfoMapper">
<resultMap type="com.muyu.product.domain.CommentLikeInfo" id="CommentLikeInfoResult">
<result property="id" column="id" />
<result property="commentId" column="comment_id" />
<result property="userId" column="user_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectCommentLikeInfoVo">
select id, comment_id, user_id, remark, create_by, create_time, update_by, update_time from comment_like_info
</sql>
</mapper>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.ProjectInfoMapper">
<resultMap type="com.muyu.product.domain.ProjectInfo" id="ProjectInfoResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="introduction" column="introduction" />
<result property="mianType" column="mian_type" />
<result property="parentType" column="parent_type" />
<result property="type" column="type" />
<result property="image" column="image" />
<result property="carouselImages" column="carousel_images" />
<result property="status" column="status" />
<result property="ruleId" column="rule_id" />
<result property="brandId" column="brand_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectProjectInfoVo">
select id, name, introduction, mian_type, parent_type, type, image, carousel_images, status, rule_id, brand_id, remark, create_by, create_time, update_by, update_time from project_info
</sql>
</mapper>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.ProjectSkuInfoMapper">
<resultMap type="com.muyu.product.domain.ProjectSkuInfo" id="ProjectSkuInfoResult">
<result property="id" column="id" />
<result property="projectId" column="project_id" />
<result property="sku" column="sku" />
<result property="stock" column="stock" />
<result property="price" column="price" />
<result property="image" column="image" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectProjectSkuInfoVo">
select id, project_id, sku, stock, price, image, remark, create_by, create_time, update_by, update_time from project_sku_info
</sql>
</mapper>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.RuleAttrInfoMapper">
<resultMap type="com.muyu.product.domain.RuleAttrInfo" id="RuleAttrInfoResult">
<result property="id" column="id" />
<result property="ruleId" column="rule_id" />
<result property="name" column="name" />
<result property="attrValue" column="attr_value" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectRuleAttrInfoVo">
select id, rule_id, name, attr_value, remark, create_by, create_time, update_by, update_time from rule_attr_info
</sql>
</mapper>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.RuleInfoMapper">
<resultMap type="com.muyu.product.domain.RuleInfo" id="RuleInfoResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="status" column="status" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectRuleInfoVo">
select id, name, status, remark, create_by, create_time, update_by, update_time from rule_info
</sql>
</mapper>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-modules</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>muyu-product</artifactId>
<packaging>pom</packaging>
<modules>
<module>muyu-product-commo</module>
<module>muyu-product-remote</module>
<module>muyu-product-server</module>
<module>muyu-product-server</module>
</modules>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

View File

@ -14,10 +14,10 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -14,10 +14,10 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
server-addr: 111.231.174.71:8848
# 配置文件格式
file-extension: yml
# 共享配置

View File

@ -215,6 +215,7 @@
<module>muyu-visual</module>
<module>muyu-modules</module>
<module>muyu-common</module>
<module>muyu-modules/muyu-product</module>
</modules>
<packaging>pom</packaging>