Browse Source

新增添加/编辑采购方案(web)

yijia
shanji 2 years ago
parent
commit
d702fed215
  1. 10
      BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
  2. 79
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  3. 4
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
  4. 17
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs

10
BBWYB.Server.API/Controllers/PurchaseSchemeController.cs

@ -26,6 +26,16 @@ namespace BBWYB.Server.API.Controllers
purchaseSchemeBusiness.EditPurchaseScheme(batchCURDSchemeRequest);
}
/// <summary>
/// 添加/编辑采购方案(web)
/// </summary>
/// <param name="batchCURDSchemeRequest"></param>
[HttpPost]
public void EditPurchaseSchemeV2([FromBody] BatchCURDSchemeRequest batchCURDSchemeRequest)
{
purchaseSchemeBusiness.EditPurchaseSchemeV2(batchCURDSchemeRequest);
}
/// <summary>
/// 获取采购方案列表
/// </summary>

79
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -194,25 +194,60 @@ namespace BBWYB.Server.Business
public void EditPurchaseSchemeV2(BatchCURDSchemeRequest batchCURDSchemeRequest)
{
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0 &&
batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0)
throw new BusinessException("非法参数");
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
List<PurchaseSchemeGroup> dbSchemeGroupList = null;
List<PurchaseScheme> dbPurchaseSchemeList = null;
#region 数据验证
if ((batchCURDSchemeRequest.EditPurchaseSchemeList == null || batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0) &&
(batchCURDSchemeRequest.AddPurchaseSchemeList == null || batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0))
throw new BusinessException("更新方案和新增方案参数不能同时为空");
if (batchCURDSchemeRequest.EditPurchaseSchemeList != null && batchCURDSchemeRequest.EditPurchaseSchemeList.Count() > 0)
{
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("更新方案中有采购商Id/Name/Location为空");
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.Id == 0))
throw new BusinessException("更新方案中采购方案缺少Id");
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.SchemeGroupId == null || ps.SchemeGroupId == 0))
throw new BusinessException("更新方案中采购方案缺少分组Id");
}
if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count() > 0)
{
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("编辑方案中有采购商Id/Name/Location为空");
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count() > 0 && batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.Id == 0))
throw new BusinessException("编辑方案中采购方案缺少Id");
var productIds = batchCURDSchemeRequest.AddPurchaseSchemeList.Select(ps => ps.ProductId).ToList();
dbSchemeGroupList = fsql.Select<PurchaseSchemeGroup>().Where(psg => productIds.Contains(psg.ProductId)).ToList();
var dbSchemeGroupIds = dbSchemeGroupList.Select(psg => psg.Id).ToList();
dbPurchaseSchemeList = fsql.Select<PurchaseScheme>().Where(ps => dbSchemeGroupIds.Contains(ps.SchemeGroupId)).ToList();
foreach (var addPurchaseScheme in batchCURDSchemeRequest.AddPurchaseSchemeList)
{
if (addPurchaseScheme.SchemeGroupId == null || addPurchaseScheme.SchemeGroupId == 0)
continue;
var dbSchemeGroup = dbSchemeGroupList.FirstOrDefault(g => g.Id == addPurchaseScheme.SchemeGroupId);
if (dbSchemeGroup == null)
throw new BusinessException($"新增方案中指定了不存在的分组{addPurchaseScheme.SchemeGroupId}");
var dbPurchaseSchemeList_sameGroup = dbPurchaseSchemeList.Where(ps => ps.SchemeGroupId == addPurchaseScheme.SchemeGroupId).ToList();
if (dbPurchaseSchemeList_sameGroup.Any(ps => ps.SkuId == addPurchaseScheme.SkuId))
throw new BusinessException($"采购方案分组中Sku不允许重复,{dbSchemeGroup.GroupName}已存在{addPurchaseScheme.SkuId}的采购方案");
}
}
#endregion
List<PurchaseScheme> addPurchaseSchemeList = new List<PurchaseScheme>();
List<PurchaseSchemeProduct> addPurchaseSchemeProductList = new List<PurchaseSchemeProduct>();
List<PurchaseSchemeProductSku> addPurchaseSchemeProductSkuList = new List<PurchaseSchemeProductSku>();
List<Purchaser> newPurchaserList = new List<Purchaser>();
List<long> deletePurchaseSchemeIdList = new List<long>();
List<IUpdate<PurchaseScheme>> updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>();
List<PurchaseSchemeGroup> insertPurchaseSchemeGroupsList = new List<PurchaseSchemeGroup>();
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
{
@ -220,13 +255,31 @@ namespace BBWYB.Server.Business
foreach (var psReq in batchCURDSchemeRequest.AddPurchaseSchemeList)
{
if (psReq.SchemeGroupId == null || psReq.SchemeGroupId == 0)
{
//新增分组
var saemSpuSchemeGroupList = dbSchemeGroupList.Where(psg => psg.ProductId == psReq.ProductId).ToList();
var insertSchemeGroup = new PurchaseSchemeGroup()
{
Id = idGenerator.NewLong(),
CreateTime = DateTime.Now,
GroupName = $"{psReq.ProductId}_第{saemSpuSchemeGroupList.Count() + 1}组",
ProductId = psReq.ProductId,
ShopId = psReq.ShopId
};
insertPurchaseSchemeGroupsList.Add(insertSchemeGroup);
}
var ps = new PurchaseScheme()
{
CreateTime = DateTime.Now,
Id = idGenerator.NewLong(),
ProductId = psReq.ProductId,
SkuId = psReq.SkuId,
ShopId = psReq.ShopId
ShopId = psReq.ShopId,
HYBDId = psReq.HYBDId,
HYSchemeId = psReq.HYSchemeId,
SchemeGroupId = psReq.SchemeGroupId ?? 0
};
addPurchaseSchemeList.Add(ps);
foreach (var pspReq in psReq.PurchaseSchemeProductList)
@ -308,6 +361,8 @@ namespace BBWYB.Server.Business
fsql.Insert(addPurchaseSchemeProductList).ExecuteAffrows();
if (addPurchaseSchemeProductSkuList.Count > 0)
fsql.Insert(addPurchaseSchemeProductSkuList).ExecuteAffrows();
if (insertPurchaseSchemeGroupsList.Count() > 0)
fsql.Insert(insertPurchaseSchemeGroupsList).ExecuteAffrows();
if (updatePurchaseSchemeList.Count() > 0)
{
foreach (var update in updatePurchaseSchemeList)

4
BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs

@ -15,12 +15,12 @@
public string PurchaseUrl { get; set; }
/// <summary>
/// 采购商Id
/// 采购商Id (1688 SellerUserId)
/// </summary>
public string PurchaserId { get; set; }
/// <summary>
/// 采购商Id
/// 采购商Id2 (1688 SellerLoginId)
/// </summary>
public string PurchaserId2 { get; set; }

17
BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs

@ -4,10 +4,25 @@ namespace BBWYB.Server.Model.Dto
{
public class InputPurchaseSchemeRequest
{
/// <summary>
/// 采购方案分组Id,为空将新增分组
/// </summary>
public long? SchemeGroupId { get; set; }
/// <summary>
/// 慧眼标的Id
/// </summary>
public string HYBDId { get; set; }
/// <summary>
/// 慧眼方案Id
/// </summary>
public string HYSchemeId { get; set; }
public long ShopId { get; set; }
public string ProductId { get; set; }
public string SkuId { get; set; }
public IList<InputPurchaseSchemeProductRequest> PurchaseSchemeProductList { get; set; }
}
}

Loading…
Cancel
Save