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