コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }