Ejemplo n.º 1
0
 public virtual void CancleTopItem(List <TopItemInfo> list)
 {
     if (list.Count > 0)
     {
         using (TransactionScope scope = new TransactionScope())
         {
             list.ForEach(entity =>
             {
                 List <TopItemInfo> waitingHandleList = new List <TopItemInfo>();
                 waitingHandleList.Add(entity);
                 PageTypePresentationType currentType = PageTypeUtil.ResolvePresentationType(ModuleType.TopItem, entity.CategoryType.Value.ToString());
                 if (currentType == PageTypePresentationType.Category3 && entity.IsExtend.HasValue && entity.IsExtend.Value)
                 {
                     //处理扩展生效
                     var extendlist = ObjectFactory <ECCategoryProcessor> .Instance.GetRelatedECCategory3SysNo(entity.CategorySysNo.Value);
                     foreach (var item in extendlist)
                     {
                         entity.CategorySysNo = item.SysNo;
                         waitingHandleList.Add(entity);
                     }
                 }
                 waitingHandleList.ForEach(item =>
                 {
                     ObjectFactory <ITopItemDA> .Instance.DeleteTopItem(item);
                 });
             });
             scope.Complete();
         }
         ReSetPriority(list[0].CategoryType.Value, list[0].CategorySysNo.Value);
     }
 }
Ejemplo n.º 2
0
 void ucPosition_PageTypeSelectionChanged(object sender, UserControls.PageTypeSelectionChangedEventArgs e)
 {
     if (ucPosition.PageType != null)
     {
         PageTypePresentationType type = PageTypeUtil.ResolvePresentationType(ModuleType.NewsAndBulletin, ucPosition.PageType.Value.ToString());
         this.chkIsExtend.IsEnabled = type == PageTypePresentationType.Category3;
         this.chkIsExtend.IsChecked = false;
     }
 }
 void ucPosition_PageTypeSelectionChanged(object sender, PageTypeSelectionChangedEventArgs e)
 {
     if (ucPosition.PageType.HasValue)
     {
         PageTypePresentationType type = PageTypeUtil.ResolvePresentationType(ModuleType.NewsAndBulletin, ucPosition.PageType.Value.ToString());
         this.ckbIsHomePageShow.Visibility = (type == PageTypePresentationType.Category1 || type == PageTypePresentationType.Category2 || type == PageTypePresentationType.Category3) ? Visibility.Visible : Visibility.Collapsed;
         this.ckbIsC1Show.Visibility       = (type == PageTypePresentationType.Category2 || type == PageTypePresentationType.Category3) ? Visibility.Visible : Visibility.Collapsed;
         this.ckbIsC2Show.Visibility       = (type == PageTypePresentationType.Category3) ? Visibility.Visible : Visibility.Collapsed;
     }
 }
Ejemplo n.º 4
0
        private List <WebPage> GetApplePage(string companyCode, string channelID, PageTypePresentationType presentationType)
        {
            string         key    = string.Format(Page_CodeNamePair_KeyFormat, companyCode, channelID, presentationType.ToString());
            var            kvList = CodeNamePairManager.GetList("MKT", key);
            List <WebPage> result = new List <WebPage>(kvList.Count);

            kvList.ForEach((kv) => result.Add(new WebPage {
                ID = int.Parse(kv.Code), PageName = kv.Name
            }));
            return(result);
        }
