dev798
wxy 2024-03-29 17:03:21 +08:00
parent 9055ac837f
commit 2639b72dd5
54 changed files with 428 additions and 1442 deletions

View File

@ -0,0 +1,25 @@
package com.muyu.common.core.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:52
*/
@Data
@ApiModel
public class BaseEntity {
@ApiModelProperty(value = "创建人")
private String createBy;
@ApiModelProperty(value= "创建时间")
private String createTime;
@ApiModelProperty(value = "修改时间")
private String updateTime;
@ApiModelProperty(value = "是否删除 0-是 1-否")
private int isDelete;
}

View File

@ -0,0 +1,52 @@
package com.muyu.product.domain.DTO;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:49
*/
@Data
@ApiModel(value = "Brand",description = "品牌表")
public class Brand extends BaseEntity {
@ApiModelProperty(value = "id")
private String id;
@ApiModelProperty(value = "名称")
private String brandName;
@ApiModelProperty(value = "首字母")
private String firstLetter;
@ApiModelProperty(value = "排序 0靠后")
private Integer sort;
@ApiModelProperty(value = "是否为品牌制造商0-不是1-是")
private Integer factoryStatus;
@ApiModelProperty(value = "是否显示 0-不显示1-显示")
private Integer showStatus;
@ApiModelProperty(value = "产品数量")
private Integer productCount;
@ApiModelProperty(value = "产品评论数量")
private Integer productCommentCount;
@ApiModelProperty(value = "品牌logo")
private String logo;
@ApiModelProperty(value = "专区大图")
private String bigPic;
@ApiModelProperty(value = "品牌故事")
private String brandStory;
}

View File

@ -0,0 +1,54 @@
package com.muyu.product.domain.DTO;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:50
*/
@Data
@ApiModel(value = "Category", description = "商品分类信息")
public class Category extends BaseEntity {
@ApiModelProperty(value = "id")
private String id;
@ApiModelProperty(value = "上级分类的编号0表示一级分类")
private String parent_id;
@ApiModelProperty(value = "名称")
private String category_name;
@ApiModelProperty(value = "分类级别0->1级1->2级")
private String level;
@ApiModelProperty(value = "商品数量")
private String product_count;
@ApiModelProperty(value = "商品单位")
private String product_unit;
@ApiModelProperty(value = "是否显示在导航栏0->不显示1->显示")
private String nav_status;
@ApiModelProperty(value = "显示状态0->不显示1->显示")
private String show_status;
@ApiModelProperty(value = "排序")
private String sort;
@ApiModelProperty(value = "图标")
private String icon;
@ApiModelProperty(value = "关键字")
private String keywords;
@ApiModelProperty(value = "描述")
private String description;
}

View File

@ -0,0 +1,24 @@
package com.muyu.product.domain.DTO;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:53
*/
@Data
@ApiModel(value = "Images", description = "产品图片信息")
public class Images extends BaseEntity {
@ApiModelProperty(value = "图片ID")
private Integer id;
@ApiModelProperty(value = "产品ID")
private Integer productId;
@ApiModelProperty(value = "图片URL")
private String imagesUrl;
}

View File

@ -1,15 +1,13 @@
package com.muyu.product.domain;
package com.muyu.product.domain.DTO;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @ClassName ladder
* @Description
* @Author
* @Date 2024/3/24 10:10
* @Author: wangxinyuan
* @Date: 2024/3/29 16:53
*/
@Data
@ApiModel(value = "Ladder", description = "阶梯信息")

View File

@ -0,0 +1,27 @@
package com.muyu.product.domain.DTO;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:55
*/
@Data
@ApiModel(value = "Member", description = "会员信息")
public class Member extends BaseEntity {
@ApiModelProperty(value = "会员ID")
private Integer id;
@ApiModelProperty(value = "黄金会员折扣")
private Double memberGold;
@ApiModelProperty(value = "白金会员折扣")
private Double memberSilver;
@ApiModelProperty(value = "钻石会员折扣")
private Double memberDiamond;
}

View File

@ -0,0 +1,30 @@
package com.muyu.product.domain.DTO;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:55
*/
public enum Number {
/** 0 **/
zero("0"),
/** 1 **/
one("1"),
/** 2 **/
two("2"),
/** 3 **/
three("3"),
/** 4 **/
four("4");
private String value;
private Number(String value)
{
this.value = value;
}
public String getValue()
{
return value;
}
}

View File

@ -1,17 +1,16 @@
package com.muyu.product.domain;
package com.muyu.product.domain.DTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @author A3385
* @Author: wangxinyuan
* @Date: 2024/3/29 16:56
*/
@Data
@ApiModel(value = "Preference", description = "特惠信息")

View File

