|
|
|
@ -52,6 +52,8 @@ func (s *supplyTask) run() {
|
|
|
|
|
go s.orderCancel()
|
|
|
|
|
// 订单出库
|
|
|
|
|
go s.orderStockOut()
|
|
|
|
|
// 订单完成
|
|
|
|
|
go s.orderFinish()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// @Title 价格更新通知
|
|
|
|
@ -192,3 +194,34 @@ func (s *supplyTask) orderStockOut() {
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// @Title 订单完成通知
|
|
|
|
|
func (s *supplyTask) orderFinish() {
|
|
|
|
|
defer func() {
|
|
|
|
|
if recoverErr := recover(); recoverErr != nil {
|
|
|
|
|
log.Println("订单完成mq错误", recoverErr)
|
|
|
|
|
}
|
|
|
|
|
time.Sleep(time.Second * 3)
|
|
|
|
|
s.orderFinish()
|
|
|
|
|
}()
|
|
|
|
|
pool, _ := ants.NewPool(5)
|
|
|
|
|
rabbitmq.Rabbitmq.Consume(supply.Api.Mq.OrderFinish(), false, 5, func(delivery amqp.Delivery) {
|
|
|
|
|
pool.Submit(func() {
|
|
|
|
|
defer func() {
|
|
|
|
|
if recoverErr := recover(); recoverErr != nil {
|
|
|
|
|
log.Println("消息队列调用错误,err:", recoverErr)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
var orderFinish supply.OrderFinish
|
|
|
|
|
json.Unmarshal(delivery.Body, &orderFinish)
|
|
|
|
|
|
|
|
|
|
if err := third.SupplyLogic.OrderFinish(orderFinish); err != nil {
|
|
|
|
|
log.Println("订单出库处理失败,skuId:", string(delivery.Body), ",err:", err)
|
|
|
|
|
delivery.Reject(true)
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
defer delivery.Ack(false)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|