Esempio n. 1
0
        public ProductInfo GetProduct(MemberInfo member, int productId)
        {
            StringBuilder stringBuilder = new StringBuilder();

            if (member != null)
            {
                int discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                stringBuilder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) = 1", member.GradeId);
                stringBuilder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", member.GradeId, discount);
            }
            else
            {
                stringBuilder.Append("SalePrice");
            }
            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand("SELECT * FROM Hishop_Products WHERE ProductId =@ProductId;SELECT SkuId, ProductId, SKU,Weight, Stock, CostPrice, " + stringBuilder.ToString() + " FROM Hishop_SKUs s WHERE ProductId = @ProductId");
            this.database.AddInParameter(sqlStringCommand, "ProductId", System.Data.DbType.Int32, productId);
            ProductInfo productInfo = null;

            using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                if (dataReader.Read())
                {
                    productInfo = DataMapper.PopulateProduct(dataReader);
                }
                if (dataReader.NextResult())
                {
                    while (dataReader.Read())
                    {
                        productInfo.Skus.Add((string)dataReader["SkuId"], DataMapper.PopulateSKU(dataReader));
                    }
                }
            }
            return(productInfo);
        }
Esempio n. 2
0
        public DbQueryResult GetHomeProducts(MemberInfo member, ProductQuery query, bool isdistributor)
        {
            StringBuilder stringBuilder        = new StringBuilder();
            int           currentDistributorId = Globals.GetCurrentDistributorId();

            stringBuilder.Append("MainCategoryPath,ProductId, ProductCode,ShortDescription,ProductName,ShowSaleCounts, ThumbnailUrl60,ThumbnailUrl40,ThumbnailUrl100,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310, MarketPrice,");
            if (member != null)
            {
                int discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                stringBuilder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1", member.GradeId);
                stringBuilder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice, ", member.GradeId, discount);
            }
            else
            {
                stringBuilder.Append("SalePrice,");
            }
            stringBuilder.Append("SaleCounts, Stock");
            StringBuilder stringBuilder2 = new StringBuilder(" SaleStatus =" + 1);

            if (query.CategoryId > 0)
            {
                stringBuilder2.AppendFormat(" and CategoryId={0}", query.CategoryId);
            }
            if (isdistributor && currentDistributorId > 0)
            {
                stringBuilder2.AppendFormat(" AND ProductId IN (SELECT ProductId FROM Hishop_DistributorProducts WHERE UserId={0})", currentDistributorId);
            }
            return(DataHelper.PagingByRownumber(query.PageIndex, query.PageSize, query.SortBy, query.SortOrder, query.IsCount, "vw_Hishop_BrowseProductList p", "ProductId", stringBuilder2.ToString(), stringBuilder.ToString()));
        }
Esempio n. 3
0
        public DataTable GetBrandProducts(MemberInfo member, int?brandId, int pageNumber, int maxNum, out int total)
        {
            int           discount = 100;
            StringBuilder builder  = new StringBuilder();

            builder.Append("ProductId,ProductName,ProductCode,ShowSaleCounts AS SaleCounts,ShortDescription,ShowSaleCounts,");
            builder.Append(" ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310,MarketPrice,");
            if (member != null && member.GradeId != 0)
            {
                discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                builder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) = 1", member.GradeId);
                builder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", member.GradeId, discount);
            }
            else
            {
                builder.Append("SalePrice");
            }
            StringBuilder builder2 = new StringBuilder();

            builder2.Append(" SaleStatus=1");
            if (brandId.HasValue)
            {
                builder2.AppendFormat(" AND BrandId = {0}", brandId);
            }
            DbQueryResult result = DataHelper.PagingByRownumber(pageNumber, maxNum, "DisplaySequence", SortAction.Desc, true, "vw_Hishop_BrowseProductList s", "ProductId", builder2.ToString(), builder.ToString());
            DataTable     data   = (DataTable)result.Data;

            total = result.TotalRecords;
            return(data);
        }
Esempio n. 4
0
        public DataSet GetProductSkuDetials(int productId, int gradeId)
        {
            DataSet result = new DataSet();

            if (!string.IsNullOrEmpty(productId.ToString()) && Convert.ToInt32(productId) > 0)
            {
                string text = "SELECT ProductId,ProductName,ProductCode,ImageUrl1,ImageUrl2,ImageUrl3,ImageUrl4,ImageUrl5,ThumbnailUrl60,isnull(MarketPrice,0)  as MarketPrice,isnull(CostPrice,0) as CostPrice,SaleStatus,isnull(SalePrice,0) as SalePrice, Weight,SaleCounts, ShortDescription,Stock,AddedDate,[Description],BrandId,Unit from vw_Ecshop_CDisableBrowseProductList WHERE ProductId=" + productId + ";";
                if (gradeId > 0)
                {
                    Member member   = HiContext.Current.User as Member;
                    int    discount = new MemberGradeDao().GetMemberGrade(gradeId).Discount;
                    text += "SELECT ProductId,SkuId, SKU,Stock,";
                    object obj = text;
                    text = string.Concat(new object[]
                    {
                        obj,
                        " (CASE WHEN (SELECT COUNT(*) FROM Ecshop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = ",
                        gradeId,
                        ") = 1"
                    });
                    text += string.Format(" THEN (SELECT MemberSalePrice FROM Ecshop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) as SalePrice", gradeId, discount);
                    text += ",Weight,isnull(CostPrice,0) as CostPrice";
                    text += string.Format(" FROM Ecshop_SKUs s WHERE ProductId =" + productId, new object[0]);
                }
                else
                {
                    text = text + "SELECT ProductId,SkuId, SKU,Stock,isnull(SalePrice,0) as SalePrice,Weight, CostPrice FROM Ecshop_SKUs WHERE ProductId =" + productId;
                }
                DbCommand sqlStringCommand = this.database.GetSqlStringCommand(text);
                result = this.database.ExecuteDataSet(sqlStringCommand);
            }
            return(result);
        }
Esempio n. 5
0
        public DbQueryResult GetShowProductList(int gradeId, int pageIndex, int pageSize, int storeId, ProductType productType)
        {
            StringBuilder stringBuilder  = new StringBuilder();
            StringBuilder stringBuilder2 = new StringBuilder();

            stringBuilder2.Append("p.ProductId,ProductName,ThumbnailUrl160,ThumbnailUrl410,HasSKU,SkuId,Stock,isnull(MarketPrice,0) MarketPrice,a.DisplaySequence,");
            if (storeId > 0)
            {
                stringBuilder2.AppendFormat("case when (SELECT MIN(StoreSalePrice) FROM dbo.Hishop_StoreSKUs WHERE   ProductId = p.ProductId and StoreId='{0}')=0 then (SELECT MIN(SalePrice) FROM dbo.Hishop_SKUs WHERE   ProductId = p.ProductId ) else (SELECT MIN(StoreSalePrice) FROM dbo.Hishop_StoreSKUs WHERE   ProductId = p.ProductId and StoreId='{0}') end AS SalePrice", storeId);
                stringBuilder2.AppendFormat(",(SELECT SUM(Stock) FROM Hishop_StoreSKUs WHERE ProductId = p.ProductId AND StoreId = {0}) AS StoreStock", storeId);
                stringBuilder.AppendFormat(" p.ProductId IN(SELECT a.ProductId FROM Hishop_AppletChoiceProducts a inner join Hishop_StoreProducts s on a.StoreId=s.StoreId and a.ProductId=s.ProductId where a.StoreId='{0}' AND SaleStatus = 1)", storeId);
            }
            else
            {
                int num = 100;
                if (gradeId > 0)
                {
                    num = new MemberGradeDao().Get <MemberGradeInfo>(gradeId).Discount;
                    stringBuilder2.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1", gradeId);
                    stringBuilder2.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", gradeId, num);
                }
                else
                {
                    stringBuilder2.Append("SalePrice");
                }
                stringBuilder.AppendFormat(" p.ProductId IN(SELECT ProductId FROM Hishop_AppletChoiceProducts where StoreId='{0}') AND SaleStatus = 1 ", storeId);
            }
            if (productType > ProductType.All)
            {
                stringBuilder.AppendFormat(" And ProductType = " + productType.GetHashCode() + " ");
            }
            return(DataHelper.PagingByRownumber(pageIndex, pageSize, "a.DisplaySequence desc,p.ProductId", SortAction.Asc, true, $"vw_Hishop_BrowseProductList p inner join Hishop_AppletChoiceProducts a on p.ProductId=a.ProductId and a.StoreId='{storeId}'", "ProductId", stringBuilder.ToString(), stringBuilder2.ToString()));
        }