@ -1,16 +1,16 @@
package com.muyu.product.domain;
package com.muyu.product.domain.DTO;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.Data;import io.swagger.annotations.ApiModel;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author A3385
* @Author: wangxinyuan
* @Date: 2024/3/29 16:56
*/
@Data
@ApiModel(value = "Price", description = "价格信息")
@Data
public class Price extends BaseEntity {
@ApiModelProperty(value = "价格ID")

View File

@ -1,19 +1,16 @@
package com.muyu.product.domain;
package com.muyu.product.domain.DTO;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.HashMap;
import java.util.List;
/**
* @author A3385
* @Author: wangxinyuan
* @Date: 2024/3/29 16:57
*/
@Data
@ApiModel(description = "产品实体类")

View File

@ -0,0 +1,38 @@
package com.muyu.product.domain.DTO;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigInteger;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:57
*/
@Data
@ApiModel(value = "ProductSku", description = "商品SKU信息")
public class ProductSku extends BaseEntity {
@ApiModelProperty(value = "SKU Id")
private BigInteger id;
@ApiModelProperty(value = "销售价格")
private Double salePrice;
@ApiModelProperty(value = "促销价格")
private Double promotionPrice;
@ApiModelProperty(value = "库存")
private Integer stock;
@ApiModelProperty(value = "预警库存")
private Integer stockAlert;
@ApiModelProperty(value = "商品Id")
private Integer productId;
@ApiModelProperty(value = "SKU背景图地址")
private String bgImg;
}

View File

@ -0,0 +1,37 @@
package com.muyu.product.domain.DTO;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigInteger;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:58
*/
@ApiModel(value = "ProductSkuAttr", description = "产品SKU属性信息")
@Data
public class ProductSkuAttr extends BaseEntity {
@ApiModelProperty(value = "ID")
private Integer id;
@ApiModelProperty(value = "SKU ID")
private BigInteger skuId;
@ApiModelProperty(value = "属性ID")
private Integer attrId;
@ApiModelProperty(value = "属性值ID")
private Integer attrValueId;
@ApiModelProperty(value = "手工录入属性值")
private String attrValue;
@ApiModelProperty(value = "类型0-属性1-参数")
private Integer flag;
}

View File

@ -0,0 +1,58 @@
package com.muyu.product.domain.DTO;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:58
*/
@Data
@ApiModel(value = "ProductTypeAttr", description = "产品类型属性信息")
public class ProductTypeAttr extends BaseEntity {
@ApiModelProperty(value = "ID")
private Integer id;
@ApiModelProperty(value = "商品类型ID")
private Integer productTypeId;
@ApiModelProperty(value = "属性名称")
private String attrName;
@ApiModelProperty(value = "是否支持多选0-是1-否")
private Integer multipleChoice;
@ApiModelProperty(value = "录入方式0-列表选择1-手动")
private Integer inputMethod;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "分类标识0-属性1-参数")
private Integer flag;
@ApiModelProperty(value = "筛选0-普通1-颜色")
private Integer screen;
@ApiModelProperty(value = "检索1-不需要2-关键字3-范围检索")
private Integer search;
@ApiModelProperty(value = "商品属性关联1-是2-否")
private Integer association;
@ApiModelProperty(value = "属性是否可选1-唯一2-单选3-复选")
private Integer stats;
@ApiModelProperty(value = "属性值的录入方式1-手工录入2-从列表中选择")
private Integer input;
@ApiModelProperty(value = "属性值可选值列表")
private String selection;
@ApiModelProperty(value = "手动新增0-是1-否")
private Integer manualOperation;
}

View File

@ -0,0 +1,28 @@
package com.muyu.product.domain.DTO;
import com.muyu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 16:59
*/
@Data
@ApiModel(value = "ProductTypeAttrValue", description = "产品类型属性值信息")
public class ProductTypeAttrValue extends BaseEntity {
@ApiModelProperty(value = "ID")
private Integer id;
@ApiModelProperty(value = "属性ID")
private Integer typeAttrId;
@ApiModelProperty(value = "属性值详情")
private Integer typeAttrValue;
@ApiModelProperty(value = "录入方式0-自动1-手动")
private Integer inputMethod;
}

View File

@ -1,50 +0,0 @@
package com.muyu.product.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
import java.util.HashMap;
/**
* t_full_subtraction
* @Author: wangxinyuan
* @Date: 2024/3/26 14:57
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_full_subtraction")
@ApiModel(value = "fullSubtraction", description = "满减价格对象")
public class FullSubtraction extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
@Excel(name = "满多少钱")
private BigDecimal fullPrice;
/** 立减多少钱 */
@Excel(name = "立减多少钱")
private BigDecimal subtractionPrice;
/** 商品ID */
@Excel(name = "商品ID")
private Long shopId;
/** 是否删除 */
@Excel(name = "是否删除")
private Long isDelete;
}

View File

