using InterfaceForward.Domain.Shared.Helpers; using TrackCenter.Application.Dtos.ProvideServices; using TrackCenter.Domain.Dtos.Order; namespace TrackCenter.Application.Services.ProvideServices; public partial class OrderService { /// /// 查询订单拉取配置 /// /// /// [HttpPost("Order/FindOrderPullConfigs")] public async Task FindOrderPullConfigsAsync(OrderNosInfo input) { var orderNos = input.OrderNos .Where(x => !string.IsNullOrWhiteSpace(x)) .Distinct() .ToList(); if (orderNos.Count == 0) { return new FindOrderPullConfigsOutput(); } var pullConfigs = await orderRepository.FindOrderPullConfigsAsync(input.AppKey, input.OrderType, orderNos); var foundOrderNos = pullConfigs .Select(x => x.OrderNo) .Distinct() .ToHashSet(); return new FindOrderPullConfigsOutput { Total = pullConfigs.Count, Items = pullConfigs.Select(x => new FindOrderPullConfigsItem { OrderNo = x.OrderNo, ServiceCode = x.ServiceCode, PullOrderNo = x.PullOrderNo, StartCode = x.StartCode, EndCode = x.EndCode, SilenceTime = x.SilenceTime, StopTime = x.StopTime, PullStatus = x.PullStatus, StartTime = x.StartTime, EndTime = x.EndTime }).ToList(), NotFoundOrderNos = orderNos.Where(x => !foundOrderNos.Contains(x)).ToList() }; } /// /// 修改订单拉取信息(轻易勿动) /// /// /// [HttpPost("Order/UpdateOrderPullConfigs")] public async Task UpdateOrderPullConfigsAsync(UpdateOrderPullConfigsInput input) { var orderIds = await orderRepository.GetListAsync( x => x.AppKey == input.AppKey && x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo), x => x.Id); if (orderIds.Count == 0) { throw ProviderServiceActionResult.Exception("修改拉取配置失败", "未找到匹配订单"); } var inputVo = ObjectMapper .Map(input.Config); inputVo.OrderIds = orderIds.ToArray(); var cnt = await orderRepository.UpdateOrderPullConfigForServiceProviderAsync(inputVo); Log.Warning( $"{CurrentUser.UserName}正在修改服务商拉取信息,本次共计影响了{orderIds.Count}个订单、{cnt}段拉取,请求参数是:{input.ToJson()}", true); } }