diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpdateOrderStatusInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpdateOrderStatusInput.cs new file mode 100644 index 00000000..c05d79ee --- /dev/null +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpdateOrderStatusInput.cs @@ -0,0 +1,11 @@ +namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; + +public class UpdateOrderStatusInput +{ + public int OrderId { get; set; } + + /// + /// 订单是否完成 + /// + public bool IsCompleted { get; set; } +} \ No newline at end of file diff --git a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs index 335adde3..54cc534d 100644 --- a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs +++ b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs @@ -1,6 +1,7 @@ using System.Diagnostics; using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Application.Contract.Dtos.TrackOrder; +using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackContentAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackPushAggregate; @@ -15,18 +16,21 @@ namespace SJZY.Track.Application.Services.TrackOrders; [Route("/Track/Order")] public class TrackOrderService : ApplicationService { + private readonly IOrderRepository _orderRepository; private readonly ITrackOrderQueries _trackOrderQueries; private readonly ITrackDetailsRepository _trackDetailsRepository; private readonly ITrackContentRepository _trackContentRepository; private readonly ITrackPushRecordsRepository _trackPushRecordsRepository; public TrackOrderService( + IOrderRepository orderRepository, ITrackOrderQueries trackOrderQueries, ITrackDetailsRepository trackDetailsRepository, ITrackContentRepository trackContentRepository, ITrackPushRecordsRepository trackPushRecordsRepository ) { + _orderRepository = orderRepository; _trackOrderQueries = trackOrderQueries; _trackDetailsRepository = trackDetailsRepository; _trackContentRepository = trackContentRepository; @@ -121,6 +125,16 @@ public class TrackOrderService : ApplicationService #endregion + [HttpPost("UpdateOrderStatus")] + public async Task UpdateOrderStatus(UpdateOrderStatusInput input) + { + var order = await _orderRepository.GetFirstAsync(x => x.Id == input.OrderId); + + if (order == default) throw new BusinessException(message: "订单不存在"); + + return await _orderRepository.UpdateColumnAsync(order, x => x.IsCompleted == input.IsCompleted); + } + /// /// 获取轨迹计数器 ///