修复下架商品没有删除商品索引问题。修复下单使用优惠券使金额变为0元时消费服务获取数据不正确导致没有及时更新订单状态问题。
This commit is contained in:
@@ -8,7 +8,6 @@ import cn.lili.modules.order.order.entity.dos.Receipt;
|
||||
import cn.lili.modules.order.order.entity.vo.OrderVO;
|
||||
import cn.lili.modules.order.order.entity.vo.ReceiptVO;
|
||||
import cn.lili.modules.order.order.service.ReceiptService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -34,25 +33,23 @@ public class OrderCreateReceiptExecute implements TradeEvent {
|
||||
//获取发票信息
|
||||
ReceiptVO receiptVO = tradeDTO.getReceiptVO();
|
||||
//如果需要获取发票则保存发票信息
|
||||
if (tradeDTO.getNeedReceipt()) {
|
||||
if (orderList.size() > 0) {
|
||||
List<Receipt> receipts = new ArrayList<>();
|
||||
for (OrderVO orderVO : orderList) {
|
||||
Receipt receipt = new Receipt();
|
||||
BeanUtil.copyProperties(receiptVO, receipt);
|
||||
receipt.setMemberId(orderVO.getMemberId());
|
||||
receipt.setMemberName(orderVO.getMemberName());
|
||||
receipt.setStoreId(orderVO.getStoreId());
|
||||
receipt.setStoreName(orderVO.getStoreName());
|
||||
receipt.setOrderSn(orderVO.getSn());
|
||||
receipt.setReceiptDetail(JSONUtil.toJsonStr(orderVO.getOrderItems()));
|
||||
receipt.setReceiptPrice(orderVO.getFlowPrice());
|
||||
receipt.setReceiptStatus(0);
|
||||
receipts.add(receipt);
|
||||
}
|
||||
//保存发票
|
||||
receiptService.saveBatch(receipts);
|
||||
if (Boolean.TRUE.equals(tradeDTO.getNeedReceipt()) && !orderList.isEmpty()) {
|
||||
List<Receipt> receipts = new ArrayList<>();
|
||||
for (OrderVO orderVO : orderList) {
|
||||
Receipt receipt = new Receipt();
|
||||
BeanUtil.copyProperties(receiptVO, receipt);
|
||||
receipt.setMemberId(orderVO.getMemberId());
|
||||
receipt.setMemberName(orderVO.getMemberName());
|
||||
receipt.setStoreId(orderVO.getStoreId());
|
||||
receipt.setStoreName(orderVO.getStoreName());
|
||||
receipt.setOrderSn(orderVO.getSn());
|
||||
receipt.setReceiptDetail(JSONUtil.toJsonStr(orderVO.getOrderItems()));
|
||||
receipt.setReceiptPrice(orderVO.getFlowPrice());
|
||||
receipt.setReceiptStatus(0);
|
||||
receipts.add(receipt);
|
||||
}
|
||||
//保存发票
|
||||
receiptService.saveBatch(receipts);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,12 +186,28 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
||||
break;
|
||||
//审核商品
|
||||
case GOODS_AUDIT:
|
||||
updateGoodsNum(messageExt);
|
||||
Goods goods = JSONUtil.toBean(new String(messageExt.getBody()), Goods.class);
|
||||
updateGoodsNum(goods);
|
||||
break;
|
||||
//删除商品
|
||||
case GOODS_DELETE:
|
||||
deleteGoods(messageExt);
|
||||
updateGoodsNum(messageExt);
|
||||
try {
|
||||
String goodsIdsJsonStr = new String(messageExt.getBody());
|
||||
for (String goodsId : JSONUtil.toList(goodsIdsJsonStr, String.class)) {
|
||||
Goods goodsById = this.goodsService.getById(goodsId);
|
||||
if (goodsById != null) {
|
||||
this.deleteGoods(goodsById);
|
||||
this.updateGoodsNum(goodsById);
|
||||
List<String> skuIdsByGoodsId = this.goodsSkuService.getSkuIdsByGoodsId(goodsId);
|
||||
if (skuIdsByGoodsId != null && !skuIdsByGoodsId.isEmpty()) {
|
||||
this.goodsIndexService.deleteIndexByIds(skuIdsByGoodsId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("删除商品索引事件执行异常,商品信息 {}", new String(messageExt.getBody()));
|
||||
}
|
||||
break;
|
||||
//规格删除
|
||||
case SKU_DELETE:
|
||||
@@ -380,10 +396,9 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
||||
* 2.删除分销员-分销商品绑定关系
|
||||
* 3.删除分销商品
|
||||
*
|
||||
* @param messageExt 消息
|
||||
* @param goods 消息
|
||||
*/
|
||||
private void deleteGoods(MessageExt messageExt) {
|
||||
Goods goods = JSONUtil.toBean(new String(messageExt.getBody()), Goods.class);
|
||||
private void deleteGoods(Goods goods) {
|
||||
|
||||
DistributionGoodsSearchParams searchParams = new DistributionGoodsSearchParams();
|
||||
searchParams.setGoodsId(goods.getId());
|
||||
@@ -403,17 +418,15 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
||||
/**
|
||||
* 修改商品数量
|
||||
*
|
||||
* @param messageExt 信息体
|
||||
* @param goods 信息体
|
||||
*/
|
||||
private void updateGoodsNum(MessageExt messageExt) {
|
||||
|
||||
private void updateGoodsNum(Goods goods) {
|
||||
try {
|
||||
Goods goods = JSONUtil.toBean(new String(messageExt.getBody()), Goods.class);
|
||||
//更新店铺商品数量
|
||||
assert goods != null;
|
||||
storeService.updateStoreGoodsNum(goods.getStoreId());
|
||||
} catch (Exception e) {
|
||||
log.error("商品MQ信息错误:{}", messageExt.toString());
|
||||
log.error("修改商品数量错误");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ public class OrderMessageListener implements RocketMQListener<MessageExt> {
|
||||
//订单创建
|
||||
case ORDER_CREATE:
|
||||
String key = new String(messageExt.getBody());
|
||||
TradeDTO tradeDTO = (TradeDTO) cache.get(key);
|
||||
TradeDTO tradeDTO = JSONUtil.toBean(cache.getString(key), TradeDTO.class);
|
||||
boolean result = true;
|
||||
for (TradeEvent event : tradeEvent) {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user