Kaynağa Gözat

update

release_toaliyun_real
xiaohanzi 5 yıl önce
ebeveyn
işleme
5bdeaabe2b
2 değiştirilmiş dosya ile 21 ekleme ve 12 silme
  1. +7
    -6
      mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java
  2. +14
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java

+ 7
- 6
mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java Dosyayı Görüntüle

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


+ 14
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Dosyayı Görüntüle

@@ -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<WxOrder> 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());


Yükleniyor…
İptal
Kaydet