Ejemplo n.º 5
0
        public virtual QueryResult QueryHotKeywords(HotKeywordsQueryFilter filter)
        {
            int totalCount;
            var dataTable = ObjectFactory <IHotKeywordsQueryDA> .Instance.QueryHotKeywords(filter, out totalCount);

            List <CodeNamePair> pair = ObjectFactory <PageTypeAppService> .Instance.GetPageType(filter.CompanyCode, filter.ChannelID.ToString(), ModuleType.HotKeywords);

            List <ECCategory> category1List = ObjectFactory <IECCategoryQueryDA> .Instance.GetAllECCategory1(filter.CompanyCode, filter.ChannelID.ToString());

            List <ECCategory> category3List = ObjectFactory <IECCategoryQueryDA> .Instance.GetAllECCategory3(filter.CompanyCode, filter.ChannelID.ToString());

            foreach (DataRow dr in dataTable.Rows)
            {
                PageTypePresentationType pageTypePresentationType = PageTypeUtil.ResolvePresentationType(ModuleType.HotKeywords, dr["PageType"].ToString());
                switch (pageTypePresentationType)
                {
                case PageTypePresentationType.Category1:
                    dr["PageIDName"] = category1List.SingleOrDefault(a => a.SysNo.Value == int.Parse(dr["PageID"].ToString())).Name;
                    break;

                case PageTypePresentationType.Category3:
                    dr["PageIDName"] = category3List.SingleOrDefault(a => a.SysNo.Value == int.Parse(dr["PageID"].ToString())).Name;
                    break;

                default:
                    PageResult pr = ObjectFactory <PageTypeAppService> .Instance.GetPage(filter.CompanyCode, filter.ChannelID.ToString(), ModuleType.HotKeywords, dr["PageType"].ToString());

                    if (pr.PageList != null && pr.PageList.Count > 0)
                    {
                        dr["PageIDName"] = pr.PageList.SingleOrDefault(a => a.ID.Value == int.Parse(dr["PageID"].ToString())).PageName;
                    }
                    break;
                }
            }

            return(new QueryResult()
            {
                Data = dataTable,
                TotalCount = totalCount
            });
        }
Ejemplo n.º 6
0
        public virtual void SetTopItem(TopItemInfo entity)
        {
            Dictionary <int, int> affectCategory = new Dictionary <int, int>();//用于排重

            affectCategory.Add(entity.CategorySysNo.Value, 0);
            //扩展生效的处理
            if (entity.IsExtend.HasValue && entity.IsExtend.Value)
            {
                PageTypePresentationType currentType = PageTypeUtil.ResolvePresentationType(ModuleType.TopItem, entity.CategoryType.Value.ToString());
                if (currentType == PageTypePresentationType.Category3)
                {
                    var sameC3List = ObjectFactory <ECCategoryProcessor> .Instance.GetRelatedECCategory3SysNo(entity.CategorySysNo.Value);

                    sameC3List.ForEach(item =>
                    {
                        affectCategory.Add(item.SysNo.Value, 0);
                    });
                }
            }
            using (TransactionScope scope = new TransactionScope())
            {
                foreach (var item in affectCategory)
                {
                    entity.CategorySysNo = item.Key;
                    var orgain = ObjectFactory <ITopItemDA> .Instance.QueryTopItem(entity.CategoryType.Value, entity.CategorySysNo.Value);

                    if (orgain != null && orgain.Where(p => p.ProductSysNo.Value == entity.ProductSysNo).Count() > 0)
                    {
                        ObjectFactory <ITopItemDA> .Instance.UpdateTopItemPriority(entity);
                    }
                    else
                    {
                        ObjectFactory <ITopItemDA> .Instance.CreateTopItem(entity);
                    }
                }
                ReSetPriority(entity.CategoryType.Value, entity.CategorySysNo.Value);
                scope.Complete();
            }
        }
Ejemplo n.º 7
0
        public System.Data.DataTable QueryTopItem(QueryFilter.MKT.TopItemFilter filter, out int totalCount)
        {
            PagingInfoEntity pagingEntity = new PagingInfoEntity();

            pagingEntity.SortField     = filter.PageInfo.SortBy;
            pagingEntity.MaximumRows   = filter.PageInfo.PageSize;
            pagingEntity.StartRowIndex = filter.PageInfo.PageIndex * filter.PageInfo.PageSize;

            var cmd = DataCommandManager.CreateCustomDataCommandFromConfig("TopItemList_Query");

            cmd.SetParameterValue("@FrontPageSize", filter.FrontPageSize);
            cmd.SetParameterValue("@CategoryType", filter.PageType);
            using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, "OrderPriority ASC,CreateTime DESC"))
            {
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "A.[Status]", DbType.String, "@Status", QueryConditionOperatorType.Equal, 1);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "A.[ProductType]", DbType.String, "@ProductType", QueryConditionOperatorType.Equal, 0);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "C.C1SysNo", DbType.String, "@C1SysNo", QueryConditionOperatorType.Equal, filter.C1SysNo);
                if (filter.PageType.HasValue)
                {
                    PageTypePresentationType pType = PageTypeUtil.ResolvePresentationType(ModuleType.TopItem, filter.PageType.Value.ToString());
                    if (pType == PageTypePresentationType.Category2)
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "C.C2SysNo", DbType.String, "@C2SysNo", QueryConditionOperatorType.Equal, filter.RefSysNo);
                    }
                    else if (pType == PageTypePresentationType.Category3)
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "C.C3SysNo", DbType.String, "@C3SysNo", QueryConditionOperatorType.Equal, filter.RefSysNo);
                    }
                }
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "A.[ProductID]", DbType.String, "@ProductID", QueryConditionOperatorType.Equal, filter.ProductID);
                cmd.CommandText = sqlBuilder.BuildQuerySql();
                DataTable dt = cmd.ExecuteDataTable();
                totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount"));
                return(dt);
            }
        }