Esempio n. 6
0
        public static bool CreateMemberGrade(MemberGradeInfo memberGrade)
        {
            bool result;

            if (null == memberGrade)
            {
                result = false;
            }
            else
            {
                Globals.EntityCoding(memberGrade, true);
                bool flag = MemberHelper.IsCanSetThisGrade(memberGrade);
                if (!flag)
                {
                    throw new Exception("交易次数的上下级别,与交易额的上下级别不是同一个!");
                }
                flag = new MemberGradeDao().CreateMemberGrade(memberGrade);
                if (flag)
                {
                    EventLogs.WriteOperationLog(Privilege.AddMemberGrade, string.Format(CultureInfo.InvariantCulture, "添加了名为 “{0}” 的会员等级", new object[]
                    {
                        memberGrade.Name
                    }));
                }
                result = flag;
            }
            return(result);
        }
Esempio n. 7
0
        public SKUItem GetProductAndSku(MemberInfo currentMember, int productId, string options)
        {
            SKUItem result;

            if (string.IsNullOrEmpty(options))
            {
                result = null;
            }
            else
            {
                string[] array = options.Split(new char[]
                {
                    ','
                });
                if (array == null || array.Length <= 0)
                {
                    result = null;
                }
                else
                {
                    StringBuilder stringBuilder = new StringBuilder();
                    if (currentMember != null)
                    {
                        int discount = new MemberGradeDao().GetMemberGrade(currentMember.GradeId).Discount;
                        stringBuilder.Append("SELECT SkuId, ProductId, SKU,Weight, Stock, CostPrice,");
                        stringBuilder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) = 1", currentMember.GradeId);
                        stringBuilder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", currentMember.GradeId, discount);
                        stringBuilder.Append(" FROM Hishop_SKUs s WHERE ProductId = @ProductId");
                    }
                    else
                    {
                        stringBuilder.Append("SELECT SkuId, ProductId, SKU,Weight, Stock, CostPrice, SalePrice FROM Hishop_SKUs WHERE ProductId = @ProductId");
                    }
                    string[] array2 = array;
                    for (int i = 0; i < array2.Length; i++)
                    {
                        string   text   = array2[i];
                        string[] array3 = text.Split(new char[]
                        {
                            ':'
                        });
                        stringBuilder.AppendFormat(" AND SkuId IN (SELECT SkuId FROM Hishop_SKUItems WHERE AttributeId = {0} AND ValueId = {1}) ", array3[0], array3[1]);
                    }
                    SKUItem sKUItem = null;
                    System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString());
                    this.database.AddInParameter(sqlStringCommand, "ProductId", System.Data.DbType.Int32, productId);
                    using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
                    {
                        if (dataReader.Read())
                        {
                            sKUItem = DataMapper.PopulateSKU(dataReader);
                        }
                    }
                    result = sKUItem;
                }
            }
            return(result);
        }
Esempio n. 8
0
        public DataTable GetProducts(string wid, MemberInfo member, int?topicId, int?categoryId, int distributorId, string keyWord, int pageNumber, int maxNum, out int toal, string sort, bool isAsc = false, string pIds = "")
        {
            int           discount = 100;
            StringBuilder builder  = new StringBuilder();

            builder.AppendFormat("ProductId,ProductName,ProductCode,ShowSaleCounts AS SaleCounts,ShortDescription,", maxNum);
            builder.Append(" ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310,MarketPrice,VistiCounts,");
            if (member != null && member.GradeId != 0)
            {
                discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                builder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = vw_Hishop_BrowseProductList.SkuId AND GradeId = {0}) = 1", member.GradeId);
                builder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = vw_Hishop_BrowseProductList.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", member.GradeId, discount);
            }
            else
            {
                builder.Append("SalePrice");
            }
            StringBuilder builder2 = new StringBuilder();

            builder2.Append(" SaleStatus=1");
            builder2.AppendFormat(" and wid = '{0}'", wid);
            if (topicId.HasValue)
            {
                builder2.AppendFormat(" AND ProductId IN (SELECT RelatedProductId FROM Vshop_RelatedTopicProducts WHERE TopicId = {0})", topicId.Value);
            }
            if (categoryId.HasValue)
            {
                CategoryInfo category = new CategoryDao().GetCategory(categoryId.Value);
                if (category != null)
                {
                    builder2.AppendFormat(" AND ( MainCategoryPath LIKE '{0}|%' OR ExtendCategoryPath LIKE '{0}|%') ", category.Path);
                }
            }
            if (!string.IsNullOrEmpty(keyWord))
            {
                builder2.AppendFormat(" AND (ProductName LIKE '%{0}%')", keyWord);
            }
            if (distributorId > 0)
            {
                builder2.AppendFormat(" AND ProductId IN (SELECT ProductId FROM Hishop_DistributorProducts WHERE UserId={0})", distributorId);
            }
            if (!string.IsNullOrEmpty(pIds))
            {
                string str = pIds.Replace("_", ",");
                builder2.AppendFormat(" AND ProductId IN ({0})", str);
            }
            if (string.IsNullOrWhiteSpace(sort))
            {
                sort = "ProductId";
            }
            DbQueryResult result = DataHelper.PagingByRownumber(pageNumber, maxNum, sort, isAsc ? SortAction.Asc : SortAction.Desc, true, "vw_Hishop_BrowseProductList", "ProductId", builder2.ToString(), builder.ToString());
            DataTable     data   = (DataTable)result.Data;

            toal = result.TotalRecords;
            return(data);
        }
Esempio n. 9
0
        public static bool DeleteMemberGrade(int gradeId)
        {
            ManagerHelper.CheckPrivilege(Privilege.DeleteMemberGrade);
            bool flag = new MemberGradeDao().DeleteMemberGrade(gradeId);

            if (flag)
            {
                EventLogs.WriteOperationLog(Privilege.DeleteMemberGrade, string.Format(CultureInfo.InvariantCulture, "删除了编号为 “{0}” 的会员等级", new object[] { gradeId }));
            }
            return(flag);
        }
Esempio n. 10
0
        public System.Data.DataTable GetProducts(MemberInfo member, int?topicId, int?categoryId, int distributorId, string keyWord, int pageNumber, int maxNum, out int toal, string sort, bool isAsc = false, string pIds = "", bool isLimitedTimeDiscountId = false)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("ProductId,ProductName,ProductCode,ShowSaleCounts AS SaleCounts,ShortDescription,MaxShowPrice,", maxNum);
            stringBuilder.Append(" ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310,MarketPrice,VistiCounts,");
            if (member != null)
            {
                int discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                stringBuilder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = vw_Hishop_BrowseProductList.SkuId AND GradeId = {0}) = 1", member.GradeId);
                stringBuilder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = vw_Hishop_BrowseProductList.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", member.GradeId, discount);
            }
            else
            {
                stringBuilder.Append("SalePrice");
            }
            StringBuilder stringBuilder2 = new StringBuilder();

            stringBuilder2.Append(" SaleStatus=1");
            if (categoryId.HasValue)
            {
                CategoryInfo category = new CategoryDao().GetCategory(categoryId.Value);
                if (category != null)
                {
                    stringBuilder2.AppendFormat(" AND ( MainCategoryPath LIKE '{0}|%' OR ExtendCategoryPath LIKE '{0}|%') ", category.Path);
                }
            }
            if (!string.IsNullOrEmpty(keyWord))
            {
                stringBuilder2.AppendFormat(" AND (ProductName LIKE '%{0}%')", keyWord);
            }
            if (!string.IsNullOrEmpty(pIds))
            {
                string arg = pIds.Replace("_", ",");
                stringBuilder2.AppendFormat(" AND ProductId IN ({0})", arg);
            }
            if (isLimitedTimeDiscountId)
            {
                stringBuilder2.Append(" AND ProductId in(select ProductId from Hishop_LimitedTimeDiscountProduct where BeginTime<getdate() and getdate()<EndTime and Status=1)");
            }
            if (string.IsNullOrWhiteSpace(sort))
            {
                sort = "ProductId";
            }
            DbQueryResult dbQueryResult = DataHelper.PagingByRownumber(pageNumber, maxNum, sort, isAsc ? SortAction.Asc : SortAction.Desc, true, "vw_Hishop_BrowseProductList", "ProductId", stringBuilder2.ToString(), stringBuilder.ToString());

            System.Data.DataTable result = (System.Data.DataTable)dbQueryResult.Data;
            toal = dbQueryResult.TotalRecords;
            return(result);
        }
Esempio n. 11
0
        public static bool CreateMemberGrade(MemberGradeInfo memberGrade)
        {
            if (memberGrade == null)
            {
                return(false);
            }
            Globals.EntityCoding(memberGrade, true);
            bool flag = new MemberGradeDao().CreateMemberGrade(memberGrade);

            if (flag)
            {
                EventLogs.WriteOperationLog(Privilege.AddMemberGrade, string.Format(CultureInfo.InvariantCulture, "添加了名为 “{0}” 的会员等级", new object[] { memberGrade.Name }));
            }
            return(flag);
        }
