1.增加库存记录mq处理
This commit is contained in:
parent
b8a60a1549
commit
7c122565fc
|
|
@ -14,6 +14,8 @@ public class RabbitConfig {
|
|||
public static final String ROUTING_STOCK_RECORD_SALE = "routing.stock.record.sale";
|
||||
|
||||
public static final String QUEUE_STOCK_RECORD = "queue.stock.record";
|
||||
public static final String ROUTING_STOCK_RECORD= "routing.stock.record";
|
||||
|
||||
|
||||
@Bean
|
||||
Queue stockRecordSaleQueue() {
|
||||
|
|
@ -29,4 +31,14 @@ public class RabbitConfig {
|
|||
Binding binding(Queue stockRecordSaleQueue, DirectExchange stockRecordExchange) {
|
||||
return BindingBuilder.bind(stockRecordSaleQueue).to(stockRecordExchange).with(ROUTING_STOCK_RECORD_SALE);
|
||||
}
|
||||
|
||||
@Bean
|
||||
Queue stockRecordSaleQueue2() {
|
||||
return new Queue(QUEUE_STOCK_RECORD);
|
||||
}
|
||||
|
||||
@Bean
|
||||
Binding binding2(Queue stockRecordSaleQueue2, DirectExchange stockRecordExchange) {
|
||||
return BindingBuilder.bind(stockRecordSaleQueue2).to(stockRecordExchange).with(ROUTING_STOCK_RECORD);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,5 +8,6 @@ public class StockRecordMsg {
|
|||
private Integer skuId;
|
||||
private Integer productId;
|
||||
private String type;
|
||||
private Integer currentNumber;
|
||||
private Integer subType;
|
||||
private Integer number;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,17 +40,14 @@ public class StockListener {
|
|||
}
|
||||
}
|
||||
|
||||
// @RabbitListener(queues = RabbitConfig.QUEUE_STOCK_RECORD_SALE)
|
||||
@RabbitListener(queues = RabbitConfig.QUEUE_STOCK_RECORD)
|
||||
public void recordStockHandler(String message) {
|
||||
log.info("接收到下单保存库存信息mq消息,消息内容: {}", message);
|
||||
|
||||
if (StrUtil.isBlank(message)) {
|
||||
log.warn("错误消息体");
|
||||
return;
|
||||
}
|
||||
|
||||
StockRecordMsg stockRecordMsg = JSONObject.parseObject(message, StockRecordMsg.class);
|
||||
|
||||
try {
|
||||
productStockOperateService.addStockRecord(stockRecordMsg);
|
||||
}catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -466,17 +466,14 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe
|
|||
throw new BadRequestException("商品或sku不存在");
|
||||
}
|
||||
|
||||
double difference = product.getIsDistribute().equals(1) ? stockRecordMsg.getCurrentNumber() - product.getStockNumber()
|
||||
: stockRecordMsg.getCurrentNumber() - productSku.getStockNumber();
|
||||
|
||||
TbShopUnit tbShopUnit = shopUnitRepository.findById(product.getUnitId()).orElse(null);
|
||||
|
||||
//增加操作日志
|
||||
long times = Instant.now().toEpochMilli();
|
||||
HashMap<String, Object> snapItem = new HashMap<>();
|
||||
snapItem.put("stockNumber", product.getIsDistribute().equals(1) ? product.getStockNumber() : productSku.getStockNumber());
|
||||
snapItem.put("number", product.getIsDistribute().equals(1) ? stockRecordMsg.getCurrentNumber() - product.getStockNumber()
|
||||
: stockRecordMsg.getCurrentNumber() - productSku.getStockNumber());
|
||||
snapItem.put("stockNumber", product.getIsDistribute().equals(1) ? product.getStockNumber() - stockRecordMsg.getNumber() :
|
||||
productSku.getStockNumber() - stockRecordMsg.getNumber());
|
||||
snapItem.put("number", stockRecordMsg.getSubType() == -1 ? -stockRecordMsg.getNumber() : stockRecordMsg.getNumber());
|
||||
snapItem.put("coverImg", product.getCoverImg());
|
||||
snapItem.put("productId", product.getId());
|
||||
snapItem.put("name", product.getName());
|
||||
|
|
@ -511,13 +508,13 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe
|
|||
productStockDetail.setUnitName(tbShopUnit == null ? null : tbShopUnit.getName());
|
||||
productStockDetail.setShopId(String.valueOf(stockRecordMsg.getShopId()));
|
||||
productStockDetail.setSkuId(String.valueOf(stockRecordMsg.getSkuId()));
|
||||
productStockDetail.setSubType(product.getIsDistribute().equals(1) ? stockRecordMsg.getCurrentNumber() - product.getStockNumber() > 0 ? 1 : -1
|
||||
: stockRecordMsg.getCurrentNumber() - productSku.getStockNumber() > 0 ? 1 : -1);
|
||||
productStockDetail.setSubType(stockRecordMsg.getSubType());
|
||||
productStockDetail.setType(stockRecordMsg.getType());
|
||||
productStockDetail.setSpecSnap(productSku.getSpecSnap());
|
||||
productStockDetail.setStockNumber(difference);
|
||||
productStockDetail.setCostAmount(productSku.getSalePrice().multiply(BigDecimal.valueOf(Math.abs(difference))));
|
||||
productStockDetail.setLeftNumber(product.getIsDistribute().equals(1) ? product.getStockNumber() : productSku.getStockNumber().intValue());
|
||||
productStockDetail.setStockNumber(Double.valueOf(stockRecordMsg.getNumber()));
|
||||
productStockDetail.setCostAmount(productSku.getSalePrice().multiply(BigDecimal.valueOf(Math.abs(stockRecordMsg.getNumber()))));
|
||||
productStockDetail.setLeftNumber(product.getIsDistribute().equals(1) ? product.getStockNumber() - stockRecordMsg.getNumber()
|
||||
: productSku.getStockNumber().intValue() - stockRecordMsg.getNumber());
|
||||
productStockDetail.setRecordId(stockOperate.getId().toString());
|
||||
productStockDetail.setStockSnap(JSONObject.toJSONString(snapItem));
|
||||
productStockDetail.setSourcePath("NORMAL");
|
||||
|
|
|
|||
Loading…
Reference in New Issue