Ejemplo n.º 8
0
        public DataTable Query(ProductRecommendQueryFilter filter, out int totalCount)
        {
            PagingInfoEntity pagingEntity = new PagingInfoEntity();

            pagingEntity.SortField     = filter.PagingInfo.SortBy;
            pagingEntity.MaximumRows   = filter.PagingInfo.PageSize;
            pagingEntity.StartRowIndex = filter.PagingInfo.PageIndex * filter.PagingInfo.PageSize;

            var cmd = DataCommandManager.CreateCustomDataCommandFromConfig("ProductRecommend_Query");

            using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, "result.[SysNo] DESC"))
            {
                //商品ID
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "IC.ProductID",
                    DbType.String,
                    "@ProductID",
                    QueryConditionOperatorType.Equal,
                    filter.ProductID);

                //商品系统编号
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "IC.SysNo",
                    DbType.Int32,
                    "@SysNo",
                    QueryConditionOperatorType.Equal,
                    filter.ProductSysNo);
                if (filter.ProductStatus.HasValue)
                {
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "IC.Status",
                        DbType.Int32,
                        "@ProductStatus",
                        QueryConditionOperatorType.Equal,
                        filter.ProductStatus.Value);
                }

                //状态
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "A.Status",
                    DbType.AnsiStringFixedLength,
                    "@AStatus",
                    QueryConditionOperatorType.Equal,
                    filter.Status);

                #region PageType,PageID,PositionID相关

                //位置编号
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "B.PositionID",
                    DbType.Int32,
                    "@PositionID",
                    QueryConditionOperatorType.Equal,
                    filter.PositionID);

                if (filter.PageType.HasValue)
                {
                    //页面类型
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "B.PageType",
                        DbType.Int32,
                        "@PageType",
                        QueryConditionOperatorType.Equal,
                        filter.PageType);

                    PageTypePresentationType pType = PageTypeUtil.ResolvePresentationType(ModuleType.ProductRecommend, filter.PageType.Value.ToString());
                    if (pType == PageTypePresentationType.Merchant && filter.PageID == 1)
                    {
                        //特殊商家
                        sqlBuilder.ConditionConstructor.AddCondition(
                            QueryConditionRelationType.AND,
                            "V.VendorType",
                            DbType.Int32,
                            "@VendorType",
                            QueryConditionOperatorType.Equal,
                            0);
                    }
                    else if (pType == PageTypePresentationType.Category1)
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(
                            QueryConditionRelationType.AND,
                            "C3.[C1Sysno]",
                            DbType.Int32,
                            "@C1Sysno",
                            QueryConditionOperatorType.Equal,
                            filter.PageID);
                    }
                    else if (pType == PageTypePresentationType.Category2)
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(
                            QueryConditionRelationType.AND,
                            "C3.[C2Sysno]",
                            DbType.Int32,
                            "@C2Sysno",
                            QueryConditionOperatorType.Equal,
                            filter.PageID);
                    }
                    else if (pType == PageTypePresentationType.Category3)
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(
                            QueryConditionRelationType.AND,
                            "C3.[C3SysNo]",
                            DbType.Int32,
                            "@C3Sysno",
                            QueryConditionOperatorType.Equal,
                            filter.PageID);
                    }
                    else
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(
                            QueryConditionRelationType.AND,
                            "B.PageID",
                            DbType.Int32,
                            "@PageID",
                            QueryConditionOperatorType.Equal,
                            filter.PageID);
                    }
                }
                #endregion

                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "A.BeginDate",
                    DbType.DateTime,
                    "@BeginDateFrom",
                    QueryConditionOperatorType.MoreThanOrEqual,
                    filter.BeginDateFrom);

                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "A.BeginDate",
                    DbType.DateTime,
                    "@BeginDateTo",
                    QueryConditionOperatorType.LessThan,
                    filter.BeginDateTo);

                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "A.EndDate",
                    DbType.DateTime,
                    "@EndDateFrom",
                    QueryConditionOperatorType.MoreThanOrEqual,
                    filter.EndDateFrom);

                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "A.EndDate",
                    DbType.DateTime,
                    "@EndDateTo",
                    QueryConditionOperatorType.LessThan,
                    filter.EndDateTo);


                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "B.Status",
                    DbType.String,
                    "@BStatus",
                    QueryConditionOperatorType.Equal,
                    "A");
                //TODO:添加渠道过滤条件

                cmd.CommandText = sqlBuilder.BuildQuerySql();
                var ds = cmd.ExecuteDataSet();
                //转换DataTable的枚举列
                EnumColumnList enumConfig = new EnumColumnList();
                enumConfig.Add("Status", typeof(ADStatus));
                enumConfig.Add("ProductStatus", typeof(ProductStatus));
                cmd.ConvertEnumColumn(ds.Tables[0], enumConfig);

                totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount"));
                return(ds.Tables[0]);
            }
        }
