public static StoreActivityEntityList GetStoreActivityEntity(int storeId, int productid = 0) { int gradeId = 0; MemberInfo memberInfo = null; if (HiContext.Current != null && HiContext.Current.UserId > 0) { memberInfo = HiContext.Current.User; } if (memberInfo != null) { gradeId = memberInfo.GradeId; } Dictionary <int, List <StoreActivityEntity> > storeActivityEntity = PromoteHelper.GetStoreActivityEntity(storeId.ToString(), gradeId); StoreActivityEntity storeActivityEntity2 = new StoreActivityEntity(); if (storeId == 0) { List <StoreActivityEntity> platformActivityEntity = PromoteHelper.GetPlatformActivityEntity(productid, gradeId); if (platformActivityEntity != null && platformActivityEntity.Count > 0) { if (storeActivityEntity.ContainsKey(0)) { storeActivityEntity[0].AddRange(platformActivityEntity); } else { storeActivityEntity[0] = platformActivityEntity; } } } return(PromoteHelper.ProcessActivity(storeActivityEntity, storeId)); }
public List <StoreActivityEntity> GetStoreActivityEntity(string storeids, int gradeId = 0) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("SELECT p.ActivityId,CASE p.StoreType WHEN 0 THEN 0 WHEN 1 THEN -1 WHEN 2 THEN sa.StoreId ELSE 0 END AS StoreId,ISNULL(sa.ActivityType,1) AS ActivityType ,p.PromoteType,p.StartDate,p.GiftIds, "); stringBuilder.Append(" ((CASE WHEN PromoteType=12 THEN '满'+CAST(p.Condition AS VARCHAR(16) )+'减'+CAST(p.DiscountValue AS VARCHAR(16) ) "); stringBuilder.Append(" WHEN PromoteType=15 THEN '满' + CAST(p.Condition AS VARCHAR(16) )+'送' "); stringBuilder.Append(" WHEN PromoteType=16 THEN '满' + CAST(p.Condition AS VARCHAR(16) )+'送'+cast(p.DiscountValue as varchar(16))+'倍积分' "); stringBuilder.Append(" WHEN PromoteType=17 THEN '满' + CAST(p.Condition AS VARCHAR(16) )+'免运费' END)) AS ActivityName "); stringBuilder.Append(" FROM [Hishop_Promotions] p"); stringBuilder.Append(" LEFT JOIN (SELECT * FROM [Hishop_StoreActivitys] WHERE ActivityType = 1) sa ON sa.ActivityId = p.ActivityId "); if (storeids == "0") { stringBuilder.Append(" WHERE (sa.StoreId = 0 or p.StoreType IN (1,0)) "); } else { stringBuilder.Append(" WHERE (sa.StoreId IN(" + storeids + ") OR p.StoreType = 1)"); } stringBuilder.Append(" AND p.PromoteType IN (12,15,16,17) AND GETDATE() BETWEEN p.StartDate AND p.EndDate"); if (gradeId > 0) { stringBuilder.Append(" AND p.ActivityId IN(SELECT ActivityId FROM Hishop_PromotionMemberGrades WHERE GradeId = " + gradeId + ")"); } DbCommand sqlStringCommand = base.database.GetSqlStringCommand(stringBuilder.ToString()); List <StoreActivityEntity> list = new List <StoreActivityEntity>(); using (IDataReader objReader = base.database.ExecuteReader(sqlStringCommand)) { list = DataHelper.ReaderToList <StoreActivityEntity>(objReader).ToList(); } if (list != null && list.Count > 0 && list.Any((StoreActivityEntity t) => t.PromoteType == 15)) { string text = (from r in list where r.PromoteType == 15 select r into t select t.GiftIds.ToString()).Aggregate((string c, string n) => c + "," + n); if (!string.IsNullOrEmpty(text)) { GiftDao giftDao = new GiftDao(); IList <GiftInfo> giftItems = giftDao.GetGiftDetailsByGiftIds(text); list.ForEach(delegate(StoreActivityEntity t) { t.GiftIds.Split(',').ForEach(delegate(string i) { if (!string.IsNullOrEmpty(i)) { StoreActivityEntity storeActivityEntity = t; storeActivityEntity.ActivityName = storeActivityEntity.ActivityName + giftItems.FirstOrDefault((GiftInfo g) => g.GiftId == i.ToInt(0)).Name + "、"; } }); if (t.ActivityName.EndsWith("、")) { t.ActivityName = t.ActivityName.Substring(0, t.ActivityName.LastIndexOf("、")); } }); } } return(list); }