/// <summary> /// 设置商品信息(修改,新建) /// </summary> /// <param name="loggingSessionInfo"></param> /// <param name="itemInfo">商品对象</param> /// <param name="strError">错误信息</param> /// <returns></returns> public bool SetItemInfo(ItemInfo itemInfo, out string strError) { try { if (itemInfo.Item_Id == null || itemInfo.Item_Id.Equals("")) { itemInfo.Item_Id = NewGuid(); } if (itemInfo != null) { itemInfo.Status = "1"; itemInfo.Status_Desc = "正常"; if (itemInfo.Create_User_Id == null || itemInfo.Create_User_Id.Equals("")) { itemInfo.Create_User_Id = loggingSessionInfo.CurrentUser.User_Id; itemInfo.Create_Time = GetCurrentDateTime(); } if (itemInfo.Modify_User_Id == null || itemInfo.Modify_User_Id.Equals("")) { itemInfo.Modify_User_Id = loggingSessionInfo.CurrentUser.User_Id; itemInfo.Modify_Time = GetCurrentDateTime(); } //遍历删除sku相关价格(jifeng.cao 20140224) IList <SkuInfo> skuList = new SkuService(loggingSessionInfo).GetSkuListByItemId(itemInfo.Item_Id); if (skuList != null) { foreach (var skuInfo in skuList) { if (!new SkuPriceService(loggingSessionInfo).DeleteSkuPriceInfo(skuInfo)) { strError = "删除sku相关价格失败"; throw (new System.Exception(strError)); } } } //处理富文本编辑内容中的图片 ImageHandler(itemInfo); itemService.SetItemInfo(itemInfo, out strError); } strError = "保存成功!"; return(true); } catch (Exception ex) { throw (ex); } }
public object GetDetailByParameters(GetPanicbuyingItemDetailReqPara para, string userId) { LoggingSessionInfo loggingSessionInfo = this.CurrentUserInfo as LoggingSessionInfo; var detail = GetByEventIDAndItemID(para.eventId, para.itemId); if (detail == null) { throw new Exception("未找到相关活动商品信息"); } #region 照片列表 var imagebll = new ObjectImagesBLL(loggingSessionInfo); var tempImageList = imagebll.GetObjectImagesByObjectId(para.itemId); var imagelist = tempImageList.Select(t => new { imageId = t.ImageId, imageUrl = t.ImageURL, imageUrlThumb = GetImageUrl(t.ImageURL, "_120"), imageUrlMiddle = GetImageUrl(t.ImageURL, "_240"), imageUrlBig = GetImageUrl(t.ImageURL, "_480") }).ToArray(); #endregion #region sku列表 var skubll = new SkuService(loggingSessionInfo); var ds = skubll.GetItemSkuListByEventId(para.itemId, para.eventId); var skulist = ds.Tables[0].AsEnumerable().Select(t => new { skuId = t["skuId"].ToString(), skuProp1 = t["skuProp1"].ToString(), skuProp2 = t["skuProp2"].ToString(), price = t["price"] is DBNull ? 0 : Double.Parse(t["price"].ToString()), salesPrice = t["salesPrice"] is DBNull ? 0 : Double.Parse(t["salesPrice"].ToString()), //price = t["price"] is DBNull ? "0" : Double.Parse(t["price"].ToString()).ToString("0.##"), //salesPrice = t["salesPrice"] is DBNull ? "0" : Double.Parse(t["salesPrice"].ToString()).ToString("0.##"), discountRate = string.IsNullOrEmpty(t["discountRate"].ToString()) ? "0" : t["discountRate"].ToString(),//折扣 integral = string.IsNullOrEmpty(t["integral"].ToString()) ? "0" : t["integral"].ToString(), //qty = Convert.ToInt32(t["qty"] is DBNull ? "0" : t["qty"]), //overQty = Convert.ToInt32(t["overQty"] is DBNull ? "0" : t["overQty"]) }).ToArray(); #endregion #region 购买用户列表 var inoutbll = new T_InoutBLL(loggingSessionInfo); var dsSalesUsers = inoutbll.GetItemEventSalesUserList(para.itemId, para.eventId); var salesUserList = dsSalesUsers.Tables[0].AsEnumerable().Select(t => new { userId = t["userId"].ToString(), imageURL = t["imageURL"].ToString() }).ToArray(); #endregion #region 门店信息 object storeInfo = null; var dsStore = inoutbll.GetEventStoreByItemAndEvent(para.itemId, para.eventId); if (dsStore.Tables[0].Rows.Count > 0) { var row = dsStore.Tables[0].Rows[0]; storeInfo = new { storeId = row["storeid"], storeName = row["storeName"], address = row["address"], imageURL = row["imageURL"], phone = row["phone"], storeCount = row["storeCount"] }; } #endregion #region 品牌信息 var dsBrand = inoutbll.GetItemBrandInfo(para.itemId); object brandInfo = null; if (dsBrand.Tables[0].Rows.Count > 0) { var row = dsBrand.Tables[0].Rows[0]; brandInfo = new { brandId = row["brandId"], brandLogoURL = row["brandLogoURL"], brandName = row["brandName"], brandEngName = row["brandEngName"] }; } #endregion #region sku信息 IList <object> skuInfoList = new List <object>(); object skuInfo = null; if (skulist.Count() > 0) { for (int i = skulist.Count() - 1; i >= 0; i--) { var sku = skulist[i]; var info = skubll.GetSkuInfoById(sku.skuId); skuInfoList.Add(new { skuId = sku.skuId, prop1DetailId = info.prop_1_id, prop2DetailId = info.prop_2_id }); if (i == 0) { skuInfo = new { skuId = sku.skuId, prop1DetailId = info.prop_1_id, prop2DetailId = info.prop_2_id }; } } } #endregion #region 属性信息 IList <prop1Info> prop1List = new List <prop1Info>(); object prop1 = null; //update by wzq 20140724 if (skulist.Count() > 0) { for (int c = skulist.Count() - 1; c >= 0; c--) { var dsProp = inoutbll.GetItemProp1List(skulist[c].skuId); //var dsProp = inoutbll.GetItemProp1List(para.itemId); if (dsProp.Tables[0].Rows.Count > 0) { prop1List.Add(dsProp.Tables[0].AsEnumerable().Select(t => new prop1Info { skuId = "" + t["skuId"], prop1DetailId = "" + t["prop1DetailId"], prop1DetailName = "" + t["prop1DetailName"], stock = Convert.ToInt32(string.IsNullOrWhiteSpace("" + t["stock"]) == true ? 0 : t["stock"]), salesCount = Convert.ToInt32(string.IsNullOrWhiteSpace("" + t["salesCount"]) == true ? 0 : t["salesCount"]) }).First()); } if (c == 0) { prop1 = dsProp.Tables[0].AsEnumerable().Select(t => new { skuId = "" + t["skuId"], prop1DetailId = "" + t["prop1DetailId"], prop1DetailName = "" + t["prop1DetailName"], stock = Convert.ToInt32(string.IsNullOrWhiteSpace("" + t["stock"]) == true ? 0 : t["stock"]), salesCount = Convert.ToInt32(string.IsNullOrWhiteSpace("" + t["salesCount"]) == true ? 0 : t["salesCount"]) }).First(); } } prop1List = prop1List.GroupBy(t => new { t.prop1DetailId, t.prop1DetailName }).Select(n => new prop1Info { skuId = n.Max(t => t.skuId), prop1DetailId = n.Key.prop1DetailId, prop1DetailName = n.Key.prop1DetailName, stock = n.Sum(t => t.stock), salesCount = n.Sum(t => t.salesCount) }).ToList(); } #endregion #region 限购处理 int canBuyCount = -1; //可购买数量 int singlePurchaseQty = GetEventItemInfo(para.eventId.ToString(), para.itemId); //活动商品限购数量 if (!string.IsNullOrEmpty(userId)) { if (singlePurchaseQty > 0) { //会员采购数量 int purchaseCount = GetVipPurchaseQty(userId, para.eventId, para.itemId); canBuyCount = singlePurchaseQty - purchaseCount; } } #endregion #region 获取商户信息 add by Henry 2014-10-10 var customerBll = new t_customerBLL(loggingSessionInfo); var customerBasicSettingBll = new CustomerBasicSettingBLL(loggingSessionInfo); t_customerEntity customerEntity = customerBll.GetByCustomerID(loggingSessionInfo.CurrentUser.customer_id); //获取商户名称 var customerInfo = new { CustomerName = customerEntity == null ? "" : customerEntity.customer_name, //商户名称 ImageURL = customerBasicSettingBll.GetSettingValueByCode("AppLogo"), //商户Logo CustomerMobile = customerBasicSettingBll.GetSettingValueByCode("CustomerMobile") }; #endregion var content = new { #region 组织属性 itemId = detail.ItemID, itemName = detail.ItemName, salesPersonCount = detail.SalesPersonCount, useInfo = detail.UseInfo, tel = detail.Tel, endTime = detail.EndTime.Value.To19FormatString(), offersTips = detail.OffersTips, prop1Name = detail.Prop1Name, prop2Name = detail.Prop2Name, itemCategoryName = detail.ItemCategoryName, itemCategoryId = detail.ItemCategoryID, itemIntroduce = detail.ItemIntroduce, itemParaIntroduce = detail.ItemParaIntroduce, //salesCount = detail.MonthSalesCount.HasValue ? detail.MonthSalesCount.Value.ToString("0.##") : "0", salesCount = detail.SalesCount, //销量 update by Henry 2014-11-12 beginLineSecond = GetBeginLineSecond(detail.BeginTime.Value), deadlineTime = detail.deadlineTime, discountRate = detail.DiscountRate == null ? 0 : Convert.ToDecimal((detail.DiscountRate / 10).Value.ToString("0.0")),//update by Henry 2014-10-20 addedTime = detail.AddTime.Value.To19FormatString(), deadlineSecond = detail.RemainingSec, beginTime = detail.BeginTime.Value.To19FormatString(), qty = detail.Qty, overQty = detail.RemainingQty, stopReason = detail.StopReason, status = detail.Status, eventId = detail.EventId, eventTypeID = detail.EventTypeID, imageList = imagelist, skuList = skulist, //数组 skuInfoList = skuInfoList, //数组 salesUserList = salesUserList, storeInfo = storeInfo, brandInfo = brandInfo, skuInfo = skuInfo, prop1List = prop1List, //数组 prop1 = prop1, //object canBuyCount = canBuyCount, singlePurchaseQty = singlePurchaseQty, serviceDescription = detail.ServiceDescription, itemSortId = detail.ItemSortId, CustomerInfo = customerInfo #endregion }; return(content); }