Esempio n. 12
0
        public static bool UpdateMemberGrade(MemberGradeInfo memberGrade)
        {
            if (null == memberGrade)
            {
                return(false);
            }
            Globals.EntityCoding(memberGrade, true);
            bool flag = new MemberGradeDao().UpdateMemberGrade(memberGrade);

            if (flag)
            {
                EventLogs.WriteOperationLog(Privilege.EditMemberGrade, string.Format(CultureInfo.InvariantCulture, "修改了编号为 “{0}” 的会员等级", new object[] { memberGrade.GradeId }));
            }
            return(flag);
        }
Esempio n. 13
0
        private static void UpdateUserAccount(OrderInfo order)
        {
            MemberInfo member = new MemberDao().GetMember(order.UserId);

            if (member != null)
            {
                MemberDao       dao   = new MemberDao();
                PointDetailInfo point = new PointDetailInfo
                {
                    OrderId   = order.OrderId,
                    UserId    = member.UserId,
                    TradeDate = DateTime.Now,
                    TradeType = PointTradeType.Bounty,
                    Increased = new int?(order.Points),
                    Points    = order.Points + member.Points
                };
                if ((point.Points > 0x7fffffff) || (point.Points < 0))
                {
                    point.Points = 0x7fffffff;
                }
                PointDetailDao dao2 = new PointDetailDao();
                dao2.AddPointDetail(point);
                member.Expenditure += order.GetTotal();
                member.OrderNumber++;
                dao.Update(member);
                int historyPoint = dao2.GetHistoryPoint(member.UserId);
                List <MemberGradeInfo> memberGrades = new MemberGradeDao().GetMemberGrades() as List <MemberGradeInfo>;
                MemberGradeInfo        memberGrade  = MemberHelper.GetMemberGrade(member.GradeId);
                if ((memberGrade == null) || (memberGrade.Points <= historyPoint))
                {
                    foreach (MemberGradeInfo info4 in from item in memberGrades
                             orderby item.Points descending
                             select item)
                    {
                        if (member.GradeId == info4.GradeId)
                        {
                            break;
                        }
                        if (info4.Points <= historyPoint)
                        {
                            member.GradeId = info4.GradeId;
                            dao.Update(member);
                            break;
                        }
                    }
                }
            }
        }
Esempio n. 14
0
        public SKUItem GetProductAndSku(int gradeId, int productId, string options)
        {
            if (string.IsNullOrEmpty(options))
            {
                return(null);
            }
            string[] array = options.Split(',');
            if (array == null || array.Length == 0)
            {
                return(null);
            }
            StringBuilder stringBuilder = new StringBuilder();

            if (gradeId > 0)
            {
                int discount = new MemberGradeDao().Get <MemberGradeInfo>(gradeId).Discount;
                stringBuilder.Append("SELECT SkuId, ProductId, SKU,Weight, Stock,WarningStock, CostPrice,StoreStock=(SELECT ISNULL(MAX(ss.Stock),s.Stock) FROM Hishop_StoreSKUs ss WHERE s.SkuId=ss.SkuID),");
                stringBuilder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) = 1", gradeId);
                stringBuilder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", gradeId, discount);
                stringBuilder.Append(" FROM Hishop_SKUs s WHERE ProductId = @ProductId");
            }
            else
            {
                stringBuilder.Append("SELECT SkuId, ProductId, SKU,Weight, Stock,WarningStock, CostPrice,StoreStock=(SELECT ISNULL(MAX(ss.Stock),s.Stock) FROM Hishop_StoreSKUs ss WHERE s.SkuId=ss.SkuID), SalePrice FROM Hishop_SKUs s WHERE ProductId = @ProductId");
            }
            string[] array2 = array;
            foreach (string text in array2)
            {
                string[] array3 = text.Split(':');
                int      num    = 0;
                int      num2   = 0;
                int.TryParse(array3[0], out num);
                if (array3.Length >= 2)
                {
                    int.TryParse(array3[1], out num2);
                }
                stringBuilder.AppendFormat(" AND SkuId IN (SELECT SkuId FROM Hishop_SKUItems WHERE AttributeId = {0} AND ValueId = {1}) ", num, num2);
            }
            SKUItem   result           = null;
            DbCommand sqlStringCommand = base.database.GetSqlStringCommand(stringBuilder.ToString());

            base.database.AddInParameter(sqlStringCommand, "ProductId", DbType.Int32, productId);
            using (IDataReader objReader = base.database.ExecuteReader(sqlStringCommand))
            {
                result = DataHelper.ReaderToModel <SKUItem>(objReader);
            }
            return(result);
        }
Esempio n. 15
0
        public SKUItem GetProductAndSku(MemberInfo currentMember, int productId, string options, bool isMemberPrice = true)//是否需要计算会员价
        {
            if (string.IsNullOrEmpty(options))
            {
                return(null);
            }
            string[] strArray = options.Split(new char[] { ',' });
            if ((strArray == null) || (strArray.Length <= 0))
            {
                return(null);
            }
            StringBuilder builder = new StringBuilder();

            if (currentMember != null)
            {
                int discount = new MemberGradeDao().GetMemberGrade(currentMember.GradeId).Discount;
                if (!isMemberPrice)
                {
                    discount = 100;
                }                                      //如果传递的参数为不需要计算会员价,折扣值为100,不打折.
                builder.Append("SELECT SkuId, ProductId, SKU,Weight, Stock, CostPrice,");
                builder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) = 1", currentMember.GradeId);
                builder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = s.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", currentMember.GradeId, discount);
                builder.Append(" FROM Hishop_SKUs s WHERE ProductId = @ProductId");
            }
            else
            {
                builder.Append("SELECT SkuId, ProductId, SKU,Weight, Stock, CostPrice, SalePrice FROM Hishop_SKUs WHERE ProductId = @ProductId");
            }
            foreach (string str in strArray)
            {
                string[] strArray2 = str.Split(new char[] { ':' });
                builder.AppendFormat(" AND SkuId IN (SELECT SkuId FROM Hishop_SKUItems WHERE AttributeId = {0} AND ValueId = {1}) ", strArray2[0], strArray2[1]);
            }
            SKUItem   item             = null;
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(builder.ToString());

            this.database.AddInParameter(sqlStringCommand, "ProductId", DbType.Int32, productId);
            using (IDataReader reader = this.database.ExecuteReader(sqlStringCommand))
            {
                if (reader.Read())
                {
                    item = DataMapper.PopulateSKU(reader);
                }
            }
            return(item);
        }
Esempio n. 16
0
        public static bool CreateMemberGrade(MemberGradeInfo memberGrade)
        {
            if (memberGrade == null)
            {
                return(false);
            }
            Globals.EntityCoding(memberGrade, true);
            if (!IsCanSetThisGrade(memberGrade))
            {
                throw new Exception("交易次数的上下级别,与交易额的上下级别不是同一个!");
            }
            bool flag = new MemberGradeDao().CreateMemberGrade(memberGrade);

            if (flag)
            {
                EventLogs.WriteOperationLog(Privilege.AddMemberGrade, string.Format(CultureInfo.InvariantCulture, "添加了名为 “{0}” 的会员等级", new object[] { memberGrade.Name }));
            }
            return(flag);
        }
Esempio n. 17
0
        public DataSet GetActiveProductListByTopicIds(string topicids, int maxnum)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("SELECT * FROM Vshop_Topics WHERE TopicId in({0});", topicids);

            sb.Append("select topicid,ShopName,ShopOwner,SupplierId,SupplierName,fastbuy_skuid,TaxRate,ProductId,ProductName,ProductCode, ShowSaleCounts AS SaleCounts, ShortDescription, ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160, ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310,MarketPrice, SalePrice,Stock,CategoryId,ShippingMode,CollectCount,IsCustomsClearance,IsfreeShipping,VistiCounts,BuyCardinality,Icon,IsPromotion,SaleType,MinTaxRate,MaxTaxRate,Convert(decimal(10,1), (SalePrice/MarketPrice)*10) as 'DiscountRate', isnull(IsDisplayDisCount,0) as 'IsDisplayDisCount'");
            if (HiContext.Current.User.UserRole == UserRole.Member)
            {
                Member member   = HiContext.Current.User as Member;
                int    discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                sb.AppendFormat(",CASE WHEN (SELECT COUNT(*) FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1 ", member.GradeId);
                sb.AppendFormat("THEN (SELECT MemberSalePrice FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END AS RankPrice", member.GradeId, discount);
            }
            else
            {
                sb.Append(",SalePrice as RankPrice");
            }

            if (HiContext.Current.User.UserRole == UserRole.Member)
            {
                Member member = HiContext.Current.User as Member;
                sb.AppendFormat(",(select Name from Ecshop_Promotions pm  left join Ecshop_PromotionMemberGrades pg on pm.ActivityId=pg.ActivityId where pm.ActivityId=p.ActivityId  and pg.GradeId={0}) as PromotionName", member.GradeId);
            }

            else
            {
                sb.Append(",'' as PromotionName");
            }

            //这里获取每个专题前maxnum件商品,排序按商品修改时间
            sb.AppendFormat(" from (select *, ROW_NUMBER() over(partition by TopicId order by sort2 asc) as rowNum from vw_Ecshop_BrowseTopicProductList) p  where p.rowNum <={0}  and p.topicid in({1})", maxnum, topicids);

            DbCommand    sqlStringCommand = this.database.GetSqlStringCommand(sb.ToString());
            DataSet      dataSet          = this.database.ExecuteDataSet(sqlStringCommand);
            DataColumn   parentColumn     = dataSet.Tables[0].Columns["topicid"];
            DataColumn   childColumn      = dataSet.Tables[1].Columns["topicid"];
            DataRelation relation         = new DataRelation("ProductItems", parentColumn, childColumn);

            dataSet.Relations.Add(relation);
            return(dataSet);
        }