@ -1,42 +0,0 @@
package com.muyu.product.domain;
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;
import java.util.HashMap;
/**
* t_member
* @Author: wangxinyuan
* @Date: 2024/3/26 15:02
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_member")
@ApiModel(value = "member", description = "会员类型对象")
public class Member extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
/** 会员类型名 */
@Excel(name = "会员类型名")
@ApiModelProperty(name = "会员类型名",value = "会员类型名")
private String memberName;
/** 是否删除 */
@Excel(name = "是否删除")
private Long isDelete;
}

View File

@ -1,79 +0,0 @@
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;
import java.util.HashMap;
/**
* t_product_brand
* @Author: wangxinyuan
* @Date: 2024/3/26 14:16
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_brand") //@TableName("t_product_brand")注解表示实体类 ProductBrand 对应数据库中的表名为 t_product_brand。通过在实体类上添加这个注解可以简化实体类与数据库表之间的映射关系避免在代码中重复指定表名。
@ApiModel(value = "productBrand", description = "商品品牌对象")
public class ProductBrand extends HashMap {
private static final long serialVersionUID = 1L;
@TableId( type = IdType.AUTO)
private Long id;
@Excel(name = "品牌名称")
@ApiModelProperty(name = "品牌名称", value = "品牌名称", required = true)
private String name;
@Excel(name = "品牌首字母")
@ApiModelProperty(name = "品牌首字母",value = "品牌首字母")
private String brandFirstLetter;
@Excel(name = "排序")
@ApiModelProperty(name = "排序",value = "排序")
private Long sort;
@ApiModelProperty(name = "品牌制造商", value = "品牌制造商 0-是 1-否", required = true)
@Excel(name = "品牌制造商 0-是 1-否")
private Long brandManufacturer;
@Excel(name = "品牌故事")
@ApiModelProperty(name = "品牌故事",value = "品牌故事")
private String brandStory;
@Excel(name = "logo")
@ApiModelProperty(name = "品牌logo",value = "品牌logo")
private String brandLogo;
@Excel(name = "品牌专区大图")
@ApiModelProperty(name = "品牌专区大图",value = "品牌专区大图")
private String brandSpecialArea;
@Excel(name = "是否显示 0-显示 1-不显示")
@ApiModelProperty(name = "是否显示", value = "是否显示 0-显示 1-不显示", required = true)
private Long isShow;
@Excel(name = "是否删除 0-不删除 1-删除")
@ApiModelProperty(name = "是否删除", value = "是否删除 0-不删除 1-删除", required = true)
private Long isDelete;
}

View File

@ -1,55 +0,0 @@
package com.muyu.product.domain;
import com.baomidou.mybatisplus.annotation.TableName;
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;
import java.util.HashMap;
/**
* t_product_classify
* @Author: wangxinyuan
* @Date: 2024/3/26 15:05
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_classify")
@ApiModel(value = "productClassify", description = "商品分类对象")
public class ProductClassify extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(name = "分类级别",value = "分类级别")
private Long classifyLevel;
@ApiModelProperty(name = "数量单位",value = "数量单位")
private String classifyUnit;
@ApiModelProperty(name = "导航栏", value = "导航栏 0-显示 1-不显示", required = true)
private Long classifyNavigation;
@ApiModelProperty(name = "是否显示", value = "导航栏 0-显示 1-不显示", required = true)
private Long isShow;
@ApiModelProperty(name = "排序",value = "排序")
private Long sort;
@ApiModelProperty(name = "父级ID",value = "父级ID")
private Long parentId;
@ApiModelProperty(name = "分类图标",value = "分类图标")
private String classifyIco;
}

View File

@ -1,55 +0,0 @@
package com.muyu.product.domain;
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 lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.HashMap;
/**
* t_product_dictionary
* @Author: wangxinyuan
* @Date: 2024/3/26 15:10
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_dictionary")
@ApiModel(value = "productDictionary", description = "字典类型对象")
public class ProductDictionary extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
/** 类型说明 */
@Excel(name = "类型说明")
private String typeName;
/** 类型唯一标识 */
@Excel(name = "类型唯一标识")
private String typeSign;
/** 是否可用 */
@Excel(name = "是否可用")
private Long isUse;
/** 备注 */
@Excel(name = "备注")
private String remarks;
/** 是否删除 0-不删除 1-删除 */
@Excel(name = "是否删除 0-不删除 1-删除")
private Long isDelete;
}

View File

@ -1,59 +0,0 @@
package com.muyu.product.domain;
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 lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.HashMap;
/**
* t_product_dictionary_value
* @Author: wangxinyuan
* @Date: 2024/3/26 15:12
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_dictionary_value")
@ApiModel(value = "productDictionaryValue", description = "字典类型值对象")
public class ProductDictionaryValue extends HashMap {
private static final long serialVersionUID = 1L;
/** 字典类型 */
@Excel(name = "字典类型")
private String dirctionaryType;
/** 字典标签 */
@Excel(name = "字典标签")
private String dirctionaryLabels;
/** 键值 */
@Excel(name = "键值")
private Long dirctionarySign;
/** 排序 */
@Excel(name = "排序")
private Long dirctionarySort;
/** 状态 0-正常 1-禁用 */
@Excel(name = "状态 0-正常 1-禁用")
private Long status;
/** 备注 */
@Excel(name = "备注")
private String remarks;
/** 是否删除 0-不删除 1-删除 */
@Excel(name = "是否删除 0-不删除 1-删除")
private Long isDelete;
}

