shanji 2 years ago
parent
commit
a2e0b4214d
  1. 66
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  2. 2
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssocationPurchaseOrderPreviewRequest.cs

66
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -1,23 +1,21 @@
using BBWYB.Common.Http;
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Business.Extensions;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Db.Mds;
using BBWYB.Server.Model.Db.MDS;
using BBWYB.Server.Model.Dto;
using FreeSql;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SDKAdapter;
using SDKAdapter.OperationPlatform.Models;
using SDKAdapter.PurchasePlatform.Client;
using SDKAdapter.PurchasePlatform.Models;
using System.Text;
using Yitter.IdGenerator;
using BBWYB.Server.Business.Extensions;
using Microsoft.Extensions.DependencyInjection;
using BBWYB.Server.Model.Db.Mds;
using static BBWYB.Server.Model.Enums;
namespace BBWYB.Server.Business
{
@ -825,6 +823,64 @@ namespace BBWYB.Server.Business
});
}
/// <summary>
/// 预览关联订单信息
/// </summary>
/// <param name="request"></param>
public void PreviewAssocationPurchaseOrder(AssocationPurchaseOrderPreviewRequest request)
{
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.PurchasePlatform);
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest()
{
AppKey = request.PurchaseAccount.AppKey,
AppSecret = request.PurchaseAccount.AppSecret,
AppToken = request.PurchaseAccount.AppToken,
OrderId = request.PurchaseOrderId
});
#region 处理采购商Id
var purchaserId = purchaseOrderSimpleInfo.PurchaserId;
if (string.IsNullOrEmpty(purchaserId))
throw new BusinessException($"采购单{request.PurchaseOrderId}缺少采购商Id");
purchaserId = purchaserId.Replace("b2b-", string.Empty);
var purchaserId2 = purchaserId.Substring(0, purchaserId.Length - 5);
var purchaserIds = new List<string>() { purchaserId, purchaserId2 };
var dbPurchaser = fsql.Select<Purchaser>().Where(p => p.Platform == Enums.Platform. && purchaserIds.Contains(p.Id)).ToOne();
if (dbPurchaser == null)
throw new BusinessException($"采购单{request.PurchaseOrderId}缺少有效采购商");
purchaserId = dbPurchaser.Id;
#endregion
#region 查询订单Sku
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList();
if (orderSkuList.Count() == 0)
throw new BusinessException("缺少订单sku信息");
#endregion
#region 匹配采购方案
var skuIds = orderSkuList.Select(osku => osku.SkuId).ToList();
var purchaseSchemeSkuList = fsql.Select<Purchaser, PurchaseScheme, PurchaseSchemeProductSku>()
.InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
.InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId)
.Where((p, ps, pss) => p.Id == purchaserId)
.Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.)
.Where((p, ps, pss) => skuIds.Contains(pss.SkuId))
.ToList((p, ps, pss) => new
{
pss.Id,
pss.SkuId,
pss.ProductId,
pss.PurchaseProductId,
pss.PurchaseSkuId,
pss.PurchaseSkuSpecId,
pss.SkuPurchaseSchemeId
});
if (purchaseSchemeSkuList.Count() == 0)
throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
#endregion
}
/// <summary>
/// 设置历史采购单
/// </summary>

2
BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssocationPurchaseOrderPreviewRequest.cs

@ -10,5 +10,7 @@
public string PurchaseOrderId { get; set; }
public PurchaseAccountRequest PurchaseAccount { get; set; }
public Enums.Platform PurchasePlatform { get; set; }
}
}

Loading…
Cancel
Save