Esempio n. 18
0
        public DbQueryResult GetCurrBrowseActiveProductList(ProductBrowseQuery query)
        {
            string filter = this.BuildCurrProductBrowseQuerySearch(query);
            string text   = "ShopName,ShopOwner,SupplierId,SupplierName,fastbuy_skuid,TaxRate,ProductId,ProductName,ProductCode, ShowSaleCounts AS SaleCounts, ShortDescription, ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160, ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310,MarketPrice, SalePrice,Stock,CategoryId,ShippingMode,CollectCount";

            if (HiContext.Current.User.UserRole == UserRole.Member)
            {
                Member member   = HiContext.Current.User as Member;
                int    discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                text += string.Format(",CASE WHEN (SELECT COUNT(*) FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1 ", member.GradeId);
                text += string.Format("THEN (SELECT MemberSalePrice FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END AS RankPrice", member.GradeId, discount);
            }
            else
            {
                text += ",SalePrice as RankPrice";
            }

            if (HiContext.Current.User.UserRole == UserRole.Member)
            {
                Member member = HiContext.Current.User as Member;
                text += string.Format(",(select Name from Ecshop_Promotions pm  left join Ecshop_PromotionMemberGrades pg on pm.ActivityId=pg.ActivityId where pm.ActivityId=p.ActivityId  and pg.GradeId={0}) as PromotionName", member.GradeId);
            }
            else
            {
                text += ",'' as PromotionName";
            }



            if (query.TopId.HasValue && query.TopId.Value > 0)
            {
                return(DataHelper.PagingByRownumber(query.PageIndex, query.PageSize, query.SortBy, query.SortOrder, query.IsCount, "vw_Ecshop_BrowseActiveProductList p", "ProductId", filter, text));
            }
            else
            {
                return(DataHelper.PagingByRownumber(query.PageIndex, query.PageSize, query.SortBy, query.SortOrder, query.IsCount, "vw_Ecshop_BrowseActiveProductList p", "ProductId", filter, text));
            }


            //return DataHelper.PagingByRownumber(query.PageIndex, query.PageSize, query.SortBy, query.SortOrder, query.IsCount, "vw_Ecshop_BrowseProductList p", "ProductId", filter, text);
        }
Esempio n. 19
0
        public DataTable GetHomeProducts(ClientType client, bool isAnonymous)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("select p.ProductId, ProductCode, ProductName,ShortDescription,ThumbnailUrl40,ThumbnailUrl160,ThumbnailUrl100,ThumbnailUrl220,ThumbnailUrl180,ThumbnailUrl310,ThumbnailUrl410,p.TaxRate,MarketPrice,ShowSaleCounts,SaleCounts, Stock,t.DisplaySequence,fastbuy_skuid,");
            Member member = HiContext.Current.User as Member;

            if (isAnonymous)
            {
                stringBuilder.Append(@"isnull((SELECT top 1 ActivityId FROM Ecshop_Promotions WHERE DATEDIFF(DD, StartDate, getdate()) >= 0 AND DATEDIFF(DD, EndDate, getdate()) <= 0
		         and ActivityId=(SELECT top 1 ActivityId FROM dbo.Ecshop_PromotionProducts WHERE productid=p.productid)
	             AND ActivityId IN (SELECT ActivityId FROM Ecshop_PromotionMemberGrades)),0) as ActivityId,"    );
            }
            else
            {
                if (member != null)
                {
                    stringBuilder.Append(@"isnull((SELECT top 1 ActivityId FROM Ecshop_Promotions WHERE DATEDIFF(DD, StartDate, GETDATE()) >= 0 AND DATEDIFF(DD, EndDate, GETDATE()) <= 0
		            and ActivityId=(SELECT top 1 ActivityId FROM dbo.Ecshop_PromotionProducts WHERE productid=p.productid)
		            AND ActivityId IN (SELECT ActivityId FROM Ecshop_PromotionMemberGrades WHERE GradeId = "         + member.GradeId + ")),0) as ActivityId,");
                }
            }

            if (member != null)
            {
                int discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                stringBuilder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1", member.GradeId);
                stringBuilder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", member.GradeId, discount);
            }
            else
            {
                stringBuilder.Append("SalePrice");
            }
            stringBuilder.Append(" from vw_Ecshop_CDisableBrowseProductList p inner join  Vshop_HomeProducts t on p.productid=t.ProductId ");
            stringBuilder.AppendFormat(" and SaleStatus = {0} and IsApproved=1 WHERE Client = {1}", 1, (int)client);//¼ÓÈëÉóºË״̬
            stringBuilder.Append(" order by t.DisplaySequence asc");
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString());

            return(this.database.ExecuteDataSet(sqlStringCommand).Tables[0]);
        }
Esempio n. 20
0
        public DbQueryResult GetHomeProducts(MemberInfo member, ProductQuery query)
        {
            int           discount             = 100;
            StringBuilder builder              = new StringBuilder();
            int           currentDistributorId = Globals.GetCurrentDistributorId();

            builder.Append("p.ProductId, ProductCode,ShortDescription,ProductName,ShowSaleCounts, ThumbnailUrl60,ThumbnailUrl40,ThumbnailUrl100,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310, MarketPrice,");
            if (member != null)
            {
                discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                builder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1", member.GradeId);
                builder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice, ", member.GradeId, discount);
            }
            else
            {
                builder.Append("SalePrice,");
            }
            builder.Append("SaleCounts, Stock");
            StringBuilder builder2 = new StringBuilder(" SaleStatus =" + 1);

            return(DataHelper.PagingByRownumber(query.PageIndex, query.PageSize, query.SortBy, query.SortOrder, query.IsCount, "vw_Hishop_BrowseProductList p inner join  Vshop_HomeProducts t on p.productid=t.ProductId ", "p.ProductId", builder2.ToString(), builder.ToString()));
        }
Esempio n. 21
0
        public DataTable GetHomeProducts(ClientType client)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("select p.ProductId, ProductCode, ProductName,ShortDescription,ThumbnailUrl40,ThumbnailUrl160,ThumbnailUrl100,ThumbnailUrl220,ThumbnailUrl180,ThumbnailUrl310,ThumbnailUrl410,p.TaxRate,MarketPrice,ShowSaleCounts,SaleCounts, Stock,t.DisplaySequence,fastbuy_skuid,TaxRate,");
            Member member = HiContext.Current.User as Member;

            if (member != null)
            {
                int discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                stringBuilder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1", member.GradeId);
                stringBuilder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", member.GradeId, discount);
            }
            else
            {
                stringBuilder.Append("SalePrice");
            }
            stringBuilder.Append(" from vw_Ecshop_BrowseProductList p inner join  Vshop_HomeProducts t on p.productid=t.ProductId ");
            stringBuilder.AppendFormat(" and SaleStatus = {0}  and IsApproved=1 WHERE Client = {1}", 1, (int)client);
            stringBuilder.Append(" order by t.DisplaySequence asc");
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString());

            return(this.database.ExecuteDataSet(sqlStringCommand).Tables[0]);
        }
Esempio n. 22
0
        public DataTable GetTopicProducts(MemberInfo member, int topicid, int maxNum)
        {
            int           discount = 100;
            StringBuilder builder  = new StringBuilder();

            builder.Append("select top " + maxNum);
            builder.Append(" p.ProductId, ProductCode, ProductName,ShortDescription,ShowSaleCounts,ThumbnailUrl40,ThumbnailUrl100,ThumbnailUrl160,MarketPrice,");
            if (member != null && member.GradeId != 0)
            {
                discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                builder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1", member.GradeId);
                builder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice, ", member.GradeId, discount);
            }
            else
            {
                builder.Append("SalePrice,");
            }
            builder.Append("SaleCounts, Stock,t.DisplaySequence from vw_Hishop_BrowseProductList p inner join  Vshop_RelatedTopicProducts t on p.productid=t.RelatedProductId where t.topicid=" + topicid);
            builder.AppendFormat(" and SaleStatus = {0}", 1);
            builder.Append(" order by t.DisplaySequence asc");
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(builder.ToString());

            return(this.database.ExecuteDataSet(sqlStringCommand).Tables[0]);
        }
