From 35b267e7447e32fbd42fa75214cf357415d5e1f7 Mon Sep 17 00:00:00 2001 From: hupeng Date: Sat, 7 Sep 2019 19:41:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=8E=A5=E5=8F=A3=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=8F=8A=E5=85=B6=E5=85=B6=E4=BB=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/dao/StoreGoodsAttrMapper.java | 17 ++ .../dao/StoreGoodsAttributeMapper.java | 17 ++ .../dao/StoreGoodsCollectMapper.java | 19 ++ .../persistence/dao/StoreGoodsMapper.java | 2 + .../dao/StoreSpecGoodsPriceMapper.java | 16 ++ .../persistence/dao/StoreSpecItemMapper.java | 16 ++ .../persistence/dao/StoreSpecMapper.java | 16 ++ .../dao/mapping/StoreGoodsAttrMapper.xml | 14 ++ .../dao/mapping/StoreGoodsAttributeMapper.xml | 17 ++ .../dao/mapping/StoreGoodsCollectMapper.xml | 13 ++ .../dao/mapping/StoreSpecGoodsPriceMapper.xml | 21 ++ .../dao/mapping/StoreSpecItemMapper.xml | 12 ++ .../dao/mapping/StoreSpecMapper.xml | 14 ++ .../common/persistence/model/StoreAds.java | 10 +- .../common/persistence/model/StoreGoods.java | 11 +- .../persistence/model/StoreGoodsAttr.java | 105 +++++++++ .../model/StoreGoodsAttribute.java | 146 +++++++++++++ .../persistence/model/StoreGoodsCollect.java | 91 ++++++++ .../common/persistence/model/StoreSpec.java | 103 +++++++++ .../model/StoreSpecGoodsPrice.java | 202 ++++++++++++++++++ .../persistence/model/StoreSpecItem.java | 76 +++++++ .../persistence/model/WechatNewsArticle.java | 10 +- .../shop/controller/IndexController.java | 54 +++++ .../app/modular/shop/service/IAdService.java | 4 + .../modular/shop/service/IGoodsService.java | 6 + .../modular/shop/service/INewsService.java | 5 + .../shop/service/IStoreGoodsAttrService.java | 16 ++ .../service/IStoreGoodsAttributeService.java | 16 ++ .../app/modular/shop/service/dto/AdsDTO.java | 20 ++ .../modular/shop/service/dto/GoodsDTO.java | 54 +++++ .../app/modular/shop/service/dto/NewsDTO.java | 32 +++ .../shop/service/impl/AdServiceImpl.java | 16 ++ .../shop/service/impl/GoodsServiceImpl.java | 79 +++++++ .../shop/service/impl/NewsServiceImpl.java | 30 ++- .../impl/StoreGoodsAttrServiceImpl.java | 20 ++ .../impl/StoreGoodsAttributeServiceImpl.java | 19 ++ .../shop/service/mapper/AdsMapper.java | 17 ++ .../shop/service/mapper/GoodsMapper.java | 17 ++ .../shop/service/mapper/NewsMapper.java | 17 ++ .../com/ruoyi/generator/EntityGenerator.java | 3 +- 40 files changed, 1354 insertions(+), 19 deletions(-) create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsAttrMapper.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsAttributeMapper.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsCollectMapper.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecGoodsPriceMapper.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecItemMapper.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecMapper.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsAttrMapper.xml create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsAttributeMapper.xml create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsCollectMapper.xml create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecGoodsPriceMapper.xml create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecItemMapper.xml create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecMapper.xml create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsAttr.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsAttribute.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsCollect.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpec.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpecGoodsPrice.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpecItem.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/controller/IndexController.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IStoreGoodsAttrService.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IStoreGoodsAttributeService.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/AdsDTO.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/GoodsDTO.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/NewsDTO.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/StoreGoodsAttrServiceImpl.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/StoreGoodsAttributeServiceImpl.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/AdsMapper.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/GoodsMapper.java create mode 100644 ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/NewsMapper.java diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsAttrMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsAttrMapper.java new file mode 100644 index 0000000..223475f --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsAttrMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.app.common.persistence.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.app.common.persistence.model.StoreGoodsAttr; + + +/** + *

+ * 商品关联的属性表(与商品相关) Mapper 接口 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +public interface StoreGoodsAttrMapper extends BaseMapper { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsAttributeMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsAttributeMapper.java new file mode 100644 index 0000000..43e7cb7 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsAttributeMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.app.common.persistence.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.app.common.persistence.model.StoreGoodsAttribute; + + +/** + *

+ * 商品的属性表(独立) Mapper 接口 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +public interface StoreGoodsAttributeMapper extends BaseMapper { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsCollectMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsCollectMapper.java new file mode 100644 index 0000000..f2fc6d2 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsCollectMapper.java @@ -0,0 +1,19 @@ +package com.ruoyi.app.common.persistence.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.app.common.persistence.model.StoreGoodsCollect; +import org.apache.ibatis.annotations.Mapper; + + +/** + *

+ * 商品收藏表 Mapper 接口 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +@Mapper +public interface StoreGoodsCollectMapper extends BaseMapper { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsMapper.java index c2c9d92..34928c3 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsMapper.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreGoodsMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.app.common.persistence.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.app.common.persistence.model.StoreGoods; +import org.apache.ibatis.annotations.Mapper; /** @@ -12,6 +13,7 @@ import com.ruoyi.app.common.persistence.model.StoreGoods; * @author hupeng * @since 2019-09-05 */ +@Mapper public interface StoreGoodsMapper extends BaseMapper { } diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecGoodsPriceMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecGoodsPriceMapper.java new file mode 100644 index 0000000..b47e1d4 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecGoodsPriceMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.app.common.persistence.dao; + +import com.ruoyi.app.common.persistence.model.StoreSpecGoodsPrice; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 商品规格关联价格表 Mapper 接口 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +public interface StoreSpecGoodsPriceMapper extends BaseMapper { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecItemMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecItemMapper.java new file mode 100644 index 0000000..b3edd1f --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecItemMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.app.common.persistence.dao; + +import com.ruoyi.app.common.persistence.model.StoreSpecItem; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 规格项 Mapper 接口 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +public interface StoreSpecItemMapper extends BaseMapper { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecMapper.java new file mode 100644 index 0000000..015fa29 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/StoreSpecMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.app.common.persistence.dao; + +import com.ruoyi.app.common.persistence.model.StoreSpec; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 商品规格表(独立) Mapper 接口 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +public interface StoreSpecMapper extends BaseMapper { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsAttrMapper.xml b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsAttrMapper.xml new file mode 100644 index 0000000..a878e21 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsAttrMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsAttributeMapper.xml b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsAttributeMapper.xml new file mode 100644 index 0000000..06012c3 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsAttributeMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsCollectMapper.xml b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsCollectMapper.xml new file mode 100644 index 0000000..9085341 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreGoodsCollectMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecGoodsPriceMapper.xml b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecGoodsPriceMapper.xml new file mode 100644 index 0000000..9386183 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecGoodsPriceMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecItemMapper.xml b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecItemMapper.xml new file mode 100644 index 0000000..927c71f --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecItemMapper.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecMapper.xml b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecMapper.xml new file mode 100644 index 0000000..4fd0715 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/dao/mapping/StoreSpecMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreAds.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreAds.java index d368ea9..c646d1e 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreAds.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreAds.java @@ -1,10 +1,10 @@ package com.ruoyi.app.common.persistence.model; -import com.baomidou.mybatisplus.enums.IdType; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; import java.io.Serializable; /** diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoods.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoods.java index 09f0bb6..0a80c5e 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoods.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoods.java @@ -1,11 +1,12 @@ package com.ruoyi.app.common.persistence.model; -import com.baomidou.mybatisplus.enums.IdType; import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; import java.io.Serializable; /** diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsAttr.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsAttr.java new file mode 100644 index 0000000..5842666 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsAttr.java @@ -0,0 +1,105 @@ +package com.ruoyi.app.common.persistence.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import java.io.Serializable; + +/** + *

+ * 商品关联的属性表(与商品相关) + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +@TableName("store_goods_attr") +public class StoreGoodsAttr extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 商品属性id自增 + */ + @TableId(value = "goods_attr_id", type = IdType.AUTO) + private Integer goodsAttrId; + /** + * 商品id + */ + @TableField("goods_id") + private Integer goodsId; + /** + * 属性id + */ + @TableField("attr_id") + private Integer attrId; + /** + * 属性值 + */ + @TableField("attr_value") + private String attrValue; + /** + * 属性价格 + */ + @TableField("attr_price") + private String attrPrice; + + + public Integer getGoodsAttrId() { + return goodsAttrId; + } + + public void setGoodsAttrId(Integer goodsAttrId) { + this.goodsAttrId = goodsAttrId; + } + + public Integer getGoodsId() { + return goodsId; + } + + public void setGoodsId(Integer goodsId) { + this.goodsId = goodsId; + } + + public Integer getAttrId() { + return attrId; + } + + public void setAttrId(Integer attrId) { + this.attrId = attrId; + } + + public String getAttrValue() { + return attrValue; + } + + public void setAttrValue(String attrValue) { + this.attrValue = attrValue; + } + + public String getAttrPrice() { + return attrPrice; + } + + public void setAttrPrice(String attrPrice) { + this.attrPrice = attrPrice; + } + + @Override + protected Serializable pkVal() { + return this.goodsAttrId; + } + + @Override + public String toString() { + return "StoreGoodsAttr{" + + ", goodsAttrId=" + goodsAttrId + + ", goodsId=" + goodsId + + ", attrId=" + attrId + + ", attrValue=" + attrValue + + ", attrPrice=" + attrPrice + + "}"; + } +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsAttribute.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsAttribute.java new file mode 100644 index 0000000..adf84a4 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsAttribute.java @@ -0,0 +1,146 @@ +package com.ruoyi.app.common.persistence.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import java.io.Serializable; + +/** + *

+ * 商品的属性表(独立) + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +@TableName("store_goods_attribute") +public class StoreGoodsAttribute extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 属性id + */ + @TableId(value = "attr_id", type = IdType.AUTO) + private Integer attrId; + /** + * 属性名称 + */ + @TableField("attr_name") + private String attrName; + /** + * 属性分类id(商品模型id) + */ + @TableField("type_id") + private Integer typeId; + /** + * 0不需要检索 1关键字检索 2范围检索 + */ + @TableField("attr_index") + private Integer attrIndex; + /** + * 0唯一属性 1单选属性 2复选属性 + */ + @TableField("attr_type") + private Integer attrType; + /** + * 0 手工录入 1从列表中选择 2多行文本框 + */ + @TableField("attr_input_type") + private Integer attrInputType; + /** + * 可选值列表 + */ + @TableField("attr_values") + private String attrValues; + /** + * 属性排序 + */ + private Integer sort; + + + public Integer getAttrId() { + return attrId; + } + + public void setAttrId(Integer attrId) { + this.attrId = attrId; + } + + public String getAttrName() { + return attrName; + } + + public void setAttrName(String attrName) { + this.attrName = attrName; + } + + public Integer getTypeId() { + return typeId; + } + + public void setTypeId(Integer typeId) { + this.typeId = typeId; + } + + public Integer getAttrIndex() { + return attrIndex; + } + + public void setAttrIndex(Integer attrIndex) { + this.attrIndex = attrIndex; + } + + public Integer getAttrType() { + return attrType; + } + + public void setAttrType(Integer attrType) { + this.attrType = attrType; + } + + public Integer getAttrInputType() { + return attrInputType; + } + + public void setAttrInputType(Integer attrInputType) { + this.attrInputType = attrInputType; + } + + public String getAttrValues() { + return attrValues; + } + + public void setAttrValues(String attrValues) { + this.attrValues = attrValues; + } + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + @Override + protected Serializable pkVal() { + return this.attrId; + } + + @Override + public String toString() { + return "StoreGoodsAttribute{" + + ", attrId=" + attrId + + ", attrName=" + attrName + + ", typeId=" + typeId + + ", attrIndex=" + attrIndex + + ", attrType=" + attrType + + ", attrInputType=" + attrInputType + + ", attrValues=" + attrValues + + ", sort=" + sort + + "}"; + } +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsCollect.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsCollect.java new file mode 100644 index 0000000..beb5f28 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreGoodsCollect.java @@ -0,0 +1,91 @@ +package com.ruoyi.app.common.persistence.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import java.io.Serializable; + +/** + *

+ * 商品收藏表 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +@TableName("store_goods_collect") +public class StoreGoodsCollect extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 表id + */ + @TableId(value = "collect_id", type = IdType.AUTO) + private Integer collectId; + /** + * 用户id + */ + @TableField("user_id") + private Integer userId; + /** + * 商品id + */ + @TableField("goods_id") + private Integer goodsId; + /** + * 添加时间 + */ + @TableField("add_time") + private Integer addTime; + + + public Integer getCollectId() { + return collectId; + } + + public void setCollectId(Integer collectId) { + this.collectId = collectId; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Integer getGoodsId() { + return goodsId; + } + + public void setGoodsId(Integer goodsId) { + this.goodsId = goodsId; + } + + public Integer getAddTime() { + return addTime; + } + + public void setAddTime(Integer addTime) { + this.addTime = addTime; + } + + @Override + protected Serializable pkVal() { + return this.collectId; + } + + @Override + public String toString() { + return "StoreGoodsCollect{" + + ", collectId=" + collectId + + ", userId=" + userId + + ", goodsId=" + goodsId + + ", addTime=" + addTime + + "}"; + } +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpec.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpec.java new file mode 100644 index 0000000..86d5b14 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpec.java @@ -0,0 +1,103 @@ +package com.ruoyi.app.common.persistence.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import java.io.Serializable; + +/** + *

+ * 商品规格表(独立) + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +@TableName("store_spec") +public class StoreSpec extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 规格表 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 规格类型 + */ + @TableField("type_id") + private Integer typeId; + /** + * 规格名称 + */ + private String name; + /** + * 排序 + */ + private Integer sort; + /** + * 是否需要检索:1是,0否 + */ + @TableField("search_index") + private Integer searchIndex; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getTypeId() { + return typeId; + } + + public void setTypeId(Integer typeId) { + this.typeId = typeId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public Integer getSearchIndex() { + return searchIndex; + } + + public void setSearchIndex(Integer searchIndex) { + this.searchIndex = searchIndex; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "StoreSpec{" + + ", id=" + id + + ", typeId=" + typeId + + ", name=" + name + + ", sort=" + sort + + ", searchIndex=" + searchIndex + + "}"; + } +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpecGoodsPrice.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpecGoodsPrice.java new file mode 100644 index 0000000..2f08b52 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpecGoodsPrice.java @@ -0,0 +1,202 @@ +package com.ruoyi.app.common.persistence.model; + + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import java.io.Serializable; + +/** + *

+ * 商品规格关联价格表 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +@TableName("store_spec_goods_price") +public class StoreSpecGoodsPrice extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 规格商品id + */ + @TableId(value = "item_id", type = IdType.AUTO) + private Long itemId; + /** + * 商品id + */ + @TableField("goods_id") + private Integer goodsId; + /** + * 规格键名 + */ + private String key; + /** + * 规格键名中文 + */ + @TableField("key_name") + private String keyName; + /** + * 价格(供货价格) + */ + private BigDecimal price; + /** + * 零售价格 + */ + @TableField("market_price") + private Double marketPrice; + /** + * 库存数量 + */ + @TableField("store_count") + private Integer storeCount; + /** + * 商品条形码 + */ + @TableField("bar_code") + private String barCode; + /** + * SKU + */ + private String sku; + /** + * 规格商品主图 + */ + @TableField("spec_img") + private String specImg; + /** + * 活动id + */ + @TableField("prom_id") + private Integer promId; + /** + * 参加活动类型 + */ + @TableField("prom_type") + private Integer promType; + + + public Long getItemId() { + return itemId; + } + + public void setItemId(Long itemId) { + this.itemId = itemId; + } + + public Integer getGoodsId() { + return goodsId; + } + + public void setGoodsId(Integer goodsId) { + this.goodsId = goodsId; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getKeyName() { + return keyName; + } + + public void setKeyName(String keyName) { + this.keyName = keyName; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public Double getMarketPrice() { + return marketPrice; + } + + public void setMarketPrice(Double marketPrice) { + this.marketPrice = marketPrice; + } + + public Integer getStoreCount() { + return storeCount; + } + + public void setStoreCount(Integer storeCount) { + this.storeCount = storeCount; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public String getSpecImg() { + return specImg; + } + + public void setSpecImg(String specImg) { + this.specImg = specImg; + } + + public Integer getPromId() { + return promId; + } + + public void setPromId(Integer promId) { + this.promId = promId; + } + + public Integer getPromType() { + return promType; + } + + public void setPromType(Integer promType) { + this.promType = promType; + } + + @Override + protected Serializable pkVal() { + return this.itemId; + } + + @Override + public String toString() { + return "StoreSpecGoodsPrice{" + + ", itemId=" + itemId + + ", goodsId=" + goodsId + + ", key=" + key + + ", keyName=" + keyName + + ", price=" + price + + ", marketPrice=" + marketPrice + + ", storeCount=" + storeCount + + ", barCode=" + barCode + + ", sku=" + sku + + ", specImg=" + specImg + + ", promId=" + promId + + ", promType=" + promType + + "}"; + } +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpecItem.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpecItem.java new file mode 100644 index 0000000..6f63ad7 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/StoreSpecItem.java @@ -0,0 +1,76 @@ +package com.ruoyi.app.common.persistence.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import java.io.Serializable; + +/** + *

+ * 规格项 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +@TableName("store_spec_item") +public class StoreSpecItem extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 规格项id + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 规格id + */ + @TableField("spec_id") + private Integer specId; + /** + * 规格项 + */ + private String item; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getSpecId() { + return specId; + } + + public void setSpecId(Integer specId) { + this.specId = specId; + } + + public String getItem() { + return item; + } + + public void setItem(String item) { + this.item = item; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "StoreSpecItem{" + + ", id=" + id + + ", specId=" + specId + + ", item=" + item + + "}"; + } +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/WechatNewsArticle.java b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/WechatNewsArticle.java index 4c22bb4..77a12e8 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/WechatNewsArticle.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/common/persistence/model/WechatNewsArticle.java @@ -1,11 +1,11 @@ package com.ruoyi.app.common.persistence.model; -import com.baomidou.mybatisplus.enums.IdType; import java.util.Date; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.activerecord.Model; -import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; import java.io.Serializable; /** diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/controller/IndexController.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/controller/IndexController.java new file mode 100644 index 0000000..5af0443 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/controller/IndexController.java @@ -0,0 +1,54 @@ +package com.ruoyi.app.modular.shop.controller; + +import com.itmuch.lightsecurity.jwt.UserOperator; +import com.ruoyi.app.common.R; +import com.ruoyi.app.modular.member.service.IMemberService; +import com.ruoyi.app.modular.shop.service.dto.AdsDTO; +import com.ruoyi.app.modular.shop.service.dto.GoodsDTO; +import com.ruoyi.app.modular.shop.service.dto.NewsDTO; +import com.ruoyi.app.modular.shop.service.impl.AdServiceImpl; +import com.ruoyi.app.modular.shop.service.impl.GoodsServiceImpl; +import com.ruoyi.app.modular.shop.service.impl.NewsServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * @ClassName IndexController + * @Author hupeng <610796224@qq.com> + * @Date 2019/9/7 + **/ + +@RestController +@RequiredArgsConstructor(onConstructor = @__(@Autowired)) +public class IndexController { + private final UserOperator userOperator; + private final GoodsServiceImpl goodsService; + private final NewsServiceImpl newsService; + private final AdServiceImpl adService; + + @GetMapping("/shop/index-list") + public R index(){ + int userId = userOperator.getUser().getId(); + + List recommedGoods = goodsService.getList(0,1,3,userId,"",1); + List newGoods = goodsService.getList(0,1,6,userId,"",2); + List newsList = newsService.getList(1,3); + List ads = adService.getList(); + + Map map = new HashMap<>(); + map.put("recommedGoods",recommedGoods); + map.put("newGoods",newGoods); + map.put("newsList",newsList); + map.put("ads",ads); + + return R.success(map); + //return null; + } +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IAdService.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IAdService.java index bab33c7..eae01e2 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IAdService.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IAdService.java @@ -5,8 +5,12 @@ package com.ruoyi.app.modular.shop.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.app.common.persistence.model.StoreAds; +import com.ruoyi.app.modular.shop.service.dto.AdsDTO; + +import java.util.List; public interface IAdService extends IService { + public List getList(); } diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IGoodsService.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IGoodsService.java index f6f4c8c..1d152c4 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IGoodsService.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IGoodsService.java @@ -5,8 +5,14 @@ package com.ruoyi.app.modular.shop.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.app.common.persistence.model.StoreGoods; +import com.ruoyi.app.modular.shop.service.dto.GoodsDTO; + +import java.util.List; public interface IGoodsService extends IService { + public List getList(int cateId,int page,int limit, + int userId,String keywords,int order); + public boolean isCollect(int goodsId,int userId); } diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/INewsService.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/INewsService.java index 71008f4..5624e58 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/INewsService.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/INewsService.java @@ -5,8 +5,13 @@ package com.ruoyi.app.modular.shop.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.app.common.persistence.model.WechatNewsArticle; +import com.ruoyi.app.modular.shop.service.dto.NewsDTO; + +import java.util.List; public interface INewsService extends IService { + public List getList(int page,int limit); + } diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IStoreGoodsAttrService.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IStoreGoodsAttrService.java new file mode 100644 index 0000000..6ad01c7 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IStoreGoodsAttrService.java @@ -0,0 +1,16 @@ +package com.ruoyi.app.modular.shop.service; + +import com.ruoyi.app.common.persistence.model.StoreGoodsAttr; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 商品关联的属性表(与商品相关) 服务类 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +public interface IStoreGoodsAttrService extends IService { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IStoreGoodsAttributeService.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IStoreGoodsAttributeService.java new file mode 100644 index 0000000..55f6442 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/IStoreGoodsAttributeService.java @@ -0,0 +1,16 @@ +package com.ruoyi.app.modular.shop.service; + +import com.ruoyi.app.common.persistence.model.StoreGoodsAttribute; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 商品的属性表(独立) 服务类 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +public interface IStoreGoodsAttributeService extends IService { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/AdsDTO.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/AdsDTO.java new file mode 100644 index 0000000..9c859b5 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/AdsDTO.java @@ -0,0 +1,20 @@ +package com.ruoyi.app.modular.shop.service.dto; + + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class AdsDTO implements Serializable { + + private Integer id; + + private String videoUrl; + + /** + * 轮播图片地址 + */ + private String url; + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/GoodsDTO.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/GoodsDTO.java new file mode 100644 index 0000000..b0ff77e --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/GoodsDTO.java @@ -0,0 +1,54 @@ +package com.ruoyi.app.modular.shop.service.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class GoodsDTO implements Serializable { + + + private Integer goodsId; + + private Integer cateId; + + private String goodsSn; + + private String goodsName; + + private Integer storeCount; + + private BigDecimal marketPrice; + /** + * 本店价(供货价) + */ + private BigDecimal shopPrice; + + /** + * 商品关键词 + */ + private String keywords; + /** + * 商品简单描述 + */ + private String goodsRemark; + /** + * 商品详细描述 + */ + private String goodsContent; + + /** + * 商品上传原始图(主图) + */ + private String goodsLogo; + + /** + * 商品销量 + */ + private Integer salesSum; + + private Boolean isCollect; + + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/NewsDTO.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/NewsDTO.java new file mode 100644 index 0000000..c78d982 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/dto/NewsDTO.java @@ -0,0 +1,32 @@ +package com.ruoyi.app.modular.shop.service.dto; + + +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class NewsDTO implements Serializable { + + + private Long id; + + private String title; + + private String localUrl; + /** + * 作者 + */ + private String author; + /** + * 摘要内容 + */ + private String digest; + /** + * 图文内容 + */ + private String content; + + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/AdServiceImpl.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/AdServiceImpl.java index 92e063d..2591790 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/AdServiceImpl.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/AdServiceImpl.java @@ -2,15 +2,31 @@ package com.ruoyi.app.modular.shop.service.impl; //import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.app.common.persistence.dao.StoreAdsMapper; import com.ruoyi.app.common.persistence.model.StoreAds; import com.ruoyi.app.modular.shop.service.IAdService; +import com.ruoyi.app.modular.shop.service.dto.AdsDTO; +import com.ruoyi.app.modular.shop.service.mapper.AdsMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + @Service +@RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class AdServiceImpl extends ServiceImpl implements IAdService { + private final AdsMapper adsMapper; + + @Override + public List getList() { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.orderByDesc("create_time"); + return adsMapper.toDto(baseMapper.selectList(wrapper)); + } } diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/GoodsServiceImpl.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/GoodsServiceImpl.java index be8b0f5..6a3e259 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/GoodsServiceImpl.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/GoodsServiceImpl.java @@ -3,14 +3,93 @@ package com.ruoyi.app.modular.shop.service.impl; //import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.app.common.persistence.dao.StoreGoodsCollectMapper; import com.ruoyi.app.common.persistence.dao.StoreGoodsMapper; import com.ruoyi.app.common.persistence.model.StoreGoods; +import com.ruoyi.app.common.persistence.model.StoreGoodsCollect; import com.ruoyi.app.modular.shop.service.IGoodsService; +import com.ruoyi.app.modular.shop.service.dto.GoodsDTO; +import com.ruoyi.app.modular.shop.service.mapper.GoodsMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + @Service +@RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class GoodsServiceImpl extends ServiceImpl implements IGoodsService { + private final GoodsMapper goodsMapper; + private final StoreGoodsMapper storeGoodsMapper; + private final StoreGoodsCollectMapper storeGoodsCollectMapper; + + /** + * 商品列表 + * @param cateId + * @param page + * @param limit + * @param userId + * @param keywords + * @param order + * @return + */ + @Override + public List getList(int cateId, int page, int limit, int userId, + String keywords,int order) { + + QueryWrapper wrapper = new QueryWrapper<>(); + + if(cateId > 0){ + wrapper.eq("cate_id",cateId); + } + if(StrUtil.isNotEmpty(keywords)){ + wrapper.like("goods_name",keywords); + } + + //todo order = 1 推荐 order=2 新品 + switch (order){ + case 1: + wrapper.eq("is_recommend",1); + break; + case 2: + wrapper.eq("is_new",1); + break; + } + Page pageModel = new Page<>(page, limit); + + IPage pageList = storeGoodsMapper.selectPage(pageModel,wrapper); + + List list = goodsMapper.toDto(pageList.getRecords()); + + for (GoodsDTO goodsDTO : list) { + goodsDTO.setIsCollect(isCollect(goodsDTO.getGoodsId(),userId)); + } + + return list; + //return null; + } + + /** + * 收藏判断 + * @param goodsId + * @param userId + * @return + */ + @Override + public boolean isCollect(int goodsId, int userId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("goods_id",goodsId).eq("user_id",userId); + StoreGoodsCollect goodsCollect = storeGoodsCollectMapper.selectOne(wrapper); + if(ObjectUtil.isNotNull(goodsCollect)) return true; + return false; + } } diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/NewsServiceImpl.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/NewsServiceImpl.java index 5e9561a..133dc4a 100644 --- a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/NewsServiceImpl.java +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/NewsServiceImpl.java @@ -3,17 +3,41 @@ package com.ruoyi.app.modular.shop.service.impl; //import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.app.common.persistence.dao.StoreAdsMapper; import com.ruoyi.app.common.persistence.dao.WechatNewsArticleMapper; -import com.ruoyi.app.common.persistence.model.StoreAds; import com.ruoyi.app.common.persistence.model.WechatNewsArticle; -import com.ruoyi.app.modular.shop.service.IAdService; import com.ruoyi.app.modular.shop.service.INewsService; +import com.ruoyi.app.modular.shop.service.dto.NewsDTO; +import com.ruoyi.app.modular.shop.service.mapper.NewsMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + @Service +@RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class NewsServiceImpl extends ServiceImpl implements INewsService { + private final NewsMapper newsMapper; + + /** + * 新闻列表 + * @param page + * @param limit + * @return + */ + @Override + public List getList(int page, int limit) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.orderByDesc("id"); + Page pageModel = new Page<>(page, limit); + IPage pageList = baseMapper.selectPage(pageModel,wrapper); + + return newsMapper.toDto(pageList.getRecords()); + } } diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/StoreGoodsAttrServiceImpl.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/StoreGoodsAttrServiceImpl.java new file mode 100644 index 0000000..d78aa0a --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/StoreGoodsAttrServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.app.modular.shop.service.impl; + +import com.ruoyi.app.common.persistence.model.StoreGoodsAttr; +import com.ruoyi.app.common.persistence.dao.StoreGoodsAttrMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.app.modular.shop.service.IStoreGoodsAttrService; +import org.springframework.stereotype.Service; + +/** + *

+ * 商品关联的属性表(与商品相关) 服务实现类 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +@Service +public class StoreGoodsAttrServiceImpl extends ServiceImpl implements IStoreGoodsAttrService { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/StoreGoodsAttributeServiceImpl.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/StoreGoodsAttributeServiceImpl.java new file mode 100644 index 0000000..d6b1cf2 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/impl/StoreGoodsAttributeServiceImpl.java @@ -0,0 +1,19 @@ +package com.ruoyi.app.modular.shop.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.app.common.persistence.model.StoreGoodsAttribute; +import com.ruoyi.app.common.persistence.dao.StoreGoodsAttributeMapper; +import org.springframework.stereotype.Service; + +/** + *

+ * 商品的属性表(独立) 服务实现类 + *

+ * + * @author hupeng + * @since 2019-09-07 + */ +@Service +public class StoreGoodsAttributeServiceImpl extends ServiceImpl implements IStoreGoodsAttributeService { + +} diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/AdsMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/AdsMapper.java new file mode 100644 index 0000000..69f85df --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/AdsMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.app.modular.shop.service.mapper; + + +import com.ruoyi.app.common.persistence.model.StoreAds; +import com.ruoyi.app.modular.mapper.EntityMapper; +import com.ruoyi.app.modular.shop.service.dto.AdsDTO; +import org.mapstruct.Mapper; +import org.mapstruct.ReportingPolicy; + +/** +* @author hupeng +* @date 2019-09-07 +*/ +@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface AdsMapper extends EntityMapper { + +} \ No newline at end of file diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/GoodsMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/GoodsMapper.java new file mode 100644 index 0000000..0219410 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/GoodsMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.app.modular.shop.service.mapper; + + +import com.ruoyi.app.common.persistence.model.StoreGoods; +import com.ruoyi.app.modular.mapper.EntityMapper; +import com.ruoyi.app.modular.shop.service.dto.GoodsDTO; +import org.mapstruct.Mapper; +import org.mapstruct.ReportingPolicy; + +/** +* @author hupeng +* @date 2019-09-07 +*/ +@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface GoodsMapper extends EntityMapper { + +} \ No newline at end of file diff --git a/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/NewsMapper.java b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/NewsMapper.java new file mode 100644 index 0000000..26db320 --- /dev/null +++ b/ruoyi-api/src/main/java/com/ruoyi/app/modular/shop/service/mapper/NewsMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.app.modular.shop.service.mapper; + + +import com.ruoyi.app.common.persistence.model.WechatNewsArticle; +import com.ruoyi.app.modular.mapper.EntityMapper; +import com.ruoyi.app.modular.shop.service.dto.NewsDTO; +import org.mapstruct.Mapper; +import org.mapstruct.ReportingPolicy; + +/** +* @author hupeng +* @date 2019-09-07 +*/ +@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface NewsMapper extends EntityMapper { + +} \ No newline at end of file diff --git a/ruoyi-api/src/test/java/com/ruoyi/generator/EntityGenerator.java b/ruoyi-api/src/test/java/com/ruoyi/generator/EntityGenerator.java index ea22064..c089f38 100644 --- a/ruoyi-api/src/test/java/com/ruoyi/generator/EntityGenerator.java +++ b/ruoyi-api/src/test/java/com/ruoyi/generator/EntityGenerator.java @@ -1,6 +1,7 @@ package com.ruoyi.generator; +import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; @@ -57,7 +58,7 @@ public class EntityGenerator { StrategyConfig strategy = new StrategyConfig(); //strategy.setTablePrefix(new String[]{"_"});// 此处可以修改为您的表前缀 strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略 - strategy.setInclude(new String[]{"store_goods","wechat_news_article"}); + strategy.setInclude(new String[]{"store_goods_collect","store_spec","store_spec_goods_price","store_spec_item"}); mpg.setStrategy(strategy); // 包配置