80 lines
2.8 KiB
C#
80 lines
2.8 KiB
C#
using InterfaceForward.Domain.Shared.Helpers;
|
|
using TrackCenter.Application.Dtos.ProvideServices;
|
|
using TrackCenter.Domain.Dtos.Order;
|
|
|
|
namespace TrackCenter.Application.Services.ProvideServices;
|
|
|
|
public partial class OrderService
|
|
{
|
|
/// <summary>
|
|
/// 查询订单拉取配置
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("Order/FindOrderPullConfigs")]
|
|
public async Task<FindOrderPullConfigsOutput> 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()
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改订单拉取信息(轻易勿动)
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[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<PullConfigInfo, UpdateOrderPullConfigsInputVo>(input.Config);
|
|
inputVo.OrderIds = orderIds.ToArray();
|
|
var cnt = await orderRepository.UpdateOrderPullConfigForServiceProviderAsync(inputVo);
|
|
|
|
Log.Warning(
|
|
$"{CurrentUser.UserName}正在修改服务商拉取信息,本次共计影响了{orderIds.Count}个订单、{cnt}段拉取,请求参数是:{input.ToJson()}",
|
|
true);
|
|
|
|
}
|
|
}
|