Ejemplo n.º 9
0
        public static PageTypePresentationType ResolvePresentationType(ModuleType moduleType, string pageTypeID)
        {
            PageTypePresentationType result = PageTypePresentationType.NoneSubPages;

            if (moduleType == ModuleType.NewsAndBulletin)
            {
                if (pageTypeID == "9")
                {
                    result = PageTypePresentationType.Category1;
                }
                if (pageTypeID == "0")
                {
                    result = PageTypePresentationType.Category2;
                }
                if (pageTypeID == "3")
                {
                    result = PageTypePresentationType.Category3;
                }
            }
            else
            {
                if (pageTypeID == "1")
                {
                    result = PageTypePresentationType.Category1;
                }
                if (pageTypeID == "2")
                {
                    result = PageTypePresentationType.Category2;
                }
                if (pageTypeID == "3")
                {
                    result = PageTypePresentationType.Category3;
                }
            }


            if (moduleType == ModuleType.Banner || moduleType == ModuleType.SEO)
            {
                switch (pageTypeID)
                {
                case "4":    //品牌专区
                    result = PageTypePresentationType.Stores;
                    break;

                case "5":    //其他促销页面
                    result = PageTypePresentationType.OtherSales;
                    break;

                case "9":    //品牌旗舰店
                    result = PageTypePresentationType.Flagship;
                    break;

                case "29":    //商家页面
                    result = PageTypePresentationType.Merchant;
                    break;

                case "6":
                    result = PageTypePresentationType.BrandExclusive;
                    break;
                }
            }
            else if (moduleType == ModuleType.ProductRecommend)
            {
                switch (pageTypeID)
                {
                case _productRecommendBrandPageTypeID:    //品牌专区
                    result = PageTypePresentationType.Brand;
                    break;

                case "6":    //名品汇品牌专属
                    result = PageTypePresentationType.BrandExclusive;
                    break;

                case "12":    //商家页面
                    result = PageTypePresentationType.Merchant;
                    break;
                }
            }
            else if (moduleType == ModuleType.HotKeywords)
            {
            }
            else if (moduleType == ModuleType.DefaultKeywords)
            {
                switch (pageTypeID)
                {
                case "4":    //品牌专区
                    result = PageTypePresentationType.Stores;
                    break;

                case "9":    //品牌旗舰店
                    result = PageTypePresentationType.Flagship;
                    break;
                }
            }
            else if (moduleType == ModuleType.NewsAndBulletin)
            {
                switch (pageTypeID)
                {
                case "5":    //专卖店
                    result = PageTypePresentationType.Stores;
                    break;

                case "20":
                case "21":
                case "22":
                case "23":
                    result = PageTypePresentationType.Brand;
                    break;

                case "24":
                case "25":
                case "26":
                case "27":
                    result = PageTypePresentationType.Category3;
                    break;

                case "32":
                    result = PageTypePresentationType.Merchant;
                    break;

                case "35":    //品牌旗舰店
                    result = PageTypePresentationType.AppleZone;
                    break;
                }
            }


            return(result);
        }
Ejemplo n.º 10
0
 public PageSelectionChangedEventArgs(PageTypePresentationType presentationType, int?pageType, int?pageID)
 {
     _presentationType = presentationType;
     _pageType         = pageType;
     _pageID           = pageID;
 }