protected override EmptyResponseData ProcessRequest(DTO.Base.APIRequest <SetBargainDetailsRP> pRequest) { var rd = new EmptyResponseData(); var para = pRequest.Parameters; var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo; var Bll = new PanicbuyingKJEventItemMappingBLL(loggingSessionInfo); var PanicbuyingEventBLL = new PanicbuyingEventBLL(loggingSessionInfo); var pTran = Bll.GetTran(); using (pTran.Connection) { var DeleteItemData = Bll.GetByID(para.EventItemMappingID); if (DeleteItemData == null) { throw new APIException("未找到相关砍价活动商品,请确认参数") { ErrorCode = ERROR_CODES.INVALID_BUSINESS } } ; // Bll.Delete(DeleteItemData, pTran); //更新活动商品数量 var UpdateEventData = PanicbuyingEventBLL.GetByID(para.EventId); if (UpdateEventData == null) { throw new APIException("未找到相关砍价活动,请确认参数") { ErrorCode = ERROR_CODES.INVALID_BUSINESS } } ; UpdateEventData.ItemQty -= 1; PanicbuyingEventBLL.Update(UpdateEventData, pTran); //提交 pTran.Commit(); } return(rd); } } }
protected override EmptyResponseData ProcessRequest(DTO.Base.APIRequest <SetBargainDetailsRP> pRequest) { var rd = new EmptyResponseData(); var para = pRequest.Parameters; var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo; var ItemMappingBll = new PanicbuyingKJEventItemMappingBLL(loggingSessionInfo); var SkuMappingBll = new PanicbuyingKJEventSkuMappingBLL(loggingSessionInfo); var PanicbuyingEventBLL = new PanicbuyingEventBLL(loggingSessionInfo); var pTran = ItemMappingBll.GetTran(); string m_EventItemMappingID = string.Empty; int SumQty = 0; using (pTran.Connection) { try { #region 商品 if (!string.IsNullOrWhiteSpace(para.EventItemMappingID)) { //编辑 var UpdateItemData = ItemMappingBll.GetByID(para.EventItemMappingID); if (UpdateItemData == null) { throw new APIException("未找到相关砍价活动商品,请确认参数") { ErrorCode = ERROR_CODES.INVALID_BUSINESS } } ; UpdateItemData.SinglePurchaseQty = para.SinglePurchaseQty; UpdateItemData.BargaingingInterval = para.BargaingingInterval; // ItemMappingBll.Update(UpdateItemData, pTran); // m_EventItemMappingID = para.EventItemMappingID; } else { #region 创建砍价商品 var ItemResult = ItemMappingBll.QueryByEntity(new PanicbuyingKJEventItemMappingEntity() { EventId = new Guid(para.EventId), ItemID = para.ItemId }, null).ToList(); if (ItemResult.Count() > 0) { throw new APIException("当前砍价活动已添加过相同的商品,请换一个商品添加!") { ErrorCode = ERROR_CODES.INVALID_BUSINESS } } ; var AddItemData = new PanicbuyingKJEventItemMappingEntity(); AddItemData.EventItemMappingID = System.Guid.NewGuid(); AddItemData.EventId = new Guid(para.EventId); AddItemData.ItemID = para.ItemId; AddItemData.MinPrice = 0; AddItemData.MinBasePrice = 0; AddItemData.SoldQty = 0; AddItemData.Qty = 0; AddItemData.KeepQty = 0; AddItemData.SinglePurchaseQty = para.SinglePurchaseQty; AddItemData.DiscountRate = 0; AddItemData.PromotePersonCount = 0; AddItemData.BargainPersonCount = 0; AddItemData.PurchasePersonCount = 0; AddItemData.Status = 1; AddItemData.StatusReason = ""; AddItemData.DisplayIndex = 0; AddItemData.BargaingingInterval = para.BargaingingInterval; AddItemData.customerId = loggingSessionInfo.ClientID; // ItemMappingBll.Create(AddItemData, pTran); //更新活动商品数量 var UpdateEventData = PanicbuyingEventBLL.GetByID(para.EventId); if (UpdateEventData == null) { throw new APIException("未找到相关砍价活动,请确认参数") { ErrorCode = ERROR_CODES.INVALID_BUSINESS } } ; UpdateEventData.ItemQty += 1; PanicbuyingEventBLL.Update(UpdateEventData, pTran); // m_EventItemMappingID = AddItemData.EventItemMappingID.ToString(); #endregion } #endregion #region sku if (para.EventSkuInfoList.Count > 0) { foreach (var item in para.EventSkuInfoList) { if (!string.IsNullOrWhiteSpace(item.EventSKUMappingId)) { var UpdateSkuData = SkuMappingBll.GetByID(item.EventSKUMappingId); if (UpdateSkuData == null) { throw new APIException("未找到相关砍价活动商品规格信息,请确认参数") { ErrorCode = ERROR_CODES.INVALID_BUSINESS } } ; if (item.IsDelete == 1) { //删除 SkuMappingBll.Delete(UpdateSkuData, pTran); // // SumQty += -UpdateSkuData.Qty.Value; } else { // SumQty += item.Qty - UpdateSkuData.Qty.Value; #region 编辑 UpdateSkuData.BasePrice = item.BasePrice; UpdateSkuData.Qty = item.Qty; UpdateSkuData.BargainStartPrice = item.BargainStartPrice; UpdateSkuData.BargainEndPrice = item.BargainEndPrice; // SkuMappingBll.Update(UpdateSkuData, pTran); #endregion } } else { #region 创建 var SkuResult = SkuMappingBll.QueryByEntity(new PanicbuyingKJEventSkuMappingEntity() { EventItemMappingID = m_EventItemMappingID, SkuID = item.SkuID }, null).ToList(); if (SkuResult.Count() > 0) { throw new APIException("当前砍价活动商品已添加过相同的Sku,请换一个!") { ErrorCode = ERROR_CODES.INVALID_BUSINESS } } ; var AddSkuData = new PanicbuyingKJEventSkuMappingEntity(); AddSkuData.EventSKUMappingId = System.Guid.NewGuid(); AddSkuData.EventItemMappingID = m_EventItemMappingID; AddSkuData.SkuID = item.SkuID; AddSkuData.AddedTime = DateTime.Now; AddSkuData.Qty = item.Qty; AddSkuData.KeepQty = 0; AddSkuData.SoldQty = 0; AddSkuData.SinglePurchaseQty = 0; AddSkuData.Price = item.Price; AddSkuData.BasePrice = item.BasePrice; AddSkuData.BargainStartPrice = item.BargainStartPrice; AddSkuData.BargainEndPrice = item.BargainEndPrice; AddSkuData.DisplayIndex = 0; AddSkuData.IsFirst = 1; AddSkuData.Status = 1; AddSkuData.CustomerId = loggingSessionInfo.ClientID; // SkuMappingBll.Create(AddSkuData, pTran); // SumQty += AddSkuData.Qty.Value; #endregion } } } #endregion //提交 pTran.Commit(); } catch (APIException ex) { pTran.Rollback(); throw ex; } } //更新砍价商品总库存、最小底价、原价 if (SumQty > 0) { var UpdateData = ItemMappingBll.GetByID(m_EventItemMappingID); UpdateData.Qty += SumQty; UpdateData.MinPrice = SkuMappingBll.GetConfigPrice(UpdateData.EventItemMappingID.ToString(), "MinPrice"); UpdateData.MinBasePrice = SkuMappingBll.GetConfigPrice(UpdateData.EventItemMappingID.ToString(), "MinBasePrice"); ItemMappingBll.Update(UpdateData); } return(rd); }
protected override GetBargainDetailsRD ProcessRequest(DTO.Base.APIRequest <GetBargainDetailsRP> pRequest) { var rd = new GetBargainDetailsRD(); var para = pRequest.Parameters; var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo; var ItemBll = new T_ItemBLL(loggingSessionInfo); var EventItemMappingBll = new PanicbuyingKJEventItemMappingBLL(loggingSessionInfo); //砍价活动sku业务对象 var PanicbuyingKJEventSkuMappingBll = new PanicbuyingKJEventSkuMappingBLL(loggingSessionInfo); var SkuBll = new T_SkuBLL(loggingSessionInfo); //活动 var SkuMappingBLL = new PanicbuyingEventSkuMappingBLL(loggingSessionInfo); // string ItemID = string.Empty; var SkuMappingList = new List <PanicbuyingKJEventSkuMappingEntity>(); if (!string.IsNullOrWhiteSpace(para.EventItemMappingID)) { var EventItemData = EventItemMappingBll.GetByID(para.EventItemMappingID); if (EventItemData != null) { ItemID = EventItemData.ItemID; //商品信息赋值 rd.SinglePurchaseQty = EventItemData.SinglePurchaseQty.Value; rd.ItemID = EventItemData.ItemID; rd.BargaingingInterval = EventItemData.BargaingingInterval.Value; } //砍价Sku集合 SkuMappingList = PanicbuyingKJEventSkuMappingBll.QueryByEntity(new PanicbuyingKJEventSkuMappingEntity() { EventItemMappingID = para.EventItemMappingID }, null).ToList(); } else { ItemID = para.ItemId; } var ItemData = ItemBll.GetByID(ItemID); if (ItemData == null) { throw new APIException("未找到相关商品,请确认参数") { ErrorCode = ERROR_CODES.INVALID_BUSINESS } } ; //商品ID、名称赋值 rd.ItemID = ItemID; rd.ItemName = ItemData.item_name; #region sku rd.SkuInfoList = new List <SkuInfos>(); //var SkuList = SkuBll.QueryByEntity(new T_SkuEntity() { item_id = ItemID }, null).ToList(); DataSet ds = SkuMappingBLL.GetItemSku("", ItemID, ""); var SkuList = new List <Sku>(); if (ds.Tables.Count > 0 && ds.Tables[0] != null) { SkuList = DataTableToObject.ConvertToList <Sku>(ds.Tables[0]); } foreach (var item in SkuList) { var SkuInfos = new SkuInfos(); SkuInfos.SkuID = item.SkuID; SkuInfos.SkuName = item.SkuName; SkuInfos.Price = item.price; if (!string.IsNullOrWhiteSpace(para.EventItemMappingID)) { var Result = SkuMappingList.FirstOrDefault(m => m.SkuID.Equals(item.SkuID)); if (Result != null) { SkuInfos.EventSkuInfo = new EventSkuInfo(); SkuInfos.EventSkuInfo.EventSKUMappingId = Result.EventSKUMappingId.ToString(); SkuInfos.EventSkuInfo.EventItemMappingID = Result.EventItemMappingID.ToString(); SkuInfos.EventSkuInfo.SkuID = Result.SkuID; SkuInfos.EventSkuInfo.Qty = Result.Qty.Value; SkuInfos.EventSkuInfo.Price = Result.Price.Value; SkuInfos.EventSkuInfo.BasePrice = Result.BasePrice.Value; SkuInfos.EventSkuInfo.BargainStartPrice = Result.BargainStartPrice.Value; SkuInfos.EventSkuInfo.BargainEndPrice = Result.BargainEndPrice.Value; } } // rd.SkuInfoList.Add(SkuInfos); } #endregion return(rd); } }