View File

@ -1,45 +0,0 @@
package com.muyu.product.domain;
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 lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.HashMap;
/**
* t_product_guarantee_link
* @Author: wangxinyuan
* @Date: 2024/3/26 15:13
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_guarantee_link")
@ApiModel(value = "productGuaranteeLink", description = "字典类型值对象")
public class ProductGuaranteeLink extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
/** 商品ID */
@Excel(name = "商品ID")
private Long productId;
/** 服务保证ID */
@Excel(name = "服务保证ID")
private Long serviceGuarantee;
/** 是否删除 0-不删除 1-删除 */
@Excel(name = "是否删除 0-不删除 1-删除")
private Long isDelete;
}

View File

@ -1,73 +0,0 @@
package com.muyu.product.domain;
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;
import java.math.BigDecimal;
import java.util.HashMap;
/**
* sku t_product_sku
* @Author: wangxinyuan
* @Date: 2024/3/26 15:17
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_sku")
@ApiModel(value = "productSku", description = "sku对象")
public class ProductSku extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
/** 销售价格 */
@Excel(name = "销售价格")
@ApiModelProperty(name = "销售价格",value = "销售价格")
private BigDecimal salePrice;
/** 促销价格 */
@Excel(name = "促销价格")
@ApiModelProperty(name = "促销价格",value = "促销价格")
private BigDecimal promotionPrice;
/** 库存 */
@Excel(name = "库存")
@ApiModelProperty(name = "库存",value = "库存")
private Long stock;
/** 预警库存 */
@Excel(name = "预警库存")
@ApiModelProperty(name = "预警库存",value = "预警库存")
private Long stockAlert;
/** 商品id */
@Excel(name = "商品id")
@ApiModelProperty(name = "商品id",value = "商品id")
private Long productId;
/** sku背景图地址 */
@Excel(name = "sku背景图地址")
@ApiModelProperty(name = "sku背景图地址",value = "sku背景图地址")
private String bgImg;
/** 是否删除 0-不删除 1-删除 */
@Excel(name = "是否删除 0-不删除 1-删除")
@ApiModelProperty(name = "是否删除", value = "导航栏 0-不删除 1-删除", required = true)
private Long isDelete;
}

View File

@ -1,59 +0,0 @@
package com.muyu.product.domain;
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 lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.HashMap;
/**
* sku t_product_sku_attr
* @Author: wangxinyuan
* @Date: 2024/3/26 15:32
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_sku_attr")
@ApiModel(value = "productSkuAttr", description = "sku属性对象")
public class ProductSkuAttr extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
private Long skuId;
/** 属性id */
@Excel(name = "属性id")
private Long attrId;
/** 属性值id */
@Excel(name = "属性值id")
private Long attrValueId;
/** 手工录入时且flag为1选用此栏 */
@Excel(name = "手工录入时且flag为1选用此栏")
private String attrValue;
/** 类型0-属性1-参数 */
@Excel(name = "类型0-属性1-参数")
private Long flag;
/** 是否删除 0-不删除 1-删除 */
@Excel(name = "是否删除 0-不删除 1-删除")
private Long isDelete;
}

View File

@ -1,46 +0,0 @@
package com.muyu.product.domain;
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;
import java.util.HashMap;
/**
* t_product_type
* @Author: wangxinyuan
* @Date: 2024/3/26 15:35
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_type")
@ApiModel(value = "productType", description = "商品类型对象")
public class ProductType extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
/** 商品类型名称 */
@Excel(name = "商品类型名称")
@ApiModelProperty(name = "商品类型名称",value = "商品类型名称")
private String typeName;
/** 是否删除 0-不删除 1-删除 */
@Excel(name = "是否删除 0-不删除 1-删除")
private Long isDelete;
}

View File

