示例#1
0
        /// <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);
        }