track/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs
2025-02-05 10:58:53 +08:00

179 lines
5.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using SJZY.Track.Domain.Dtos.Order;
using SJZY.Track.Domain.VEntities;
namespace SJZY.Track.Domain.Aggregates.OrderAggregate;
public interface IOrderRepository : IBasicRepository<OrderEntity>
{
/// <summary>
/// 获取分页的轨迹订单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<UnifyPageResultDto<TrackOrderVO>> GetTrackOrderPagedList(GetPageTrackOrderInputVO input);
/// <summary>
/// 通过三方平台和三方单号查询订单
/// </summary>
/// <param name="serviceProviderCode">三方平台</param>
/// <param name="orderNo">三方平台单号</param>
/// <returns>(主单号id,客户id)</returns>
Task<(int MainOrderId, int CustomId)> GetTrackOrderByProviderAndOrderNo(string serviceProviderCode, string orderNo);
/// <summary>
/// 创建订单
/// </summary>
/// <param name="order"></param>
/// <returns></returns>
Task<int> CreateOrderAsync(OrderEntity order);
/// <summary>
/// 更新订单
/// </summary>
/// <param name="order"></param>
/// <returns></returns>
Task UpdateOrderAsync(OrderEntity order);
/// <summary>
/// 删除订单
/// </summary>
/// <param name="orderId"></param>
/// <returns></returns>
Task DeleteOrderAsync(int orderId);
/// <summary>
/// 更新推送预警单
/// </summary>
/// <returns></returns>
Task<int> PushWarnOrdersAsync(int subSystemId, int pageSize, int pageindex);
/// <summary>
/// 更新缺失标记,时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
/// </summary>
/// <param name="ids">订单id</param>
/// <param name="newValue">值</param>
/// <returns></returns>
Task<int> UpdateBatchIdsAsync(List<int> ids, int newValue);
/// <summary>
/// 根据子系统code获取子系统id
/// </summary>
/// <param name="codes"></param>
/// <returns></returns>
Task<List<(string code, int id)>> GetSubSystemListByCodesAsync(List<string> codes);
#region 订单模板
/// <summary>
/// 根据订单id,获取订单所属的模板
/// </summary>
/// <param name="orderId"></param>
/// <returns></returns>
Task<List<OrderTemplateVO>> GetOrderTemplateAsync(int[] orderId);
/// <summary>
/// 根据子系统+订单号+类型,获取订单所属的模板
/// </summary>
/// <param name="subSystemId"></param>
/// <param name="orderType"></param>
/// <param name="orderNos"></param>
/// <returns></returns>
Task<List<OrderTemplateVO>> GetOrderTemplateAsync(int subSystemId,int orderType,List<string> orderNos);
#endregion
#region 订单关联
/// <summary>
/// 根据订单id,获取关联的订单集合
/// </summary>
/// <param name="orderId"></param>
/// <returns></returns>
Task<List<LinkedOrderVO>> GetLinkedOrdersAsync(int[] orderId);
/// <summary>
/// 根据订单id,获取指定子系统下指定订单类型的关联订单集合
/// </summary>
/// <param name="orderId"></param>
/// <param name="linkSubSystemId"></param>
/// <param name="linkOrderType"></param>
/// <returns></returns>
Task<List<string>> GetLinkedOrdersAsync(int orderId, int linkSubSystemId, int linkOrderType);
/// <summary>
/// 找已经存在的关联订单
/// </summary>
/// <param name="orderId"></param>
/// <param name="linkSubSystemId"></param>
/// <param name="linkOrderType"></param>
/// <param name="linkOrderNos"></param>
/// <returns></returns>
Task<List<int>> GetLinkedOrdersAsync(int orderId, int linkSubSystemId, int linkOrderType,
List<string> linkOrderNos);
/// <summary>
/// 关联订单
/// </summary>
/// <param name="orderLinkEntities"></param>
/// <returns></returns>
Task LinkOrderAsync(List<OrderLinkEntity> orderLinkEntities);
/// <summary>
/// 解除订单关联关系
/// </summary>
/// <param name="linkIds"></param>
/// <returns></returns>
Task UnLinkByIdsAsync(List<int> linkIds);
#endregion
#region 订单拉取状态
/// <summary>
/// 更新订单拉取状态为静默,Init->SilenceBeforeStart,Pulling->SilenceAfterEnd
/// </summary>
/// <param name="orderIds"></param>
/// <param name="trackCode"></param>
/// <returns></returns>
Task UpdatePullStatusToSilenceAsync(List<int> orderIds, string trackCode);
/// <summary>
/// 更新订单拉取状态根据静默,SilenceBeforeStart->Pulling,SilenceAfterEnd->Completed
/// </summary>
/// <returns></returns>
Task<int> UpdatePullStatusBySilenceAsync();
/// <summary>
/// 清理拉取状态
/// </summary>
/// <returns></returns>
Task<int> ClearPullStatusAsync();
/// <summary>
/// 更新订单拉取配置,根据服务商
/// </summary>
/// <param name="inputVo"></param>
/// <returns></returns>
Task<int> UpdateOrderPullConfigForServiceProviderAsync(UpdateOrderPullConfigsInputVo inputVo);
#endregion
/// <summary>
/// 根据id获取子系统信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<VSystemEntity> GetSystemInfoById(int id);
/// <summary>
/// 根据id获取员工姓名
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<VUserEntity> GetUserById(int id);
}