@ -1,72 +0,0 @@
package com.muyu.product.domain;
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;
import java.util.HashMap;
/**
* t_product_type_attr
* @Author: wangxinyuan
* @Date: 2024/3/26 15:36
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_type_attr")
@ApiModel(value = "productTypeAttr", description = "类型属性对象")
public class ProductTypeAttr extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
/** 商品类型id */
@Excel(name = "商品类型id")
private Long productTypeId;
/** 属性名称 */
@Excel(name = "属性名称")
@ApiModelProperty(name = "属性名称",value = "属性名称")
private String attrName;
/** 属性是否可选 见字典值 */
@Excel(name = "属性是否可选 见字典值")
private Long multipleChoice;
/** 录入方式 详情见字典表 t_product_directary */
@Excel(name = "录入方式 详情见字典表 t_product_directary")
private Long inputMethod;
/** 0最大排序排序靠前 */
@Excel(name = "0最大排序排序靠前")
private Long sort;
/** 分类标识0-属性1-参数 */
@Excel(name = "分类标识0-属性1-参数")
private Long flag;
/** 分类筛选样式 0-普通 1-颜色 */
@Excel(name = "分类筛选样式 0-普通 1-颜色")
private Long categoryFilterStyles;
/** 商品属性关联 */
@Excel(name = "商品属性关联")
private Long productAssociation;
/** 是否删除 0-不删除 1-删除 */
@Excel(name = "是否删除 0-不删除 1-删除")
private Long isDelete;
}

View File

@ -1,48 +0,0 @@
package com.muyu.product.domain;
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;
import java.util.HashMap;
/**
* t_product_type_attr_value
* @Author: wangxinyuan
* @Date: 2024/3/26 15:38
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_product_type_attr_value")
@ApiModel(value = "productTypeAttrValue", description = "类型属性值对象")
public class ProductTypeAttrValue extends HashMap {
private static final long serialVersionUID = 1L;
private Long id;
/** 属性id */
@Excel(name = "属性id")
private Long typeAttrId;
/** 属性值详情 */
@Excel(name = "属性值详情")
private String typeAttrValue;
/** 录入方式,见字典表 */
@Excel(name = "录入方式,见字典表")
private Long inputMethod;
/** 是否删除 0-不删除 1-删除 */
@Excel(name = "是否删除 0-不删除 1-删除")
private Long isDelete;
}

View File

@ -1,14 +1,30 @@
package com.muyu.product.domain.req;
import lombok.Data;
import java.util.List;
import java.util.Set;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 10:23
*/
@Data
public class ProductInfoReq {
private Integer id;
public List<ProductInfoReq> getSkuList(ProductInfoReq productInfoReq) {
return null;
}
public Set keySet() {
return null;
}
public Object get(Object key) {
return null;
}
}

View File

@ -0,0 +1,18 @@
package com.muyu.product.domain.req;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.HashMap;
/**
* @Author: wangxinyuan
* @Date: 2024/3/29 10:32
*/
@Data
@ApiModel(description = "")
public class ProductSkuReq extends HashMap {
private Integer productId;
}

View File

@ -1,39 +0,0 @@
package com.muyu.product.controller;
import com.muyu.common.core.domain.AjaxResult;
import com.muyu.product.domain.ProductBrand;
import com.muyu.product.service.ArgumentService;
import io.swagger.annotations.Api;
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;
/**
* @Author: wangxinyuan
* @Date: 2024/3/28 15:10
*/
@RestController
@RequestMapping("/argument")
@Api(value = "下拉框管理")
public class ArgumentController {
@Autowired
private ArgumentService argumentService;
/*品牌下拉框*/
@GetMapping("queryBrand")
public AjaxResult queryBrand(){
List<ProductBrand>list=argumentService.queryBrand();
return AjaxResult.success(list);
}
@GetMapping("/queryService")
public AjaxResult queryService(){
return null;
}
}

View File

@ -1,38 +0,0 @@
package com.muyu.product.controller;
import com.github.pagehelper.PageInfo;
import com.muyu.common.core.domain.AjaxResult;
import com.muyu.product.domain.ProductBrand;
import com.muyu.product.service.ProductBrandService;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Controller
* @Author: wangxinyuan
* @Date: 2024/3/26 20:30
*/
@RestController
@RequestMapping("/brand")
public class ProductBrandController {
@Autowired
private ProductBrandService productBrandService;
@ApiOperation("查询商品品牌")
@GetMapping("queryProductBrand")
public AjaxResult queryProductBrand(@RequestBody ProductBrand productBrand){
PageInfo<ProductBrand>list=productBrandService.queryProductBrand(productBrand);
return AjaxResult.success(list);
}
}

View File

@ -1,20 +0,0 @@
package com.muyu.product.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Controller
* @Author: wangxinyuan
* @Date: 2024/3/26 20:33
*/
@RestController
@RequestMapping("/classify")
public class ProductClassifyController {
}

View File

