public async Task <DefaultEventHandlerResponse> RecordTradeLogByLogisticsDeliverSucc(EventHandleRequest <CreateLogisticsSuccDto> input) { return(await new DefaultEventHandlerResponse().RunAsync(nameof(RecordTradeLogByOrderPay), input.GetDataJson(), async() => { var eventData = input.GetData(); var order = await repository.GetAsync(eventData.OrderId); if (order == null) { throw new ApplicationServiceException($"没有找到订单"); } var log = await logisticsRepository.GetAsync(eventData.LogisticsId); if (log == null) { throw new ApplicationServiceException($"没有找到物流单"); } var tradeLog = new TradeLog(); tradeLog.CreateTradeLog(TradeLogState.DeliverGoods, eventData.OrderId, order.OrderNo, log.Id, log.LogisticsNo, eventData.UserId, eventData.UserName); tradeLogRepository.Add(tradeLog); await unitofWork.CommitAsync(); })); }
public async Task <ApiResult> Receive(LogisticsReceiveDto input) { var logistics = await repository.GetAsync(input.LogisticsId); if (logistics == null) { throw new ApplicationServiceException("物流单无效!"); } logistics.Receive(HttpContextExt.Current.User.Id, input.ReceiveTime); repository.Update(logistics); await unitofWork.CommitAsync(); await eventBus.SendEvent(EventTopicDictionary.Logistics.LogisticsReceiveSucc, new OperateLogisticsSuccessEvent(logistics, HttpContextExt.Current.User.LoginName)); return(ApiResult.Ok()); }