protected override GetSuperRetailTraderItemListRD ProcessRequest(APIRequest <GetSuperRetailTraderItemListRP> pRequest) { GetSuperRetailTraderItemListRP rp = pRequest.Parameters; GetSuperRetailTraderItemListRD rd = new GetSuperRetailTraderItemListRD(); rd.SuperRetailTraderItemList = new List <SuperRetailTraderItemInfo>(); var superRetailTraderItemMappingBll = new T_SuperRetailTraderItemMappingBLL(CurrentUserInfo); var superRetailTraderSkuMappingBll = new T_SuperRetailTraderSkuMappingBLL(CurrentUserInfo); var superRetailTraderConfigBll = new T_SuperRetailTraderConfigBLL(CurrentUserInfo); OrderBy[] orderBy = new OrderBy[] { new OrderBy() { FieldName = "CreateTime", Direction = OrderByDirections.Desc } }; PagedQueryResult <T_SuperRetailTraderSkuMappingEntity> superRetailTraderSkuList = new PagedQueryResult <T_SuperRetailTraderSkuMappingEntity>(); //获取分销商Sku列表 superRetailTraderSkuList = superRetailTraderSkuMappingBll.GetSuperRetailTraderSkuList("", rp.ItemName, rp.Status, rp.PageSize, rp.PageIndex); //获取分销商怕配置信息 T_SuperRetailTraderConfigEntity superRetailTraderConfigEntity = superRetailTraderConfigBll.QueryByEntity(new T_SuperRetailTraderConfigEntity() { CustomerId = CurrentUserInfo.ClientID }, null).FirstOrDefault(); decimal temp; //分销价格 decimal Cost = 0; //成本价 decimal CustomerProfit = 0; //商家分润 if (superRetailTraderConfigEntity != null && superRetailTraderConfigEntity.Cost != 0 && superRetailTraderConfigEntity.Cost != null) { Cost = Convert.ToDecimal(superRetailTraderConfigEntity.Cost); //成本价 } if (superRetailTraderConfigEntity != null && superRetailTraderConfigEntity.CustomerProfit != null && superRetailTraderConfigEntity.CustomerProfit != 0) { CustomerProfit = Convert.ToDecimal(superRetailTraderConfigEntity.CustomerProfit); //商家分润 } List <SuperRetailTraderItemInfo> SkuList = superRetailTraderSkuList.Entities.Select(n => new SuperRetailTraderItemInfo() { ItemId = n.ItemId, ItemName = n.ItemName, SkuId = n.SkuId, PropName = superRetailTraderItemMappingBll.GetPropName(n.PropName1, n.PropName2), SalesPrice = n.SalesPrice, DistributerStock = Convert.ToInt32(n.DistributerStock) - Convert.ToInt32(n.SalesQty), DistributerCostPrice = Convert.ToDecimal(n.DistributerCostPrice), DistributePirce = temp = Cost == 0 ? 0 : Math.Round(Convert.ToDecimal(n.DistributerCostPrice / Convert.ToDecimal(Cost / 100)), 2, MidpointRounding.AwayFromZero), //分销价格 成本价 / 成本占比 CustomerProgit = CustomerProfit == 0 ? 0 : Math.Round(temp * Convert.ToDecimal(CustomerProfit / 100), 2, MidpointRounding.AwayFromZero), //商家分润 分销价 * 商家分润占比 Status = Convert.ToInt32(n.Status) }).ToList(); rd.SuperRetailTraderItemList.AddRange(SkuList); rd.TotalCount = superRetailTraderSkuList.RowCount; rd.TotalPageCount = superRetailTraderSkuList.PageCount; return(rd); }
protected override GetSuperRetailTraderItemDetailRD ProcessRequest(APIRequest <GetSuperRetailTraderItemDetailRP> pRequest) { GetSuperRetailTraderItemDetailRP rp = pRequest.Parameters; GetSuperRetailTraderItemDetailRD rd = new GetSuperRetailTraderItemDetailRD(); OnlineShoppingItemBLL itemService = new OnlineShoppingItemBLL(CurrentUserInfo); var superRetailTraderItemMappingBll = new T_SuperRetailTraderItemMappingBLL(CurrentUserInfo); var superRetailTraderSkuMappingBll = new T_SuperRetailTraderSkuMappingBLL(CurrentUserInfo); var superRetailTraderConfigBll = new T_SuperRetailTraderConfigBLL(CurrentUserInfo); var customerBasicSettingBll = new CustomerBasicSettingBLL(CurrentUserInfo); //获取商品详细信息 var ItemDetail = superRetailTraderItemMappingBll.GetSuperRetailTraderItemDetail(rp.ItemId); //获取Sku详细信息 var skuList = superRetailTraderSkuMappingBll.GetSuperRetailTraderSkuDetail(rp.ItemId, pRequest.CustomerID); //获取分销商配置信息 T_SuperRetailTraderConfigEntity superRetailTraderConfigEntity = superRetailTraderConfigBll.QueryByEntity(new T_SuperRetailTraderConfigEntity() { CustomerId = CurrentUserInfo.ClientID }, null).FirstOrDefault(); #region 商品图片 var dsImages = itemService.GetItemImageList(rp.ItemId); if (dsImages != null && dsImages.Tables.Count > 0 && dsImages.Tables[0].Rows.Count > 0) { rd.ImageList = DataTableToObject.ConvertToList <ImageInfo>(dsImages.Tables[0]); } #endregion rd.ItemId = ItemDetail.ItemId; rd.ItemName = ItemDetail.ItemName; rd.Prop1 = ItemDetail.Prop1Name; rd.Prop2 = ItemDetail.Prop2Name; rd.Price = ItemDetail.Price; rd.DistributerPrice = Math.Round(Convert.ToDecimal(ItemDetail.DistributerCostPrice / Convert.ToDecimal(superRetailTraderConfigEntity.Cost / 100)), 2, MidpointRounding.AwayFromZero); //分销价格 成本价 / 成本占比 if (rd.Price == 0) //价格为零,折扣为10折 { rd.Discount = 1; } else { rd.Discount = Math.Round(rd.DistributerPrice / rd.Price, 2, MidpointRounding.AwayFromZero); //折扣 } rd.ItemIntroduce = ItemDetail.ItemIntroduce; rd.SkuList = skuList.Select(n => new APISkuInfo() { SkuID = n.SkuId, PropName1 = n.PropName1, PropName2 = n.PropName2, DistributerPrice = Math.Round(Convert.ToDecimal(n.DistributerCostPrice / Convert.ToDecimal(superRetailTraderConfigEntity.Cost / 100)), 2, MidpointRounding.AwayFromZero), //分销价格 成本价 / 成本占比 DistributerStock = Convert.ToInt32(n.DistributerStock) - Convert.ToInt32(n.SalesPrice), SoldQty = Convert.ToInt32(n.SalesQty) }).ToList(); rd.DeliveryDesc = customerBasicSettingBll.GetSettingValueByCode("DeliveryStrategy"); return(rd); }
/// <summary> /// 获取商品列表 /// </summary> /// <param name="pRequest"></param> /// <returns></returns> protected override GetItemListRD ProcessRequest(DTO.Base.APIRequest <GetItemListRP> pRequest) { GetItemListRP rp = pRequest.Parameters; GetItemListRD rd = new GetItemListRD(); var superRetailTraderItemMappingBll = new T_SuperRetailTraderItemMappingBLL(CurrentUserInfo); var superRetailTraderSkuMappingBll = new T_SuperRetailTraderSkuMappingBLL(CurrentUserInfo); //获取商品列表 PagedQueryResult <T_SuperRetailTraderItemMappingEntity> superRetailTraderItemMappingList = superRetailTraderItemMappingBll.GetItemList(rp.ItemName, rp.ItemCategoryId, rp.PageSize, rp.PageIndex); //获取Sku列表 PagedQueryResult <T_SuperRetailTraderSkuMappingEntity> superRetailTraderSkuMappingList = superRetailTraderSkuMappingBll.GetSkuList(rp.ItemName, rp.ItemCategoryId, rp.PageSize, rp.PageIndex); List <BaseItemInfo> ItemList = superRetailTraderItemMappingList.Entities.Select(t => new BaseItemInfo() { ItemId = t.ItemId, ItemName = t.ItemName, DisplayIndex = (t.DisplayIndex % rp.PageSize) == 0 ? rp.PageSize : t.DisplayIndex % rp.PageSize, ItemCode = t.ItemCode, SkuId = "", PropName = "", SalesPrice = 0, ParentId = "-99" //无父节点 }).ToList(); //根据ItemId匹配相关Sku和商品 List <BaseItemInfo> SkuList = superRetailTraderSkuMappingList.Entities.Join(superRetailTraderItemMappingList.Entities.ToList(), n => n.ItemId, t => t.ItemId, (n, t) => new BaseItemInfo() { ItemId = t.ItemId, ItemName = t.ItemName, DisplayIndex = t.DisplayIndex, ItemCode = t.ItemCode, SkuId = n.SkuId, PropName = superRetailTraderItemMappingBll.GetPropName(n.PropName1, n.PropName2), SalesPrice = n.SalesPrice, ParentId = t.ItemId //父节点为ItemId }).ToList(); rd.ItemList = new List <BaseItemInfo>(); rd.ItemList.AddRange(ItemList); rd.ItemList.AddRange(SkuList); rd.TotalCount = superRetailTraderItemMappingList.RowCount; rd.TotalPageCount = superRetailTraderItemMappingList.PageCount; return(rd); }
protected override GetSuperRetailTraderItemRD ProcessRequest(APIRequest <GetSuperRetailTraderItemRP> pRequest) { GetSuperRetailTraderItemRP rp = pRequest.Parameters; GetSuperRetailTraderItemRD rd = new GetSuperRetailTraderItemRD(); var superRetailTraderItemMappingBll = new T_SuperRetailTraderItemMappingBLL(CurrentUserInfo); var superRetailTraderSkuMappingBll = new T_SuperRetailTraderSkuMappingBLL(CurrentUserInfo); var superRetailTraderConfigBll = new T_SuperRetailTraderConfigBLL(CurrentUserInfo); //获取商品列表 PagedQueryResult <T_SuperRetailTraderItemMappingEntity> ItemList = superRetailTraderItemMappingBll.GetSuperRetailTraderItemList(rp.ItemName, rp.ItemCategoryId, 10, rp.PageSize, rp.PageIndex + 1); //获取分销商配置信息 T_SuperRetailTraderConfigEntity superRetailTraderConfigEntity = superRetailTraderConfigBll.QueryByEntity(new T_SuperRetailTraderConfigEntity() { CustomerId = CurrentUserInfo.ClientID }, null).FirstOrDefault(); if (superRetailTraderConfigEntity != null) { decimal temp; rd.ItemList = ItemList.Entities.Select(n => new APISuperRetailTraderItemInfo() { ItemId = n.ItemId, ItemName = n.ItemName, ImageUrl = n.ImageUrl, SoldQty = Convert.ToInt32(n.SalesQty), DistributerPrice = temp = Math.Round(Convert.ToDecimal(n.DistributerCostPrice / Convert.ToDecimal(superRetailTraderConfigEntity.Cost / 100)), 2, MidpointRounding.AwayFromZero), //分销价格 SkuCommission = Math.Round(Convert.ToDecimal(temp * Convert.ToDecimal(superRetailTraderConfigEntity.SkuCommission / 100)), 2, MidpointRounding.AwayFromZero) //商品佣金 }).ToList(); } else { throw new APIException("商户未设置分销体系") { ErrorCode = 210 }; } rd.TotalCount = ItemList.RowCount; rd.TotalPageCount = ItemList.PageCount; return(rd); }
protected override EmptyResponseData ProcessRequest(APIRequest <SetSuperRetailTraderItemRP> pRequest) { SetSuperRetailTraderItemRP rp = pRequest.Parameters; var superRetailTraderItemMappingBll = new T_SuperRetailTraderItemMappingBLL(CurrentUserInfo); var superRetailTraderSkuMappingBll = new T_SuperRetailTraderSkuMappingBLL(CurrentUserInfo); List <ItemIdInfo> ItemIdList = rp.ItemIdList.GroupBy(n => new{ n.ItemId }).Select(n => new ItemIdInfo() { ItemId = n.Key.ItemId }).ToList(); List <ItemIdInfo> SkuIdList = rp.ItemIdList.Select(n => new ItemIdInfo() { ItemId = n.ItemId, SkuId = n.SkuId }).ToList(); //初始化分销商商品信息 foreach (var item in ItemIdList) { var itemEntity = superRetailTraderItemMappingBll.QueryByEntity(new T_SuperRetailTraderItemMappingEntity { ItemId = item.ItemId }, null).FirstOrDefault(); if (itemEntity == null) { T_SuperRetailTraderItemMappingEntity superRetailTraderItemMappingEntity = new T_SuperRetailTraderItemMappingEntity() { SuperRetailTraderItemMappingId = Guid.NewGuid(), ItemId = item.ItemId, DistributerStock = 0, SalesQty = 0, DistributerCostPrice = 0, DistributerPrice = 0, Status = 90, OnShelfDatetime = DateTime.Now, CustomerID = CurrentUserInfo.ClientID }; superRetailTraderItemMappingBll.Create(superRetailTraderItemMappingEntity); itemEntity = superRetailTraderItemMappingEntity; } //初始化分销商Sku信息 foreach (var sku in SkuIdList.Where(n => n.ItemId == item.ItemId)) { var SkuEntity = superRetailTraderSkuMappingBll.QueryByEntity(new T_SuperRetailTraderSkuMappingEntity { SkuId = sku.SkuId }, null); if (SkuEntity.Count() == 0) { T_SuperRetailTraderSkuMappingEntity superRetailTraderSkuMappingEntity = new T_SuperRetailTraderSkuMappingEntity() { Id = Guid.NewGuid(), SuperRetailTraderItemMappingId = itemEntity.SuperRetailTraderItemMappingId, ItemId = item.ItemId, SkuId = sku.SkuId, DistributerStock = 0, SalesQty = 0, DistributerCostPrice = 0, Status = 90, OnShelfDatetime = DateTime.Now, CustomerID = CurrentUserInfo.ClientID }; superRetailTraderSkuMappingBll.Create(superRetailTraderSkuMappingEntity); } } } return(new EmptyResponseData()); }
protected override EmptyResponseData ProcessRequest(APIRequest <SetSuperRetailTraderItemStatusRP> pRequest) { SetSuperRetailTraderItemStatusRP rp = pRequest.Parameters; EmptyResponseData rd = new EmptyResponseData(); var superRetailTraderItemMappingBll = new T_SuperRetailTraderItemMappingBLL(CurrentUserInfo); var superRetailTraderSkuMappingBll = new T_SuperRetailTraderSkuMappingBLL(CurrentUserInfo); List <SuperRetailTraderItem> ItemIdList = rp.ItemIdList.GroupBy(n => new { n.ItemId }).Select(n => new SuperRetailTraderItem() { ItemId = n.Key.ItemId, IsAllSelected = n.Min(t => t.IsAllSelected), // IsAllSelected = 0(不是移除,上架,下架该商品的所有Sku) }).ToList(); List <SuperRetailTraderItem> SkuIdList = rp.ItemIdList.Select(n => new SuperRetailTraderItem() { ItemId = n.ItemId, SkuId = n.SkuId }).ToList(); if (rp.Status == 10) //上架操作 { //商品上架 foreach (var item in ItemIdList) { var entity = superRetailTraderItemMappingBll.QueryByEntity(new T_SuperRetailTraderItemMappingEntity() { ItemId = item.ItemId, CustomerID = CurrentUserInfo.ClientID, Status = 90 }, null).FirstOrDefault(); if (entity != null) { entity.Status = 10; entity.OffShelfDatetime = DateTime.Now; superRetailTraderItemMappingBll.Update(entity); } } //Sku上架 foreach (var sku in SkuIdList) { var entity = superRetailTraderSkuMappingBll.QueryByEntity(new T_SuperRetailTraderSkuMappingEntity() { SkuId = sku.SkuId, ItemId = sku.ItemId, CustomerID = CurrentUserInfo.ClientID, Status = 90 }, null).FirstOrDefault(); if (entity != null) { entity.Status = 10; entity.OffShelfDatetime = DateTime.Now; superRetailTraderSkuMappingBll.Update(entity); } } } if (rp.Status == 90) //下架操作 { //Sku下架 foreach (var sku in SkuIdList) { var entity = superRetailTraderSkuMappingBll.QueryByEntity(new T_SuperRetailTraderSkuMappingEntity() { SkuId = sku.SkuId, ItemId = sku.ItemId, CustomerID = CurrentUserInfo.ClientID, Status = 10 }, null).FirstOrDefault(); if (entity != null) { entity.Status = 90; entity.OffShelfDatetime = DateTime.Now; superRetailTraderSkuMappingBll.Update(entity); } } //商品下架 foreach (var item in ItemIdList) { var skuEntity = superRetailTraderSkuMappingBll.QueryByEntity(new T_SuperRetailTraderSkuMappingEntity() { ItemId = item.ItemId, CustomerID = CurrentUserInfo.ClientID, Status = 10 }, null); var entity = superRetailTraderItemMappingBll.QueryByEntity(new T_SuperRetailTraderItemMappingEntity() { ItemId = item.ItemId, CustomerID = CurrentUserInfo.ClientID, Status = 10 }, null).FirstOrDefault(); if (entity != null && skuEntity.Count() == 0) //所有sku下架 { entity.Status = 90; entity.OffShelfDatetime = DateTime.Now; superRetailTraderItemMappingBll.Update(entity); } } } if (rp.Status == 0) //移除操作 { //sku移除 foreach (var sku in SkuIdList) { var entity = superRetailTraderSkuMappingBll.QueryByEntity(new T_SuperRetailTraderSkuMappingEntity() { SkuId = sku.SkuId, ItemId = sku.ItemId, CustomerID = CurrentUserInfo.ClientID }, null).FirstOrDefault(); if (entity != null) { superRetailTraderSkuMappingBll.Delete(entity); } } //商品移除 foreach (var item in ItemIdList) { var skuEntity = superRetailTraderSkuMappingBll.QueryByEntity(new T_SuperRetailTraderSkuMappingEntity() { ItemId = item.ItemId, CustomerID = CurrentUserInfo.ClientID }, null); var entity = superRetailTraderItemMappingBll.QueryByEntity(new T_SuperRetailTraderItemMappingEntity() { ItemId = item.ItemId, CustomerID = CurrentUserInfo.ClientID }, null).FirstOrDefault(); if (entity != null && skuEntity.Count() == 0) //sku全部移除 { superRetailTraderItemMappingBll.Delete(entity); } } } return(rd); }
protected override EmptyResponseData ProcessRequest(APIRequest <SetSuperRetailTraderItemInfoRP> pRequest) { SetSuperRetailTraderItemInfoRP rp = pRequest.Parameters; EmptyResponseData rd = new EmptyResponseData(); var superRetailTraderItemMappingBll = new T_SuperRetailTraderItemMappingBLL(CurrentUserInfo); var superRetailTraderSkuMappingBll = new T_SuperRetailTraderSkuMappingBLL(CurrentUserInfo); List <SuperRetailTraderItem> ItemIdList = rp.ItemList.GroupBy(n => new { n.ItemId }).Select(n => new SuperRetailTraderItem() { ItemId = n.Key.ItemId, DistributerStock = n.Sum(t => t.DistributerStock), DistributerCostPrice = n.Min(t => t.DistributerCostPrice) }).ToList(); List <SuperRetailTraderItem> SkuIdList = rp.ItemList.Select(n => n).ToList(); //修改商品成本价和库存 foreach (var item in ItemIdList) { //获取商品信息 var entity = superRetailTraderItemMappingBll.QueryByEntity(new T_SuperRetailTraderItemMappingEntity() { ItemId = item.ItemId, CustomerID = CurrentUserInfo.ClientID }, null).FirstOrDefault(); if (entity != null) { if (entity.DistributerStock == 0 && entity.DistributerCostPrice == 0) //如果是初始化数据,直接修改 { entity.DistributerStock = item.DistributerStock; entity.DistributerCostPrice = item.DistributerCostPrice; superRetailTraderItemMappingBll.Update(entity); } else //如果是非初始化数据,创建新的,删除旧的 { T_SuperRetailTraderItemMappingEntity newEntity = new T_SuperRetailTraderItemMappingEntity() { SuperRetailTraderItemMappingId = Guid.NewGuid(), ItemId = item.ItemId, DistributerStock = item.DistributerStock + entity.SalesQty, SalesQty = entity.SalesQty, DistributerCostPrice = item.DistributerCostPrice, DistributerPrice = entity.DistributerPrice, Status = entity.Status, OnShelfDatetime = entity.OnShelfDatetime, OffShelfDatetime = entity.OffShelfDatetime, CustomerID = CurrentUserInfo.ClientID }; superRetailTraderItemMappingBll.Delete(entity); superRetailTraderItemMappingBll.Create(newEntity); } } } //修改Sku成本价和库存 foreach (var sku in SkuIdList) { var entity = superRetailTraderSkuMappingBll.QueryByEntity(new T_SuperRetailTraderSkuMappingEntity() { SkuId = sku.SkuId, ItemId = sku.ItemId, CustomerID = CurrentUserInfo.ClientID }, null).FirstOrDefault(); if (entity != null) { if (entity.DistributerStock == 0 && entity.DistributerCostPrice == 0) //如果是初始化数据,直接修改 { entity.DistributerStock = sku.DistributerStock; entity.DistributerCostPrice = sku.DistributerCostPrice; superRetailTraderSkuMappingBll.Update(entity); } else //如果是非初始化数据,创建新的,删除旧的 { T_SuperRetailTraderSkuMappingEntity newEntity = new T_SuperRetailTraderSkuMappingEntity() { SuperRetailTraderItemMappingId = entity.SuperRetailTraderItemMappingId, ItemId = entity.ItemId, SkuId = entity.SkuId, DistributerStock = sku.DistributerStock + entity.SalesQty, SalesQty = entity.SalesQty, DistributerCostPrice = sku.DistributerCostPrice, RefId = entity.SuperRetailTraderItemMappingId, Status = entity.Status, OnShelfDatetime = entity.OnShelfDatetime, OffShelfDatetime = entity.OffShelfDatetime, CustomerID = CurrentUserInfo.ClientID }; superRetailTraderSkuMappingBll.Delete(entity); superRetailTraderSkuMappingBll.Create(newEntity); } } } return(rd); }