Esempio n. 23
0
        public DataTable GetHomeProducts(int gradeId)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("select p.ProductId, ProductCode, ProductName,ShortDescription,ThumbnailUrl40,ThumbnailUrl160,ThumbnailUrl100,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310,ThumbnailUrl410,MarketPrice,ShowSaleCounts,SaleCounts, Stock,t.DisplaySequence,");
            int num = 100;

            if (gradeId > 0)
            {
                num = new MemberGradeDao().Get <MemberGradeInfo>(gradeId).Discount;
                stringBuilder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1", gradeId);
                stringBuilder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", gradeId, num);
            }
            else
            {
                stringBuilder.Append("SalePrice");
            }
            stringBuilder.Append(" from vw_Hishop_BrowseProductList p inner join  Vshop_HomeProducts t on p.productid=t.ProductId ");
            stringBuilder.AppendFormat(" and SaleStatus = {0}", 1);
            stringBuilder.Append(" order by t.DisplaySequence desc");
            DbCommand sqlStringCommand = base.database.GetSqlStringCommand(stringBuilder.ToString());

            return(base.database.ExecuteDataSet(sqlStringCommand).Tables[0]);
        }
Esempio n. 24
0
        public static void UpdateUserAccount(OrderInfo order, string wid)
        {
            Func <MemberGradeInfo, bool> predicate = null;
            Func <MemberGradeInfo, bool> func2     = null;
            MemberDao dao   = new MemberDao();
            decimal   money = order.GetTotal() - order.Freight;

            if (GetPoint(money, wid) > 0)
            {
                IntegralDetailInfo point = new IntegralDetailInfo {
                    IntegralChange     = order.Points,
                    IntegralSource     = "购物送积分",
                    IntegralSourceType = 1,
                    IntegralStatus     = 1,
                    Userid             = order.UserId
                };
                new IntegralDetailDao().AddIntegralDetail(point, null);
            }
            MemberInfo member = new MemberDao().GetMember(order.UserId);

            member.Expenditure += order.GetTotal();
            member.OrderNumber++;
            dao.Update(member);
            MemberGradeInfo memberGrade = GetMemberGrade(member.GradeId);

            if (memberGrade != null)
            {
                bool flag = false;
                if (memberGrade.TranVol.HasValue)
                {
                    flag = memberGrade.TranVol.Value < double.Parse(member.Expenditure.ToString());
                }
                bool flag2 = false;
                if (memberGrade.TranTimes.HasValue)
                {
                    int?tranTimes   = memberGrade.TranTimes;
                    int orderNumber = member.OrderNumber;
                    flag2 = (tranTimes.GetValueOrDefault() < orderNumber) && tranTimes.HasValue;
                }
                if (flag || flag2)
                {
                    List <MemberGradeInfo> memberGrades = new MemberGradeDao().GetMemberGrades(order.wid) as List <MemberGradeInfo>;
                    MemberGradeInfo        info3        = null;
                    if (flag)
                    {
                        if (predicate == null)
                        {
                            predicate = m => ((decimal)m.TranVol.Value) <= member.Expenditure;
                        }
                        info3 = (from m in memberGrades
                                 where m.TranVol.HasValue
                                 orderby m.TranVol descending
                                 select m).FirstOrDefault <MemberGradeInfo>(predicate);
                    }
                    MemberGradeInfo info4 = null;
                    if (flag2)
                    {
                        if (func2 == null)
                        {
                            func2 = m => m.TranTimes.Value <= member.OrderNumber;
                        }
                        info4 = (from m in memberGrades
                                 where m.TranTimes.HasValue
                                 orderby m.TranTimes descending
                                 select m).FirstOrDefault <MemberGradeInfo>(func2);
                    }
                    else
                    {
                        info4 = info3;
                    }
                    MemberGradeInfo info5 = null;
                    if (info3 == null)
                    {
                        info3 = info4;
                    }
                    if (info3 != null)
                    {
                        double?tranVol   = info3.TranVol;
                        double?nullable6 = info4.TranVol;
                        if ((tranVol.GetValueOrDefault() > nullable6.GetValueOrDefault()) && (tranVol.HasValue & nullable6.HasValue))
                        {
                            info5 = info3;
                        }
                        else
                        {
                            info5 = info4;
                        }
                        if (memberGrade.GradeId != info5.GradeId)
                        {
                            double?nullable7 = memberGrade.TranVol;
                            double?nullable8 = info5.TranVol;
                            if ((nullable7.GetValueOrDefault() <= nullable8.GetValueOrDefault()) || !(nullable7.HasValue & nullable8.HasValue))
                            {
                                member.GradeId = info5.GradeId;
                                dao.Update(member);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 25
0
        /// <summary>
        /// add by:JHB 150916 店铺上架商品,根据配置来限定范围
        /// type:0正常显示店铺已上架的商品,1正常显示店铺未上架的商品,2显示所有出售状态的商品,3根据上架范围显示已上架的商品,4根据上架范围显示未上架的商品
        /// </summary>
        public DataTable GetProductsEx(MemberInfo member, int?topicId, int?categoryId, int distributorId, string keyWord, int pageNumber, int maxNum, out int toal, string sort, bool isAsc = false
                                       , ProductInfo.ProductRanage productRanage = ProductInfo.ProductRanage.NormalSelect)
        {
            int           discount = 100;
            StringBuilder builder  = new StringBuilder();

            builder.AppendFormat("ProductId,ProductName,ProductCode,ShowSaleCounts AS SaleCounts,ShortDescription,", maxNum);
            builder.Append(" ThumbnailUrl60,ThumbnailUrl100,ThumbnailUrl160,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310,MarketPrice,VistiCounts,");
            if (member != null)
            {
                discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                builder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = vw_Hishop_BrowseProductList.SkuId AND GradeId = {0}) = 1", member.GradeId);
                builder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = vw_Hishop_BrowseProductList.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice", member.GradeId, discount);
            }
            else
            {
                builder.Append("SalePrice");
            }
            StringBuilder builder2 = new StringBuilder();

            builder2.Append(" SaleStatus=1");
            if (topicId.HasValue)
            {
                builder2.AppendFormat(" AND ProductId IN (SELECT RelatedProductId FROM Vshop_RelatedTopicProducts WHERE TopicId = {0})", topicId.Value);
            }
            if (categoryId.HasValue)
            {
                CategoryInfo category = new CategoryDao().GetCategory(categoryId.Value);
                if (category != null)
                {
                    builder2.AppendFormat(" AND ( MainCategoryPath LIKE '{0}|%' OR ExtendCategoryPath LIKE '{0}|%') ", category.Path);
                }
            }
            if (!string.IsNullOrEmpty(keyWord))
            {
                builder2.AppendFormat(" AND (ProductName LIKE '%{0}%' OR ProductCode LIKE '%{0}%')", keyWord);
            }
            switch (productRanage)
            {
            case ProductInfo.ProductRanage.NormalSelect:     //正常显示店铺已上架的商品
                builder2.AppendFormat(" AND ProductId IN (SELECT ProductId FROM Hishop_DistributorProducts WHERE UserId={0})", distributorId);
                break;

            case ProductInfo.ProductRanage.NormalUnSelect:     //正常显示店铺未上架的商品
                builder2.AppendFormat(" AND ProductId NOT IN (SELECT ProductId FROM Hishop_DistributorProducts WHERE UserId={0})", distributorId);
                break;

            case ProductInfo.ProductRanage.All:     //显示所有出售状态的商品
                break;

            case ProductInfo.ProductRanage.RangeSelect:     //根据上架范围显示已上架的商品

                //本身上架的记录
                builder2.AppendFormat(" AND ProductId IN (SELECT ProductId FROM Hishop_DistributorProducts WHERE UserId={0})", distributorId);

                //代理取系统设置的上架范围,分销商取所属代理商的上架范围
                int       ofAgentID      = distributorId;
                DataTable dtDistributors = this.database.ExecuteDataSet(CommandType.Text,
                                                                        string.Format("Select UserId,IsAgent,AgentPath From aspnet_Distributors Where UserId={0}", ofAgentID)).Tables[0];
                if (dtDistributors.Rows[0]["IsAgent"].ToString() != "1" && dtDistributors.Rows[0]["AgentPath"] != DBNull.Value)
                {
                    ofAgentID = int.Parse(dtDistributors.Rows[0]["AgentPath"].ToString().Split('|')[dtDistributors.Rows[0]["AgentPath"].ToString().Split('|').Length - 1]);
                }
                DataTable dtProductRange = this.database.ExecuteDataSet(CommandType.Text,
                                                                        string.Format("Select * From Hishop_DistributorProductRange Where UserId={0}", ofAgentID)).Tables[0];
                if (dtProductRange.Rows.Count == 0)
                {
                    builder2.AppendFormat(" And 1=2 ");    //未设置上架范围
                }
                else
                {
                    DataRow drProductRange = dtProductRange.Rows[0];
                    builder2.AppendFormat(" AND (");
                    if (drProductRange["ProductRange1"] != DBNull.Value)
                    {
                        builder2.AppendFormat(string.Format("CategoryId in({0})", drProductRange["ProductRange1"].ToString()));
                    }
                    else
                    {
                        builder2.AppendFormat("CategoryId in(null)");
                    }
                    if (drProductRange["ProductRange2"] != DBNull.Value)
                    {
                        builder2.AppendFormat(string.Format(" or BrandId in({0})", drProductRange["ProductRange2"].ToString()));
                    }
                    else
                    {
                        builder2.AppendFormat(" or BrandId in(null)");
                    }
                    if (drProductRange["ProductRange3"] != DBNull.Value)
                    {
                        builder2.AppendFormat(string.Format(" or TypeId in({0})", drProductRange["ProductRange3"].ToString()));
                    }
                    else
                    {
                        builder2.AppendFormat(" or TypeId in(null)");
                    }
                    builder2.AppendFormat(")");
                }
                break;

            case ProductInfo.ProductRanage.RangeUnSelect:     //根据上架范围显示未上架的商品

                //本身上架的记录
                builder2.AppendFormat(" AND ProductId Not IN (SELECT ProductId FROM Hishop_DistributorProducts WHERE UserId={0})", distributorId);

                //代理取系统设置的上架范围,分销商取所属代理商的上架范围
                int       ofAgentIDUn      = distributorId;
                DataTable dtDistributorsUn = this.database.ExecuteDataSet(CommandType.Text,
                                                                          string.Format("Select UserId,IsAgent,AgentPath From aspnet_Distributors Where UserId={0}", ofAgentIDUn)).Tables[0];
                if (dtDistributorsUn.Rows[0]["IsAgent"].ToString() != "1" && dtDistributorsUn.Rows[0]["AgentPath"] != DBNull.Value)
                {
                    ofAgentIDUn = int.Parse(dtDistributorsUn.Rows[0]["AgentPath"].ToString().Split('|')[dtDistributorsUn.Rows[0]["AgentPath"].ToString().Split('|').Length - 1]);
                }
                DataTable dtProductRangeUn = this.database.ExecuteDataSet(CommandType.Text,
                                                                          string.Format("Select * From Hishop_DistributorProductRange Where UserId={0}", ofAgentIDUn)).Tables[0];
                if (dtProductRangeUn.Rows.Count == 0)
                {
                    builder2.AppendFormat(" And 1=2 ");    //未设置上架范围
                }
                else
                {
                    DataRow drProductRange = dtProductRangeUn.Rows[0];
                    builder2.AppendFormat(" AND (");
                    if (drProductRange["ProductRange1"] != DBNull.Value)
                    {
                        builder2.AppendFormat(string.Format("CategoryId in({0})", drProductRange["ProductRange1"].ToString()));
                    }
                    else
                    {
                        builder2.AppendFormat("CategoryId in(null)");
                    }
                    if (drProductRange["ProductRange2"] != DBNull.Value)
                    {
                        builder2.AppendFormat(string.Format(" or BrandId in({0})", drProductRange["ProductRange2"].ToString()));
                    }
                    else
                    {
                        builder2.AppendFormat(" or BrandId in(null)");
                    }
                    if (drProductRange["ProductRange3"] != DBNull.Value)
                    {
                        builder2.AppendFormat(string.Format(" or TypeId in({0})", drProductRange["ProductRange3"].ToString()));
                    }
                    else
                    {
                        builder2.AppendFormat(" or TypeId in(null)");
                    }
                    builder2.AppendFormat(")");
                }
                break;
            }
            if (string.IsNullOrWhiteSpace(sort))
            {
                sort = "ProductId";
            }
            DbQueryResult result = DataHelper.PagingByRownumber(pageNumber, maxNum, sort, isAsc ? SortAction.Asc : SortAction.Desc, true, "vw_Hishop_BrowseProductList", "ProductId", builder2.ToString(), builder.ToString());
            DataTable     data   = (DataTable)result.Data;

            toal = result.TotalRecords;
            return(data);
        }
Esempio n. 26
0
        /// <summary>
        /// add by:JHB 150916 获取首页商品信息【根据配置来限定商品的范围】
        /// type:0正常显示店铺已上架的商品,1正常显示店铺未上架的商品,2显示所有出售状态的商品,3根据上架范围显示已上架的商品,4根据上架范围显示未上架的商品
        /// </summary>
        public DbQueryResult GetHomeProductsEx(MemberInfo member, ProductQuery query, ProductInfo.ProductRanage productRanage)
        {
            int           discount             = 100;
            StringBuilder builder              = new StringBuilder();
            int           currentDistributorId = Globals.GetCurrentDistributorId();

            builder.Append("MainCategoryPath,ProductId, ProductCode,ShortDescription,ProductName,ShowSaleCounts, ThumbnailUrl60,ThumbnailUrl40,ThumbnailUrl100,ThumbnailUrl180,ThumbnailUrl220,ThumbnailUrl310, MarketPrice,");
            if (member != null)
            {
                discount = new MemberGradeDao().GetMemberGrade(member.GradeId).Discount;
                builder.AppendFormat(" (CASE WHEN (SELECT COUNT(*) FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1", member.GradeId);
                builder.AppendFormat(" THEN (SELECT MemberSalePrice FROM Hishop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END) AS SalePrice, ", member.GradeId, discount);
            }
            else
            {
                builder.Append("SalePrice,");
            }
            builder.Append("SaleCounts, Stock");
            StringBuilder builder2 = new StringBuilder(" SaleStatus =" + 1);

            if (query.CategoryId > 0)
            {
                builder2.AppendFormat(" and CategoryId={0}", query.CategoryId);
            }
            if (query.TypeId > 0)
            {
                builder2.AppendFormat(" and TypeId={0}", query.TypeId);
            }
            switch (productRanage)
            {
            case ProductInfo.ProductRanage.NormalSelect:        //正常显示店铺已上架的商品
                builder2.AppendFormat(" AND ProductId IN (SELECT ProductId FROM Hishop_DistributorProducts WHERE UserId={0})", currentDistributorId);
                break;

            case ProductInfo.ProductRanage.All:                 //显示所有出售状态的商品
                break;

            case ProductInfo.ProductRanage.RangeSelect:         //根据上架范围显示已上架的商品

                //本身上架的记录
                builder2.AppendFormat(" AND ProductId IN (SELECT ProductId FROM Hishop_DistributorProducts WHERE UserId={0})", currentDistributorId);

                //代理取系统设置的上架范围,分销商取所属代理商的上架范围
                int       ofAgentID      = currentDistributorId;
                DataTable dtDistributors = this.database.ExecuteDataSet(CommandType.Text,
                                                                        string.Format("Select UserId,IsAgent,AgentPath From aspnet_Distributors Where UserId={0}", ofAgentID)).Tables[0];
                if (dtDistributors.Rows[0]["IsAgent"].ToString() != "1" && dtDistributors.Rows[0]["AgentPath"] != DBNull.Value)
                {
                    ofAgentID = int.Parse(dtDistributors.Rows[0]["AgentPath"].ToString().Split('|')[dtDistributors.Rows[0]["AgentPath"].ToString().Split('|').Length - 1]);
                }
                DataTable dtProductRange = this.database.ExecuteDataSet(CommandType.Text,
                                                                        string.Format("Select * From Hishop_DistributorProductRange Where UserId={0}", ofAgentID)).Tables[0];
                if (dtProductRange.Rows.Count == 0)
                {
                    builder2.AppendFormat(" And 1=2 ");    //未设置上架范围
                }
                else
                {
                    DataRow drProductRange = dtProductRange.Rows[0];
                    builder2.AppendFormat(" AND (");
                    if (drProductRange["ProductRange1"] != DBNull.Value)
                    {
                        builder2.AppendFormat(string.Format("CategoryId in({0})", drProductRange["ProductRange1"].ToString()));
                    }
                    else
                    {
                        builder2.AppendFormat("CategoryId in(null)");
                    }
                    if (drProductRange["ProductRange2"] != DBNull.Value)
                    {
                        builder2.AppendFormat(string.Format(" or BrandId in({0})", drProductRange["ProductRange2"].ToString()));
                    }
                    else
                    {
                        builder2.AppendFormat(" or BrandId in(null)");
                    }
                    if (drProductRange["ProductRange3"] != DBNull.Value)
                    {
                        builder2.AppendFormat(string.Format(" or TypeId in({0})", drProductRange["ProductRange3"].ToString()));
                    }
                    else
                    {
                        builder2.AppendFormat(" or TypeId in(null)");
                    }
                    builder2.AppendFormat(")");
                }
                break;
            }
            return(DataHelper.PagingByRownumber(query.PageIndex, query.PageSize, query.SortBy, query.SortOrder, query.IsCount, "vw_Hishop_BrowseProductList p", "ProductId", builder2.ToString(), builder.ToString()));
        }
Esempio n. 27
0
        public static void UpdateUserAccount(OrderInfo order)
        {
            MemberDao memberDao = new MemberDao();
            decimal   money     = order.GetTotal() - order.AdjustedFreight;
            int       point     = Globals.GetPoint(money);

            if (point > 0)
            {
                IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo();
                integralDetailInfo.IntegralChange     = point;
                integralDetailInfo.IntegralSource     = "购物送积分,订单号:" + order.OrderId;
                integralDetailInfo.IntegralSourceType = 1;
                integralDetailInfo.IntegralStatus     = 1;
                integralDetailInfo.Userid             = order.UserId;
                integralDetailInfo.Remark             = "";
                new IntegralDetailDao().AddIntegralDetail(integralDetailInfo, null);
                try
                {
                    if (order != null)
                    {
                        Messenger.SendWeiXinMsg_OrderGetPoint(order, point);
                    }
                }
                catch (Exception var_4_B6)
                {
                }
            }
            MemberInfo member = new MemberDao().GetMember(order.UserId);

            member.Expenditure += order.GetTotal();
            member.OrderNumber++;
            memberDao.Update(member);
            MemberGradeInfo memberGrade = MemberProcessor.GetMemberGrade(member.GradeId);

            if (memberGrade != null)
            {
                bool flag = false;
                if (memberGrade.TranVol.HasValue)
                {
                    flag = (memberGrade.TranVol.Value < double.Parse(member.Expenditure.ToString()));
                }
                bool flag2 = false;
                if (memberGrade.TranTimes.HasValue)
                {
                    flag2 = (memberGrade.TranTimes < member.OrderNumber);
                }
                if (flag || flag2)
                {
                    List <MemberGradeInfo> source          = new MemberGradeDao().GetMemberGrades("") as List <MemberGradeInfo>;
                    MemberGradeInfo        memberGradeInfo = null;
                    if (flag)
                    {
                        IOrderedEnumerable <MemberGradeInfo> source2 = from m in source
                                                                       where m.TranVol.HasValue
                                                                       orderby m.TranVol descending
                                                                       select m;
                        memberGradeInfo = source2.FirstOrDefault((MemberGradeInfo m) => (decimal)m.TranVol.Value <= member.Expenditure);
                    }
                    MemberGradeInfo memberGradeInfo2;
                    if (flag2)
                    {
                        IOrderedEnumerable <MemberGradeInfo> source2 = from m in source
                                                                       where m.TranTimes.HasValue
                                                                       orderby m.TranTimes descending
                                                                       select m;
                        memberGradeInfo2 = source2.FirstOrDefault((MemberGradeInfo m) => m.TranTimes.Value <= member.OrderNumber);
                    }
                    else
                    {
                        memberGradeInfo2 = memberGradeInfo;
                    }
                    if (memberGradeInfo == null)
                    {
                        memberGradeInfo = memberGradeInfo2;
                    }
                    if (memberGradeInfo != null)
                    {
                        double?         tranVol  = memberGradeInfo.TranVol;
                        double?         tranVol2 = memberGradeInfo2.TranVol;
                        MemberGradeInfo memberGradeInfo3;
                        if (tranVol.GetValueOrDefault() > tranVol2.GetValueOrDefault() && (tranVol.HasValue & tranVol2.HasValue))
                        {
                            memberGradeInfo3 = memberGradeInfo;
                        }
                        else
                        {
                            memberGradeInfo3 = memberGradeInfo2;
                        }
                        bool arg_3C7_0;
                        if (memberGrade.GradeId != memberGradeInfo3.GradeId)
                        {
                            tranVol   = memberGrade.TranVol;
                            tranVol2  = memberGradeInfo3.TranVol;
                            arg_3C7_0 = (tranVol.GetValueOrDefault() <= tranVol2.GetValueOrDefault() || !(tranVol.HasValue & tranVol2.HasValue));
                        }
                        else
                        {
                            arg_3C7_0 = false;
                        }
                        if (arg_3C7_0)
                        {
                            member.GradeId = memberGradeInfo3.GradeId;
                            memberDao.Update(member);
                            try
                            {
                                MemberInfo member2 = member;
                                if (member2 != null)
                                {
                                    Messenger.SendWeiXinMsg_MemberGradeChange(member);
                                }
                            }
                            catch (Exception var_4_B6)
                            {
                            }
                        }
                    }
                }
            }
        }
Esempio n. 28
0
        public DataSet GetProductsByQuery(ProductQuery query, int gradeId, out int totalrecord)
        {
            DataSet       dataSet       = new DataSet();
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(" 1=1 ");
            if (query.SaleStatus != ProductSaleStatus.All)
            {
                stringBuilder.AppendFormat(" AND SaleStatus = {0}", (int)query.SaleStatus);
            }
            else
            {
                stringBuilder.AppendFormat(" AND SaleStatus not in ({0})", 0);
            }
            if (query.BrandId.HasValue)
            {
                stringBuilder.AppendFormat(" AND BrandId = {0}", query.BrandId.Value);
            }
            if (query.TagId.HasValue)
            {
                stringBuilder.AppendFormat("AND ProductId IN (SELECT ProductId FROM Ecshop_ProductTag WHERE TagId={0})", query.TagId);
            }
            if (!string.IsNullOrEmpty(query.Keywords))
            {
                query.Keywords = DataHelper.CleanSearchString(query.Keywords);
                string[] array = Regex.Split(query.Keywords.Trim(), "\\s+");
                stringBuilder.AppendFormat(" AND ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(array[0]));
                int num = 1;
                while (num < array.Length && num <= 4)
                {
                    stringBuilder.AppendFormat("AND ProductName LIKE '%{0}%'", DataHelper.CleanSearchString(array[num]));
                    num++;
                }
            }
            if (!string.IsNullOrEmpty(query.ProductCode))
            {
                stringBuilder.AppendFormat(" AND ProductCode LIKE '%{0}%'", DataHelper.CleanSearchString(query.ProductCode));
            }
            if (query.CategoryId.HasValue && query.CategoryId.Value > 0)
            {
                stringBuilder.AppendFormat(" AND ( MainCategoryPath LIKE '{0}|%'  OR ExtendCategoryPath LIKE '{0}|%' )", query.MaiCategoryPath);
            }
            if (query.IsMakeTaobao.HasValue && query.IsMakeTaobao.Value >= 0)
            {
                stringBuilder.AppendFormat(" AND IsMaketaobao={0}", query.IsMakeTaobao.Value);
            }
            if (query.PublishStatus != PublishStatus.NotSet)
            {
                if (query.PublishStatus == PublishStatus.Notyet)
                {
                    stringBuilder.Append(" AND TaobaoProductId = 0");
                }
                else
                {
                    stringBuilder.Append(" AND TaobaoProductId <> 0");
                }
            }
            if (query.StartDate.HasValue)
            {
                stringBuilder.AppendFormat(" AND UpdateDate >='{0}'", DataHelper.GetSafeDateTimeFormat(query.StartDate.Value));
            }
            if (query.EndDate.HasValue)
            {
                stringBuilder.AppendFormat(" AND UpdateDate <='{0}'", DataHelper.GetSafeDateTimeFormat(query.EndDate.Value));
            }
            string text = "ProductId,ProductName,ProductCode,ThumbnailUrl60,isnull(MarketPrice,0) as MarketPrice,SaleStatus,isnull(SalePrice,0) as SalePrice,CostPrice,Weight,ShowSaleCounts as SaleCounts, ShortDescription,Stock,AddedDate,[Description],BrandId,Unit";

            if (gradeId > 0)
            {
                int discount = new MemberGradeDao().GetMemberGrade(gradeId).Discount;
                text += string.Format(",CASE WHEN (SELECT COUNT(*) FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) = 1 ", gradeId);
                text += string.Format("THEN (SELECT MemberSalePrice FROM Ecshop_SKUMemberPrice WHERE SkuId = p.SkuId AND GradeId = {0}) ELSE SalePrice*{1}/100 END AS RankPrice", gradeId, discount);
            }
            else
            {
                text += ",SalePrice as RankPrice";
            }
            string text2 = "";

            if (query.SortOrder == SortAction.Desc)
            {
                text2 = "desc";
            }
            string text3;

            if (!string.IsNullOrEmpty(query.SortBy))
            {
                text3 = " order by " + query.SortBy + " " + text2;
            }
            else
            {
                text3 = " order by ProductId " + text2;
            }
            string text4 = string.Concat(new object[]
            {
                "SELECT TOP ",
                query.PageSize,
                " ",
                text,
                " from vw_Ecshop_CDisableBrowseProductList as p WHERE ",
                stringBuilder.ToString(),
                text3,
                ";"
            });

            if (query.PageIndex > 1)
            {
                text4 = string.Concat(new object[]
                {
                    "SELECT TOP ",
                    query.PageSize,
                    " ",
                    text,
                    " from vw_Ecshop_CDisableBrowseProductList as p WHERE ProductId not in (SELECT ProductId from (SELECT TOP ",
                    (query.PageIndex - 1) * query.PageSize,
                    " ProductId FROM vw_Ecshop_CDisableBrowseProductList WHERE ",
                    stringBuilder.ToString(),
                    text3,
                    ") as T) AND ",
                    stringBuilder.ToString(),
                    text3,
                    ";"
                });
            }
            text4 += "select ProductId,SkuId,SKU,Stock,isnull(SalePrice,0) as SalePrice,isnull(CostPrice,0) as CostPrice  from dbo.Ecshop_SKUs;";
            text4  = text4 + "SELECT COUNT(*) AS SumRecord FROM vw_Ecshop_CDisableBrowseProductList WHERE " + stringBuilder.ToString();
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(text4);
            DataSet   dataSet2;

            dataSet = (dataSet2 = this.database.ExecuteDataSet(sqlStringCommand));
            try
            {
                dataSet.Relations.Add("ProductRealation", dataSet.Tables[0].Columns["ProductId"], dataSet.Tables[1].Columns["ProductId"], false);
            }
            finally
            {
                if (dataSet2 != null)
                {
                    ((IDisposable)dataSet2).Dispose();
                }
            }
            totalrecord = Convert.ToInt32(dataSet.Tables[2].Rows[0]["SumRecord"].ToString());
            return(dataSet);
        }
Esempio n. 29
0
        public static bool UserPayOrder(OrderInfo order)
        {
            OrderDao dao = new OrderDao();

            order.OrderStatus = OrderStatus.BuyerAlreadyPaid;
            order.PayDate     = new DateTime?(DateTime.Now);
            bool   flag = dao.UpdateOrder(order, null);
            string str  = "";

            if (flag)
            {
                dao.UpdatePayOrderStock(order.OrderId);
                foreach (LineItemInfo info in order.LineItems.Values)
                {
                    ProductDao dao2 = new ProductDao();
                    str = str + "'" + info.SkuId + "',";
                    ProductInfo productDetails = dao2.GetProductDetails(info.ProductId);
                    productDetails.SaleCounts     += info.Quantity;
                    productDetails.ShowSaleCounts += info.Quantity;
                    dao2.UpdateProduct(productDetails, null);
                }
                if (!string.IsNullOrEmpty(str))
                {
                    dao.UpdateItemsStatus(order.OrderId, 2, str.Substring(0, str.Length - 1));
                }
                if (!string.IsNullOrEmpty(order.ActivitiesId))
                {
                    new ActivitiesDao().UpdateActivitiesTakeEffect(order.ActivitiesId);
                }
                MemberInfo member = GetMember(order.UserId);
                if (member == null)
                {
                    return(flag);
                }
                MemberDao       dao4  = new MemberDao();
                PointDetailInfo point = new PointDetailInfo {
                    OrderId   = order.OrderId,
                    UserId    = member.UserId,
                    TradeDate = DateTime.Now,
                    TradeType = PointTradeType.Bounty,
                    Increased = new int?(order.Points),
                    Points    = order.Points + member.Points
                };
                if ((point.Points > 0x7fffffff) || (point.Points < 0))
                {
                    point.Points = 0x7fffffff;
                }
                PointDetailDao dao5 = new PointDetailDao();
                dao5.AddPointDetail(point);
                member.Expenditure += order.GetTotal();
                member.OrderNumber++;
                dao4.Update(member);
                Messenger.OrderPayment(member, order.OrderId, order.GetTotal());
                int             historyPoint = dao5.GetHistoryPoint(member.UserId);
                MemberGradeInfo memberGrade  = GetMemberGrade(member.GradeId);
                if ((memberGrade != null) && (memberGrade.Points > historyPoint))
                {
                    return(flag);
                }
                List <MemberGradeInfo> memberGrades = new MemberGradeDao().GetMemberGrades() as List <MemberGradeInfo>;
                foreach (MemberGradeInfo info6 in from item in memberGrades
                         orderby item.Points descending
                         select item)
                {
                    if (member.GradeId == info6.GradeId)
                    {
                        return(flag);
                    }
                    if (info6.Points <= historyPoint)
                    {
                        member.GradeId = info6.GradeId;
                        dao4.Update(member);
                        return(flag);
                    }
                }
            }
            return(flag);
        }
Esempio n. 30
0
        public static void UpdateUserAccount(OrderInfo order)
        {
            Exception exception;
            Func <MemberGradeInfo, bool> predicate = null;
            Func <MemberGradeInfo, bool> func2     = null;
            MemberDao dao   = new MemberDao();
            decimal   money = order.GetTotal() - order.Freight;
            int       point = GetPoint(money);

            if (point > 0)
            {
                IntegralDetailInfo info = new IntegralDetailInfo
                {
                    IntegralChange     = point,
                    IntegralSource     = "购物送积分",
                    IntegralSourceType = 1,
                    IntegralStatus     = 1,
                    Userid             = order.UserId,
                    Remark             = "订单号:" + order.OrderId
                };
                new IntegralDetailDao().AddIntegralDetail(info, null);
                try
                {
                    if (order != null)
                    {
                        Messenger.SendWeiXinMsg_OrderGetPoint(order, point);
                    }
                }
                catch (Exception exception1)
                {
                    exception = exception1;
                }
            }
            MemberInfo member = new MemberDao().GetMember(order.UserId);

            member.Expenditure += order.GetTotal();
            member.OrderNumber++;
            dao.Update(member);
            MemberGradeInfo memberGrade = GetMemberGrade(member.GradeId);

            if (memberGrade != null)
            {
                bool flag = false;
                if (memberGrade.TranVol.HasValue)
                {
                    flag = memberGrade.TranVol.Value < double.Parse(member.Expenditure.ToString());
                }
                bool flag2 = false;
                if (memberGrade.TranTimes.HasValue)
                {
                    int?tranTimes   = memberGrade.TranTimes;
                    int orderNumber = member.OrderNumber;
                    flag2 = (tranTimes.GetValueOrDefault() < orderNumber) && tranTimes.HasValue;
                }
                if (flag || flag2)
                {
                    List <MemberGradeInfo> memberGrades = new MemberGradeDao().GetMemberGrades("") as List <MemberGradeInfo>;
                    MemberGradeInfo        info3        = null;
                    if (flag)
                    {
                        if (predicate == null)
                        {
                            predicate = m => ((decimal)m.TranVol.Value) <= member.Expenditure;
                        }
                        info3 = (from m in memberGrades
                                 where m.TranVol.HasValue
                                 orderby m.TranVol descending
                                 select m).FirstOrDefault <MemberGradeInfo>(predicate);
                    }
                    MemberGradeInfo info4 = null;
                    if (flag2)
                    {
                        if (func2 == null)
                        {
                            func2 = m => m.TranTimes.Value <= member.OrderNumber;
                        }
                        info4 = (from m in memberGrades
                                 where m.TranTimes.HasValue
                                 orderby m.TranTimes descending
                                 select m).FirstOrDefault <MemberGradeInfo>(func2);
                    }
                    else
                    {
                        info4 = info3;
                    }
                    MemberGradeInfo info5 = null;
                    if (info3 == null)
                    {
                        info3 = info4;
                    }
                    if (info3 != null)
                    {
                        double?tranVol   = info3.TranVol;
                        double?nullable3 = info4.TranVol;
                        if ((tranVol.GetValueOrDefault() > nullable3.GetValueOrDefault()) && (tranVol.HasValue & nullable3.HasValue))
                        {
                            info5 = info3;
                        }
                        else
                        {
                            info5 = info4;
                        }
                        if ((memberGrade.GradeId != info5.GradeId) && (((tranVol = memberGrade.TranVol).GetValueOrDefault() <= (nullable3 = info5.TranVol).GetValueOrDefault()) || !(tranVol.HasValue & nullable3.HasValue)))
                        {
                            member.GradeId = info5.GradeId;
                            dao.Update(member);
                            try
                            {
                                if (member != null)
                                {
                                    Messenger.SendWeiXinMsg_MemberGradeChange(member);
                                }
                            }
                            catch (Exception exception2)
                            {
                                exception = exception2;
                            }
                        }
                    }
                }
            }
        }