From 5bdeaabe2b49fff61e57eb34f70a28d64c9d7bd2 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Tue, 4 Aug 2020 22:52:13 +0800 Subject: [PATCH] update --- .../java/com/iformall/mq/MqBaseConsumer.java | 13 ++++++------ .../service/impl/WxOrderServiceImpl.java | 20 +++++++++++++------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java index 96fa212dc..db08e30cb 100644 --- a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java +++ b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java @@ -43,8 +43,8 @@ public class MqBaseConsumer { //private FmInsideNotifyPaySuccessMsgServiceImpl fmInsideNotifyPaySuccessMsgService; @Autowired private FmInsideNotifyRefundSuccessMsgServiceImpl fmInsideNotifyRefundSuccessMsgService; - @Autowired - UpdateCouponStockMsgServiceImpl updateCouponStockMsgService; + //@Autowired + //UpdateCouponStockMsgServiceImpl updateCouponStockMsgService; @@ -101,10 +101,11 @@ public class MqBaseConsumer { // 内部消息 - 微信退款通知 FmInsideNotifyRefundSuccessMsg msg = (FmInsideNotifyRefundSuccessMsg)JsonUtil.readValue(message,FmInsideNotifyRefundSuccessMsg.class); fmInsideNotifyRefundSuccessMsgService.send(msg); - } else if (EnumMsgRecordType.COUPON_STOCK.getCode().equals(baseMsg.getMsgType())) { - UpdateCouponStockMsg msg = (UpdateCouponStockMsg)JsonUtil.readValue(message,UpdateCouponStockMsg.class); - updateCouponStockMsgService.send(msg); - } + } + //else if (EnumMsgRecordType.COUPON_STOCK.getCode().equals(baseMsg.getMsgType())) { + // UpdateCouponStockMsg msg = (UpdateCouponStockMsg)JsonUtil.readValue(message,UpdateCouponStockMsg.class); + // updateCouponStockMsgService.send(msg); + //} //baseMsg.setMsgStatus(EnumMsgRecordStatus.CONSUME_SUCC.getCode()); //wxMsgRecordMapper.updateByBaseMsg(baseMsg); }catch (Throwable e){ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index f27926538..c7b92814a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -119,6 +119,7 @@ import com.iformall.service.WxCUserService; import com.iformall.service.WxCUserTagsService; import com.iformall.service.WxCouponActionLogService; import com.iformall.service.WxCouponSendService; +import com.iformall.service.WxCouponService; import com.iformall.service.WxCreditHistoryService; import com.iformall.service.WxMsgLimitService; import com.iformall.service.WxOrderService; @@ -227,6 +228,9 @@ public class WxOrderServiceImpl implements WxOrderService { @Autowired ExcelService excelService; + + @Autowired + WxCouponService wxCouponService; @Override public PageInfo listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { @@ -656,16 +660,20 @@ public class WxOrderServiceImpl implements WxOrderService { try { //减库存,从redis中取,然后发mq消息同步到数据库 + wxCouponService.reduceRemainInventory(coupon.getId(), 1); + long stock = redisLock.decrease(EnumCacheKey.COUPON_STOCK.getMessage()+coupon.getId(), 1); if (stock < 0 ) { throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"券库存已为零!"); } - UpdateCouponStockMsg msg = new UpdateCouponStockMsg(); - msg.setCouponId(coupon.getId()); - msg.setNumber(1); - msg.setOperateType(UpdateCouponStockMsg.OPERATE_TYPE_DECREASE); - msg.setMsgType(EnumMsgRecordType.COUPON_STOCK.getCode()); - mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.STOCK.getCode(), "*", "decrease_stock_"+coupon.getId()); + + +// UpdateCouponStockMsg msg = new UpdateCouponStockMsg(); +// msg.setCouponId(coupon.getId()); +// msg.setNumber(1); +// msg.setOperateType(UpdateCouponStockMsg.OPERATE_TYPE_DECREASE); +// msg.setMsgType(EnumMsgRecordType.COUPON_STOCK.getCode()); +// mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.STOCK.getCode(), "*", "decrease_stock_"+coupon.getId()); } catch (RuntimeException e) { logger.error("此券减库存失败, couponId: " + couponIdStr,e); throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),e.getMessage());