整合es、rabbitmq、redis完成上下架修改es

This commit is contained in:
2023-09-17 00:20:42 +08:00
parent ca82fbe892
commit 3019bc5737
26 changed files with 770 additions and 3 deletions

View File

@@ -23,6 +23,12 @@
<artifactId>joda-time</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.atguigu</groupId>
<artifactId>rabbit_util</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>

View File

@@ -0,0 +1,43 @@
package com.atguigu.ssyx.product.api;
import com.atguigu.ssyx.model.product.Category;
import com.atguigu.ssyx.model.product.SkuInfo;
import com.atguigu.ssyx.product.service.CategoryService;
import com.atguigu.ssyx.product.service.SkuInfoService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* ClassName: ProductInnnerController
* Package: com.atguigu.ssyx.product.api
*
* @author yovinchen
* @Create 2023/9/16 17:28
*/
@RestController
@RequestMapping("api/product")
public class ProductInnnerController {
@Autowired
CategoryService categoryService;
@Autowired
SkuInfoService skuInfoService;
@ApiOperation(value = "根据分类id获取分类信息")
@GetMapping("inner/getCategory/{categoryId}")
public Category getCategory(@PathVariable Long categoryId) {
return categoryService.getById(categoryId);
}
@ApiOperation(value = "根据skuId获取sku信息")
@GetMapping("inner/getSkuInfo/{skuId}")
public SkuInfo getSkuInfo(@PathVariable("skuId") Long skuId) {
return skuInfoService.getById(skuId);
}
}

View File

@@ -83,6 +83,7 @@ public class SkuInfoController {
@ApiOperation(value = "删除商品sku信息")
@DeleteMapping("remove/{id}")
//TODO 删除es
public Result remove(@PathVariable Long id) {
try {
skuInfoService.removeById(id);
@@ -94,6 +95,7 @@ public class SkuInfoController {
@ApiOperation(value = "根据id列表删除商品sku信息")
@DeleteMapping("batchRemove")
//TODO 删除es
public Result batchRemove(@RequestBody List<Long> idList) {
try {
skuInfoService.removeByIds(idList);

View File

@@ -16,7 +16,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @since 2023-09-15
*/
public interface SkuInfoService extends IService<SkuInfo> {
IPage<SkuInfo> selectPage(Page<SkuInfo> pageParam, SkuInfoQueryVo skuInfoQueryVo);
void saveSkuInfo(SkuInfoVo skuInfoVo);

View File

@@ -4,6 +4,8 @@ import com.atguigu.ssyx.model.product.SkuAttrValue;
import com.atguigu.ssyx.model.product.SkuImage;
import com.atguigu.ssyx.model.product.SkuInfo;
import com.atguigu.ssyx.model.product.SkuPoster;
import com.atguigu.ssyx.mq.constant.MqConst;
import com.atguigu.ssyx.mq.service.RabbitService;
import com.atguigu.ssyx.product.mapper.SkuInfoMapper;
import com.atguigu.ssyx.product.service.SkuAttrValueService;
import com.atguigu.ssyx.product.service.SkuImageService;
@@ -41,6 +43,8 @@ public class SkuInfoServiceImpl extends ServiceImpl<SkuInfoMapper, SkuInfo> impl
private SkuImageService skuImagesService;
@Autowired
private SkuAttrValueService skuAttrValueService;
@Autowired
private RabbitService rabbitService;
/**
* 获取sku分页列表
@@ -205,12 +209,16 @@ public class SkuInfoServiceImpl extends ServiceImpl<SkuInfoMapper, SkuInfo> impl
SkuInfo skuInfo = baseMapper.selectById(skuId);
skuInfo.setPublishStatus(status);
baseMapper.updateById(skuInfo);
//TODO 商品上架 后续会完善发送mq消息更新es数据
//商品上架发送mq消息同步es
rabbitService.sendMessage(MqConst.EXCHANGE_GOODS_DIRECT, MqConst.ROUTING_GOODS_UPPER, skuId);
} else {
SkuInfo skuInfo = baseMapper.selectById(skuId);
skuInfo.setPublishStatus(status);
baseMapper.updateById(skuInfo);
//TODO 商品下架 后续会完善发送mq消息更新es数据
//商品下架发送mq消息同步es
rabbitService.sendMessage(MqConst.EXCHANGE_GOODS_DIRECT, MqConst.ROUTING_GOODS_LOWER, skuId);
}
}

View File

@@ -12,6 +12,18 @@ spring:
url: jdbc:mysql://82.157.68.223:3306/shequ-product?characterEncoding=utf-8&useSSL=false
username: shequ-product
password: shequ-product
rabbitmq:
host: 43.143.164.194
port: 5672
username: guest
password: guest
publisher-confirm-type: CORRELATED #发布确认模式,消息是否被成功发送到交换机
publisher-returns: true
listener:
simple:
prefetch: 1
concurrency: 3
acknowledge-mode: manual #消费端手动确认
jackson:
date-format: yyyy-MM-dd HH:mm:ss