From c812b7db045ed72a38cc82ff9b380cee35c5e833 Mon Sep 17 00:00:00 2001 From: ZhangXushuo <3508242435.com> Date: Tue, 17 Oct 2023 09:15:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 47 ++++ bawei-mall-product-cache/pom.xml | 37 +++ .../mall/product/cache/ProductInfoCache.java | 177 +++++++++++++ bawei-mall-product-common/pom.xml | 28 ++ .../product/domain/MallProductBrandInfo.java | 123 +++++++++ .../mall/product/domain/MallProductInfo.java | 239 ++++++++++++++++++ .../product/domain/MallProductReviewInfo.java | 153 +++++++++++ .../domain/MallProductRuleAttrInfo.java | 92 +++++++ .../product/domain/MallProductRuleInfo.java | 96 +++++++ .../product/domain/MallProductSkuInfo.java | 196 ++++++++++++++ .../product/domain/MallProductTypeInfo.java | 111 ++++++++ .../product/domain/model/ProductModel.java | 185 ++++++++++++++ .../product/domain/model/RuleAttrModel.java | 43 ++++ .../mall/product/domain/model/RuleModel.java | 31 +++ .../mall/product/domain/model/SkuModel.java | 50 ++++ .../reponse/ProductDetailsResponse.java | 54 ++++ .../domain/reponse/ProductInfoResponse.java | 24 ++ .../domain/request/ProductInfoRequest.java | 27 ++ .../product/domain/request/RuleRequest.java | 25 ++ bawei-mall-product-remote/pom.xml | 27 ++ .../RemoteProductInfoFallbackFactory.java | 56 ++++ .../product/remote/RemoteProductInfo.java | 48 ++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + bawei-mall-product-server/pom.xml | 107 ++++++++ .../product/BaWeiMallProductApplication.java | 26 ++ .../MallProductBrandInfoController.java | 105 ++++++++ .../controller/MallProductInfoController.java | 144 +++++++++++ .../MallProductReviewInfoController.java | 105 ++++++++ .../MallProductRuleAttrInfoController.java | 105 ++++++++ .../MallProductRuleInfoController.java | 115 +++++++++ .../MallProductSkuInfoController.java | 105 ++++++++ .../MallProductTypeInfoController.java | 114 +++++++++ .../product/controller/TestController.java | 52 ++++ .../mapper/MallProductBrandInfoMapper.java | 61 +++++ .../product/mapper/MallProductInfoMapper.java | 72 ++++++ .../mapper/MallProductReviewInfoMapper.java | 61 +++++ .../mapper/MallProductRuleAttrInfoMapper.java | 77 ++++++ .../mapper/MallProductRuleInfoMapper.java | 61 +++++ .../mapper/MallProductSkuInfoMapper.java | 82 ++++++ .../mapper/MallProductTypeInfoMapper.java | 61 +++++ .../service/IMallProductBrandInfoService.java | 61 +++++ .../service/IMallProductInfoService.java | 72 ++++++ .../IMallProductReviewInfoService.java | 61 +++++ .../IMallProductRuleAttrInfoService.java | 93 +++++++ .../service/IMallProductRuleInfoService.java | 62 +++++ .../service/IMallProductSkuInfoService.java | 88 +++++++ .../service/IMallProductTypeInfoService.java | 61 +++++ .../impl/MallProductBrandInfoServiceImpl.java | 98 +++++++ .../impl/MallProductInfoServiceImpl.java | 200 +++++++++++++++ .../MallProductReviewInfoServiceImpl.java | 100 ++++++++ .../MallProductRuleAttrInfoServiceImpl.java | 112 ++++++++ .../impl/MallProductRuleInfoServiceImpl.java | 126 +++++++++ .../impl/MallProductSkuInfoServiceImpl.java | 120 +++++++++ .../impl/MallProductTypeInfoServiceImpl.java | 111 ++++++++ .../src/main/resources/banner.txt | 2 + .../src/main/resources/bootstrap.yml | 27 ++ .../src/main/resources/logback.xml | 74 ++++++ .../product/MallProductBrandInfoMapper.xml | 93 +++++++ .../mapper/product/MallProductInfoMapper.xml | 191 ++++++++++++++ .../product/MallProductReviewInfoMapper.xml | 103 ++++++++ .../product/MallProductRuleAttrInfoMapper.xml | 80 ++++++ .../product/MallProductRuleInfoMapper.xml | 86 +++++++ .../product/MallProductSkuInfoMapper.xml | 126 +++++++++ .../product/MallProductTypeInfoMapper.xml | 94 +++++++ pom.xml | 27 ++ 65 files changed, 5591 insertions(+) create mode 100644 .gitignore create mode 100644 bawei-mall-product-cache/pom.xml create mode 100644 bawei-mall-product-cache/src/main/java/com/bawei/mall/product/cache/ProductInfoCache.java create mode 100644 bawei-mall-product-common/pom.xml create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductBrandInfo.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductInfo.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductReviewInfo.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductRuleAttrInfo.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductRuleInfo.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductSkuInfo.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductTypeInfo.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/ProductModel.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/RuleAttrModel.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/RuleModel.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/SkuModel.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/reponse/ProductDetailsResponse.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/reponse/ProductInfoResponse.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/request/ProductInfoRequest.java create mode 100644 bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/request/RuleRequest.java create mode 100644 bawei-mall-product-remote/pom.xml create mode 100644 bawei-mall-product-remote/src/main/java/com/bawei/mall/product/factory/RemoteProductInfoFallbackFactory.java create mode 100644 bawei-mall-product-remote/src/main/java/com/bawei/mall/product/remote/RemoteProductInfo.java create mode 100644 bawei-mall-product-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 bawei-mall-product-server/pom.xml create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/BaWeiMallProductApplication.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductBrandInfoController.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductInfoController.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductReviewInfoController.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductRuleAttrInfoController.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductRuleInfoController.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductSkuInfoController.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductTypeInfoController.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/TestController.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductBrandInfoMapper.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductInfoMapper.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductReviewInfoMapper.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductRuleAttrInfoMapper.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductRuleInfoMapper.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductSkuInfoMapper.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductTypeInfoMapper.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductBrandInfoService.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductInfoService.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductReviewInfoService.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductRuleAttrInfoService.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductRuleInfoService.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductSkuInfoService.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductTypeInfoService.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductBrandInfoServiceImpl.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductInfoServiceImpl.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductReviewInfoServiceImpl.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductRuleAttrInfoServiceImpl.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductRuleInfoServiceImpl.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductSkuInfoServiceImpl.java create mode 100644 bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductTypeInfoServiceImpl.java create mode 100644 bawei-mall-product-server/src/main/resources/banner.txt create mode 100644 bawei-mall-product-server/src/main/resources/bootstrap.yml create mode 100644 bawei-mall-product-server/src/main/resources/logback.xml create mode 100644 bawei-mall-product-server/src/main/resources/mapper/product/MallProductBrandInfoMapper.xml create mode 100644 bawei-mall-product-server/src/main/resources/mapper/product/MallProductInfoMapper.xml create mode 100644 bawei-mall-product-server/src/main/resources/mapper/product/MallProductReviewInfoMapper.xml create mode 100644 bawei-mall-product-server/src/main/resources/mapper/product/MallProductRuleAttrInfoMapper.xml create mode 100644 bawei-mall-product-server/src/main/resources/mapper/product/MallProductRuleInfoMapper.xml create mode 100644 bawei-mall-product-server/src/main/resources/mapper/product/MallProductSkuInfoMapper.xml create mode 100644 bawei-mall-product-server/src/main/resources/mapper/product/MallProductTypeInfoMapper.xml create mode 100644 pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..05d7c76 --- /dev/null +++ b/.gitignore @@ -0,0 +1,47 @@ +###################################################################### +# Build Tools + +.gradle +/build/ +!gradle/wrapper/gradle-wrapper.jar + +target/ +!.mvn/wrapper/maven-wrapper.jar + +###################################################################### +# IDE + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### JRebel ### +rebel.xml +### NetBeans ### +nbproject/private/ +build/* +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ +target/ + +###################################################################### +# Others +*.log +*.xml.versionsBackup +*.swp + +!*/build/*.java +!*/build/*.html +!*/build/*.xml diff --git a/bawei-mall-product-cache/pom.xml b/bawei-mall-product-cache/pom.xml new file mode 100644 index 0000000..4d5951c --- /dev/null +++ b/bawei-mall-product-cache/pom.xml @@ -0,0 +1,37 @@ + + + + bawei-mall-product + com.bawei + 3.6.0 + + 4.0.0 + + bawei-mall-product-cache + + + 8 + 8 + UTF-8 + + + + + + + com.bawei + bawei-common-cache + + + + + com.bawei + bawei-mall-product-remote + + + diff --git a/bawei-mall-product-cache/src/main/java/com/bawei/mall/product/cache/ProductInfoCache.java b/bawei-mall-product-cache/src/main/java/com/bawei/mall/product/cache/ProductInfoCache.java new file mode 100644 index 0000000..45c0fe6 --- /dev/null +++ b/bawei-mall-product-cache/src/main/java/com/bawei/mall/product/cache/ProductInfoCache.java @@ -0,0 +1,177 @@ +package com.bawei.mall.product.cache; + +import com.bawei.cache.annotation.CacheRole; +import com.bawei.cache.db.BaseDatabaseCache; +import com.bawei.common.core.domain.R; +import com.bawei.common.core.exception.ServiceException; +import com.bawei.common.core.utils.SpringUtils; +import com.bawei.common.core.utils.StringUtils; +import com.bawei.common.core.utils.reflect.ReflectUtils; +import com.bawei.common.redis.service.RedisService; +import com.bawei.mall.product.domain.reponse.ProductDetailsResponse; +import com.bawei.mall.product.remote.RemoteProductInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author DongZl + * @description: 商品缓存 + * @Date 2022-10-19 上午 08:59 + */ +@Component +public class ProductInfoCache implements BaseDatabaseCache { + + /** + * 日志 + */ + private final static Logger log = LoggerFactory.getLogger(ProductInfoCache.class); + + private static final String keyPre = "product:info:"; + + /** + * 缓存判断是否在本服务的依据 + * 如果为null则表示不在本服务 + * 如果有值,则表示在本服务 + */ + private static Class clazz = null; + + static { + try { + clazz = Class.forName("com.bawei.mall.product.service.impl.MallProductInfoServiceImpl"); + } catch (ClassNotFoundException e) { + log.info("缓存启动,不是在本服务当中"); + } + } + + /** + * 商品的业务层 + */ + private Object productInfoService; + + private Object getProductInfoService(){ + if (productInfoService == null){ + productInfoService = SpringUtils.getBean(clazz); + } + return productInfoService; + } + + /** + * 缓存对象 + */ + private final RedisService redisService; + + @Autowired + private RemoteProductInfo remoteProductInfo; + + public ProductInfoCache (RedisService redisService) { + this.redisService = redisService; + } + + /** + * 根据数据ID拼接缓存key + * @param key 数据Id + * @return + */ + @Override + public String getKey (Long key) { + if (key == null){ + throw new ServiceException("商品缓存key非法"); + } + return keyPre + key.toString(); + } + + /** + * 存储缓存 + * @param key 键 + * @param val 值 + * @return + */ + @Override + @CacheRole(serverName = "mall-product") + public boolean put (Long key, ProductDetailsResponse val) { + try { + redisService.setCacheObject(getKey(key), val); + }catch (Exception e){ + log.error("商品缓存存储异常key:[{}],val:[{}]", key , val , e); + return false; + } + return true; + } + + /** + * 删除缓存 + * @param key 键 + * @return + */ + @Override + @CacheRole(serverName = "mall-product") + public boolean remove (Long key) { + log.info("删除数据:[{}]", getKey(key)); + return redisService.deleteObject(getKey(key)); + } + + /** + * 获取缓存 + * @param key 键 + * @return + */ + @Override + public ProductDetailsResponse get (Long key) { + ProductDetailsResponse productDetailsResponse = redisService.getCacheObject(getKey(key)); + // 如果为 空则需要去数据库去数据 + if (productDetailsResponse == null){ + productDetailsResponse = this.getData(key); + // 防止击穿 + this.put(key,productDetailsResponse == null ? + new ProductDetailsResponse() : productDetailsResponse); + } + return productDetailsResponse; + } + + /** + * 操作缓存 一定有两种情况 !!! + * 缓存在本服务 + * 缓存在其他服务 + * @param key 数据ID + * @return + */ + @Override + @CacheRole(serverName = "mall-product") + public ProductDetailsResponse getData (Long key) { + // 如果clazz是空的话,表示我需要走的feign调用 + // 如果clazz不是空的话,我是不是需要走本服务 + if (clazz != null){ + Object productInfoService = getProductInfoService(); + if (productInfoService == null){ + log.error("商品缓存获取失败key:[{}]",key); + throw new ServiceException(StringUtils.format("商品缓存获取失败key:[{}]",key)); + } + ProductDetailsResponse productDetailsResponse = ReflectUtils.invokeMethodByName(productInfoService, + "selectProductDetailsById", + new Object[]{key}); + log.info("商品缓存,从数据库获取信息成功key:[{}],val:[{}]", key, productDetailsResponse); + return productDetailsResponse; + }else { + R productResponse = remoteProductInfo.getProductResponse(key); + if (productResponse.isError()){ + log.error("商品缓存,远程调用获取信息失败key:[{}],调用结果:[{}]", key, productResponse); + return null; + } + log.info("商品缓存,远程调用获取信息成功key:[{}],val:[{}]", key, productResponse.getData()); + return productResponse.getData(); + } + } + + /** + * 刷新缓存 + * @param key + * @return + */ + @Override + @CacheRole(serverName = "mall-product") + public boolean refreshData (Long key) { + return this.put(key, this.getData(key)); + } +} diff --git a/bawei-mall-product-common/pom.xml b/bawei-mall-product-common/pom.xml new file mode 100644 index 0000000..b699d49 --- /dev/null +++ b/bawei-mall-product-common/pom.xml @@ -0,0 +1,28 @@ + + + + bawei-mall-product + com.bawei + 3.6.0 + + 4.0.0 + + bawei-mall-product-common + + + 17 + 17 + UTF-8 + + + + + + + com.bawei + bawei-common-core + + + diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductBrandInfo.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductBrandInfo.java new file mode 100644 index 0000000..a822d90 --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductBrandInfo.java @@ -0,0 +1,123 @@ +package com.bawei.mall.product.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bawei.common.core.annotation.Excel; +import com.bawei.common.core.web.domain.BaseEntity; + +/** + * 商品品牌对象 mall_product_brand_info + * + * @author DongZeLiang + * @date 2022-09-15 + */ +public class MallProductBrandInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 品牌名称 */ + @Excel(name = "品牌名称") + private String name; + + /** 品牌描述 */ + @Excel(name = "品牌描述") + private String productDesc; + + /** 品牌介绍 */ + private String content; + + /** 品牌logo */ + @Excel(name = "品牌logo") + private String logo; + + /** 品牌状态 */ + @Excel(name = "品牌状态") + private String status; + + /** 乐观锁 */ + private Long revision; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setProductDesc(String productDesc) + { + this.productDesc = productDesc; + } + + public String getProductDesc() + { + return productDesc; + } + public void setContent(String content) + { + this.content = content; + } + + public String getContent() + { + return content; + } + public void setLogo(String logo) + { + this.logo = logo; + } + + public String getLogo() + { + return logo; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + public void setRevision(Long revision) + { + this.revision = revision; + } + + public Long getRevision() + { + return revision; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("productDesc", getProductDesc()) + .append("content", getContent()) + .append("logo", getLogo()) + .append("status", getStatus()) + .append("revision", getRevision()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductInfo.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductInfo.java new file mode 100644 index 0000000..ab8f8bf --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductInfo.java @@ -0,0 +1,239 @@ +package com.bawei.mall.product.domain; + +import io.swagger.annotations.ApiParam; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bawei.common.core.annotation.Excel; +import com.bawei.common.core.web.domain.BaseEntity; + +/** + * 商品信息对象 mall_product_info + * + * @author DongZeLiang + * @date 2022-09-19 + */ +public class MallProductInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + @ApiParam("ID自增") + private Long id; + + /** 商品名称 */ + @Excel(name = "商品名称") + @ApiParam("商品名称") + private String name; + + /** 商品描述 */ + @Excel(name = "商品描述") + private String productDesc; + + /** 商品类型 */ + @Excel(name = "商品类型") + private String type; + + /** 冗余字段 */ + @Excel(name = "冗余字段") + private String typeIds; + + /** 商品主图 */ + @Excel(name = "商品主图") + private String img; + + /** 商品轮播图 */ + @Excel(name = "商品轮播图") + private String carouselImages; + + /** 商品评论数 */ + @Excel(name = "商品评论数") + private Long commentCount; + + /** 商品收藏人气 */ + @Excel(name = "商品收藏人气") + private Long collectCount; + + /** 品牌信息 */ + @Excel(name = "品牌信息") + private String brand; + + /** 商品状态 */ + @Excel(name = "商品状态") + private String status; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 搜索关键字 */ + @Excel(name = "搜索关键字") + private String keywords; + + /** 规格信息 */ + @Excel(name = "规格信息") + private Long ruleId; + + /** 乐观锁 */ + private Long revision; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setProductDesc(String productDesc) + { + this.productDesc = productDesc; + } + + public String getProductDesc() + { + return productDesc; + } + public void setType(String type) + { + this.type = type; + } + + public String getType() + { + return type; + } + public void setTypeIds(String typeIds) + { + this.typeIds = typeIds; + } + + public String getTypeIds() + { + return typeIds; + } + public void setImg(String img) + { + this.img = img; + } + + public String getImg() + { + return img; + } + public void setCarouselImages(String carouselImages) + { + this.carouselImages = carouselImages; + } + + public String getCarouselImages() + { + return carouselImages; + } + public void setCommentCount(Long commentCount) + { + this.commentCount = commentCount; + } + + public Long getCommentCount() + { + return commentCount; + } + public void setCollectCount(Long collectCount) + { + this.collectCount = collectCount; + } + + public Long getCollectCount() + { + return collectCount; + } + public void setBrand(String brand) + { + this.brand = brand; + } + + public String getBrand() + { + return brand; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + public void setUnit(String unit) + { + this.unit = unit; + } + + public String getUnit() + { + return unit; + } + public void setKeywords(String keywords) + { + this.keywords = keywords; + } + + public String getKeywords() + { + return keywords; + } + public void setRuleId(Long ruleId) + { + this.ruleId = ruleId; + } + + public Long getRuleId() + { + return ruleId; + } + public void setRevision(Long revision) + { + this.revision = revision; + } + + public Long getRevision() + { + return revision; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("productDesc", getProductDesc()) + .append("type", getType()) + .append("typeIds", getTypeIds()) + .append("img", getImg()) + .append("carouselImages", getCarouselImages()) + .append("commentCount", getCommentCount()) + .append("collectCount", getCollectCount()) + .append("brand", getBrand()) + .append("status", getStatus()) + .append("unit", getUnit()) + .append("keywords", getKeywords()) + .append("ruleId", getRuleId()) + .append("revision", getRevision()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductReviewInfo.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductReviewInfo.java new file mode 100644 index 0000000..3934f3c --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductReviewInfo.java @@ -0,0 +1,153 @@ +package com.bawei.mall.product.domain; + +import java.math.BigDecimal; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bawei.common.core.annotation.Excel; +import com.bawei.common.core.web.domain.BaseEntity; + +/** + * 商品评价对象 mall_product_review_info + * + * @author DongZeLiang + * @date 2022-09-26 + */ +public class MallProductReviewInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 商品名称 */ + @Excel(name = "商品名称") + private Long productId; + + /** 商品SKU */ + @Excel(name = "商品SKU") + private Long productSkuId; + + /** 商品评价图片 */ + @Excel(name = "商品评价图片") + private String reviewImages; + + /** 商品评价信息 */ + @Excel(name = "商品评价信息") + private String content; + + /** 评论分数 */ + @Excel(name = "评论分数") + private BigDecimal start; + + /** 是否隐藏 */ + @Excel(name = "是否隐藏") + private String isDispaly; + + /** 是否删除 */ + @Excel(name = "是否删除") + private String isDel; + + /** 乐观锁 */ + private Long revision; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setProductId(Long productId) + { + this.productId = productId; + } + + public Long getProductId() + { + return productId; + } + public void setProductSkuId(Long productSkuId) + { + this.productSkuId = productSkuId; + } + + public Long getProductSkuId() + { + return productSkuId; + } + public void setReviewImages(String reviewImages) + { + this.reviewImages = reviewImages; + } + + public String getReviewImages() + { + return reviewImages; + } + public void setContent(String content) + { + this.content = content; + } + + public String getContent() + { + return content; + } + public void setStart(BigDecimal start) + { + this.start = start; + } + + public BigDecimal getStart() + { + return start; + } + public void setIsDispaly(String isDispaly) + { + this.isDispaly = isDispaly; + } + + public String getIsDispaly() + { + return isDispaly; + } + public void setIsDel(String isDel) + { + this.isDel = isDel; + } + + public String getIsDel() + { + return isDel; + } + public void setRevision(Long revision) + { + this.revision = revision; + } + + public Long getRevision() + { + return revision; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("productId", getProductId()) + .append("productSkuId", getProductSkuId()) + .append("reviewImages", getReviewImages()) + .append("content", getContent()) + .append("start", getStart()) + .append("isDispaly", getIsDispaly()) + .append("isDel", getIsDel()) + .append("revision", getRevision()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductRuleAttrInfo.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductRuleAttrInfo.java new file mode 100644 index 0000000..8155b4f --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductRuleAttrInfo.java @@ -0,0 +1,92 @@ +package com.bawei.mall.product.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bawei.common.core.annotation.Excel; +import com.bawei.common.core.web.domain.BaseEntity; + +/** + * 商品规格详情对象 mall_product_rule_attr_info + * + * @author DongZeLiang + * @date 2022-09-16 + */ +public class MallProductRuleAttrInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 规格 */ + @Excel(name = "规格") + private Long ruleId; + + /** 类目名称 */ + @Excel(name = "类目名称") + private String name; + + /** 规格值 */ + @Excel(name = "规格值") + private String attrValue; + + /** 乐观锁 */ + private Long revision; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setRuleId(Long ruleId) + { + this.ruleId = ruleId; + } + + public Long getRuleId() + { + return ruleId; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setAttrValue(String attrValue) + { + this.attrValue = attrValue; + } + + public String getAttrValue() + { + return attrValue; + } + public void setRevision(Long revision) + { + this.revision = revision; + } + + public Long getRevision() + { + return revision; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("ruleId", getRuleId()) + .append("name", getName()) + .append("attrValue", getAttrValue()) + .append("revision", getRevision()) + .toString(); + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductRuleInfo.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductRuleInfo.java new file mode 100644 index 0000000..f4aff70 --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductRuleInfo.java @@ -0,0 +1,96 @@ +package com.bawei.mall.product.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bawei.common.core.annotation.Excel; +import com.bawei.common.core.web.domain.BaseEntity; + +/** + * 商品规格对象 mall_product_rule_info + * + * @author DongZeLiang + * @date 2022-09-16 + */ +public class MallProductRuleInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 规格名称 */ + @Excel(name = "规格名称") + private String name; + + /** 规格详情 */ + @Excel(name = "规格详情") + private String ruleAttr; + + /** 规格状态 */ + @Excel(name = "规格状态") + private String status; + + /** 乐观锁 */ + private Long revision; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setRuleAttr(String ruleAttr) + { + this.ruleAttr = ruleAttr; + } + + public String getRuleAttr() + { + return ruleAttr; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + public void setRevision(Long revision) + { + this.revision = revision; + } + + public Long getRevision() + { + return revision; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("ruleAttr", getRuleAttr()) + .append("status", getStatus()) + .append("revision", getRevision()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductSkuInfo.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductSkuInfo.java new file mode 100644 index 0000000..9b0b2b3 --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductSkuInfo.java @@ -0,0 +1,196 @@ +package com.bawei.mall.product.domain; + +import java.math.BigDecimal; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bawei.common.core.annotation.Excel; +import com.bawei.common.core.web.domain.BaseEntity; + +/** + * 商品SKU对象 mall_product_sku_info + * + * @author DongZeLiang + * @date 2022-09-19 + */ +public class MallProductSkuInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 商品信息 */ + @Excel(name = "商品信息") + private Long productId; + + /** 商品规格 */ + @Excel(name = "商品规格") + private String sku; + + /** 商品库存 */ + @Excel(name = "商品库存") + private Long stock; + + /** 商品价格 */ + @Excel(name = "商品价格") + private BigDecimal price; + + /** 商品进价 */ + @Excel(name = "商品进价") + private BigDecimal purchasePrice; + + /** 商品售价 */ + @Excel(name = "商品售价") + private BigDecimal sellingPrice; + + /** 规格图片 */ + @Excel(name = "规格图片") + private String image; + + /** 编号 */ + @Excel(name = "编号") + private String number; + + /** 重量 */ + @Excel(name = "重量") + private BigDecimal weight; + + /** 体积 */ + @Excel(name = "体积") + private BigDecimal volume; + + /** 乐观锁 */ + @Excel(name = "乐观锁") + private Long revision; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setProductId(Long productId) + { + this.productId = productId; + } + + public Long getProductId() + { + return productId; + } + public void setSku(String sku) + { + this.sku = sku; + } + + public String getSku() + { + return sku; + } + public void setStock(Long stock) + { + this.stock = stock; + } + + public Long getStock() + { + return stock; + } + public void setPrice(BigDecimal price) + { + this.price = price; + } + + public BigDecimal getPrice() + { + return price; + } + public void setPurchasePrice(BigDecimal purchasePrice) + { + this.purchasePrice = purchasePrice; + } + + public BigDecimal getPurchasePrice() + { + return purchasePrice; + } + public void setSellingPrice(BigDecimal sellingPrice) + { + this.sellingPrice = sellingPrice; + } + + public BigDecimal getSellingPrice() + { + return sellingPrice; + } + public void setImage(String image) + { + this.image = image; + } + + public String getImage() + { + return image; + } + public void setNumber(String number) + { + this.number = number; + } + + public String getNumber() + { + return number; + } + public void setWeight(BigDecimal weight) + { + this.weight = weight; + } + + public BigDecimal getWeight() + { + return weight; + } + public void setVolume(BigDecimal volume) + { + this.volume = volume; + } + + public BigDecimal getVolume() + { + return volume; + } + public void setRevision(Long revision) + { + this.revision = revision; + } + + public Long getRevision() + { + return revision; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("productId", getProductId()) + .append("sku", getSku()) + .append("stock", getStock()) + .append("price", getPrice()) + .append("purchasePrice", getPurchasePrice()) + .append("sellingPrice", getSellingPrice()) + .append("image", getImage()) + .append("number", getNumber()) + .append("weight", getWeight()) + .append("volume", getVolume()) + .append("revision", getRevision()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductTypeInfo.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductTypeInfo.java new file mode 100644 index 0000000..1889a08 --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/MallProductTypeInfo.java @@ -0,0 +1,111 @@ +package com.bawei.mall.product.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bawei.common.core.annotation.Excel; +import com.bawei.common.core.web.domain.TreeEntity; + +/** + * 商品类型对象 mall_product_type_info + * + * @author DongZeLiang + * @date 2022-09-16 + */ +public class MallProductTypeInfo extends TreeEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 类型名称 */ + @Excel(name = "类型名称") + private String name; + + /** 类型图片 */ + @Excel(name = "类型图片") + private String image; + + /** 类型状态 */ + @Excel(name = "类型状态") + private String status; + + /** 类型排序 */ + @Excel(name = "类型排序") + private Long orderBy; + + /** 乐观锁 */ + private Long revision; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setImage(String image) + { + this.image = image; + } + + public String getImage() + { + return image; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + public void setOrderBy(Long orderBy) + { + this.orderBy = orderBy; + } + + public Long getOrderBy() + { + return orderBy; + } + public void setRevision(Long revision) + { + this.revision = revision; + } + + public Long getRevision() + { + return revision; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("image", getImage()) + .append("status", getStatus()) + .append("orderBy", getOrderBy()) + .append("parentId", getParentId()) + .append("revision", getRevision()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/ProductModel.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/ProductModel.java new file mode 100644 index 0000000..e39e0ec --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/ProductModel.java @@ -0,0 +1,185 @@ +package com.bawei.mall.product.domain.model; + +import com.bawei.common.core.annotation.Excel; +import com.bawei.common.core.web.domain.BaseEntity; +import io.swagger.annotations.ApiParam; + +/** + * @author DongZl + * @description: 商品详情 - 基本信息 + * @Date 2022-10-18 下午 01:57 + */ +public class ProductModel extends BaseEntity { + + /** ID */ + private Long id; + + /** 商品名称 */ + private String name; + + /** 商品描述 */ + private String productDesc; + + /** 商品类型 */ + private String type; + private String typeName; + + /** 冗余字段 */ + private String typeIds; + + /** 商品主图 */ + private String img; + + /** 商品轮播图 */ + private String carouselImages; + + /** 商品评论数 */ + private Long commentCount; + + /** 商品收藏人气 */ + private Long collectCount; + + /** 品牌信息 */ + private String brand; + private String brandName; + + /** 商品状态 */ + private String status; + + /** 单位 */ + private String unit; + + /** 搜索关键字 */ + private String keywords; + + /** 规格信息 */ + private Long ruleId; + + public Long getId () { + return id; + } + + public void setId (Long id) { + this.id = id; + } + + public String getName () { + return name; + } + + public void setName (String name) { + this.name = name; + } + + public String getProductDesc () { + return productDesc; + } + + public void setProductDesc (String productDesc) { + this.productDesc = productDesc; + } + + public String getType () { + return type; + } + + public void setType (String type) { + this.type = type; + } + + public String getTypeName () { + return typeName; + } + + public void setTypeName (String typeName) { + this.typeName = typeName; + } + + public String getTypeIds () { + return typeIds; + } + + public void setTypeIds (String typeIds) { + this.typeIds = typeIds; + } + + public String getImg () { + return img; + } + + public void setImg (String img) { + this.img = img; + } + + public String getCarouselImages () { + return carouselImages; + } + + public void setCarouselImages (String carouselImages) { + this.carouselImages = carouselImages; + } + + public Long getCommentCount () { + return commentCount; + } + + public void setCommentCount (Long commentCount) { + this.commentCount = commentCount; + } + + public Long getCollectCount () { + return collectCount; + } + + public void setCollectCount (Long collectCount) { + this.collectCount = collectCount; + } + + public String getBrand () { + return brand; + } + + public void setBrand (String brand) { + this.brand = brand; + } + + public String getBrandName () { + return brandName; + } + + public void setBrandName (String brandName) { + this.brandName = brandName; + } + + public String getStatus () { + return status; + } + + public void setStatus (String status) { + this.status = status; + } + + public String getUnit () { + return unit; + } + + public void setUnit (String unit) { + this.unit = unit; + } + + public String getKeywords () { + return keywords; + } + + public void setKeywords (String keywords) { + this.keywords = keywords; + } + + public Long getRuleId () { + return ruleId; + } + + public void setRuleId (Long ruleId) { + this.ruleId = ruleId; + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/RuleAttrModel.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/RuleAttrModel.java new file mode 100644 index 0000000..38598ae --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/RuleAttrModel.java @@ -0,0 +1,43 @@ +package com.bawei.mall.product.domain.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author DongZl + * @description: 规格类型详情模型 + * @Date 2022-9-17 上午 09:28 + */ +public class RuleAttrModel { + + private String ruleType; + + private List ruleAttrList; + + private String ruleAttrStr; + + public String getRuleType () { + return ruleType; + } + + public void setRuleType (String ruleType) { + this.ruleType = ruleType; + } + + public List getRuleAttrList () { + return ruleAttrList; + } + + public void setRuleAttrList (List ruleAttrList) { + this.ruleAttrList = ruleAttrList; + if (this.ruleAttrList != null){ + this.ruleAttrStr = this.ruleAttrList.stream().collect(Collectors.joining(",")); + } + } + + public String getRuleAttrStr () { + return ruleAttrStr; + } + +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/RuleModel.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/RuleModel.java new file mode 100644 index 0000000..b23140e --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/RuleModel.java @@ -0,0 +1,31 @@ +package com.bawei.mall.product.domain.model; + +import java.util.List; + +/** + * @author DongZl + * @description: 规格模型 + * @Date 2022-9-17 上午 09:33 + */ +public class RuleModel { + + private Long ruleId; + + private List ruleList; + + public Long getRuleId () { + return ruleId; + } + + public void setRuleId (Long ruleId) { + this.ruleId = ruleId; + } + + public List getRuleList () { + return ruleList; + } + + public void setRuleList (List ruleList) { + this.ruleList = ruleList; + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/SkuModel.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/SkuModel.java new file mode 100644 index 0000000..784983a --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/model/SkuModel.java @@ -0,0 +1,50 @@ +package com.bawei.mall.product.domain.model; + +import com.bawei.common.core.exception.ServiceException; +import com.bawei.mall.product.domain.MallProductSkuInfo; + +import java.util.List; + +/** + * @author DongZl + * @description: 批量添加sku + * @Date 2022-9-24 上午 10:23 + */ +public class SkuModel { + + private Long productId; + + private List skuInfoList; + + private SkuModel () { + } + + private SkuModel (Long productId, List skuInfoList) { + this.productId = productId; + this.skuInfoList = skuInfoList; + } + + public static SkuModel builderSkuModel(Long productId, List skuInfoList){ + if (productId == null){ + throw new ServiceException("商品ID不可为空"); + } + + return new SkuModel(productId, skuInfoList); + } + + public Long getProductId () { + return productId; + } + + public void setProductId (Long productId) { + this.productId = productId; + } + + public List getSkuInfoList () { + return skuInfoList; + } + + public void setSkuInfoList (List skuInfoList) { + this.skuInfoList = skuInfoList; + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/reponse/ProductDetailsResponse.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/reponse/ProductDetailsResponse.java new file mode 100644 index 0000000..4a96b66 --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/reponse/ProductDetailsResponse.java @@ -0,0 +1,54 @@ +package com.bawei.mall.product.domain.reponse; + +import com.bawei.mall.product.domain.MallProductRuleInfo; +import com.bawei.mall.product.domain.MallProductSkuInfo; +import com.bawei.mall.product.domain.model.ProductModel; + +import java.util.List; + +/** + * @author DongZl + * @description: 商品详情 + * @Date 2022-10-18 下午 02:00 + */ +public class ProductDetailsResponse { + + /** + * 商品基本信息 + */ + private ProductModel product; + + /** + * 商品的sku信息 + */ + private List skuList; + + /** + * 商品规格信息 + */ + private MallProductRuleInfo productRule; + + public ProductModel getProduct () { + return product; + } + + public void setProduct (ProductModel product) { + this.product = product; + } + + public List getSkuList () { + return skuList; + } + + public void setSkuList (List skuList) { + this.skuList = skuList; + } + + public MallProductRuleInfo getProductRule () { + return productRule; + } + + public void setProductRule (MallProductRuleInfo productRule) { + this.productRule = productRule; + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/reponse/ProductInfoResponse.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/reponse/ProductInfoResponse.java new file mode 100644 index 0000000..d8a1b60 --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/reponse/ProductInfoResponse.java @@ -0,0 +1,24 @@ +package com.bawei.mall.product.domain.reponse; + +import com.bawei.mall.product.domain.MallProductInfo; +import com.bawei.mall.product.domain.MallProductSkuInfo; + +import java.util.List; + +/** + * @author DongZl + * @description: + * @Date 2022-9-24 上午 11:27 + */ +public class ProductInfoResponse extends MallProductInfo { + + private List skuInfoList; + + public List getSkuInfoList () { + return skuInfoList; + } + + public void setSkuInfoList (List skuInfoList) { + this.skuInfoList = skuInfoList; + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/request/ProductInfoRequest.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/request/ProductInfoRequest.java new file mode 100644 index 0000000..defa97b --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/request/ProductInfoRequest.java @@ -0,0 +1,27 @@ +package com.bawei.mall.product.domain.request; + +import com.bawei.mall.product.domain.MallProductInfo; +import com.bawei.mall.product.domain.MallProductSkuInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; + +import java.util.List; + +/** + * @author DongZl + * @description: 商品信息入参 + * @Date 2022-9-24 上午 10:34 + */ +public class ProductInfoRequest extends MallProductInfo { + + @ApiParam("sku集合") + private List skuInfoList; + + public List getSkuInfoList () { + return skuInfoList; + } + + public void setSkuInfoList (List skuInfoList) { + this.skuInfoList = skuInfoList; + } +} diff --git a/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/request/RuleRequest.java b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/request/RuleRequest.java new file mode 100644 index 0000000..549a850 --- /dev/null +++ b/bawei-mall-product-common/src/main/java/com/bawei/mall/product/domain/request/RuleRequest.java @@ -0,0 +1,25 @@ +package com.bawei.mall.product.domain.request; + +import com.bawei.mall.product.domain.MallProductRuleInfo; +import com.bawei.mall.product.domain.model.RuleAttrModel; + +import java.util.List; + +/** + * @author DongZl + * @description: 规格请求对象 + * @Date 2022-9-17 上午 09:29 + */ + +public class RuleRequest extends MallProductRuleInfo { + + private List ruleList; + + public List getRuleList () { + return ruleList; + } + + public void setRuleList (List ruleList) { + this.ruleList = ruleList; + } +} diff --git a/bawei-mall-product-remote/pom.xml b/bawei-mall-product-remote/pom.xml new file mode 100644 index 0000000..7d6a89b --- /dev/null +++ b/bawei-mall-product-remote/pom.xml @@ -0,0 +1,27 @@ + + + + bawei-mall-product + com.bawei + 3.6.0 + + 4.0.0 + + bawei-mall-product-remote + + + 17 + 17 + UTF-8 + + + + + + com.bawei + bawei-common-core + + + diff --git a/bawei-mall-product-remote/src/main/java/com/bawei/mall/product/factory/RemoteProductInfoFallbackFactory.java b/bawei-mall-product-remote/src/main/java/com/bawei/mall/product/factory/RemoteProductInfoFallbackFactory.java new file mode 100644 index 0000000..0a7ff0a --- /dev/null +++ b/bawei-mall-product-remote/src/main/java/com/bawei/mall/product/factory/RemoteProductInfoFallbackFactory.java @@ -0,0 +1,56 @@ +package com.bawei.mall.product.factory; + +import com.bawei.common.core.domain.R; +import com.bawei.common.core.utils.StringUtils; +import com.bawei.common.core.web.domain.AjaxResult; +import com.bawei.common.core.web.page.TableDataInfo; +import com.bawei.mall.product.domain.MallProductInfo; +import com.bawei.mall.product.domain.reponse.ProductDetailsResponse; +import com.bawei.mall.product.domain.reponse.ProductInfoResponse; +import com.bawei.mall.product.remote.RemoteProductInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author DongZl + * @description: 远程调用服务的熔断 + * @Date 2022-10-15 上午 08:42 + */ +@Component +public class RemoteProductInfoFallbackFactory implements FallbackFactory { + + private final static Logger log = LoggerFactory.getLogger(RemoteProductInfoFallbackFactory.class); + + @Override + public RemoteProductInfo create (Throwable cause) { + log.error("商品服务 - 商品信息 - 远程调用异常", cause); + return new RemoteProductInfo() { + @Override + public TableDataInfo syncList (int pageSize, int syncNum, MallProductInfo mallProductInfo) { + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setMsg(StringUtils.format("远程调用失败,错误信息:[{}]",cause.getMessage())); + tableDataInfo.setCode(R.FAIL); + return tableDataInfo; + } + + @Override + public R getProductResponse (Long id) { + return R.fail(StringUtils.format( + "获取商品信息[{}]异常:[{}]",id,cause.getMessage() + )); + } + + @Override + public R count (String getType, MallProductInfo mallProductInfo) { + return R.fail(StringUtils.format("远程调用失败,错误信息:[{}]",cause.getMessage())); + } + + @Override + public R getResultInfo (Long id) { + return R.fail(StringUtils.format("远程调用失败,错误信息:[{}]",cause.getMessage())); + } + }; + } +} diff --git a/bawei-mall-product-remote/src/main/java/com/bawei/mall/product/remote/RemoteProductInfo.java b/bawei-mall-product-remote/src/main/java/com/bawei/mall/product/remote/RemoteProductInfo.java new file mode 100644 index 0000000..378a8be --- /dev/null +++ b/bawei-mall-product-remote/src/main/java/com/bawei/mall/product/remote/RemoteProductInfo.java @@ -0,0 +1,48 @@ +package com.bawei.mall.product.remote; + +import com.bawei.common.core.constant.ServiceNameConstants; +import com.bawei.common.core.domain.R; +import com.bawei.common.core.web.domain.AjaxResult; +import com.bawei.common.core.web.page.TableDataInfo; +import com.bawei.mall.product.domain.MallProductInfo; +import com.bawei.mall.product.domain.reponse.ProductDetailsResponse; +import com.bawei.mall.product.domain.reponse.ProductInfoResponse; +import com.bawei.mall.product.factory.RemoteProductInfoFallbackFactory; +import feign.Headers; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +/** + * @author DongZl + * @description: 商品远程调用 + * @Date 2022-10-15 上午 08:40 + */ +@FeignClient(contextId = "remoteProductInfoService", value = ServiceNameConstants.PRODUCT_SERVICE, + fallbackFactory = RemoteProductInfoFallbackFactory.class, + path = "/info") +public interface RemoteProductInfo { + + /** + * 查询商品信息列表 + */ + @PostMapping("/syncList") + public TableDataInfo syncList(@RequestParam("pageSize") int pageSize, @RequestParam("pageNum") int syncNum, + MallProductInfo mallProductInfo); + + @GetMapping("/details/{id}") + public R getProductResponse(@PathVariable("id") Long id); + + /** + * 查询商品信息总条数 + */ + @PostMapping("/count") + public R count(@RequestHeader(name = "get-type",value = "get-type")String getType, + @RequestBody MallProductInfo mallProductInfo); + + /** + * 获取商品信息详细信息 + */ + @GetMapping(value = "/result/{id}") + public R getResultInfo(@PathVariable("id") Long id); + +} diff --git a/bawei-mall-product-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/bawei-mall-product-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..611a204 --- /dev/null +++ b/bawei-mall-product-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.bawei.mall.product.factory.RemoteProductInfoFallbackFactory diff --git a/bawei-mall-product-server/pom.xml b/bawei-mall-product-server/pom.xml new file mode 100644 index 0000000..bdcc7e2 --- /dev/null +++ b/bawei-mall-product-server/pom.xml @@ -0,0 +1,107 @@ + + + + bawei-mall-product + com.bawei + 3.6.0 + + 4.0.0 + + bawei-mall-product-server + + + 17 + 17 + UTF-8 + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + mysql + mysql-connector-java + + + + + com.bawei + bawei-common-datasource + + + + + com.bawei + bawei-common-datascope + + + + + com.bawei + bawei-common-log + + + + + com.bawei + bawei-common-swagger + + + + com.bawei + bawei-mall-merchant-common + + + + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/BaWeiMallProductApplication.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/BaWeiMallProductApplication.java new file mode 100644 index 0000000..3c0c50f --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/BaWeiMallProductApplication.java @@ -0,0 +1,26 @@ +package com.bawei.mall.product; + +import com.bawei.common.security.annotation.EnableCustomConfig; +import com.bawei.common.security.annotation.EnableRyFeignClients; +import com.bawei.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; + +/** + * 商品模块 + * + * @author DongZeLiang + */ +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableRyFeignClients +@SpringBootApplication +public class BaWeiMallProductApplication +{ + public static void main(String[] args) + { + SpringApplication.run(BaWeiMallProductApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ 商城 - 商家模块启动成功 ლ(´ڡ`ლ)゙ "); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductBrandInfoController.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductBrandInfoController.java new file mode 100644 index 0000000..1004856 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductBrandInfoController.java @@ -0,0 +1,105 @@ +package com.bawei.mall.product.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.bawei.common.log.annotation.Log; +import com.bawei.common.log.enums.BusinessType; +import com.bawei.common.security.annotation.RequiresPermissions; +import com.bawei.mall.product.domain.MallProductBrandInfo; +import com.bawei.mall.product.service.IMallProductBrandInfoService; +import com.bawei.common.core.web.controller.BaseController; +import com.bawei.common.core.web.domain.AjaxResult; +import com.bawei.common.core.utils.poi.ExcelUtil; +import com.bawei.common.core.web.page.TableDataInfo; + +/** + * 商品品牌Controller + * + * @author DongZeLiang + * @date 2022-09-15 + */ +@RestController +@RequestMapping("/brand") +public class MallProductBrandInfoController extends BaseController +{ + @Autowired + private IMallProductBrandInfoService mallProductBrandInfoService; + + /** + * 查询商品品牌列表 + */ + @RequiresPermissions("product:brand:list") + @GetMapping("/list") + public TableDataInfo list(MallProductBrandInfo mallProductBrandInfo) + { + startPage(); + List list = mallProductBrandInfoService.selectMallProductBrandInfoList(mallProductBrandInfo); + return getDataTable(list); + } + + /** + * 导出商品品牌列表 + */ + @RequiresPermissions("product:brand:export") + @Log(title = "商品品牌", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, MallProductBrandInfo mallProductBrandInfo) + { + List list = mallProductBrandInfoService.selectMallProductBrandInfoList(mallProductBrandInfo); + ExcelUtil util = new ExcelUtil(MallProductBrandInfo.class); + util.exportExcel(response, list, "商品品牌数据"); + } + + /** + * 获取商品品牌详细信息 + */ + @RequiresPermissions("product:brand:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(mallProductBrandInfoService.selectMallProductBrandInfoById(id)); + } + + /** + * 新增商品品牌 + */ + @RequiresPermissions("product:brand:add") + @Log(title = "商品品牌", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody MallProductBrandInfo mallProductBrandInfo) + { + return toAjax(mallProductBrandInfoService.insertMallProductBrandInfo(mallProductBrandInfo)); + } + + /** + * 修改商品品牌 + */ + @RequiresPermissions("product:brand:edit") + @Log(title = "商品品牌", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody MallProductBrandInfo mallProductBrandInfo) + { + return toAjax(mallProductBrandInfoService.updateMallProductBrandInfo(mallProductBrandInfo)); + } + + /** + * 删除商品品牌 + */ + @RequiresPermissions("product:brand:remove") + @Log(title = "商品品牌", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(mallProductBrandInfoService.deleteMallProductBrandInfoByIds(ids)); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductInfoController.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductInfoController.java new file mode 100644 index 0000000..d2b4c3f --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductInfoController.java @@ -0,0 +1,144 @@ +package com.bawei.mall.product.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +import com.bawei.common.core.domain.R; +import com.bawei.mall.product.domain.reponse.ProductDetailsResponse; +import com.bawei.mall.product.domain.reponse.ProductInfoResponse; +import com.bawei.mall.product.domain.request.ProductInfoRequest; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.bawei.common.log.annotation.Log; +import com.bawei.common.log.enums.BusinessType; +import com.bawei.common.security.annotation.RequiresPermissions; +import com.bawei.mall.product.domain.MallProductInfo; +import com.bawei.mall.product.service.IMallProductInfoService; +import com.bawei.common.core.web.controller.BaseController; +import com.bawei.common.core.web.domain.AjaxResult; +import com.bawei.common.core.utils.poi.ExcelUtil; +import com.bawei.common.core.web.page.TableDataInfo; + +/** + * 商品信息Controller + * + * @author DongZeLiang + * @date 2022-09-19 + */ +@RestController +@RequestMapping("/info") +@Api("商品维护 - API") +public class MallProductInfoController extends BaseController +{ + @Autowired + private IMallProductInfoService mallProductInfoService; + + /** + * 查询商品信息列表 + */ + @RequiresPermissions("product:info:list") + @RequestMapping(value = "/list", method = {RequestMethod.GET, RequestMethod.POST}) + public TableDataInfo list(MallProductInfo mallProductInfo) + { + startPage(); + List list = mallProductInfoService.selectMallProductInfoList(mallProductInfo); + return getDataTable(list); + } + + @PostMapping("/syncList") + public TableDataInfo syncList(@RequestBody MallProductInfo mallProductInfo) + { + startPage(); + List list = mallProductInfoService.selectMallProductInfoList(mallProductInfo); + return getDataTable(list); + } + /** + * 查询商品信息总条数 + */ + @RequiresPermissions("product:info:list") + @PostMapping("/count") + public R count(@RequestBody MallProductInfo mallProductInfo) + { + return R.ok(mallProductInfoService.selectMallProductInfoCount(mallProductInfo)); + } + + + + /** + * 导出商品信息列表 + */ + @RequiresPermissions("product:info:export") + @Log(title = "商品信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, MallProductInfo mallProductInfo) + { + List list = mallProductInfoService.selectMallProductInfoList(mallProductInfo); + ExcelUtil util = new ExcelUtil(MallProductInfo.class); + util.exportExcel(response, list, "商品信息数据"); + } + + /** + * 获取商品信息详细信息 + */ + @RequiresPermissions("product:info:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(mallProductInfoService.selectMallProductInfoById(id)); + } + + @GetMapping(value = "/result/{id}") + public R getResultInfo(@PathVariable("id") Long id) + { + return R.ok(mallProductInfoService.selectMallProductInfoById(id)); + } + + /** + * 获取商品详情 + * @param id + * @return + */ + @GetMapping("/details/{id}") + public R getProductResponse(@PathVariable("id") Long id){ + return R.ok(mallProductInfoService.selectProductDetailsById(id)); + } + + /** + * 新增商品信息 + */ + @RequiresPermissions("product:info:add") + @Log(title = "商品信息", businessType = BusinessType.INSERT) + @PostMapping + @ApiOperation("商品添加") + public AjaxResult add(@RequestBody @ApiParam("商品请求实体类") ProductInfoRequest productInfoRequest) + { + return toAjax(mallProductInfoService.insertMallProductInfo(productInfoRequest)); + } + + /** + * 修改商品信息 + */ + @RequiresPermissions("product:info:edit") + @Log(title = "商品信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProductInfoRequest productInfoRequest) + { + return toAjax(mallProductInfoService.updateMallProductInfo(productInfoRequest)); + } + + /** + * 删除商品信息 + */ + @RequiresPermissions("product:info:remove") + @Log(title = "商品信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(mallProductInfoService.deleteMallProductInfoByIds(ids)); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductReviewInfoController.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductReviewInfoController.java new file mode 100644 index 0000000..6eb4a17 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductReviewInfoController.java @@ -0,0 +1,105 @@ +package com.bawei.mall.product.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.bawei.common.log.annotation.Log; +import com.bawei.common.log.enums.BusinessType; +import com.bawei.common.security.annotation.RequiresPermissions; +import com.bawei.mall.product.domain.MallProductReviewInfo; +import com.bawei.mall.product.service.IMallProductReviewInfoService; +import com.bawei.common.core.web.controller.BaseController; +import com.bawei.common.core.web.domain.AjaxResult; +import com.bawei.common.core.utils.poi.ExcelUtil; +import com.bawei.common.core.web.page.TableDataInfo; + +/** + * 商品评价Controller + * + * @author DongZeLiang + * @date 2022-09-26 + */ +@RestController +@RequestMapping("/review") +public class MallProductReviewInfoController extends BaseController +{ + @Autowired + private IMallProductReviewInfoService mallProductReviewInfoService; + + /** + * 查询商品评价列表 + */ + @RequiresPermissions("product:review:list") + @GetMapping("/list") + public TableDataInfo list(MallProductReviewInfo mallProductReviewInfo) + { + startPage(); + List list = mallProductReviewInfoService.selectMallProductReviewInfoList(mallProductReviewInfo); + return getDataTable(list); + } + + /** + * 导出商品评价列表 + */ + @RequiresPermissions("product:review:export") + @Log(title = "商品评价", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, MallProductReviewInfo mallProductReviewInfo) + { + List list = mallProductReviewInfoService.selectMallProductReviewInfoList(mallProductReviewInfo); + ExcelUtil util = new ExcelUtil(MallProductReviewInfo.class); + util.exportExcel(response, list, "商品评价数据"); + } + + /** + * 获取商品评价详细信息 + */ + @RequiresPermissions("product:review:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(mallProductReviewInfoService.selectMallProductReviewInfoById(id)); + } + + /** + * 新增商品评价 + */ + @RequiresPermissions("product:review:add") + @Log(title = "商品评价", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody MallProductReviewInfo mallProductReviewInfo) + { + return toAjax(mallProductReviewInfoService.insertMallProductReviewInfo(mallProductReviewInfo)); + } + + /** + * 修改商品评价 + */ + @RequiresPermissions("product:review:edit") + @Log(title = "商品评价", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody MallProductReviewInfo mallProductReviewInfo) + { + return toAjax(mallProductReviewInfoService.updateMallProductReviewInfo(mallProductReviewInfo)); + } + + /** + * 删除商品评价 + */ + @RequiresPermissions("product:review:remove") + @Log(title = "商品评价", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(mallProductReviewInfoService.deleteMallProductReviewInfoByIds(ids)); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductRuleAttrInfoController.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductRuleAttrInfoController.java new file mode 100644 index 0000000..7ae2654 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductRuleAttrInfoController.java @@ -0,0 +1,105 @@ +package com.bawei.mall.product.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.bawei.common.log.annotation.Log; +import com.bawei.common.log.enums.BusinessType; +import com.bawei.common.security.annotation.RequiresPermissions; +import com.bawei.mall.product.domain.MallProductRuleAttrInfo; +import com.bawei.mall.product.service.IMallProductRuleAttrInfoService; +import com.bawei.common.core.web.controller.BaseController; +import com.bawei.common.core.web.domain.AjaxResult; +import com.bawei.common.core.utils.poi.ExcelUtil; +import com.bawei.common.core.web.page.TableDataInfo; + +/** + * 商品规格详情Controller + * + * @author DongZeLiang + * @date 2022-09-16 + */ +@RestController +@RequestMapping("/attr") +public class MallProductRuleAttrInfoController extends BaseController +{ + @Autowired + private IMallProductRuleAttrInfoService mallProductRuleAttrInfoService; + + /** + * 查询商品规格详情列表 + */ + @RequiresPermissions("product:attr:list") + @GetMapping("/list") + public TableDataInfo list(MallProductRuleAttrInfo mallProductRuleAttrInfo) + { + startPage(); + List list = mallProductRuleAttrInfoService.selectMallProductRuleAttrInfoList(mallProductRuleAttrInfo); + return getDataTable(list); + } + + /** + * 导出商品规格详情列表 + */ + @RequiresPermissions("product:attr:export") + @Log(title = "商品规格详情", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, MallProductRuleAttrInfo mallProductRuleAttrInfo) + { + List list = mallProductRuleAttrInfoService.selectMallProductRuleAttrInfoList(mallProductRuleAttrInfo); + ExcelUtil util = new ExcelUtil(MallProductRuleAttrInfo.class); + util.exportExcel(response, list, "商品规格详情数据"); + } + + /** + * 获取商品规格详情详细信息 + */ + @RequiresPermissions("product:attr:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(mallProductRuleAttrInfoService.selectMallProductRuleAttrInfoById(id)); + } + + /** + * 新增商品规格详情 + */ + @RequiresPermissions("product:attr:add") + @Log(title = "商品规格详情", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody MallProductRuleAttrInfo mallProductRuleAttrInfo) + { + return toAjax(mallProductRuleAttrInfoService.insertMallProductRuleAttrInfo(mallProductRuleAttrInfo)); + } + + /** + * 修改商品规格详情 + */ + @RequiresPermissions("product:attr:edit") + @Log(title = "商品规格详情", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody MallProductRuleAttrInfo mallProductRuleAttrInfo) + { + return toAjax(mallProductRuleAttrInfoService.updateMallProductRuleAttrInfo(mallProductRuleAttrInfo)); + } + + /** + * 删除商品规格详情 + */ + @RequiresPermissions("product:attr:remove") + @Log(title = "商品规格详情", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(mallProductRuleAttrInfoService.deleteMallProductRuleAttrInfoByIds(ids)); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductRuleInfoController.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductRuleInfoController.java new file mode 100644 index 0000000..3bbb9b1 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductRuleInfoController.java @@ -0,0 +1,115 @@ +package com.bawei.mall.product.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +import com.bawei.common.core.domain.R; +import com.bawei.mall.product.domain.request.RuleRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.bawei.common.log.annotation.Log; +import com.bawei.common.log.enums.BusinessType; +import com.bawei.common.security.annotation.RequiresPermissions; +import com.bawei.mall.product.domain.MallProductRuleInfo; +import com.bawei.mall.product.service.IMallProductRuleInfoService; +import com.bawei.common.core.web.controller.BaseController; +import com.bawei.common.core.web.domain.AjaxResult; +import com.bawei.common.core.utils.poi.ExcelUtil; +import com.bawei.common.core.web.page.TableDataInfo; + +/** + * 商品规格Controller + * + * @author DongZeLiang + * @date 2022-09-16 + */ +@RestController +@RequestMapping("/rule") +public class MallProductRuleInfoController extends BaseController +{ + @Autowired + private IMallProductRuleInfoService mallProductRuleInfoService; + + /** + * 查询商品规格列表 + */ + @RequiresPermissions("product:rule:list") + @GetMapping("/list") + public TableDataInfo list(MallProductRuleInfo mallProductRuleInfo) + { + startPage(); + List list = mallProductRuleInfoService.selectMallProductRuleInfoList(mallProductRuleInfo); + return getDataTable(list); + } + @RequiresPermissions("product:rule:list") + @GetMapping("/all") + public R all() + { + List list = mallProductRuleInfoService.selectMallProductRuleInfoList(new MallProductRuleInfo()); + return R.ok(list); + } + + /** + * 导出商品规格列表 + */ + @RequiresPermissions("product:rule:export") + @Log(title = "商品规格", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, MallProductRuleInfo mallProductRuleInfo) + { + List list = mallProductRuleInfoService.selectMallProductRuleInfoList(mallProductRuleInfo); + ExcelUtil util = new ExcelUtil(MallProductRuleInfo.class); + util.exportExcel(response, list, "商品规格数据"); + } + + /** + * 获取商品规格详细信息 + */ + @RequiresPermissions("product:rule:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(mallProductRuleInfoService.selectMallProductRuleInfoById(id)); + } + + /** + * 新增商品规格 + */ + @RequiresPermissions("product:rule:add") + @Log(title = "商品规格", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RuleRequest ruleRequest) + { + return toAjax(mallProductRuleInfoService.insertMallProductRuleInfo(ruleRequest)); + } + + /** + * 修改商品规格 + */ + @RequiresPermissions("product:rule:edit") + @Log(title = "商品规格", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RuleRequest ruleRequest) + { + return toAjax(mallProductRuleInfoService.updateMallProductRuleInfo(ruleRequest)); + } + + /** + * 删除商品规格 + */ + @RequiresPermissions("product:rule:remove") + @Log(title = "商品规格", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(mallProductRuleInfoService.deleteMallProductRuleInfoByIds(ids)); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductSkuInfoController.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductSkuInfoController.java new file mode 100644 index 0000000..c3f66f5 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductSkuInfoController.java @@ -0,0 +1,105 @@ +package com.bawei.mall.product.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.bawei.common.log.annotation.Log; +import com.bawei.common.log.enums.BusinessType; +import com.bawei.common.security.annotation.RequiresPermissions; +import com.bawei.mall.product.domain.MallProductSkuInfo; +import com.bawei.mall.product.service.IMallProductSkuInfoService; +import com.bawei.common.core.web.controller.BaseController; +import com.bawei.common.core.web.domain.AjaxResult; +import com.bawei.common.core.utils.poi.ExcelUtil; +import com.bawei.common.core.web.page.TableDataInfo; + +/** + * 商品SKUController + * + * @author DongZeLiang + * @date 2022-09-19 + */ +@RestController +@RequestMapping("/sku") +public class MallProductSkuInfoController extends BaseController +{ + @Autowired + private IMallProductSkuInfoService mallProductSkuInfoService; + + /** + * 查询商品SKU列表 + */ + @RequiresPermissions("product:sku:list") + @GetMapping("/list") + public TableDataInfo list(MallProductSkuInfo mallProductSkuInfo) + { + startPage(); + List list = mallProductSkuInfoService.selectMallProductSkuInfoList(mallProductSkuInfo); + return getDataTable(list); + } + + /** + * 导出商品SKU列表 + */ + @RequiresPermissions("product:sku:export") + @Log(title = "商品SKU", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, MallProductSkuInfo mallProductSkuInfo) + { + List list = mallProductSkuInfoService.selectMallProductSkuInfoList(mallProductSkuInfo); + ExcelUtil util = new ExcelUtil(MallProductSkuInfo.class); + util.exportExcel(response, list, "商品SKU数据"); + } + + /** + * 获取商品SKU详细信息 + */ + @RequiresPermissions("product:sku:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(mallProductSkuInfoService.selectMallProductSkuInfoById(id)); + } + + /** + * 新增商品SKU + */ + @RequiresPermissions("product:sku:add") + @Log(title = "商品SKU", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody MallProductSkuInfo mallProductSkuInfo) + { + return toAjax(mallProductSkuInfoService.insertMallProductSkuInfo(mallProductSkuInfo)); + } + + /** + * 修改商品SKU + */ + @RequiresPermissions("product:sku:edit") + @Log(title = "商品SKU", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody MallProductSkuInfo mallProductSkuInfo) + { + return toAjax(mallProductSkuInfoService.updateMallProductSkuInfo(mallProductSkuInfo)); + } + + /** + * 删除商品SKU + */ + @RequiresPermissions("product:sku:remove") + @Log(title = "商品SKU", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(mallProductSkuInfoService.deleteMallProductSkuInfoByIds(ids)); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductTypeInfoController.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductTypeInfoController.java new file mode 100644 index 0000000..25cc97f --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/MallProductTypeInfoController.java @@ -0,0 +1,114 @@ +package com.bawei.mall.product.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.bawei.common.log.annotation.Log; +import com.bawei.common.log.enums.BusinessType; +import com.bawei.common.security.annotation.RequiresPermissions; +import com.bawei.mall.product.domain.MallProductTypeInfo; +import com.bawei.mall.product.service.IMallProductTypeInfoService; +import com.bawei.common.core.web.controller.BaseController; +import com.bawei.common.core.web.domain.AjaxResult; +import com.bawei.common.core.utils.poi.ExcelUtil; + +/** + * 商品类型Controller + * + * @author DongZeLiang + * @date 2022-09-16 + */ +@RestController +@RequestMapping("/type") +public class MallProductTypeInfoController extends BaseController +{ + @Autowired + private IMallProductTypeInfoService mallProductTypeInfoService; + + /** + * 查询商品类型列表 + */ + @RequiresPermissions("product:type:list") + @GetMapping("/list") + public AjaxResult list(MallProductTypeInfo mallProductTypeInfo) + { + List list = mallProductTypeInfoService.selectMallProductTypeInfoList(mallProductTypeInfo); + return AjaxResult.success(list); + } + @RequiresPermissions("product:type:list") + @GetMapping("/tree") + public AjaxResult tree() + { + MallProductTypeInfo mallProductTypeInfo = new MallProductTypeInfo(); + mallProductTypeInfo.setParentId(0L); + List list = mallProductTypeInfoService.selectMallProductTypeInfoList(mallProductTypeInfo); + return AjaxResult.success(list); + } + + + + /** + * 导出商品类型列表 + */ + @RequiresPermissions("product:type:export") + @Log(title = "商品类型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, MallProductTypeInfo mallProductTypeInfo) + { + List list = mallProductTypeInfoService.selectMallProductTypeInfoList(mallProductTypeInfo); + ExcelUtil util = new ExcelUtil(MallProductTypeInfo.class); + util.exportExcel(response, list, "商品类型数据"); + } + + /** + * 获取商品类型详细信息 + */ + @RequiresPermissions("product:type:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(mallProductTypeInfoService.selectMallProductTypeInfoById(id)); + } + + /** + * 新增商品类型 + */ + @RequiresPermissions("product:type:add") + @Log(title = "商品类型", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody MallProductTypeInfo mallProductTypeInfo) + { + return toAjax(mallProductTypeInfoService.insertMallProductTypeInfo(mallProductTypeInfo)); + } + + /** + * 修改商品类型 + */ + @RequiresPermissions("product:type:edit") + @Log(title = "商品类型", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody MallProductTypeInfo mallProductTypeInfo) + { + return toAjax(mallProductTypeInfoService.updateMallProductTypeInfo(mallProductTypeInfo)); + } + + /** + * 删除商品类型 + */ + @RequiresPermissions("product:type:remove") + @Log(title = "商品类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(mallProductTypeInfoService.deleteMallProductTypeInfoByIds(ids)); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/TestController.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/TestController.java new file mode 100644 index 0000000..2415ab6 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/controller/TestController.java @@ -0,0 +1,52 @@ +package com.bawei.mall.product.controller; + +import com.bawei.common.core.domain.R; +import com.bawei.common.rabbit.domain.Message; +import com.bawei.common.rabbit.enums.QueueEnum; +import com.bawei.mall.product.cache.ProductInfoCache; +import com.bawei.mall.product.domain.reponse.ProductDetailsResponse; +import com.bawei.mall.product.domain.reponse.ProductInfoResponse; +import com.bawei.mall.product.service.IMallProductInfoService; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @author DongZl + * @description: + * @Date 2022-10-19 下午 02:46 + */ +@RestController +@RequestMapping("/test") +public class TestController { + + @Autowired + private ProductInfoCache productInfoCache; + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private IMallProductInfoService productInfoService; + + @GetMapping("/{id}") + public R get(@PathVariable Long id){ + ProductDetailsResponse productDetailsResponse = productInfoCache.get(id); + return R.ok(productDetailsResponse); + } + + @GetMapping("/refreshData/{id}") + private R refreshData(@PathVariable Long id){ + return R.ok(productInfoCache.refreshData(id)); + } + + @PostMapping("/sendMsg/{msg}") + public R sendMsg(@PathVariable("msg") String msg){ + + +// ProductInfoResponse productInfoResponse = productInfoService.selectMallProductInfoById(10L); + rabbitTemplate.convertAndSend(QueueEnum.PRODUCT_ADD.queueName(), + Message.builderMsg(11L)); + return R.ok(); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductBrandInfoMapper.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductBrandInfoMapper.java new file mode 100644 index 0000000..bdf8a1d --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductBrandInfoMapper.java @@ -0,0 +1,61 @@ +package com.bawei.mall.product.mapper; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductBrandInfo; + +/** + * 商品品牌Mapper接口 + * + * @author DongZeLiang + * @date 2022-09-15 + */ +public interface MallProductBrandInfoMapper +{ + /** + * 查询商品品牌 + * + * @param id 商品品牌主键 + * @return 商品品牌 + */ + public MallProductBrandInfo selectMallProductBrandInfoById(Long id); + + /** + * 查询商品品牌列表 + * + * @param mallProductBrandInfo 商品品牌 + * @return 商品品牌集合 + */ + public List selectMallProductBrandInfoList(MallProductBrandInfo mallProductBrandInfo); + + /** + * 新增商品品牌 + * + * @param mallProductBrandInfo 商品品牌 + * @return 结果 + */ + public int insertMallProductBrandInfo(MallProductBrandInfo mallProductBrandInfo); + + /** + * 修改商品品牌 + * + * @param mallProductBrandInfo 商品品牌 + * @return 结果 + */ + public int updateMallProductBrandInfo(MallProductBrandInfo mallProductBrandInfo); + + /** + * 删除商品品牌 + * + * @param id 商品品牌主键 + * @return 结果 + */ + public int deleteMallProductBrandInfoById(Long id); + + /** + * 批量删除商品品牌 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMallProductBrandInfoByIds(Long[] ids); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductInfoMapper.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductInfoMapper.java new file mode 100644 index 0000000..a550db7 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductInfoMapper.java @@ -0,0 +1,72 @@ +package com.bawei.mall.product.mapper; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductInfo; +import com.bawei.mall.product.domain.model.ProductModel; +import org.apache.ibatis.annotations.Param; + +/** + * 商品信息Mapper接口 + * + * @author DongZeLiang + * @date 2022-09-19 + */ +public interface MallProductInfoMapper +{ + /** + * 查询商品信息 + * + * @param id 商品信息主键 + * @return 商品信息 + */ + public MallProductInfo selectMallProductInfoById(@Param("id")Long id); + + public ProductModel selectProductModelById(@Param("id") Long id); + + /** + * 查询商品信息列表 + * + * @param mallProductInfo 商品信息 + * @return 商品信息集合 + */ + public List selectMallProductInfoList(MallProductInfo mallProductInfo); + + /** + * 新增商品信息 + * + * @param mallProductInfo 商品信息 + * @return 结果 + */ + public int insertMallProductInfo(MallProductInfo mallProductInfo); + + /** + * 修改商品信息 + * + * @param mallProductInfo 商品信息 + * @return 结果 + */ + public int updateMallProductInfo(MallProductInfo mallProductInfo); + + /** + * 删除商品信息 + * + * @param id 商品信息主键 + * @return 结果 + */ + public int deleteMallProductInfoById(Long id); + + /** + * 批量删除商品信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMallProductInfoByIds(Long[] ids); + + /** + * 商品总条数 + * @param mallProductInfo 商品查询条件 + * @return + */ + Long selectMallProductInfoCount (MallProductInfo mallProductInfo); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductReviewInfoMapper.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductReviewInfoMapper.java new file mode 100644 index 0000000..1e30c11 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductReviewInfoMapper.java @@ -0,0 +1,61 @@ +package com.bawei.mall.product.mapper; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductReviewInfo; + +/** + * 商品评价Mapper接口 + * + * @author DongZeLiang + * @date 2022-09-26 + */ +public interface MallProductReviewInfoMapper +{ + /** + * 查询商品评价 + * + * @param id 商品评价主键 + * @return 商品评价 + */ + public MallProductReviewInfo selectMallProductReviewInfoById(Long id); + + /** + * 查询商品评价列表 + * + * @param mallProductReviewInfo 商品评价 + * @return 商品评价集合 + */ + public List selectMallProductReviewInfoList(MallProductReviewInfo mallProductReviewInfo); + + /** + * 新增商品评价 + * + * @param mallProductReviewInfo 商品评价 + * @return 结果 + */ + public int insertMallProductReviewInfo(MallProductReviewInfo mallProductReviewInfo); + + /** + * 修改商品评价 + * + * @param mallProductReviewInfo 商品评价 + * @return 结果 + */ + public int updateMallProductReviewInfo(MallProductReviewInfo mallProductReviewInfo); + + /** + * 删除商品评价 + * + * @param id 商品评价主键 + * @return 结果 + */ + public int deleteMallProductReviewInfoById(Long id); + + /** + * 批量删除商品评价 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMallProductReviewInfoByIds(Long[] ids); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductRuleAttrInfoMapper.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductRuleAttrInfoMapper.java new file mode 100644 index 0000000..b432bf1 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductRuleAttrInfoMapper.java @@ -0,0 +1,77 @@ +package com.bawei.mall.product.mapper; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductRuleAttrInfo; +import com.bawei.mall.product.domain.model.RuleModel; +import org.apache.ibatis.annotations.Param; + +/** + * 商品规格详情Mapper接口 + * + * @author DongZeLiang + * @date 2022-09-16 + */ +public interface MallProductRuleAttrInfoMapper +{ + /** + * 查询商品规格详情 + * + * @param id 商品规格详情主键 + * @return 商品规格详情 + */ + public MallProductRuleAttrInfo selectMallProductRuleAttrInfoById(Long id); + + /** + * 查询商品规格详情列表 + * + * @param mallProductRuleAttrInfo 商品规格详情 + * @return 商品规格详情集合 + */ + public List selectMallProductRuleAttrInfoList(MallProductRuleAttrInfo mallProductRuleAttrInfo); + + /** + * 新增商品规格详情 + * + * @param mallProductRuleAttrInfo 商品规格详情 + * @return 结果 + */ + public int insertMallProductRuleAttrInfo(MallProductRuleAttrInfo mallProductRuleAttrInfo); + + /** + * 修改商品规格详情 + * + * @param mallProductRuleAttrInfo 商品规格详情 + * @return 结果 + */ + public int updateMallProductRuleAttrInfo(MallProductRuleAttrInfo mallProductRuleAttrInfo); + + /** + * 删除商品规格详情 + * + * @param id 商品规格详情主键 + * @return 结果 + */ + public int deleteMallProductRuleAttrInfoById(Long id); + + /** + * 批量删除商品规格详情 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMallProductRuleAttrInfoByIds(Long[] ids); + + /** + * 批量添加 + * @param ruleModel + * @return + */ + int bacthInsertRule (@Param("ruleModel") RuleModel ruleModel); + + /** + * 删除规格详情 + * @param ids 规格Ids + * @return + */ + int deleteRuleAttrByRuleIds (Long[] ids); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductRuleInfoMapper.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductRuleInfoMapper.java new file mode 100644 index 0000000..3fcea29 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductRuleInfoMapper.java @@ -0,0 +1,61 @@ +package com.bawei.mall.product.mapper; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductRuleInfo; + +/** + * 商品规格Mapper接口 + * + * @author DongZeLiang + * @date 2022-09-16 + */ +public interface MallProductRuleInfoMapper +{ + /** + * 查询商品规格 + * + * @param id 商品规格主键 + * @return 商品规格 + */ + public MallProductRuleInfo selectMallProductRuleInfoById(Long id); + + /** + * 查询商品规格列表 + * + * @param mallProductRuleInfo 商品规格 + * @return 商品规格集合 + */ + public List selectMallProductRuleInfoList(MallProductRuleInfo mallProductRuleInfo); + + /** + * 新增商品规格 + * + * @param mallProductRuleInfo 商品规格 + * @return 结果 + */ + public int insertMallProductRuleInfo(MallProductRuleInfo mallProductRuleInfo); + + /** + * 修改商品规格 + * + * @param mallProductRuleInfo 商品规格 + * @return 结果 + */ + public int updateMallProductRuleInfo(MallProductRuleInfo mallProductRuleInfo); + + /** + * 删除商品规格 + * + * @param id 商品规格主键 + * @return 结果 + */ + public int deleteMallProductRuleInfoById(Long id); + + /** + * 批量删除商品规格 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMallProductRuleInfoByIds(Long[] ids); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductSkuInfoMapper.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductSkuInfoMapper.java new file mode 100644 index 0000000..3505d0f --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductSkuInfoMapper.java @@ -0,0 +1,82 @@ +package com.bawei.mall.product.mapper; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductSkuInfo; +import com.bawei.mall.product.domain.model.SkuModel; +import org.apache.ibatis.annotations.Param; + +/** + * 商品SKUMapper接口 + * + * @author DongZeLiang + * @date 2022-09-19 + */ +public interface MallProductSkuInfoMapper +{ + /** + * 查询商品SKU + * + * @param id 商品SKU主键 + * @return 商品SKU + */ + public MallProductSkuInfo selectMallProductSkuInfoById(Long id); + + /** + * 查询商品SKU列表 + * + * @param mallProductSkuInfo 商品SKU + * @return 商品SKU集合 + */ + public List selectMallProductSkuInfoList(MallProductSkuInfo mallProductSkuInfo); + + /** + * 新增商品SKU + * + * @param mallProductSkuInfo 商品SKU + * @return 结果 + */ + public int insertMallProductSkuInfo(MallProductSkuInfo mallProductSkuInfo); + + /** + * 修改商品SKU + * + * @param mallProductSkuInfo 商品SKU + * @return 结果 + */ + public int updateMallProductSkuInfo(MallProductSkuInfo mallProductSkuInfo); + + /** + * 删除商品SKU + * + * @param id 商品SKU主键 + * @return 结果 + */ + public int deleteMallProductSkuInfoById(Long id); + + /** + * 批量删除商品SKU + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMallProductSkuInfoByIds(Long[] ids); + + /** + * 批量添加 + * @param skuModel + * @return + */ + int batchInsertProductSku (SkuModel skuModel); + + /** + * 删除商品下的SKU + * @param productId + */ + void deleteMallProductSkuInfoByProductId (@Param("productId") Long productId); + + /** + * 通过商品信息的ids进行删除 + * @param ids + */ + void deleteMallProductSkuInfoByProductIds (Long[] ids); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductTypeInfoMapper.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductTypeInfoMapper.java new file mode 100644 index 0000000..81b92cb --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/mapper/MallProductTypeInfoMapper.java @@ -0,0 +1,61 @@ +package com.bawei.mall.product.mapper; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductTypeInfo; + +/** + * 商品类型Mapper接口 + * + * @author DongZeLiang + * @date 2022-09-16 + */ +public interface MallProductTypeInfoMapper +{ + /** + * 查询商品类型 + * + * @param id 商品类型主键 + * @return 商品类型 + */ + public MallProductTypeInfo selectMallProductTypeInfoById(Long id); + + /** + * 查询商品类型列表 + * + * @param mallProductTypeInfo 商品类型 + * @return 商品类型集合 + */ + public List selectMallProductTypeInfoList(MallProductTypeInfo mallProductTypeInfo); + + /** + * 新增商品类型 + * + * @param mallProductTypeInfo 商品类型 + * @return 结果 + */ + public int insertMallProductTypeInfo(MallProductTypeInfo mallProductTypeInfo); + + /** + * 修改商品类型 + * + * @param mallProductTypeInfo 商品类型 + * @return 结果 + */ + public int updateMallProductTypeInfo(MallProductTypeInfo mallProductTypeInfo); + + /** + * 删除商品类型 + * + * @param id 商品类型主键 + * @return 结果 + */ + public int deleteMallProductTypeInfoById(Long id); + + /** + * 批量删除商品类型 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMallProductTypeInfoByIds(Long[] ids); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductBrandInfoService.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductBrandInfoService.java new file mode 100644 index 0000000..ce4bc23 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductBrandInfoService.java @@ -0,0 +1,61 @@ +package com.bawei.mall.product.service; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductBrandInfo; + +/** + * 商品品牌Service接口 + * + * @author DongZeLiang + * @date 2022-09-15 + */ +public interface IMallProductBrandInfoService +{ + /** + * 查询商品品牌 + * + * @param id 商品品牌主键 + * @return 商品品牌 + */ + public MallProductBrandInfo selectMallProductBrandInfoById(Long id); + + /** + * 查询商品品牌列表 + * + * @param mallProductBrandInfo 商品品牌 + * @return 商品品牌集合 + */ + public List selectMallProductBrandInfoList(MallProductBrandInfo mallProductBrandInfo); + + /** + * 新增商品品牌 + * + * @param mallProductBrandInfo 商品品牌 + * @return 结果 + */ + public int insertMallProductBrandInfo(MallProductBrandInfo mallProductBrandInfo); + + /** + * 修改商品品牌 + * + * @param mallProductBrandInfo 商品品牌 + * @return 结果 + */ + public int updateMallProductBrandInfo(MallProductBrandInfo mallProductBrandInfo); + + /** + * 批量删除商品品牌 + * + * @param ids 需要删除的商品品牌主键集合 + * @return 结果 + */ + public int deleteMallProductBrandInfoByIds(Long[] ids); + + /** + * 删除商品品牌信息 + * + * @param id 商品品牌主键 + * @return 结果 + */ + public int deleteMallProductBrandInfoById(Long id); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductInfoService.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductInfoService.java new file mode 100644 index 0000000..a89e1ed --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductInfoService.java @@ -0,0 +1,72 @@ +package com.bawei.mall.product.service; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductInfo; +import com.bawei.mall.product.domain.reponse.ProductDetailsResponse; +import com.bawei.mall.product.domain.reponse.ProductInfoResponse; +import com.bawei.mall.product.domain.request.ProductInfoRequest; + +/** + * 商品信息Service接口 + * + * @author DongZeLiang + * @date 2022-09-19 + */ +public interface IMallProductInfoService +{ + /** + * 查询商品信息 + * + * @param id 商品信息主键 + * @return 商品信息 + */ + public ProductInfoResponse selectMallProductInfoById(Long id); + public ProductDetailsResponse selectProductDetailsById(Long id); + + /** + * 查询商品信息列表 + * + * @param mallProductInfo 商品信息 + * @return 商品信息集合 + */ + public List selectMallProductInfoList(MallProductInfo mallProductInfo); + + /** + * 新增商品信息 + * + * @param productInfoRequest 商品信息 + * @return 结果 + */ + public int insertMallProductInfo(ProductInfoRequest productInfoRequest); + + /** + * 修改商品信息 + * + * @param productInfoRequest 商品信息 + * @return 结果 + */ + public int updateMallProductInfo(ProductInfoRequest productInfoRequest); + + /** + * 批量删除商品信息 + * + * @param ids 需要删除的商品信息主键集合 + * @return 结果 + */ + public int deleteMallProductInfoByIds(Long[] ids); + + /** + * 删除商品信息信息 + * + * @param id 商品信息主键 + * @return 结果 + */ + public int deleteMallProductInfoById(Long id); + + /** + * 查询商品总条数 + * @param mallProductInfo 商品查询 + * @return + */ + Long selectMallProductInfoCount (MallProductInfo mallProductInfo); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductReviewInfoService.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductReviewInfoService.java new file mode 100644 index 0000000..89fa3f7 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductReviewInfoService.java @@ -0,0 +1,61 @@ +package com.bawei.mall.product.service; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductReviewInfo; + +/** + * 商品评价Service接口 + * + * @author DongZeLiang + * @date 2022-09-26 + */ +public interface IMallProductReviewInfoService +{ + /** + * 查询商品评价 + * + * @param id 商品评价主键 + * @return 商品评价 + */ + public MallProductReviewInfo selectMallProductReviewInfoById(Long id); + + /** + * 查询商品评价列表 + * + * @param mallProductReviewInfo 商品评价 + * @return 商品评价集合 + */ + public List selectMallProductReviewInfoList(MallProductReviewInfo mallProductReviewInfo); + + /** + * 新增商品评价 + * + * @param mallProductReviewInfo 商品评价 + * @return 结果 + */ + public int insertMallProductReviewInfo(MallProductReviewInfo mallProductReviewInfo); + + /** + * 修改商品评价 + * + * @param mallProductReviewInfo 商品评价 + * @return 结果 + */ + public int updateMallProductReviewInfo(MallProductReviewInfo mallProductReviewInfo); + + /** + * 批量删除商品评价 + * + * @param ids 需要删除的商品评价主键集合 + * @return 结果 + */ + public int deleteMallProductReviewInfoByIds(Long[] ids); + + /** + * 删除商品评价信息 + * + * @param id 商品评价主键 + * @return 结果 + */ + public int deleteMallProductReviewInfoById(Long id); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductRuleAttrInfoService.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductRuleAttrInfoService.java new file mode 100644 index 0000000..d245691 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductRuleAttrInfoService.java @@ -0,0 +1,93 @@ +package com.bawei.mall.product.service; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductRuleAttrInfo; +import com.bawei.mall.product.domain.model.RuleAttrModel; +import com.bawei.mall.product.domain.model.RuleModel; + +/** + * 商品规格详情Service接口 + * + * @author DongZeLiang + * @date 2022-09-16 + */ +public interface IMallProductRuleAttrInfoService +{ + /** + * 查询商品规格详情 + * + * @param id 商品规格详情主键 + * @return 商品规格详情 + */ + public MallProductRuleAttrInfo selectMallProductRuleAttrInfoById(Long id); + + /** + * 查询商品规格详情列表 + * + * @param mallProductRuleAttrInfo 商品规格详情 + * @return 商品规格详情集合 + */ + public List selectMallProductRuleAttrInfoList(MallProductRuleAttrInfo mallProductRuleAttrInfo); + + /** + * 新增商品规格详情 + * + * @param mallProductRuleAttrInfo 商品规格详情 + * @return 结果 + */ + public int insertMallProductRuleAttrInfo(MallProductRuleAttrInfo mallProductRuleAttrInfo); + + /** + * 新增商品规格详情 + * + * @param ruleModel 商品规格详情 + * @return 结果 + */ + public int insertRuleModel(RuleModel ruleModel); + default int insertRuleModel (Long id, List ruleList){ + return this.insertRuleModel(new RuleModel(){{ + setRuleId(id); + setRuleList(ruleList); + }}); + } + + /** + * 修改商品规格详情 + * + * @param mallProductRuleAttrInfo 商品规格详情 + * @return 结果 + */ + public int updateMallProductRuleAttrInfo(MallProductRuleAttrInfo mallProductRuleAttrInfo); + + /** + * 批量删除商品规格详情 + * + * @param ids 需要删除的商品规格详情主键集合 + * @return 结果 + */ + public int deleteMallProductRuleAttrInfoByIds(Long[] ids); + + /** + * 删除商品规格详情信息 + * + * @param id 商品规格详情主键 + * @return 结果 + */ + public int deleteMallProductRuleAttrInfoById(Long id); + + /** + * 删除商品规格详情信息 + * @param ids 规格Ids + * @return + */ + public int deleteRuleAttrByRuleIds(Long[] ids); + + /** + * 删除商品规格详情 + * @param id 规格ID + */ + default int deleteRuleAttrByRuleId (Long id){ + return this.deleteRuleAttrByRuleIds(new Long[]{id}); + } + +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductRuleInfoService.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductRuleInfoService.java new file mode 100644 index 0000000..e515837 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductRuleInfoService.java @@ -0,0 +1,62 @@ +package com.bawei.mall.product.service; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductRuleInfo; +import com.bawei.mall.product.domain.request.RuleRequest; + +/** + * 商品规格Service接口 + * + * @author DongZeLiang + * @date 2022-09-16 + */ +public interface IMallProductRuleInfoService +{ + /** + * 查询商品规格 + * + * @param id 商品规格主键 + * @return 商品规格 + */ + public MallProductRuleInfo selectMallProductRuleInfoById(Long id); + + /** + * 查询商品规格列表 + * + * @param mallProductRuleInfo 商品规格 + * @return 商品规格集合 + */ + public List selectMallProductRuleInfoList(MallProductRuleInfo mallProductRuleInfo); + + /** + * 新增商品规格 + * + * @param ruleRequest 商品规格 + * @return 结果 + */ + public int insertMallProductRuleInfo(RuleRequest ruleRequest); + + /** + * 修改商品规格 + * + * @param ruleRequest 商品规格 + * @return 结果 + */ + public int updateMallProductRuleInfo(RuleRequest ruleRequest); + + /** + * 批量删除商品规格 + * + * @param ids 需要删除的商品规格主键集合 + * @return 结果 + */ + public int deleteMallProductRuleInfoByIds(Long[] ids); + + /** + * 删除商品规格信息 + * + * @param id 商品规格主键 + * @return 结果 + */ + public int deleteMallProductRuleInfoById(Long id); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductSkuInfoService.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductSkuInfoService.java new file mode 100644 index 0000000..de99da7 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductSkuInfoService.java @@ -0,0 +1,88 @@ +package com.bawei.mall.product.service; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductSkuInfo; +import com.bawei.mall.product.domain.model.SkuModel; + +/** + * 商品SKUService接口 + * + * @author DongZeLiang + * @date 2022-09-19 + */ +public interface IMallProductSkuInfoService +{ + /** + * 查询商品SKU + * + * @param id 商品SKU主键 + * @return 商品SKU + */ + public MallProductSkuInfo selectMallProductSkuInfoById(Long id); + + /** + * 查询商品SKU列表 + * + * @param mallProductSkuInfo 商品SKU + * @return 商品SKU集合 + */ + public List selectMallProductSkuInfoList(MallProductSkuInfo mallProductSkuInfo); + /** + * 通过商品Id查询商品SKU列表 + * + * @param productId 商品Id + * @return 商品SKU集合 + */ + public default List selectMallProductSkuInfoList(Long productId){ + return this.selectMallProductSkuInfoList(new MallProductSkuInfo(){{ + setProductId(productId); + }}); + } + + + + /** + * 新增商品SKU + * + * @param mallProductSkuInfo 商品SKU + * @return 结果 + */ + public int insertMallProductSkuInfo(MallProductSkuInfo mallProductSkuInfo); + public int batchInsertProductSku(SkuModel skuModel); + + /** + * 修改商品SKU + * + * @param mallProductSkuInfo 商品SKU + * @return 结果 + */ + public int updateMallProductSkuInfo(MallProductSkuInfo mallProductSkuInfo); + + /** + * 批量删除商品SKU + * + * @param ids 需要删除的商品SKU主键集合 + * @return 结果 + */ + public int deleteMallProductSkuInfoByIds(Long[] ids); + + /** + * 删除商品SKU信息 + * + * @param id 商品SKU主键 + * @return 结果 + */ + public int deleteMallProductSkuInfoById(Long id); + + /** + * 删除商品的sku + * @param productId + */ + void deleteMallProductSkuInfoByProductId (Long productId); + + /** + * 通过商品信息的Ids进行删除 + * @param ids + */ + void deleteMallProductSkuInfoByProductIds (Long[] ids); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductTypeInfoService.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductTypeInfoService.java new file mode 100644 index 0000000..78ddb1d --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/IMallProductTypeInfoService.java @@ -0,0 +1,61 @@ +package com.bawei.mall.product.service; + +import java.util.List; +import com.bawei.mall.product.domain.MallProductTypeInfo; + +/** + * 商品类型Service接口 + * + * @author DongZeLiang + * @date 2022-09-16 + */ +public interface IMallProductTypeInfoService +{ + /** + * 查询商品类型 + * + * @param id 商品类型主键 + * @return 商品类型 + */ + public MallProductTypeInfo selectMallProductTypeInfoById(Long id); + + /** + * 查询商品类型列表 + * + * @param mallProductTypeInfo 商品类型 + * @return 商品类型集合 + */ + public List selectMallProductTypeInfoList(MallProductTypeInfo mallProductTypeInfo); + + /** + * 新增商品类型 + * + * @param mallProductTypeInfo 商品类型 + * @return 结果 + */ + public int insertMallProductTypeInfo(MallProductTypeInfo mallProductTypeInfo); + + /** + * 修改商品类型 + * + * @param mallProductTypeInfo 商品类型 + * @return 结果 + */ + public int updateMallProductTypeInfo(MallProductTypeInfo mallProductTypeInfo); + + /** + * 批量删除商品类型 + * + * @param ids 需要删除的商品类型主键集合 + * @return 结果 + */ + public int deleteMallProductTypeInfoByIds(Long[] ids); + + /** + * 删除商品类型信息 + * + * @param id 商品类型主键 + * @return 结果 + */ + public int deleteMallProductTypeInfoById(Long id); +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductBrandInfoServiceImpl.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductBrandInfoServiceImpl.java new file mode 100644 index 0000000..e62e97c --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductBrandInfoServiceImpl.java @@ -0,0 +1,98 @@ +package com.bawei.mall.product.service.impl; + +import java.util.List; +import com.bawei.common.core.utils.DateUtils; +import com.bawei.common.security.utils.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.bawei.mall.product.mapper.MallProductBrandInfoMapper; +import com.bawei.mall.product.domain.MallProductBrandInfo; +import com.bawei.mall.product.service.IMallProductBrandInfoService; + +/** + * 商品品牌Service业务层处理 + * + * @author DongZeLiang + * @date 2022-09-15 + */ +@Service +public class MallProductBrandInfoServiceImpl implements IMallProductBrandInfoService +{ + @Autowired + private MallProductBrandInfoMapper mallProductBrandInfoMapper; + + /** + * 查询商品品牌 + * + * @param id 商品品牌主键 + * @return 商品品牌 + */ + @Override + public MallProductBrandInfo selectMallProductBrandInfoById(Long id) + { + return mallProductBrandInfoMapper.selectMallProductBrandInfoById(id); + } + + /** + * 查询商品品牌列表 + * + * @param mallProductBrandInfo 商品品牌 + * @return 商品品牌 + */ + @Override + public List selectMallProductBrandInfoList(MallProductBrandInfo mallProductBrandInfo) + { + return mallProductBrandInfoMapper.selectMallProductBrandInfoList(mallProductBrandInfo); + } + + /** + * 新增商品品牌 + * + * @param mallProductBrandInfo 商品品牌 + * @return 结果 + */ + @Override + public int insertMallProductBrandInfo(MallProductBrandInfo mallProductBrandInfo) + { + mallProductBrandInfo.setCreateBy(String.valueOf(SecurityUtils.getUserId())); + mallProductBrandInfo.setCreateTime(DateUtils.getNowDate()); + return mallProductBrandInfoMapper.insertMallProductBrandInfo(mallProductBrandInfo); + } + + /** + * 修改商品品牌 + * + * @param mallProductBrandInfo 商品品牌 + * @return 结果 + */ + @Override + public int updateMallProductBrandInfo(MallProductBrandInfo mallProductBrandInfo) + { + mallProductBrandInfo.setUpdateTime(DateUtils.getNowDate()); + return mallProductBrandInfoMapper.updateMallProductBrandInfo(mallProductBrandInfo); + } + + /** + * 批量删除商品品牌 + * + * @param ids 需要删除的商品品牌主键 + * @return 结果 + */ + @Override + public int deleteMallProductBrandInfoByIds(Long[] ids) + { + return mallProductBrandInfoMapper.deleteMallProductBrandInfoByIds(ids); + } + + /** + * 删除商品品牌信息 + * + * @param id 商品品牌主键 + * @return 结果 + */ + @Override + public int deleteMallProductBrandInfoById(Long id) + { + return mallProductBrandInfoMapper.deleteMallProductBrandInfoById(id); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductInfoServiceImpl.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductInfoServiceImpl.java new file mode 100644 index 0000000..d3d654e --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductInfoServiceImpl.java @@ -0,0 +1,200 @@ +package com.bawei.mall.product.service.impl; + +import java.util.List; + +import com.bawei.common.core.exception.ServiceException; +import com.bawei.common.core.utils.DateUtils; +import com.bawei.common.core.utils.bean.BeanUtils; +import com.bawei.common.core.utils.thread.ThreadPool; +import com.bawei.common.rabbit.domain.Message; +import com.bawei.common.rabbit.enums.QueueEnum; +import com.bawei.common.security.utils.SecurityUtils; +import com.bawei.mall.product.cache.ProductInfoCache; +import com.bawei.mall.product.domain.MallProductRuleInfo; +import com.bawei.mall.product.domain.MallProductSkuInfo; +import com.bawei.mall.product.domain.model.ProductModel; +import com.bawei.mall.product.domain.model.SkuModel; +import com.bawei.mall.product.domain.reponse.ProductDetailsResponse; +import com.bawei.mall.product.domain.reponse.ProductInfoResponse; +import com.bawei.mall.product.domain.request.ProductInfoRequest; +import com.bawei.mall.product.service.IMallProductRuleInfoService; +import com.bawei.mall.product.service.IMallProductSkuInfoService; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.bawei.mall.product.mapper.MallProductInfoMapper; +import com.bawei.mall.product.domain.MallProductInfo; +import com.bawei.mall.product.service.IMallProductInfoService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 商品信息Service业务层处理 + * + * @author DongZeLiang + * @date 2022-09-19 + */ +@Service +public class MallProductInfoServiceImpl implements IMallProductInfoService +{ + @Autowired + private MallProductInfoMapper mallProductInfoMapper; + + @Autowired + private IMallProductSkuInfoService skuInfoService; + + @Autowired + private IMallProductRuleInfoService ruleInfoService; + + + @Autowired + private ProductInfoCache productInfoCache; + + @Autowired + private RabbitTemplate rabbitTemplate; + + /** + * 查询商品信息 + * + * @param id 商品信息主键 + * @return 商品信息 + */ + @Override + public ProductInfoResponse selectMallProductInfoById(Long id) + { + MallProductInfo mallProductInfo = mallProductInfoMapper.selectMallProductInfoById(id); + ProductInfoResponse productInfoResponse = new ProductInfoResponse(); + BeanUtils.copyBeanProp(productInfoResponse, mallProductInfo); + productInfoResponse.setSkuInfoList( + skuInfoService.selectMallProductSkuInfoList(new MallProductSkuInfo(){{ + setProductId(id); + }}) + ); + return productInfoResponse; + } + + @Override + public ProductDetailsResponse selectProductDetailsById (Long productId) { + if (productId == null || productId == 0){ + throw new ServiceException("查询商品信息,依据不合法!"); + } + ProductDetailsResponse productDetailsResponse = new ProductDetailsResponse(); + ProductModel productModel = mallProductInfoMapper.selectProductModelById(productId); + if (productModel == null){ + throw new ServiceException("查询商品信息,商品数据为空"); + } + productDetailsResponse.setProduct(productModel); + List mallProductSkuInfos = skuInfoService.selectMallProductSkuInfoList(productId); + if (mallProductSkuInfos == null || mallProductSkuInfos.size() == 0){ + throw new ServiceException("查询商品信息,SKU数据为空"); + } + productDetailsResponse.setSkuList(mallProductSkuInfos); + MallProductRuleInfo ruleInfo = ruleInfoService.selectMallProductRuleInfoById(productModel.getRuleId()); + if (ruleInfo == null){ + throw new ServiceException("查询商品信息,规格数据为空"); + } + productDetailsResponse.setProductRule(ruleInfo); + return productDetailsResponse; + } + + /** + * 查询商品信息列表 + * + * @param mallProductInfo 商品信息 + * @return 商品信息 + */ + @Override + public List selectMallProductInfoList(MallProductInfo mallProductInfo) + { + return mallProductInfoMapper.selectMallProductInfoList(mallProductInfo); + } + + /** + * 新增商品信息 + * + * @param productInfoRequest 商品信息 + * @return 结果 + */ + @Override + @Transactional + public int insertMallProductInfo(ProductInfoRequest productInfoRequest) + { + productInfoRequest.setCreateBy(String.valueOf(SecurityUtils.getUserId())); + productInfoRequest.setCreateTime(DateUtils.getNowDate()); + int i = mallProductInfoMapper.insertMallProductInfo(productInfoRequest); + if (i == 0){ + return i; + } + + skuInfoService.batchInsertProductSku( + SkuModel.builderSkuModel(productInfoRequest.getId(), productInfoRequest.getSkuInfoList()) + ); + + // 给搜索系统发送消息需要进行搜索更新 + rabbitTemplate.convertAndSend(QueueEnum.PRODUCT_ADD.queueName(), + Message.builderMsg(productInfoRequest.getId())); + + return i; + } + + /** + * 修改商品信息 + * + * @param productInfoRequest 商品信息 + * @return 结果 + */ + @Override + @Transactional + public int updateMallProductInfo(ProductInfoRequest productInfoRequest) + { + productInfoRequest.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); + productInfoRequest.setUpdateTime(DateUtils.getNowDate()); + int i = mallProductInfoMapper.updateMallProductInfo(productInfoRequest); + if (i == 0){ + return i; + } + skuInfoService.deleteMallProductSkuInfoByProductId(productInfoRequest.getId()); + skuInfoService.batchInsertProductSku( + SkuModel.builderSkuModel(productInfoRequest.getId(), productInfoRequest.getSkuInfoList()) + ); + return i; + } + + /** + * 批量删除商品信息 + * + * @param ids 需要删除的商品信息主键 + * @return 结果 + */ + @Override + public int deleteMallProductInfoByIds(Long[] ids) + { + skuInfoService.deleteMallProductSkuInfoByProductIds(ids); + for (Long id : ids) { + // 延迟执行 + productInfoCache.delayRemove(id); + } + return mallProductInfoMapper.deleteMallProductInfoByIds(ids); + } + + /** + * 删除商品信息信息 + * + * @param id 商品信息主键 + * @return 结果 + */ + @Override + public int deleteMallProductInfoById(Long id) + { + return mallProductInfoMapper.deleteMallProductInfoById(id); + } + + /** + * 商品总条数 + * @param mallProductInfo 商品查询 + * @return + */ + @Override + public Long selectMallProductInfoCount (MallProductInfo mallProductInfo) { + return mallProductInfoMapper.selectMallProductInfoCount(mallProductInfo); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductReviewInfoServiceImpl.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductReviewInfoServiceImpl.java new file mode 100644 index 0000000..b48707c --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductReviewInfoServiceImpl.java @@ -0,0 +1,100 @@ +package com.bawei.mall.product.service.impl; + +import java.util.List; + +import com.bawei.common.core.utils.DateUtils; +import com.bawei.common.security.utils.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.bawei.mall.product.mapper.MallProductReviewInfoMapper; +import com.bawei.mall.product.domain.MallProductReviewInfo; +import com.bawei.mall.product.service.IMallProductReviewInfoService; + +/** + * 商品评价Service业务层处理 + * + * @author DongZeLiang + * @date 2022-09-26 + */ +@Service +public class MallProductReviewInfoServiceImpl implements IMallProductReviewInfoService +{ + @Autowired + private MallProductReviewInfoMapper mallProductReviewInfoMapper; + + /** + * 查询商品评价 + * + * @param id 商品评价主键 + * @return 商品评价 + */ + @Override + public MallProductReviewInfo selectMallProductReviewInfoById(Long id) + { + return mallProductReviewInfoMapper.selectMallProductReviewInfoById(id); + } + + /** + * 查询商品评价列表 + * + * @param mallProductReviewInfo 商品评价 + * @return 商品评价 + */ + @Override + public List selectMallProductReviewInfoList(MallProductReviewInfo mallProductReviewInfo) + { + return mallProductReviewInfoMapper.selectMallProductReviewInfoList(mallProductReviewInfo); + } + + /** + * 新增商品评价 + * + * @param mallProductReviewInfo 商品评价 + * @return 结果 + */ + @Override + public int insertMallProductReviewInfo(MallProductReviewInfo mallProductReviewInfo) + { + mallProductReviewInfo.setCreateBy(String.valueOf(SecurityUtils.getUserId())); + mallProductReviewInfo.setCreateTime(DateUtils.getNowDate()); + return mallProductReviewInfoMapper.insertMallProductReviewInfo(mallProductReviewInfo); + } + + /** + * 修改商品评价 + * + * @param mallProductReviewInfo 商品评价 + * @return 结果 + */ + @Override + public int updateMallProductReviewInfo(MallProductReviewInfo mallProductReviewInfo) + { + mallProductReviewInfo.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); + mallProductReviewInfo.setUpdateTime(DateUtils.getNowDate()); + return mallProductReviewInfoMapper.updateMallProductReviewInfo(mallProductReviewInfo); + } + + /** + * 批量删除商品评价 + * + * @param ids 需要删除的商品评价主键 + * @return 结果 + */ + @Override + public int deleteMallProductReviewInfoByIds(Long[] ids) + { + return mallProductReviewInfoMapper.deleteMallProductReviewInfoByIds(ids); + } + + /** + * 删除商品评价信息 + * + * @param id 商品评价主键 + * @return 结果 + */ + @Override + public int deleteMallProductReviewInfoById(Long id) + { + return mallProductReviewInfoMapper.deleteMallProductReviewInfoById(id); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductRuleAttrInfoServiceImpl.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductRuleAttrInfoServiceImpl.java new file mode 100644 index 0000000..2260f2c --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductRuleAttrInfoServiceImpl.java @@ -0,0 +1,112 @@ +package com.bawei.mall.product.service.impl; + +import java.util.List; + +import com.bawei.mall.product.domain.model.RuleAttrModel; +import com.bawei.mall.product.domain.model.RuleModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.bawei.mall.product.mapper.MallProductRuleAttrInfoMapper; +import com.bawei.mall.product.domain.MallProductRuleAttrInfo; +import com.bawei.mall.product.service.IMallProductRuleAttrInfoService; + +/** + * 商品规格详情Service业务层处理 + * + * @author DongZeLiang + * @date 2022-09-16 + */ +@Service +public class MallProductRuleAttrInfoServiceImpl implements IMallProductRuleAttrInfoService +{ + @Autowired + private MallProductRuleAttrInfoMapper mallProductRuleAttrInfoMapper; + + /** + * 查询商品规格详情 + * + * @param id 商品规格详情主键 + * @return 商品规格详情 + */ + @Override + public MallProductRuleAttrInfo selectMallProductRuleAttrInfoById(Long id) + { + return mallProductRuleAttrInfoMapper.selectMallProductRuleAttrInfoById(id); + } + + /** + * 查询商品规格详情列表 + * + * @param mallProductRuleAttrInfo 商品规格详情 + * @return 商品规格详情 + */ + @Override + public List selectMallProductRuleAttrInfoList(MallProductRuleAttrInfo mallProductRuleAttrInfo) + { + return mallProductRuleAttrInfoMapper.selectMallProductRuleAttrInfoList(mallProductRuleAttrInfo); + } + + /** + * 新增商品规格详情 + * + * @param mallProductRuleAttrInfo 商品规格详情 + * @return 结果 + */ + @Override + public int insertMallProductRuleAttrInfo(MallProductRuleAttrInfo mallProductRuleAttrInfo) + { + return mallProductRuleAttrInfoMapper.insertMallProductRuleAttrInfo(mallProductRuleAttrInfo); + } + + @Override + public int insertRuleModel (RuleModel ruleModel) { + + return mallProductRuleAttrInfoMapper.bacthInsertRule(ruleModel); + } + + /** + * 修改商品规格详情 + * + * @param mallProductRuleAttrInfo 商品规格详情 + * @return 结果 + */ + @Override + public int updateMallProductRuleAttrInfo(MallProductRuleAttrInfo mallProductRuleAttrInfo) + { + return mallProductRuleAttrInfoMapper.updateMallProductRuleAttrInfo(mallProductRuleAttrInfo); + } + + /** + * 批量删除商品规格详情 + * + * @param ids 需要删除的商品规格详情主键 + * @return 结果 + */ + @Override + public int deleteMallProductRuleAttrInfoByIds(Long[] ids) + { + return mallProductRuleAttrInfoMapper.deleteMallProductRuleAttrInfoByIds(ids); + } + + /** + * 删除商品规格详情信息 + * + * @param id 商品规格详情主键 + * @return 结果 + */ + @Override + public int deleteMallProductRuleAttrInfoById(Long id) + { + return mallProductRuleAttrInfoMapper.deleteMallProductRuleAttrInfoById(id); + } + + /** + * 删除商品规格详情 + * @param ids 规格Ids + * @return + */ + @Override + public int deleteRuleAttrByRuleIds (Long[] ids) { + return mallProductRuleAttrInfoMapper.deleteRuleAttrByRuleIds(ids); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductRuleInfoServiceImpl.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductRuleInfoServiceImpl.java new file mode 100644 index 0000000..8b9bf74 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductRuleInfoServiceImpl.java @@ -0,0 +1,126 @@ +package com.bawei.mall.product.service.impl; + +import java.util.List; + +import com.bawei.common.core.utils.DateUtils; +import com.bawei.common.security.utils.SecurityUtils; +import com.bawei.mall.product.domain.model.RuleModel; +import com.bawei.mall.product.domain.request.RuleRequest; +import com.bawei.mall.product.service.IMallProductRuleAttrInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.bawei.mall.product.mapper.MallProductRuleInfoMapper; +import com.bawei.mall.product.domain.MallProductRuleInfo; +import com.bawei.mall.product.service.IMallProductRuleInfoService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 商品规格Service业务层处理 + * + * @author DongZeLiang + * @date 2022-09-16 + */ +@Service +public class MallProductRuleInfoServiceImpl implements IMallProductRuleInfoService +{ + @Autowired + private MallProductRuleInfoMapper mallProductRuleInfoMapper; + + @Autowired + private IMallProductRuleAttrInfoService ruleAttrInfoService; + + /** + * 查询商品规格 + * + * @param id 商品规格主键 + * @return 商品规格 + */ + @Override + public MallProductRuleInfo selectMallProductRuleInfoById(Long id) + { + return mallProductRuleInfoMapper.selectMallProductRuleInfoById(id); + } + + /** + * 查询商品规格列表 + * + * @param mallProductRuleInfo 商品规格 + * @return 商品规格 + */ + @Override + public List selectMallProductRuleInfoList(MallProductRuleInfo mallProductRuleInfo) + { + return mallProductRuleInfoMapper.selectMallProductRuleInfoList(mallProductRuleInfo); + } + + /** + * 新增商品规格 + * + * @param ruleRequest 商品规格 + * @return 结果 + */ + @Override + @Transactional + public int insertMallProductRuleInfo(RuleRequest ruleRequest) + { + ruleRequest.setCreateBy(String.valueOf(SecurityUtils.getUserId())); + ruleRequest.setCreateTime(DateUtils.getNowDate()); + int i = mallProductRuleInfoMapper.insertMallProductRuleInfo(ruleRequest); + if (i == 0){ + return i; + } + // 组装了一个Model 用来添加规格属性 + RuleModel ruleModel = new RuleModel(); + ruleModel.setRuleId(ruleRequest.getId()); + ruleModel.setRuleList(ruleRequest.getRuleList()); + ruleAttrInfoService.insertRuleModel(ruleModel); + return i; + + } + + /** + * 修改商品规格 + * + * @param ruleRequest 商品规格 + * @return 结果 + */ + @Override + public int updateMallProductRuleInfo(RuleRequest ruleRequest) + { + ruleRequest.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); + ruleRequest.setUpdateTime(DateUtils.getNowDate()); + int i = mallProductRuleInfoMapper.updateMallProductRuleInfo(ruleRequest); + if (i == 0){ + return i; + } + ruleAttrInfoService.deleteRuleAttrByRuleId(ruleRequest.getId()); + ruleAttrInfoService.insertRuleModel(ruleRequest.getId(), ruleRequest.getRuleList()); + return i; + } + + /** + * 批量删除商品规格 + * + * @param ids 需要删除的商品规格主键 + * @return 结果 + */ + @Override + @Transactional + public int deleteMallProductRuleInfoByIds(Long[] ids) + { + ruleAttrInfoService.deleteRuleAttrByRuleIds(ids); + return mallProductRuleInfoMapper.deleteMallProductRuleInfoByIds(ids); + } + + /** + * 删除商品规格信息 + * + * @param id 商品规格主键 + * @return 结果 + */ + @Override + public int deleteMallProductRuleInfoById(Long id) + { + return mallProductRuleInfoMapper.deleteMallProductRuleInfoById(id); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductSkuInfoServiceImpl.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductSkuInfoServiceImpl.java new file mode 100644 index 0000000..a537127 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductSkuInfoServiceImpl.java @@ -0,0 +1,120 @@ +package com.bawei.mall.product.service.impl; + +import java.util.List; + +import com.bawei.common.core.utils.DateUtils; +import com.bawei.common.core.utils.uuid.IdUtils; +import com.bawei.common.security.utils.SecurityUtils; +import com.bawei.mall.product.domain.model.SkuModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.bawei.mall.product.mapper.MallProductSkuInfoMapper; +import com.bawei.mall.product.domain.MallProductSkuInfo; +import com.bawei.mall.product.service.IMallProductSkuInfoService; + +/** + * 商品SKUService业务层处理 + * + * @author DongZeLiang + * @date 2022-09-19 + */ +@Service +public class MallProductSkuInfoServiceImpl implements IMallProductSkuInfoService +{ + @Autowired + private MallProductSkuInfoMapper mallProductSkuInfoMapper; + + /** + * 查询商品SKU + * + * @param id 商品SKU主键 + * @return 商品SKU + */ + @Override + public MallProductSkuInfo selectMallProductSkuInfoById(Long id) + { + return mallProductSkuInfoMapper.selectMallProductSkuInfoById(id); + } + + /** + * 查询商品SKU列表 + * + * @param mallProductSkuInfo 商品SKU + * @return 商品SKU + */ + @Override + public List selectMallProductSkuInfoList(MallProductSkuInfo mallProductSkuInfo) + { + return mallProductSkuInfoMapper.selectMallProductSkuInfoList(mallProductSkuInfo); + } + + /** + * 新增商品SKU + * + * @param mallProductSkuInfo 商品SKU + * @return 结果 + */ + @Override + public int insertMallProductSkuInfo(MallProductSkuInfo mallProductSkuInfo) + { + mallProductSkuInfo.setCreateBy(String.valueOf(SecurityUtils.getUserId())); + mallProductSkuInfo.setCreateTime(DateUtils.getNowDate()); + return mallProductSkuInfoMapper.insertMallProductSkuInfo(mallProductSkuInfo); + } + + @Override + public int batchInsertProductSku (SkuModel skuModel) { + skuModel.getSkuInfoList().forEach(skuInfo -> { + skuInfo.setNumber(IdUtils.fastSimpleUUID()); + }); + return mallProductSkuInfoMapper.batchInsertProductSku(skuModel); + } + + /** + * 修改商品SKU + * + * @param mallProductSkuInfo 商品SKU + * @return 结果 + */ + @Override + public int updateMallProductSkuInfo(MallProductSkuInfo mallProductSkuInfo) + { + mallProductSkuInfo.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); + mallProductSkuInfo.setUpdateTime(DateUtils.getNowDate()); + return mallProductSkuInfoMapper.updateMallProductSkuInfo(mallProductSkuInfo); + } + + /** + * 批量删除商品SKU + * + * @param ids 需要删除的商品SKU主键 + * @return 结果 + */ + @Override + public int deleteMallProductSkuInfoByIds(Long[] ids) + { + return mallProductSkuInfoMapper.deleteMallProductSkuInfoByIds(ids); + } + + /** + * 删除商品SKU信息 + * + * @param id 商品SKU主键 + * @return 结果 + */ + @Override + public int deleteMallProductSkuInfoById(Long id) + { + return mallProductSkuInfoMapper.deleteMallProductSkuInfoById(id); + } + + @Override + public void deleteMallProductSkuInfoByProductId (Long productId) { + mallProductSkuInfoMapper.deleteMallProductSkuInfoByProductId(productId); + } + + @Override + public void deleteMallProductSkuInfoByProductIds (Long[] ids) { + mallProductSkuInfoMapper.deleteMallProductSkuInfoByProductIds(ids); + } +} diff --git a/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductTypeInfoServiceImpl.java b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductTypeInfoServiceImpl.java new file mode 100644 index 0000000..9022c46 --- /dev/null +++ b/bawei-mall-product-server/src/main/java/com/bawei/mall/product/service/impl/MallProductTypeInfoServiceImpl.java @@ -0,0 +1,111 @@ +package com.bawei.mall.product.service.impl; + +import java.util.List; + +import com.bawei.common.core.utils.DateUtils; +import com.bawei.common.security.utils.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.bawei.mall.product.mapper.MallProductTypeInfoMapper; +import com.bawei.mall.product.domain.MallProductTypeInfo; +import com.bawei.mall.product.service.IMallProductTypeInfoService; + +/** + * 商品类型Service业务层处理 + * + * @author DongZeLiang + * @date 2022-09-16 + */ +@Service +public class MallProductTypeInfoServiceImpl implements IMallProductTypeInfoService +{ + @Autowired + private MallProductTypeInfoMapper mallProductTypeInfoMapper; + + /** + * 查询商品类型 + * + * @param id 商品类型主键 + * @return 商品类型 + */ + @Override + public MallProductTypeInfo selectMallProductTypeInfoById(Long id) + { + return mallProductTypeInfoMapper.selectMallProductTypeInfoById(id); + } + + /** + * 查询商品类型列表 + * + * @param mallProductTypeInfo 商品类型 + * @return 商品类型 + */ + @Override + public List selectMallProductTypeInfoList(MallProductTypeInfo mallProductTypeInfo) + { + List mallProductTypeInfos = mallProductTypeInfoMapper.selectMallProductTypeInfoList(mallProductTypeInfo); + if (mallProductTypeInfos == null || mallProductTypeInfos.size() == 0){ + return null; + } + for (MallProductTypeInfo productTypeInfo : mallProductTypeInfos) { + MallProductTypeInfo mallProductTypeParam = new MallProductTypeInfo(); + mallProductTypeParam.setParentId(productTypeInfo.getId()); + productTypeInfo.setChildren(this.selectMallProductTypeInfoList(mallProductTypeParam)); + } + return mallProductTypeInfos; + } + + /** + * 新增商品类型 + * + * @param mallProductTypeInfo 商品类型 + * @return 结果 + */ + @Override + public int insertMallProductTypeInfo(MallProductTypeInfo mallProductTypeInfo) + { + mallProductTypeInfo.setCreateBy(String.valueOf(SecurityUtils.getUserId())); + mallProductTypeInfo.setCreateTime(DateUtils.getNowDate()); + return mallProductTypeInfoMapper.insertMallProductTypeInfo(mallProductTypeInfo); + } + + /** + * 修改商品类型 + * + * @param mallProductTypeInfo 商品类型 + * @return 结果 + */ + @Override + public int updateMallProductTypeInfo(MallProductTypeInfo mallProductTypeInfo) + { + mallProductTypeInfo.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); + mallProductTypeInfo.setUpdateTime(DateUtils.getNowDate()); + return mallProductTypeInfoMapper.updateMallProductTypeInfo(mallProductTypeInfo); + } + + /** + * 批量删除商品类型 + * + * @param ids 需要删除的商品类型主键 + * @return 结果 + */ + @Override + public int deleteMallProductTypeInfoByIds(Long[] ids) + { + return mallProductTypeInfoMapper.deleteMallProductTypeInfoByIds(ids); + } + + /** + * 删除商品类型信息 + * + * @param id 商品类型主键 + * @return 结果 + */ + @Override + public int deleteMallProductTypeInfoById(Long id) + { + return mallProductTypeInfoMapper.deleteMallProductTypeInfoById(id); + } + + +} diff --git a/bawei-mall-product-server/src/main/resources/banner.txt b/bawei-mall-product-server/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/bawei-mall-product-server/src/main/resources/bootstrap.yml b/bawei-mall-product-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..b7f3e58 --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/bootstrap.yml @@ -0,0 +1,27 @@ +# Tomcat +server: + port: 9309 + +# Spring +spring: + application: + # 应用名称 + name: mall-product + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 101.34.69.116:8848 + config: + # 配置中心地址 + server-addr: 101.34.69.116:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + rabbitmq: + host: 101.34.69.116 diff --git a/bawei-mall-product-server/src/main/resources/logback.xml b/bawei-mall-product-server/src/main/resources/logback.xml new file mode 100644 index 0000000..04fa895 --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/bawei-mall-product-server/src/main/resources/mapper/product/MallProductBrandInfoMapper.xml b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductBrandInfoMapper.xml new file mode 100644 index 0000000..a7a1bb8 --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductBrandInfoMapper.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + select id, name, product_desc, content, logo, status, revision, create_by, create_time, update_by, update_time from mall_product_brand_info + + + + + + + + insert into mall_product_brand_info + + name, + product_desc, + content, + logo, + status, + revision, + create_by, + create_time, + update_by, + update_time, + + + #{name}, + #{productDesc}, + #{content}, + #{logo}, + #{status}, + #{revision}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update mall_product_brand_info + + name = #{name}, + product_desc = #{productDesc}, + content = #{content}, + logo = #{logo}, + status = #{status}, + revision = #{revision}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from mall_product_brand_info where id = #{id} + + + + delete from mall_product_brand_info where id in + + #{id} + + + \ No newline at end of file diff --git a/bawei-mall-product-server/src/main/resources/mapper/product/MallProductInfoMapper.xml b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductInfoMapper.xml new file mode 100644 index 0000000..866f10f --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductInfoMapper.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, name, product_desc, type, type_ids, img, carousel_images, comment_count, collect_count, brand, status, unit, keywords, rule_id, revision, create_by, create_time, update_by, update_time from mall_product_info + + + + + + + + + + insert into mall_product_info + + name, + product_desc, + type, + type_ids, + img, + carousel_images, + comment_count, + collect_count, + brand, + status, + unit, + keywords, + rule_id, + revision, + create_by, + create_time, + update_by, + update_time, + + + #{name}, + #{productDesc}, + #{type}, + #{typeIds}, + #{img}, + #{carouselImages}, + #{commentCount}, + #{collectCount}, + #{brand}, + #{status}, + #{unit}, + #{keywords}, + #{ruleId}, + #{revision}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update mall_product_info + + name = #{name}, + product_desc = #{productDesc}, + type = #{type}, + type_ids = #{typeIds}, + img = #{img}, + carousel_images = #{carouselImages}, + comment_count = #{commentCount}, + collect_count = #{collectCount}, + brand = #{brand}, + status = #{status}, + unit = #{unit}, + keywords = #{keywords}, + rule_id = #{ruleId}, + revision = #{revision}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from mall_product_info where id = #{id} + + + + delete from mall_product_info where id in + + #{id} + + + diff --git a/bawei-mall-product-server/src/main/resources/mapper/product/MallProductReviewInfoMapper.xml b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductReviewInfoMapper.xml new file mode 100644 index 0000000..3133f1b --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductReviewInfoMapper.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + select id, product_id, product_sku_id, review_images, content, start, is_dispaly, is_del, revision, create_by, create_time, update_by, update_time from mall_product_review_info + + + + + + + + insert into mall_product_review_info + + product_id, + product_sku_id, + review_images, + content, + start, + is_dispaly, + is_del, + revision, + create_by, + create_time, + update_by, + update_time, + + + #{productId}, + #{productSkuId}, + #{reviewImages}, + #{content}, + #{start}, + #{isDispaly}, + #{isDel}, + #{revision}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update mall_product_review_info + + product_id = #{productId}, + product_sku_id = #{productSkuId}, + review_images = #{reviewImages}, + content = #{content}, + start = #{start}, + is_dispaly = #{isDispaly}, + is_del = #{isDel}, + revision = #{revision}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + update mall_product_review_info set is_del = 'Y' where id = #{id} + + + + update mall_product_review_info set is_del = 'Y' where id in + + #{id} + + + diff --git a/bawei-mall-product-server/src/main/resources/mapper/product/MallProductRuleAttrInfoMapper.xml b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductRuleAttrInfoMapper.xml new file mode 100644 index 0000000..c28f0f3 --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductRuleAttrInfoMapper.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + select id, rule_id, name, attr_value, revision from mall_product_rule_attr_info + + + + + + + + insert into mall_product_rule_attr_info + + rule_id, + name, + attr_value, + revision, + + + #{ruleId}, + #{name}, + #{attrValue}, + #{revision}, + + + + insert into mall_product_rule_attr_info(rule_id, name, attr_value) + values + + (#{ruleModel.ruleId}, #{ruleAttr.ruleType}, #{ruleAttr.ruleAttrStr}) + + + + + update mall_product_rule_attr_info + + rule_id = #{ruleId}, + name = #{name}, + attr_value = #{attrValue}, + revision = #{revision}, + + where id = #{id} + + + + delete from mall_product_rule_attr_info where id = #{id} + + + + delete from mall_product_rule_attr_info where id in + + #{id} + + + + delete from mall_product_rule_attr_info where rule_id in + + #{id} + + + diff --git a/bawei-mall-product-server/src/main/resources/mapper/product/MallProductRuleInfoMapper.xml b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductRuleInfoMapper.xml new file mode 100644 index 0000000..0aafb6d --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductRuleInfoMapper.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + select id, name, rule_attr, status, revision, create_by, create_time, update_by, update_time from mall_product_rule_info + + + + + + + + insert into mall_product_rule_info + + name, + rule_attr, + status, + revision, + create_by, + create_time, + update_by, + update_time, + + + #{name}, + #{ruleAttr}, + #{status}, + #{revision}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update mall_product_rule_info + + name = #{name}, + rule_attr = #{ruleAttr}, + status = #{status}, + revision = #{revision}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from mall_product_rule_info where id = #{id} + + + + delete from mall_product_rule_info where id in + + #{id} + + + \ No newline at end of file diff --git a/bawei-mall-product-server/src/main/resources/mapper/product/MallProductSkuInfoMapper.xml b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductSkuInfoMapper.xml new file mode 100644 index 0000000..174ae37 --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductSkuInfoMapper.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + select id, product_id, sku, stock, price, purchase_price, selling_price, image, number, weight, volume, revision from mall_product_sku_info + + + + + + + + insert into mall_product_sku_info + + product_id, + sku, + stock, + price, + purchase_price, + selling_price, + image, + number, + weight, + volume, + revision, + + + #{productId}, + #{sku}, + #{stock}, + #{price}, + #{purchasePrice}, + #{sellingPrice}, + #{image}, + #{number}, + #{weight}, + #{volume}, + #{revision}, + + + + INSERT INTO mall_product_sku_info + ( `product_id`, `sku`, `stock`, `price`, `purchase_price`, + `selling_price`, `image`, `number`, `weight`, `volume`) + VALUES + + ( #{productId}, #{sku.sku}, #{sku.stock}, #{sku.price}, #{sku.purchasePrice}, + #{sku.sellingPrice}, #{sku.image}, #{sku.number}, #{sku.weight}, #{sku.volume} + ) + + + + + update mall_product_sku_info + + product_id = #{productId}, + sku = #{sku}, + stock = #{stock}, + price = #{price}, + purchase_price = #{purchasePrice}, + selling_price = #{sellingPrice}, + image = #{image}, + number = #{number}, + weight = #{weight}, + volume = #{volume}, + revision = #{revision}, + + where id = #{id} + + + + delete from mall_product_sku_info where id = #{id} + + + + delete from mall_product_sku_info where id in + + #{id} + + + + delete from mall_product_sku_info where product_id = #{productId} + + + delete from mall_product_sku_info where product_id in + + #{id} + + + diff --git a/bawei-mall-product-server/src/main/resources/mapper/product/MallProductTypeInfoMapper.xml b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductTypeInfoMapper.xml new file mode 100644 index 0000000..f1a26f0 --- /dev/null +++ b/bawei-mall-product-server/src/main/resources/mapper/product/MallProductTypeInfoMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + select id, name, image, status, order_by, parent_id, revision, create_by, create_time, update_by, update_time from mall_product_type_info + + + + + + + + insert into mall_product_type_info + + name, + image, + status, + order_by, + parent_id, + revision, + create_by, + create_time, + update_by, + update_time, + + + #{name}, + #{image}, + #{status}, + #{orderBy}, + #{parentId}, + #{revision}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update mall_product_type_info + + name = #{name}, + image = #{image}, + status = #{status}, + order_by = #{orderBy}, + parent_id = #{parentId}, + revision = #{revision}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from mall_product_type_info where id = #{id} + + + + delete from mall_product_type_info where id in + + #{id} + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..c41ec2b --- /dev/null +++ b/pom.xml @@ -0,0 +1,27 @@ + + + + bawei-mall + com.bawei + 3.6.0 + + 4.0.0 + + bawei-mall-product + pom + + bawei-mall-product-common + bawei-mall-product-remote + bawei-mall-product-server + bawei-mall-product-cache + + + + 17 + 17 + UTF-8 + + +