Merge remote-tracking branch 'origin/S02-轨迹中台第二部分' into test
This commit is contained in:
commit
ca71e1ff27
@ -5,7 +5,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||||
<Version>1.0.3</Version>
|
<Version>7.0.0</Version>
|
||||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -10,19 +10,19 @@ public interface IOrderService : IRemoteService
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<string> UpsertAsync(UpsertOrderInput input);
|
Task<UnifyResultDto> UpsertAsync(UpsertOrderInput input);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 删除订单
|
/// 删除订单
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<bool> DeleteOrderAsync(DeleteOrderInput input);
|
Task<UnifyResultDto> DeleteOrderAsync(DeleteOrderInput input);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 关联订单
|
/// 关联订单
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<bool> LinkOrderAsync(LinkOrderInput input);
|
Task<UnifyResultDto> LinkOrderAsync(LinkOrderInput input);
|
||||||
}
|
}
|
||||||
@ -10,21 +10,21 @@ public interface ITrackService : IRemoteService
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<bool> UpsertTrackAsync(UpsertTrackInput input);
|
Task<UnifyResultDto> UpsertTrackAsync(UpsertTrackInput input);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 删除轨迹
|
/// 删除轨迹
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<bool> DeleteTrackAsync(DeleteTrackInput input);
|
Task<UnifyResultDto> DeleteTrackAsync(DeleteTrackInput input);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 批量删除轨迹
|
/// 批量删除轨迹
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<bool> BatchDeleteTrackAsync(BatchDeleteTrackInput input);
|
Task<UnifyResultDto> BatchDeleteTrackAsync(BatchDeleteTrackInput input);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据订单号获取轨迹
|
/// 根据订单号获取轨迹
|
||||||
|
|||||||
@ -22,13 +22,14 @@ public partial class OrderService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="BusinessException"></exception>
|
/// <exception cref="BusinessException"></exception>
|
||||||
[HttpPost("Order/Link")]
|
[HttpPost("Order/Link")]
|
||||||
public async Task<bool> LinkOrderAsync(LinkOrderInput input)
|
public async Task<UnifyResultDto> LinkOrderAsync(LinkOrderInput input)
|
||||||
{
|
{
|
||||||
var order = await _orderRepository.GetFirstAsync(x =>
|
var order = await _orderRepository.GetFirstAsync(x =>
|
||||||
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => new
|
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => new
|
||||||
{
|
{
|
||||||
x.Id, x.SubSystemId
|
x.Id,
|
||||||
});
|
x.SubSystemId
|
||||||
|
});
|
||||||
if (order == default)
|
if (order == default)
|
||||||
{
|
{
|
||||||
throw new BusinessException(message: $"订单:{input.OrderNo}不存在");
|
throw new BusinessException(message: $"订单:{input.OrderNo}不存在");
|
||||||
@ -40,7 +41,7 @@ public partial class OrderService
|
|||||||
throw new BusinessException(message: "不能同级关联");
|
throw new BusinessException(message: "不能同级关联");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input.LinkOrderNos.Count < 1 || input.LinkOrderType == 0) return true;
|
if (input.LinkOrderNos.Count < 1 || input.LinkOrderType == 0) return new UnifyResultDto(true);
|
||||||
|
|
||||||
// 单号去重,去空,去自己
|
// 单号去重,去空,去自己
|
||||||
input.LinkOrderNos = input.LinkOrderNos
|
input.LinkOrderNos = input.LinkOrderNos
|
||||||
@ -64,7 +65,7 @@ public partial class OrderService
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return new UnifyResultDto(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<List<int>> DoLinkOrderAsync(LinkOrderInput input, int orderId)
|
private async Task<List<int>> DoLinkOrderAsync(LinkOrderInput input, int orderId)
|
||||||
@ -97,7 +98,7 @@ public partial class OrderService
|
|||||||
return canLinkOrders.Select(x => x.Id).ToList();
|
return canLinkOrders.Select(x => x.Id).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<bool> UnLinkOrderAsync(LinkOrderInput input)
|
private async Task<UnifyResultDto> UnLinkOrderAsync(LinkOrderInput input)
|
||||||
{
|
{
|
||||||
var unLinkIds = await _orderLinkQuery.GetListAsync(x =>
|
var unLinkIds = await _orderLinkQuery.GetListAsync(x =>
|
||||||
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo &&
|
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo &&
|
||||||
@ -107,6 +108,6 @@ public partial class OrderService
|
|||||||
// real del
|
// real del
|
||||||
await _orderRepository.UnLinkByIdsAsync(unLinkIds);
|
await _orderRepository.UnLinkByIdsAsync(unLinkIds);
|
||||||
|
|
||||||
return true;
|
return new UnifyResultDto(true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -30,7 +30,7 @@ public partial class OrderService : ApplicationService, IOrderService
|
|||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost("Order/Upsert")]
|
[HttpPost("Order/Upsert")]
|
||||||
public async Task<string> UpsertAsync(UpsertOrderInput input)
|
public async Task<UnifyResultDto> UpsertAsync(UpsertOrderInput input)
|
||||||
{
|
{
|
||||||
if (input.Templates.Count == 0) throw new BusinessException(message: "至少有一个模板");
|
if (input.Templates.Count == 0) throw new BusinessException(message: "至少有一个模板");
|
||||||
var order = await _orderRepository.GetFirstAsync(x =>
|
var order = await _orderRepository.GetFirstAsync(x =>
|
||||||
@ -39,7 +39,8 @@ public partial class OrderService : ApplicationService, IOrderService
|
|||||||
{
|
{
|
||||||
// 订单已存在则视为更新
|
// 订单已存在则视为更新
|
||||||
await UpdateOrderAsync(input, order);
|
await UpdateOrderAsync(input, order);
|
||||||
return "更新成功";
|
|
||||||
|
return new UnifyResultDto() { Code = "200", Msg = "操作成功", Data = "创建成功" };
|
||||||
}
|
}
|
||||||
|
|
||||||
order = ObjectMapper.Map<UpsertOrderInput, OrderEntity>(input);
|
order = ObjectMapper.Map<UpsertOrderInput, OrderEntity>(input);
|
||||||
@ -48,7 +49,7 @@ public partial class OrderService : ApplicationService, IOrderService
|
|||||||
order.OrderFlights = ObjectMapper.Map<List<OrderFlightInfo>, List<OrderFlightEntity>>(input.FlightInfos);
|
order.OrderFlights = ObjectMapper.Map<List<OrderFlightInfo>, List<OrderFlightEntity>>(input.FlightInfos);
|
||||||
|
|
||||||
await _orderRepository.CreateOrderAsync(order);
|
await _orderRepository.CreateOrderAsync(order);
|
||||||
return "创建成功";
|
return new UnifyResultDto() { Code = "200", Msg = "操作成功", Data = "新增成功" };
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -58,7 +59,7 @@ public partial class OrderService : ApplicationService, IOrderService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="BusinessException"></exception>
|
/// <exception cref="BusinessException"></exception>
|
||||||
[HttpPost("Order/Delete")]
|
[HttpPost("Order/Delete")]
|
||||||
public async Task<bool> DeleteOrderAsync(DeleteOrderInput input)
|
public async Task<UnifyResultDto> DeleteOrderAsync(DeleteOrderInput input)
|
||||||
{
|
{
|
||||||
var orderId = await _orderRepository.GetFirstAsync(x =>
|
var orderId = await _orderRepository.GetFirstAsync(x =>
|
||||||
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => x.Id);
|
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => x.Id);
|
||||||
@ -69,7 +70,7 @@ public partial class OrderService : ApplicationService, IOrderService
|
|||||||
|
|
||||||
await _orderRepository.DeleteOrderAsync(orderId);
|
await _orderRepository.DeleteOrderAsync(orderId);
|
||||||
|
|
||||||
return true;
|
return new UnifyResultDto(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task UpdateOrderAsync(UpdateOrderInput input, OrderEntity order)
|
private async Task UpdateOrderAsync(UpdateOrderInput input, OrderEntity order)
|
||||||
|
|||||||
@ -7,7 +7,6 @@ using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
|||||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
||||||
using SJZY.Track.Domain.Consts;
|
using SJZY.Track.Domain.Consts;
|
||||||
using SJZY.Track.Domain.Enums;
|
|
||||||
using SJZY.UserCenter.HttpApi.Services;
|
using SJZY.UserCenter.HttpApi.Services;
|
||||||
|
|
||||||
namespace SJZY.Track.Application.Services.ProvideServices;
|
namespace SJZY.Track.Application.Services.ProvideServices;
|
||||||
@ -120,20 +119,9 @@ public class TrackPushService : ApplicationService
|
|||||||
[HttpPost("Track/PushWarnForTask")]
|
[HttpPost("Track/PushWarnForTask")]
|
||||||
public async Task<string> PushWarnForTaskAsync()
|
public async Task<string> PushWarnForTaskAsync()
|
||||||
{
|
{
|
||||||
var orders = await _orderRepository.GetPushWarnOrdersAsync();
|
// todo:订单数据上来后一次性update是否会引发长时间X独占?
|
||||||
|
var count = await _orderRepository.PushWarnOrdersAsync();
|
||||||
var time = DateTime.Now.Subtract(TimeSpan.FromHours(12));
|
return $"本次预警扫描了:{count}个订单";
|
||||||
|
|
||||||
orders.ForEach(x =>
|
|
||||||
{
|
|
||||||
x.QuestionType = x.LatestPushTime == null || x.LatestPushTime < time
|
|
||||||
? (int)TrackProblemType.Warn
|
|
||||||
: (int)TrackProblemType.None;
|
|
||||||
});
|
|
||||||
|
|
||||||
await _orderRepository.UpdateRangeAsync(orders, x => new { x.QuestionType });
|
|
||||||
|
|
||||||
return $"成功将:{orders.Count(x => x.QuestionType == (int)TrackProblemType.Warn)}个订单置为预警";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -38,13 +38,17 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="BusinessException"></exception>
|
/// <exception cref="BusinessException"></exception>
|
||||||
[HttpPost("Track/Upsert")]
|
[HttpPost("Track/Upsert")]
|
||||||
public async Task<bool> UpsertTrackAsync(UpsertTrackInput input)
|
public async Task<UnifyResultDto> UpsertTrackAsync(UpsertTrackInput input)
|
||||||
{
|
{
|
||||||
var order = await _orderRepository.GetFirstAsync(x =>
|
var order = await _orderRepository.GetFirstAsync(x =>
|
||||||
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => new
|
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => new
|
||||||
{
|
{
|
||||||
x.Id, x.SubSystemId, x.LatestPushTrackContentId, x.CustomId, x.IsCompleted
|
x.Id,
|
||||||
});
|
x.SubSystemId,
|
||||||
|
x.LatestPushTrackContentId,
|
||||||
|
x.CustomId,
|
||||||
|
x.IsCompleted
|
||||||
|
});
|
||||||
if (order == default)
|
if (order == default)
|
||||||
{
|
{
|
||||||
throw new BusinessException(message: $"订单:{input.OrderNo}不存在");
|
throw new BusinessException(message: $"订单:{input.OrderNo}不存在");
|
||||||
@ -59,7 +63,7 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
@event.IsCompleted = order.IsCompleted;
|
@event.IsCompleted = order.IsCompleted;
|
||||||
@event.OperationMan = CurrentUserRequest.CurrentUser.Name;
|
@event.OperationMan = CurrentUserRequest.CurrentUser.Name;
|
||||||
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertSubscribe, @event);
|
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertSubscribe, @event);
|
||||||
return true;
|
return new UnifyResultDto(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -69,7 +73,7 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="BusinessException"></exception>
|
/// <exception cref="BusinessException"></exception>
|
||||||
[HttpPost("Track/BatchUpsert")]
|
[HttpPost("Track/BatchUpsert")]
|
||||||
public async Task<bool> BatchUpsertTrackAsync(BatchUpsertTrackInput input)
|
public async Task<UnifyResultDto> BatchUpsertTrackAsync(BatchUpsertTrackInput input)
|
||||||
{
|
{
|
||||||
input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空
|
input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空
|
||||||
if (input.OrderNos.Count == 0)
|
if (input.OrderNos.Count == 0)
|
||||||
@ -79,9 +83,14 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
|
|
||||||
var orders = await _orderRepository.GetListAsync(x =>
|
var orders = await _orderRepository.GetListAsync(x =>
|
||||||
x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo), x => new
|
x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo), x => new
|
||||||
{
|
{
|
||||||
x.Id, x.OrderNo, x.SubSystemId, x.LatestPushTrackContentId, x.CustomId, x.IsCompleted
|
x.Id,
|
||||||
});
|
x.OrderNo,
|
||||||
|
x.SubSystemId,
|
||||||
|
x.LatestPushTrackContentId,
|
||||||
|
x.CustomId,
|
||||||
|
x.IsCompleted
|
||||||
|
});
|
||||||
|
|
||||||
foreach (var order in orders)
|
foreach (var order in orders)
|
||||||
{
|
{
|
||||||
@ -105,7 +114,7 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertSubscribe, @event);
|
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertSubscribe, @event);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return new UnifyResultDto(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -115,13 +124,14 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="BusinessException"></exception>
|
/// <exception cref="BusinessException"></exception>
|
||||||
[HttpPost("Track/Delete")]
|
[HttpPost("Track/Delete")]
|
||||||
public async Task<bool> DeleteTrackAsync(DeleteTrackInput input)
|
public async Task<UnifyResultDto> DeleteTrackAsync(DeleteTrackInput input)
|
||||||
{
|
{
|
||||||
var order = await _orderRepository.GetFirstAsync(x =>
|
var order = await _orderRepository.GetFirstAsync(x =>
|
||||||
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => new
|
x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => new
|
||||||
{
|
{
|
||||||
x.Id, x.SubSystemId
|
x.Id,
|
||||||
});
|
x.SubSystemId
|
||||||
|
});
|
||||||
if (order == default)
|
if (order == default)
|
||||||
{
|
{
|
||||||
throw new BusinessException(message: $"订单:{input.OrderNo}不存在");
|
throw new BusinessException(message: $"订单:{input.OrderNo}不存在");
|
||||||
@ -144,7 +154,7 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
};
|
};
|
||||||
await _capPublisher.PublishAsync(GlobalConst.TrackDeleteSubscribe, @event);
|
await _capPublisher.PublishAsync(GlobalConst.TrackDeleteSubscribe, @event);
|
||||||
|
|
||||||
return true;
|
return new UnifyResultDto(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -154,13 +164,14 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="BusinessException"></exception>
|
/// <exception cref="BusinessException"></exception>
|
||||||
[HttpPost("Track/BatchDelete")]
|
[HttpPost("Track/BatchDelete")]
|
||||||
public async Task<bool> BatchDeleteTrackAsync(BatchDeleteTrackInput input)
|
public async Task<UnifyResultDto> BatchDeleteTrackAsync(BatchDeleteTrackInput input)
|
||||||
{
|
{
|
||||||
var orders = await _orderRepository.GetListAsync(x =>
|
var orders = await _orderRepository.GetListAsync(x =>
|
||||||
x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo)
|
x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo)
|
||||||
, x => new
|
, x => new
|
||||||
{
|
{
|
||||||
x.Id, x.SubSystemId
|
x.Id,
|
||||||
|
x.SubSystemId
|
||||||
});
|
});
|
||||||
|
|
||||||
var codes = await _provideQueries.GetCanDeleteTrackCodesAsync(
|
var codes = await _provideQueries.GetCanDeleteTrackCodesAsync(
|
||||||
@ -185,6 +196,6 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
await _capPublisher.PublishAsync(GlobalConst.TrackDeleteSubscribe, @event);
|
await _capPublisher.PublishAsync(GlobalConst.TrackDeleteSubscribe, @event);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return new UnifyResultDto(true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -26,10 +26,10 @@ public interface IOrderRepository : IBasicRepository<OrderEntity>
|
|||||||
Task DeleteOrderAsync(int orderId);
|
Task DeleteOrderAsync(int orderId);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取推送预警单
|
/// 更新推送预警单
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<OrderEntity>> GetPushWarnOrdersAsync();
|
Task<int> PushWarnOrdersAsync();
|
||||||
|
|
||||||
#region 订单关联
|
#region 订单关联
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
using SJZY.Track.Domain;
|
using SJZY.Track.Domain;
|
||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
|
||||||
using SJZY.Track.Domain.Dtos.Order;
|
using SJZY.Track.Domain.Dtos.Order;
|
||||||
using SJZY.Track.Domain.Enums;
|
|
||||||
|
|
||||||
namespace SJZY.Track.Repository.Repositories;
|
namespace SJZY.Track.Repository.Repositories;
|
||||||
|
|
||||||
@ -55,21 +53,16 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
|
|||||||
tran.Complete();
|
tran.Complete();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<OrderEntity>> GetPushWarnOrdersAsync()
|
public async Task<int> PushWarnOrdersAsync()
|
||||||
{
|
{
|
||||||
var errorType = (int)TrackProblemType.Error;
|
return await Context.Ado.ExecuteCommandAsync(@"UPDATE `t_track_push_config` `a`
|
||||||
|
LEFT JOIN `t_order` `b` ON `a`.`SubSystemId` = `b`.`SubSystemId` AND `a`.`CustomId` = `b`.`CustomId`
|
||||||
return await Context.Queryable<TrackPushConfigEntity>()
|
SET `b`.`QuestionType` = CASE
|
||||||
.LeftJoin<OrderEntity>((a, b) => a.SubSystemId == b.SubSystemId && a.CustomId == b.CustomId)
|
WHEN `b`.`LatestPushTime` IS NULL THEN 2
|
||||||
.Where((a, b) => !b.IsCompleted && b.QuestionType != errorType)
|
WHEN `b`.`LatestPushTime` < DATE_SUB(NOW(), INTERVAL 12 HOUR) THEN 2
|
||||||
.Where("a.CreateTime < DATE_SUB(now(),INTERVAL 12 hour)") // 过滤掉创建时间不足12小时的
|
ELSE 0 END
|
||||||
.Select((a, b) => new OrderEntity
|
WHERE `b`.`IsCompleted` = 0 AND `b`.`QuestionType` != 1 AND `b`.`CreateTime` < DATE_SUB(NOW(), INTERVAL 12 HOUR)
|
||||||
{
|
AND `a`.`IsDeleted` = 0 AND `b`.`IsDeleted` = 0;");
|
||||||
Id = b.Id,
|
|
||||||
QuestionType = b.QuestionType,
|
|
||||||
LatestPushTime = b.LatestPushTime
|
|
||||||
})
|
|
||||||
.ToListAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#region 订单关联
|
#region 订单关联
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user