fix: 修复【根据Id获取轨迹明细】校验,增加以下校验规则

规则1:orderId为空,orderNo为空+systemId>0,校验为参数异常
规则2:orderId为空,orderNo不为空+systemId为空,校验为参数异常
注:当orderId>0,orderNo不为空,systemId>0,则使用【订单号+系统id】的方式查询轨迹明细
This commit is contained in:
云龙 王 2024-11-29 14:23:06 +08:00
parent 26f57263b1
commit a4df525ee8

View File

@ -115,14 +115,16 @@ public class TrackOrderService : ApplicationService
[HttpPost("GetDetails")]
public async Task<List<TrackOrderDetailDto>> GetTracksAsync(int? orderId, string? orderNo, int? systemId)
{
Expression<Func<OrderEntity, bool>> whereExpression = null;
Expression<Func<OrderEntity, bool>>? whereExpression = null;
//根据订单id查询
if (orderId != null && orderId > 0)
whereExpression = m => m.Id == orderId;
//根据订单号+系统id查询
if (!string.IsNullOrEmpty(orderNo) && systemId != null && systemId > 0)
whereExpression = m => m.OrderNo == orderNo && m.SubSystemId == systemId;
if (orderId == default && orderNo == default && systemId == default)
if (whereExpression == default)
throw new BusinessException(message: "请求参数异常");
var subSystemId = await _orderRepository.GetFirstAsync(whereExpression, x => x.SubSystemId);