@ -1,63 +0,0 @@
package com.muyu.product.controller;
import com.github.pagehelper.PageInfo;
import com.muyu.common.core.domain.AjaxResult;
import com.muyu.product.domain.Product;
import com.muyu.product.domain.ProductSkuAttr;
import com.muyu.product.domain.req.ProductInfoReq;
import com.muyu.product.domain.req.ProductReq;
import com.muyu.product.domain.util.R;
import com.muyu.product.service.ProductService;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
/**
* Controller
* @Author: wangxinyuan
* @Date: 2024/3/26 19:48
*/
@RestController
@RequestMapping("/product")
public class ProductController {
@Autowired
private ProductService productService;
/**
*
*/
@ApiOperation("添加商品")
@PostMapping("/productInsert")
public R<Product> productInsert(@Valid @RequestBody ProductReq productReq){
productService.productInsert(productReq);
return R.ok();
}
@ApiOperation("查询商品信息")
@GetMapping("queryProduct")
public AjaxResult queryProduct(@RequestBody ProductReq req){
PageInfo<Product>list=productService.queryProduct(req);
return AjaxResult.success(list);
}
private void saveSku(ProductInfoReq productInfoReq){
List<ProductInfoReq>productSkuList=productInfoReq.getSkuList(productInfoReq);
ArrayList<ProductSkuAttr> attrs = new ArrayList<>();
}
}

View File

@ -1,23 +0,0 @@
package com.muyu.product.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.product.domain.ProductSku;
import com.muyu.product.service.ProductSkuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 19:11
*/
@RestController
@RequestMapping("/attr")
public class ProductSkuAttrController {
}

View File

@ -1,9 +0,0 @@
package com.muyu.product.controller;
/**
*
* @Author: wangxinyuan
* @Date: 2024/3/27 19:47
*/
public class ProductSkuController {
}

View File

@ -1,147 +0,0 @@
package com.muyu.product.handel;
import com.muyu.common.core.constant.HttpStatus;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.exception.DemoModeException;
import com.muyu.common.core.exception.InnerAuthException;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.exception.auth.NotPermissionException;
import com.muyu.common.core.exception.auth.NotRoleException;
import com.muyu.common.core.utils.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.MissingPathVariableException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import javax.servlet.http.HttpServletRequest;
/**
*
*
* @author muyu
*/
@RestControllerAdvice
public class GlobalExceptionHandler {
private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
/**
*
*/
@ExceptionHandler(NotPermissionException.class)
public Result handleNotPermissionException (NotPermissionException e, HttpServletRequest request) {
String requestURI = request.getRequestURI();
log.error("请求地址'{}',权限码校验失败'{}'", requestURI, e.getMessage());
return Result.error(HttpStatus.FORBIDDEN, "没有访问权限,请联系管理员授权");
}
/**
*
*/
@ExceptionHandler(NotRoleException.class)
public Result handleNotRoleException (NotRoleException e, HttpServletRequest request) {
String requestURI = request.getRequestURI();
log.error("请求地址'{}',角色权限校验失败'{}'", requestURI, e.getMessage());
return Result.error(HttpStatus.FORBIDDEN, "没有访问权限,请联系管理员授权");
}
/**
*
*/
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
public Result handleHttpRequestMethodNotSupported (HttpRequestMethodNotSupportedException e, HttpServletRequest request) {
String requestURI = request.getRequestURI();
log.error("请求地址'{}',不支持'{}'请求", requestURI, e.getMethod());
return Result.error(e.getMessage());
}
/**
*
*/
@ExceptionHandler(ServiceException.class)
public Result handleServiceException (ServiceException e, HttpServletRequest request) {
log.error(e.getMessage(), e);
Integer code = e.getCode();
return StringUtils.isNotNull(code) ? Result.error(code, e.getMessage()) : Result.error(e.getMessage());
}
/**
*
*/
@ExceptionHandler(MissingPathVariableException.class)
public Result handleMissingPathVariableException (MissingPathVariableException e, HttpServletRequest request) {
String requestURI = request.getRequestURI();
log.error("请求路径中缺少必需的路径变量'{}',发生系统异常.", requestURI, e);
return Result.error(String.format("请求路径中缺少必需的路径变量[%s]", e.getVariableName()));
}
/**
*
*/
@ExceptionHandler(MethodArgumentTypeMismatchException.class)
public Result handleMethodArgumentTypeMismatchException (MethodArgumentTypeMismatchException e, HttpServletRequest request) {
String requestURI = request.getRequestURI();
log.error("请求参数类型不匹配'{}',发生系统异常.", requestURI, e);
return Result.error(String.format("请求参数类型不匹配,参数[%s]要求类型为:'%s',但输入值为:'%s'", e.getName(), e.getRequiredType().getName(), e.getValue()));
}
/**
*
*/
@ExceptionHandler(RuntimeException.class)
public Result handleRuntimeException (RuntimeException e, HttpServletRequest request) {
String requestURI = request.getRequestURI();
log.error("请求地址'{}',发生未知异常.", requestURI, e);
return Result.error(e.getMessage());
}
/**
*
*/
@ExceptionHandler(Exception.class)
public Result handleException (Exception e, HttpServletRequest request) {
String requestURI = request.getRequestURI();
log.error("请求地址'{}',发生系统异常.", requestURI, e);
return Result.error(e.getMessage());
}
/**
*
*/
@ExceptionHandler(BindException.class)
public Result handleBindException (BindException e) {
log.error(e.getMessage(), e);
String message = e.getAllErrors().get(0).getDefaultMessage();
return Result.error(message);
}
/**
*
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
public Object handleMethodArgumentNotValidException (MethodArgumentNotValidException e) {
log.error(e.getMessage(), e);
String message = e.getBindingResult().getFieldError().getDefaultMessage();
return Result.error(message);
}
/**
*
*/
@ExceptionHandler(InnerAuthException.class)
public Result handleInnerAuthException (InnerAuthException e) {
return Result.error(e.getMessage());
}
/**
*
*/
@ExceptionHandler(DemoModeException.class)
public Result handleDemoModeException (DemoModeException e) {
return Result.error("演示模式,不允许操作");
}
}

