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); } }
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; } }
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); }
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 }); }
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(); } }
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); } }
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]); } }
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); }
public PageSelectionChangedEventArgs(PageTypePresentationType presentationType, int?pageType, int?pageID) { _presentationType = presentationType; _pageType = pageType; _pageID = pageID; }