From 611e9faefc1d63808021c2b6e57a651e172b3c1b Mon Sep 17 00:00:00 2001
From: Caps <279205343@qq.com>
Date: Wed, 4 Dec 2019 17:25:23 +0800
Subject: [PATCH 1/2] elasticsearcher pom.xml
---
pom.xml | 25 +++++++
.../polaris/controller/ProductController.java | 18 +++++
.../mapper/ShopProductVariantMapper.java | 2 -
.../hxtec/polaris/service/ProductService.java | 3 +
.../service/impl/CartItemServiceImpl.java | 5 +-
.../service/impl/ProductServiceImpl.java | 65 +++++++++++++++++++
src/main/resources/application.yml | 17 +++--
.../mapper/ShopProductVariantMapper.xml | 9 ---
8 files changed, 126 insertions(+), 18 deletions(-)
diff --git a/pom.xml b/pom.xml
index e5b83e5..0a2dbbb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,6 +39,11 @@
org.springframework.boot
spring-boot-starter-data-jpa
+
+ org.springframework.boot
+ spring-boot-starter-data-elasticsearch
+
+
org.springframework.boot
spring-boot-starter-data-redis
@@ -53,6 +58,11 @@
2.1.1
+
+ org.apache.commons
+ commons-pool2
+
+
org.springframework.boot
spring-boot-devtools
@@ -174,6 +184,21 @@
spring-boot-starter-cache
+
+
+ io.searchbox
+ jest
+ 5.3.3
+
+
+
+
+
+ net.java.dev.jna
+ jna
+ 4.5.1
+
+
diff --git a/src/main/java/com/hxtec/polaris/controller/ProductController.java b/src/main/java/com/hxtec/polaris/controller/ProductController.java
index 1b9f3c6..909c095 100644
--- a/src/main/java/com/hxtec/polaris/controller/ProductController.java
+++ b/src/main/java/com/hxtec/polaris/controller/ProductController.java
@@ -12,11 +12,15 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
@@ -59,6 +63,7 @@ public class ProductController {
List pmsProductSaleAttrs = skuService.spuSaleAttrListCheckBySku(skuInfo.getSpu(),skuInfo.getSku());
map.put("spuSaleAttrListCheckBySku",pmsProductSaleAttrs);
List skuList=skuService.getSkuSaleAttrValueListBySpu(skuInfo.getSpu());
+ //销售属性hash表,k->销售值id,v->sku,
Map skuSaleAttrHash = new HashMap<>();
skuList.forEach(i->{
String v= String.valueOf(i.getSku());
@@ -76,4 +81,17 @@ public class ProductController {
map.put("stockInfo",shopStock);
return Result.ok(map);
}
+
+
+ @ApiOperation(value="保存商品信息", notes="商保存商品信息")
+ @PostMapping("saveSkuInfo")
+ public Result> saveSkuInfo(@RequestBody ShopProductVariant skuInfo){
+ // 处理默认图片
+ String skuDefaultImg = skuInfo.getImage();
+ if(StringUtils.isBlank(skuDefaultImg)){
+ skuInfo.setImage(skuInfo.getSkuImageList().get(0).getImgUrl());
+ }
+ skuService.saveSkuInfo(skuInfo);
+ return Result.ok("success");
+ }
}
diff --git a/src/main/java/com/hxtec/polaris/mapper/ShopProductVariantMapper.java b/src/main/java/com/hxtec/polaris/mapper/ShopProductVariantMapper.java
index 636985c..fc0fa01 100644
--- a/src/main/java/com/hxtec/polaris/mapper/ShopProductVariantMapper.java
+++ b/src/main/java/com/hxtec/polaris/mapper/ShopProductVariantMapper.java
@@ -8,7 +8,5 @@ import tk.mybatis.mapper.MyMapper;import java.util.List;import java.util.Map;
* @date 2019/11/29
*/
public interface ShopProductVariantMapper extends MyMapper {
- Map getProductInfoBySku(Integer sku);
-
List selectSkuSaleAttrValueListBySpu(Integer spu);
}
\ No newline at end of file
diff --git a/src/main/java/com/hxtec/polaris/service/ProductService.java b/src/main/java/com/hxtec/polaris/service/ProductService.java
index 3a663fd..fe07f18 100644
--- a/src/main/java/com/hxtec/polaris/service/ProductService.java
+++ b/src/main/java/com/hxtec/polaris/service/ProductService.java
@@ -14,6 +14,7 @@ import java.util.List;
* @date 2019/11/16
*/
public interface ProductService {
+
ShopProductVariant getSkuProductBySku(Integer sku);
List spuSaleAttrListCheckBySku(Integer spu, Integer sku);
@@ -24,4 +25,6 @@ public interface ProductService {
List getSkuSaleAttrValueBySku(Integer sku);
+ void saveSkuInfo(ShopProductVariant skuInfo);
+
}
diff --git a/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java
index 99d5c4e..9969c4d 100644
--- a/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java
+++ b/src/main/java/com/hxtec/polaris/service/impl/CartItemServiceImpl.java
@@ -57,6 +57,7 @@ public class CartItemServiceImpl implements CartItemService {
ShopProductBase spuInfo=productService.getSpuInfoBySpu(skuInfo.getSpu());
List skuSaleAttrValueBySku = productService.getSkuSaleAttrValueBySku(sku);
StringBuilder skuSaleAttr= new StringBuilder();
+ //商品的销售属性值
for (ShopProductVariantAttrValue variantAttrValue : skuSaleAttrValueBySku) {
String skuSale = variantAttrValue.getSaleAttrName() +":"+ variantAttrValue.getSaleAttrValueName() + "|";
skuSaleAttr.append(skuSale);
@@ -75,6 +76,7 @@ public class CartItemServiceImpl implements CartItemService {
.productSubTitle(skuInfo.getDescription())
.productAttr(substring).build();
+ //库存信息
ShopStock stockInfo = stockService.getStockInfoBuSku(skuInfo.getSku());
cartItem.setStock(stockInfo.getAvailable());
if (StringUtils.isNotEmpty(skuInfo.getDiscount())){
@@ -88,12 +90,13 @@ public class CartItemServiceImpl implements CartItemService {
ShopCartItem shopCartItem=this.ifCartExistByUser(userInfo.getId(),sku);
Integer i;
if(null ==shopCartItem){
- //沒有加过
+ //沒有加过购
cartItem.setMemberId(userInfo.getId());
cartItem.setMemberNickname(userInfo.getNickname());
i=this.insertTocart(cartItem);
}
else {
+ //加过购,数量加一
shopCartItem.setQuantity(shopCartItem.getQuantity()+quantity);
i=this.updateCart(shopCartItem);
}
diff --git a/src/main/java/com/hxtec/polaris/service/impl/ProductServiceImpl.java b/src/main/java/com/hxtec/polaris/service/impl/ProductServiceImpl.java
index 0ca185b..d96e5fb 100644
--- a/src/main/java/com/hxtec/polaris/service/impl/ProductServiceImpl.java
+++ b/src/main/java/com/hxtec/polaris/service/impl/ProductServiceImpl.java
@@ -14,6 +14,7 @@ import com.hxtec.polaris.mapper.ShopProductVariantImageMapper;
import com.hxtec.polaris.mapper.ShopProductVariantMapper;
import com.hxtec.polaris.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
@@ -41,34 +42,98 @@ public class ProductServiceImpl implements ProductService {
@Autowired
private ShopProductVariantAttrValueMapper variantAttrValueMapper;
+ @Autowired
+ private RedisTemplate redisTemplate;
+
+ /**
+ * 根据sku从数据库获取带图片信息的商品信息
+ * @param sku
+ * @return
+ */
+ /* @Override
+ public ShopProductVariant getSkuProductBySkuFromDb(Integer sku) {
+ //商品
+ ShopProductVariant shopProductVariant = skuMapper.selectByPrimaryKey(sku);
+ Example example=new Example(ShopProductVariantImage.class);
+ example.createCriteria().andEqualTo("skuId",sku);
+ //图片列表
+ List shopProductVariantImages = imageMapper.selectByExample(example);
+ shopProductVariant.setSkuImageList(shopProductVariantImages);
+ return shopProductVariant;
+ }*/
+
@Override
public ShopProductVariant getSkuProductBySku(Integer sku) {
+ //商品
ShopProductVariant shopProductVariant = skuMapper.selectByPrimaryKey(sku);
Example example=new Example(ShopProductVariantImage.class);
example.createCriteria().andEqualTo("skuId",sku);
+ //图片列表
List shopProductVariantImages = imageMapper.selectByExample(example);
shopProductVariant.setSkuImageList(shopProductVariantImages);
return shopProductVariant;
}
+ /**
+ * 根据sku获取销售属性值列表,包括当前sku默认选中项
+ * @param spu
+ * @param sku
+ * @return
+ */
@Override
public List spuSaleAttrListCheckBySku(Integer spu, Integer sku) {
List pmsProductSaleAttrs = productSaleAttrMapper.selectSpuSaleAttrListCheckBySku(spu,sku);
return pmsProductSaleAttrs;
}
+ /**
+ * 获取spu下sku销售关联信息,用于生成hash表
+ * @param spu
+ * @return
+ */
@Override
public List getSkuSaleAttrValueListBySpu(Integer spu) {
return skuMapper.selectSkuSaleAttrValueListBySpu(spu);
}
+ /**
+ * 根据spu获取spu详细信息
+ * @param spu
+ * @return
+ */
@Override
public ShopProductBase getSpuInfoBySpu(Integer spu) {
return spumapper.selectByPrimaryKey(spu);
}
+ /**
+ * 根据sku获取sku销售关联信息,用于加购信息中的商品销售属性显示
+ * @param sku
+ * @return
+ */
@Override
public List getSkuSaleAttrValueBySku(Integer sku) {
return variantAttrValueMapper.selectSkuSaleAttrValueBySku(sku);
}
+
+ @Override
+ public void saveSkuInfo(ShopProductVariant skuInfo) {
+ //sku表
+ skuMapper.insertSelective(skuInfo);
+ Integer sku = skuInfo.getSku();
+ //商品图片表
+ List skuImageList = skuInfo.getSkuImageList();
+ skuImageList.forEach(i->{
+ i.setSkuId(sku);
+ imageMapper.insertSelective(i);
+ });
+
+ //销售属性值关联表
+ List skuSaleAttrValueList = skuInfo.getSkuSaleAttrValueList();
+ skuSaleAttrValueList.forEach(i->{
+ i.setSkuId(sku);
+ variantAttrValueMapper.insertSelective(i);
+ });
+
+ }
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 642ca8b..40d88b4 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -26,13 +26,18 @@ spring:
port: 5672
username: rabbit
password: 123456
+
redis:
- host: hx.anymre.top
- cache:
- type: redis
- cache-names: verifyCode
- redis:
- time-to-live: 60s
+ lettuce:
+ pool:
+ max-active: 8
+ max-idle: 8
+ max-wait: -1ms
+ min-idle: 0
+ sentinel:
+ master: mymaster
+ nodes: 47.100.220.7:26379, 47.100.220.7:26380, 47.100.220.7:26381
+
jpa:
hibernate:
ddl-auto: update
diff --git a/src/main/resources/mapper/ShopProductVariantMapper.xml b/src/main/resources/mapper/ShopProductVariantMapper.xml
index f65184d..f4f1864 100644
--- a/src/main/resources/mapper/ShopProductVariantMapper.xml
+++ b/src/main/resources/mapper/ShopProductVariantMapper.xml
@@ -26,15 +26,6 @@
-
-