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); }
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())); }
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); }
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); }
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())); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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; } } } } }
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); }
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); }
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); }
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); }
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); }
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]); }
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())); }
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]); }
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]); }
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]); }
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); } } } } } }
/// <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); }
/// <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())); }
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) { } } } } } }
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); }
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); }
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; } } } } } }