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