View File

@ -1,17 +0,0 @@
package com.muyu.product.mapper;
import com.muyu.product.domain.ProductBrand;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author: wangxinyuan
* @Date: 2024/3/28 15:16
*/
@Mapper
public interface ArgumentMapper {
List<ProductBrand> queryBrand();
}

View File

@ -1,13 +0,0 @@
package com.muyu.product.mapper;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @Author: wangxinyuan
* @Date: 2024/3/26 20:36
*/
@Mapper
public interface ProductBrandMapper {
}

View File

@ -1,12 +0,0 @@
package com.muyu.product.mapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 20:42
*/
@Mapper
public interface ProductClassifyMapper {
}

View File

@ -1,23 +0,0 @@
package com.muyu.product.mapper;
import com.muyu.product.domain.Product;
import com.muyu.product.domain.req.ProductReq;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 19:49
*/
@Mapper
public interface ProductMapper {
Integer findProductNumber(Product product);
void insertProcuduct(Product product);
List<Product> queryProduct(ProductReq req);
}

View File

@ -1,15 +0,0 @@
package com.muyu.product.mapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 20:44
*/
@Mapper
public interface ProductSkuAttrMapper {
}

View File

@ -1,17 +0,0 @@
package com.muyu.product.mapper;
import com.muyu.product.domain.ProductSku;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author: wangxinyuan
* @Date: 2024/3/27 19:48
*/
@Mapper
public interface ProductSkuMapper {
Integer findSkuId(List<ProductSku> productSkus);
}

View File

@ -1,14 +0,0 @@
package com.muyu.product.service;
import com.muyu.product.domain.ProductBrand;
import java.util.List;
/**
* @Author: wangxinyuan
* @Date: 2024/3/28 15:11
*/
public interface ArgumentService {
List<ProductBrand> queryBrand();
}

View File

@ -1,14 +0,0 @@
package com.muyu.product.service;
import com.github.pagehelper.PageInfo;
import com.muyu.product.domain.ProductBrand;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 20:31
*/
public interface ProductBrandService {
PageInfo<ProductBrand> queryProductBrand(ProductBrand productBrand);
}

View File

@ -1,8 +0,0 @@
package com.muyu.product.service;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 20:34
*/
public interface ProductClassifyService {
}

View File

@ -1,20 +0,0 @@
package com.muyu.product.service;
import com.github.pagehelper.PageInfo;
import com.muyu.product.domain.Product;
import com.muyu.product.domain.req.ProductReq;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 19:49
*/
public interface ProductService {
void productInsert(ProductReq productReq);
PageInfo<Product> queryProduct(ProductReq req);
}

View File

@ -1,11 +0,0 @@
package com.muyu.product.service;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 20:35
*/
public interface ProductSkuAttrService {
}

View File

@ -1,8 +0,0 @@
package com.muyu.product.service;
/**
* @Author: wangxinyuan
* @Date: 2024/3/27 19:47
*/
public interface ProductSkuService {
}

View File

@ -1,26 +0,0 @@
package com.muyu.product.service.impl;
import com.muyu.product.domain.ProductBrand;
import com.muyu.product.mapper.ArgumentMapper;
import com.muyu.product.service.ArgumentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author: wangxinyuan
* @Date: 2024/3/28 15:11
*/
@Service
public class ArgumentServiceImpl implements ArgumentService {
@Autowired
private ArgumentMapper argumentMapper;
@Override
public List<ProductBrand> queryBrand() {
return argumentMapper.queryBrand();
}
}

View File

@ -1,25 +0,0 @@
package com.muyu.product.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.muyu.product.domain.ProductBrand;
import com.muyu.product.mapper.ProductBrandMapper;
import com.muyu.product.service.ProductBrandService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 20:32
*/
@Service
public class ProductBrandServiceImpl implements ProductBrandService {
@Autowired
private ProductBrandMapper productBrandMapper;
@Override
public PageInfo<ProductBrand> queryProductBrand(ProductBrand productBrand) {
PageHelper.startPage();
return null;
}
}

View File

