|
|
|
using BBWYB.Common.Extensions;
|
|
|
|
using BBWYB.Common.Log;
|
|
|
|
using BBWYB.Common.Models;
|
|
|
|
using BBWYB.Server.Model;
|
|
|
|
using BBWYB.Server.Model.Db;
|
|
|
|
using BBWYB.Server.Model.Dto;
|
|
|
|
using FreeSql;
|
|
|
|
using Yitter.IdGenerator;
|
|
|
|
|
|
|
|
namespace BBWYB.Server.Business
|
|
|
|
{
|
|
|
|
public class PurchaseSchemeBusiness : BaseBusiness, IDenpendency
|
|
|
|
{
|
|
|
|
private PurchaseProductAPIService purchaseProductAPIService;
|
|
|
|
|
|
|
|
public PurchaseSchemeBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, PurchaseProductAPIService purchaseProductAPIService) : base(fsql, nLogManager, idGenerator)
|
|
|
|
{
|
|
|
|
this.purchaseProductAPIService = purchaseProductAPIService;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void ExtractNewPurchaser<T>(IList<T> purchaserSchemeList, IList<Purchaser> addPurchaserList) where T : InputPurchaseSchemeRequest
|
|
|
|
{
|
|
|
|
List<string> reqeustPurchaserIdList = new List<string>();
|
|
|
|
foreach (var scheme in purchaserSchemeList)
|
|
|
|
reqeustPurchaserIdList.AddRange(scheme.PurchaseSchemeProductList.Select(p => p.PurchaserId));
|
|
|
|
reqeustPurchaserIdList = reqeustPurchaserIdList.Distinct().ToList();
|
|
|
|
|
|
|
|
//var reqeustPurchaserIdList = purchaserSchemeList.Select(s => s.PurchaserId).Distinct().ToList();
|
|
|
|
var existPurchaserIdList = fsql.Select<Purchaser>().Where(p => reqeustPurchaserIdList.Contains(p.Id)).ToList(p => p.Id);
|
|
|
|
var newPurchaserIdList = reqeustPurchaserIdList.Except(existPurchaserIdList);
|
|
|
|
foreach (var scheme in purchaserSchemeList)
|
|
|
|
{
|
|
|
|
foreach (var ps in scheme.PurchaseSchemeProductList)
|
|
|
|
{
|
|
|
|
if (newPurchaserIdList.Any(p => p == ps.PurchaserId) && !addPurchaserList.Any(p => p.Id == ps.PurchaserId))
|
|
|
|
{
|
|
|
|
addPurchaserList.Add(new Purchaser()
|
|
|
|
{
|
|
|
|
Id = ps.PurchaserId,
|
|
|
|
Id2 = ps.PurchaserId2,
|
|
|
|
Name = ps.PurchaserName,
|
|
|
|
Location = ps.PurchaserLocation,
|
|
|
|
Platform = ps.PurchasePlatform ?? Enums.Platform.阿里巴巴,
|
|
|
|
MemberId = ps.PurchaserMemberId
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void EditPurchaseScheme(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为空");
|
|
|
|
|
|
|
|
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");
|
|
|
|
|
|
|
|
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>>();
|
|
|
|
|
|
|
|
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
|
|
|
|
{
|
|
|
|
ExtractNewPurchaser(batchCURDSchemeRequest.AddPurchaseSchemeList, newPurchaserList);
|
|
|
|
|
|
|
|
foreach (var psReq in batchCURDSchemeRequest.AddPurchaseSchemeList)
|
|
|
|
{
|
|
|
|
var ps = new PurchaseScheme()
|
|
|
|
{
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
Id = idGenerator.NewLong(),
|
|
|
|
ProductId = psReq.ProductId,
|
|
|
|
SkuId = psReq.SkuId,
|
|
|
|
ShopId = psReq.ShopId
|
|
|
|
};
|
|
|
|
addPurchaseSchemeList.Add(ps);
|
|
|
|
foreach (var pspReq in psReq.PurchaseSchemeProductList)
|
|
|
|
{
|
|
|
|
var psp = pspReq.Map<PurchaseSchemeProduct>();
|
|
|
|
psp.Id = idGenerator.NewLong();
|
|
|
|
psp.CreateTime = DateTime.Now;
|
|
|
|
psp.SkuPurchaseSchemeId = ps.Id;
|
|
|
|
addPurchaseSchemeProductList.Add(psp);
|
|
|
|
|
|
|
|
foreach (var pssReq in pspReq.PurchaseSchemeProductSkuList)
|
|
|
|
{
|
|
|
|
var pss = pssReq.Map<PurchaseSchemeProductSku>();
|
|
|
|
pss.Id = idGenerator.NewLong();
|
|
|
|
pss.CreateTime = DateTime.Now;
|
|
|
|
pss.SkuPurchaseSchemeId = ps.Id;
|
|
|
|
addPurchaseSchemeProductSkuList.Add(pss);
|
|
|
|
ps.DefaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#region 更新采购方案
|
|
|
|
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
|
|
|
|
{
|
|
|
|
deletePurchaseSchemeIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id));
|
|
|
|
foreach (var psReq in batchCURDSchemeRequest.EditPurchaseSchemeList)
|
|
|
|
{
|
|
|
|
var schemeId = psReq.Id;
|
|
|
|
var defaultCost = 0M;
|
|
|
|
foreach (var pspReq in psReq.PurchaseSchemeProductList)
|
|
|
|
{
|
|
|
|
var psp = pspReq.Map<PurchaseSchemeProduct>();
|
|
|
|
psp.Id = idGenerator.NewLong();
|
|
|
|
psp.CreateTime = DateTime.Now;
|
|
|
|
psp.SkuPurchaseSchemeId = schemeId;
|
|
|
|
addPurchaseSchemeProductList.Add(psp);
|
|
|
|
|
|
|
|
foreach (var pssReq in pspReq.PurchaseSchemeProductSkuList)
|
|
|
|
{
|
|
|
|
var pss = pssReq.Map<PurchaseSchemeProductSku>();
|
|
|
|
pss.Id = idGenerator.NewLong();
|
|
|
|
pss.CreateTime = DateTime.Now;
|
|
|
|
pss.SkuPurchaseSchemeId = schemeId;
|
|
|
|
addPurchaseSchemeProductSkuList.Add(pss);
|
|
|
|
defaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var psupdate = fsql.Update<PurchaseScheme>(schemeId)
|
|
|
|
.Set(ps => ps.DefaultCost, defaultCost);
|
|
|
|
updatePurchaseSchemeList.Add(psupdate);
|
|
|
|
}
|
|
|
|
|
|
|
|
//var editPurchaseSchemeList = batchCURDSchemeRequest.EditPurchaseSchemeList.Map<List<PurchaseScheme>>();
|
|
|
|
//foreach (var scheme in editPurchaseSchemeList)
|
|
|
|
//{
|
|
|
|
// foreach (var purchaseProduct in scheme.PurchaseSchemeProductList)
|
|
|
|
// {
|
|
|
|
// purchaseProduct.Id = idGenerator.NewLong();
|
|
|
|
// purchaseProduct.CreateTime = DateTime.Now;
|
|
|
|
// purchaseProduct.SkuPurchaseSchemeId = scheme.Id;
|
|
|
|
// foreach (var purchaseProductSku in purchaseProduct.PurchaseSchemeProductSkuList)
|
|
|
|
// {
|
|
|
|
// purchaseProductSku.Id = idGenerator.NewLong();
|
|
|
|
// purchaseProductSku.CreateTime = DateTime.Now;
|
|
|
|
// purchaseProductSku.SkuPurchaseSchemeId = scheme.Id;
|
|
|
|
// }
|
|
|
|
// addPurchaseSchemeProductSkuList.AddRange(purchaseProduct.PurchaseSchemeProductSkuList);
|
|
|
|
// }
|
|
|
|
// addPurchaseSchemeProductList.AddRange(scheme.PurchaseSchemeProductList);
|
|
|
|
//}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
foreach (var purchaseProductSku in addPurchaseSchemeProductSkuList)
|
|
|
|
{
|
|
|
|
if (purchaseProductSku.PurchaseRatio == null)
|
|
|
|
purchaseProductSku.PurchaseRatio = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
fsql.Transaction(() =>
|
|
|
|
{
|
|
|
|
if (newPurchaserList.Count > 0)
|
|
|
|
fsql.Insert(newPurchaserList).ExecuteAffrows();
|
|
|
|
|
|
|
|
//更新,删除已存在的采购方案商品和Sku
|
|
|
|
if (deletePurchaseSchemeIdList.Count > 0)
|
|
|
|
{
|
|
|
|
fsql.Delete<PurchaseSchemeProduct>().Where(p => deletePurchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
|
|
|
|
fsql.Delete<PurchaseSchemeProductSku>().Where(p => deletePurchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
|
|
|
|
}
|
|
|
|
|
|
|
|
//新增
|
|
|
|
if (addPurchaseSchemeList != null && addPurchaseSchemeList.Count > 0)
|
|
|
|
fsql.Insert(addPurchaseSchemeList).ExecuteAffrows();
|
|
|
|
if (addPurchaseSchemeProductList.Count > 0)
|
|
|
|
fsql.Insert(addPurchaseSchemeProductList).ExecuteAffrows();
|
|
|
|
if (addPurchaseSchemeProductSkuList.Count > 0)
|
|
|
|
fsql.Insert(addPurchaseSchemeProductSkuList).ExecuteAffrows();
|
|
|
|
if (updatePurchaseSchemeList.Count() > 0)
|
|
|
|
{
|
|
|
|
foreach (var update in updatePurchaseSchemeList)
|
|
|
|
update.ExecuteAffrows();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取采购方案
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="querySchemeRequest"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
public IList<PurchaseSchemeResponse> GetPurchaseSchemeList(QuerySchemeRequest request)
|
|
|
|
{
|
|
|
|
var select = fsql.Select<PurchaseScheme>();
|
|
|
|
if (request.SchemeId != null && request.SchemeId != 0)
|
|
|
|
select = select.Where(ps => ps.Id == request.SchemeId);
|
|
|
|
else if (request.SchemeIdList != null && request.SchemeIdList.Count() > 0)
|
|
|
|
select = select.Where(ps => request.SchemeIdList.Contains(ps.Id));
|
|
|
|
else
|
|
|
|
{
|
|
|
|
select = select.WhereIf(request.ShopId != null && request.ShopId != 0, ps => ps.ShopId == request.ShopId)
|
|
|
|
.WhereIf(request.SkuIdList != null && request.SkuIdList.Count() > 0, ps => request.SkuIdList.Contains(ps.SkuId));
|
|
|
|
|
|
|
|
if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
|
|
|
|
{
|
|
|
|
select = select.Where(ps => fsql.Select<PurchaseSchemeProduct, Purchaser>()
|
|
|
|
.InnerJoin((psp, p) => psp.PurchaserId == p.Id)
|
|
|
|
.WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
|
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId)
|
|
|
|
.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var sql = select.ToSql();
|
|
|
|
var purchaseSchemeList = select.ToList<PurchaseSchemeResponse>();
|
|
|
|
|
|
|
|
|
|
|
|
if (purchaseSchemeList.Count > 0)
|
|
|
|
{
|
|
|
|
var purchaseSchemeIdList = purchaseSchemeList.Select(p => p.Id).ToList();
|
|
|
|
|
|
|
|
var purchaseSchemeProductList = fsql.Select<PurchaseSchemeProduct, Purchaser>()
|
|
|
|
.InnerJoin((psp, p) => psp.PurchaserId == p.Id)
|
|
|
|
.Where((psp, p) => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId))
|
|
|
|
.ToList((psp, p) => new PurchaseSchemeProductResponse
|
|
|
|
{
|
|
|
|
CreateTime = psp.CreateTime,
|
|
|
|
Id = psp.Id,
|
|
|
|
ProductId = psp.ProductId,
|
|
|
|
PurchaseProductId = psp.PurchaseProductId,
|
|
|
|
PurchaseUrl = psp.PurchaseUrl,
|
|
|
|
SkuId = psp.SkuId,
|
|
|
|
SkuPurchaseSchemeId = psp.SkuPurchaseSchemeId,
|
|
|
|
PurchaserId = p.Id,
|
|
|
|
PurchaserId2 = p.Id2,
|
|
|
|
PurchaserLocation = p.Location,
|
|
|
|
PurchaserName = p.Name,
|
|
|
|
PurchasePlatform = p.Platform,
|
|
|
|
PurchaserMemberId = p.MemberId
|
|
|
|
});
|
|
|
|
|
|
|
|
var purchaseSchemeProductSkuList = fsql.Select<PurchaseSchemeProductSku>().Where(p => purchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId))
|
|
|
|
.ToList().Map<List<PurchaseSchemeProductSkuResponse>>();
|
|
|
|
|
|
|
|
foreach (var scheme in purchaseSchemeList)
|
|
|
|
{
|
|
|
|
var schemeProductList = purchaseSchemeProductList.Where(ps => ps.SkuPurchaseSchemeId == scheme.Id);
|
|
|
|
if (schemeProductList.Count() > 0)
|
|
|
|
{
|
|
|
|
scheme.PurchaseSchemeProductList.AddRange(schemeProductList);
|
|
|
|
foreach (var schemeProduct in schemeProductList)
|
|
|
|
{
|
|
|
|
var schemeProductSkuList = purchaseSchemeProductSkuList.Where(psk => psk.SkuPurchaseSchemeId == scheme.Id &&
|
|
|
|
psk.PurchaseProductId == schemeProduct.PurchaseProductId);
|
|
|
|
if (schemeProductSkuList.Count() > 0)
|
|
|
|
schemeProduct.PurchaseSchemeProductSkuList.AddRange(schemeProductSkuList);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#region 封装采购商
|
|
|
|
foreach (var schemeProduct in schemeProductList)
|
|
|
|
{
|
|
|
|
if (!scheme.PurchaserList.Any(p => p.Id == schemeProduct.PurchaserId))
|
|
|
|
{
|
|
|
|
scheme.PurchaserList.Add(new Purchaser()
|
|
|
|
{
|
|
|
|
Id = schemeProduct.PurchaserId,
|
|
|
|
Id2 = schemeProduct.PurchaserId2,
|
|
|
|
Location = schemeProduct.PurchaserLocation,
|
|
|
|
Name = schemeProduct.PurchaserName,
|
|
|
|
Platform = schemeProduct.PurchasePlatform,
|
|
|
|
MemberId = schemeProduct.PurchaserMemberId
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 获取采购方案基本信息
|
|
|
|
if (request.IncludePurchaseSkuBasicInfo == 1)
|
|
|
|
{
|
|
|
|
foreach (var schemeProduct in schemeProductList)
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
var basicInfo = GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
|
|
|
|
{
|
|
|
|
FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
|
|
|
|
PriceMode = Enums.PurchaseOrderMode.批发,
|
|
|
|
Platform = schemeProduct.PurchasePlatform ?? Enums.Platform.阿里巴巴,
|
|
|
|
PurchaseProductId = schemeProduct.PurchaseProductId
|
|
|
|
});
|
|
|
|
if (basicInfo != null)
|
|
|
|
{
|
|
|
|
foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
|
|
|
|
{
|
|
|
|
var basicSku = basicInfo.ItemList.FirstOrDefault(x => x.PurchaseSkuId == schemeProductSku.PurchaseSkuId);
|
|
|
|
if (basicSku != null)
|
|
|
|
{
|
|
|
|
schemeProductSku.PurchaseSkuTitle = basicSku.Title;
|
|
|
|
schemeProductSku.PurchaseSkuPrice = basicSku.Price;
|
|
|
|
schemeProductSku.PurchaseSkuLogo = basicSku.Logo;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return purchaseSchemeList;
|
|
|
|
}
|
|
|
|
|
|
|
|
public IList<PurchaseSchemeCountResponse> GetPurchaseSchemeCountList(QuerySchemeCountRequest request)
|
|
|
|
{
|
|
|
|
var list = fsql.Select<PurchaseScheme>().Where(ps => request.SkuIdList.Contains(ps.SkuId))
|
|
|
|
.GroupBy(ps => ps.SkuId)
|
|
|
|
.ToList(g => new PurchaseSchemeCountResponse()
|
|
|
|
{
|
|
|
|
SkuId = g.Key,
|
|
|
|
SchemeCount = g.Count()
|
|
|
|
});
|
|
|
|
return list;
|
|
|
|
}
|
|
|
|
|
|
|
|
public IList<PurchaseSchemeResponse> RefreshPurchaseScheme(RefreshSchemeRequest request)
|
|
|
|
{
|
|
|
|
var purchaseSchemeList = GetPurchaseSchemeList(new QuerySchemeRequest()
|
|
|
|
{
|
|
|
|
SchemeIdList = request.SchemeIdList,
|
|
|
|
IncludePurchaseSkuBasicInfo = 1
|
|
|
|
});
|
|
|
|
List<IUpdate<PurchaseScheme>> updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>();
|
|
|
|
foreach (var ps in purchaseSchemeList)
|
|
|
|
{
|
|
|
|
var defaultCost = 0M;
|
|
|
|
foreach (var psp in ps.PurchaseSchemeProductList)
|
|
|
|
{
|
|
|
|
foreach (var pss in psp.PurchaseSchemeProductSkuList)
|
|
|
|
{
|
|
|
|
defaultCost += ((pss.ActualPrice ?? pss.PurchaseSkuPrice) ?? 0) * (pss.PurchaseRatio ?? 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (ps.DefaultCost != defaultCost)
|
|
|
|
{
|
|
|
|
var update = fsql.Update<PurchaseScheme>(ps.Id).Set(p => p.DefaultCost, defaultCost);
|
|
|
|
updatePurchaseSchemeList.Add(update);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (updatePurchaseSchemeList.Count() > 0)
|
|
|
|
{
|
|
|
|
fsql.Transaction(() =>
|
|
|
|
{
|
|
|
|
foreach (var update in updatePurchaseSchemeList)
|
|
|
|
update.ExecuteAffrows();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return purchaseSchemeList;
|
|
|
|
}
|
|
|
|
|
|
|
|
///// <summary>
|
|
|
|
///// 获取共同拥有的采购商
|
|
|
|
///// </summary>
|
|
|
|
///// <param name="querySchemeRequest"></param>
|
|
|
|
///// <returns></returns>
|
|
|
|
//public IList<Purchaser> GetSharePurchaser(QuerySchemeRequest querySchemeRequest)
|
|
|
|
//{
|
|
|
|
// var skuCount = querySchemeRequest.SkuIdList.Count();
|
|
|
|
|
|
|
|
// var purchaseSchemeList = fsql.Select<PurchaseScheme, Purchaser>().InnerJoin((ps, p) => ps.PurchaserId == p.Id)
|
|
|
|
// .Where((ps, p) => ps.ShopId == querySchemeRequest.ShopId)
|
|
|
|
// .Where((ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
|
|
|
|
// .ToList();
|
|
|
|
// if (purchaseSchemeList.Count() == 0)
|
|
|
|
// return null;
|
|
|
|
|
|
|
|
// var group = purchaseSchemeList.GroupBy(p => p.PurchaserId);
|
|
|
|
// var sharePurchaserIdList = new List<string>();
|
|
|
|
// foreach (var g in group)
|
|
|
|
// {
|
|
|
|
// if (g.Count() == skuCount)
|
|
|
|
// sharePurchaserIdList.Add(g.Key);
|
|
|
|
// }
|
|
|
|
// if (sharePurchaserIdList.Count == 0)
|
|
|
|
// return null;
|
|
|
|
|
|
|
|
// return fsql.Select<Purchaser>().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
|
|
|
|
//}
|
|
|
|
|
|
|
|
//public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
|
|
|
|
//{
|
|
|
|
// var purchaseSchemeIdList = fsql.Select<PurchaseScheme>().Where(ps => ps.ProductId == deletePurchaseSchemeRequest.ProductId &&
|
|
|
|
// ps.PurchaserId == deletePurchaseSchemeRequest.PurchaserId).ToList(ps => ps.Id);
|
|
|
|
|
|
|
|
// fsql.Transaction(() =>
|
|
|
|
// {
|
|
|
|
// fsql.Delete<PurchaseScheme>(purchaseSchemeIdList).ExecuteAffrows();
|
|
|
|
// fsql.Delete<PurchaseSchemeProduct>().Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)).ExecuteAffrows();
|
|
|
|
// fsql.Delete<PurchaseSchemeProductSku>().Where(psps => purchaseSchemeIdList.Contains(psps.SkuPurchaseSchemeId)).ExecuteAffrows();
|
|
|
|
// });
|
|
|
|
//}
|
|
|
|
|
|
|
|
public void DeletePurchaseScheme(long schemeId)
|
|
|
|
{
|
|
|
|
fsql.Transaction(() =>
|
|
|
|
{
|
|
|
|
fsql.Delete<PurchaseScheme>(schemeId).ExecuteAffrows();
|
|
|
|
fsql.Delete<PurchaseSchemeProduct>().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
|
|
|
|
fsql.Delete<PurchaseSchemeProductSku>().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取采购Sku的基本信息
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="request"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
public PurchaseSkuBasicInfoResponse GetPurchaseSkuBasicInfo(PurchaseSkuBasicInfoRequest request)
|
|
|
|
{
|
|
|
|
return purchaseProductAPIService.GetProductInfo(request);
|
|
|
|
}
|
|
|
|
|
|
|
|
public IList<PurchaseSkuBasicInfoResponse> BatchGetPurchaseSkuBasicInfo(BatchPurchaseSkuBasicInfoRequest request)
|
|
|
|
{
|
|
|
|
var list = new List<PurchaseSkuBasicInfoResponse>();
|
|
|
|
foreach (var param in request.Params)
|
|
|
|
{
|
|
|
|
foreach (var purchaseId in param.PurchaseProductIds)
|
|
|
|
{
|
|
|
|
var response = GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
|
|
|
|
{
|
|
|
|
FirstApiMode = request.FirstApiMode,
|
|
|
|
PriceMode = request.PriceMode,
|
|
|
|
Platform = param.Platform,
|
|
|
|
PurchaseProductId = purchaseId
|
|
|
|
});
|
|
|
|
if (response != null)
|
|
|
|
{
|
|
|
|
if (param.PurchaseSkuIds != null && param.PurchaseSkuIds.Count() > 0)
|
|
|
|
{
|
|
|
|
for (var i = 0; i < response.ItemList.Count(); i++)
|
|
|
|
{
|
|
|
|
var skuInfo = response.ItemList[i];
|
|
|
|
if (!param.PurchaseSkuIds.Any(s => s == skuInfo.PurchaseSkuId))
|
|
|
|
{
|
|
|
|
response.ItemList.RemoveAt(i);
|
|
|
|
i--;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
list.Add(response);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return list;
|
|
|
|
}
|
|
|
|
|
|
|
|
//public void EditPurchaseRatio(EditPurchaseRatioAndActualPriceRequest request)
|
|
|
|
//{
|
|
|
|
// if (request.Ratio < 1)
|
|
|
|
// request.Ratio = 1;
|
|
|
|
|
|
|
|
|
|
|
|
// fsql.Update<PurchaseSchemeProductSku>().Set(pss => pss.PurchaseRatio, request.Ratio)
|
|
|
|
// .Set(pss => pss.ActualPrice, request.ActualPrice)
|
|
|
|
// .Where(pss => pss.SkuPurchaseSchemeId == request.SchemeId &&
|
|
|
|
// pss.SkuId == request.SkuId &&
|
|
|
|
// pss.PurchaseSkuId == request.PurchaseSkuId)
|
|
|
|
// .ExecuteAffrows();
|
|
|
|
|
|
|
|
|
|
|
|
//}
|
|
|
|
}
|
|
|
|
}
|