@ -1,12 +0,0 @@
package com.muyu.product.service.impl;
import com.muyu.product.service.ProductClassifyService;
import org.springframework.stereotype.Service;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 20:34
*/
@Service
public class ProductClassifyServiceImpl implements ProductClassifyService {
}

View File

@ -1,131 +0,0 @@
package com.muyu.product.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.muyu.product.domain.Product;
import com.muyu.product.domain.req.ProductReq;
import com.muyu.product.handel.ValidationResult;
import com.muyu.product.mapper.ProductMapper;
import com.muyu.product.mapper.ProductSkuMapper;
import com.muyu.product.service.ProductService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.concurrent.CompletableFuture;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 19:49
*/
@Service
@Log4j2
public class ProductServiceImpl implements ProductService {
private final Integer min = 0 ;
private final Integer max = 5 ;
@Autowired
private ProductMapper productMapper;
@Autowired
private ProductSkuMapper productSkuMapper;
private void checkProductParams(ProductReq productReq) {
CompletableFuture<ValidationResult>methodTypeFuture =
CompletableFuture.supplyAsync(() -> checkMethodType(productReq));
CompletableFuture<ValidationResult> skuIdFuture =
CompletableFuture.supplyAsync(() -> findSkuId(productReq));
CompletableFuture<ValidationResult> productNumberFuture =
CompletableFuture.supplyAsync(() -> checkProductNumber(productReq));
CompletableFuture<String> allValidFuture =
methodTypeFuture.thenCombine(skuIdFuture,
(methodTypeResult, skuIdResult) ->
methodTypeResult.isValid() && skuIdResult.isValid())
.thenCombine(productNumberFuture, (previousResult, productNumberResult)
-> previousResult && productNumberResult.isValid())
.thenApply(allValid -> allValid ? "所有检查通过" : "存在检查未通过")
.exceptionally(throwable -> "校验过程发生异常: " + throwable.getMessage());
allValidFuture.thenAccept(System.out::println);
}
private ValidationResult checkProductNumber(ProductReq productReq) {
Integer productNumber = productMapper.findProductNumber(productReq.getProduct());
if(productNumber==null){
return new ValidationResult(false, "产品编号不存在");
}
return new ValidationResult(true,"通过");
}
private ValidationResult findSkuId(ProductReq productReq) {
Integer skuId= productSkuMapper.findSkuId(productReq.getProductSkus());
if(skuId>=Integer.valueOf(String.valueOf(skuId>0))){
return new ValidationResult(false,"skuID不能重复");
}
return new ValidationResult(true,"通过");
}
private ValidationResult checkMethodType(ProductReq productReq) {
if(productReq.getProduct().getMethodType()==null){
return new ValidationResult(false, "不能为空");
}
return new ValidationResult(true,"通过");
}
@Override
public void productInsert(ProductReq productReq) {
long start = System.currentTimeMillis();
//异步推送审核字段是否合格
checkProductParams(productReq);
//添加商品
insertProduct(productReq.getProduct());
//添加服务中间表
insertProductService(productReq);
//添加优惠
insertProductPromotion(productReq);
//保存sku
//TODO
insertProductSku(productReq);
//计算优惠值
//TODO
//calculateProductPrice(productReq);
log.info("耗时:{}",(System.currentTimeMillis()-start));
}
@Override
public PageInfo<Product> queryProduct(ProductReq req) {
PageHelper.startPage(req.getPageNum(), req.getPageSize());
List<Product>products=productMapper.queryProduct(req);
PageInfo<Product> pageInfo = new PageInfo<>(products);
return pageInfo;
}
private void insertProductSku(ProductReq productReq) {
}
private void insertProductPromotion(ProductReq productReq) {
}
private void insertProductService(ProductReq productReq) {
}
private void insertProduct(Product product) {
productMapper.insertProcuduct(product);
}
}

View File

@ -1,12 +0,0 @@
package com.muyu.product.service.impl;
import com.muyu.product.service.ProductSkuAttrService;
import org.springframework.stereotype.Service;
/**
* @Author: wangxinyuan
* @Date: 2024/3/26 20:35
*/
@Service
public class ProductSkuAttrServiceImpl implements ProductSkuAttrService {
}

View File

@ -1,13 +0,0 @@
package com.muyu.product.service.impl;
import com.muyu.product.service.ProductSkuService;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Service;
/**
* @Author: wangxinyuan
* @Date: 2024/3/27 19:47
*/
@Service
public class ProductSkuServiceImpl implements ProductSkuService {
}

View File

@ -3,6 +3,4 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.ArgumentMapper">
<select id="queryBrand" resultType="com.bwie.pinxixiproduct.domain.DTO.Brand">select id,brand_name from t_brand</select>
<select id="queryService" resultType="com.bwie.pinxixiproduct.domain.DTO.Services">select id,service_name from t_service</select>
</mapper>