public virtual List <ContentPost> GetRelatedPosts(ContentPost post) { List <Tag> tags = post.Tag.List; List <int> ids = new List <int>(); foreach (Tag t in tags) { List <DataTagShip> list = DataTagShip.find("TagId=" + t.Id + " and TypeFullName=:tname") .set("tname", typeof(ContentPost).FullName) .list(); getPostIds(ids, list, post); } if (ids.Count == 0) { return(new List <ContentPost>()); } String strIds = ""; for (int i = 0; i < ids.Count; i++) { strIds += ids[i]; if (i < ids.Count - 1) { strIds += ","; } } List <ContentPost> posts = ContentPost.find("Id in (" + strIds + ") and SaveStatus=" + SaveStatus.Normal).list(); return(posts); }
public void Show(String tagName) { bindMyTags(); set("tagName", tagName); set("allLink", to(Index)); ctx.Page.SetTitle(tagName, "tag"); ctx.Page.Keywords = tagName; Tag tag = Tag.find("Name=:name").set("name", tagName).first(); DataPage <DataTagShip> list; if (tag == null) { list = DataPage <DataTagShip> .GetEmpty(); } else { list = DataTagShip.findPage("TagId=" + tag.Id); } bindResults(list); }
public virtual void Execute() { // 4点多执行 if (DateTime.Now.Hour <= 3 || DateTime.Now.Hour >= 5) { return; } List <BlogApp> blogs = blogService.GetBlogAppAll(); List <PhotoApp> photos = photoService.GetAppAll(); List <Tag> tags = Tag.findAll(); foreach (BlogApp blog in blogs) { blogService.UpdateCount(blog); DbContext.closeConnectionAll(); // 每执行一个app即关闭,以免超时 } foreach (PhotoApp app in photos) { photoService.UpdateCount(app); DbContext.closeConnectionAll(); } foreach (Tag tag in tags) { int count = DataTagShip.find("Tag.Id=" + tag.Id).count(); tag.DataCount = count; tag.update("DataCount"); DbContext.closeConnectionAll(); } //// 得到所有用户 //foreach (User user in users) { // // 根据帖子数,算出积分:按照每帖5分计算 // user.Credit = user.PostCount * 5; // db.update( user, "Credit" ); // // 更新 UserIncome 表中的中心货币的收入 // UserIncomeService incomeService = new UserIncomeService(); // UserIncome income = incomeService.GetUserIncome( user.Id, KeyCurrency.Instance.Id ); // income.Income = user.Credit; // db.update( income, "Income" ); // // 更新等级 // int newRankId = roleService.GetRankByCredit( user.Credit ).Id; // if (user.RankId != newRankId) { // user.RankId = newRankId; // db.update( user, "RankId" ); // } // DbContext.closeConnectionAll(); //} }
public virtual List <DataTagShip> GetRelatedDatas(ContentPost post, int count) { String tagIds = post.Tag.TagIds; if (strUtil.IsNullOrEmpty(tagIds)) { return(new List <DataTagShip>()); } return(DataTagShip.find("TagId in (" + tagIds + ")").list(count)); }
private bool containsDataTag(List <DataTagShip> results, DataTagShip dt) { foreach (DataTagShip d in results) { if (d.DataId == dt.DataId && d.TypeFullName.Equals(dt.TypeFullName)) { return(true); } } return(false); }
public virtual List <DataTagShip> GetRelatedDatas(ContentPost post) { List <Tag> tags = post.Tag.List; List <DataTagShip> results = new List <DataTagShip>(); foreach (Tag t in tags) { List <DataTagShip> list = DataTagShip.find("TagId=" + t.Id + "").list(); mergeTagDatas(results, list, post); } return(results); }
public virtual void DataList( ) { load("toolbar", Toolbar); set("tagName", ctx.Get("tag")); Tag tag = Tag.find("Name=:name").set("name", ctx.Get("tag")).first(); if (tag == null) { echo(lang("exDataNotFound")); return; } DataPage <DataTagShip> list = DataTagShip.findPage("TagId=" + tag.Id); bindResults(list); }
public virtual List <ContentPost> GetRelatedPosts(ContentPost post, int count) { String tagIds = post.Tag.TagIds; if (strUtil.IsNullOrEmpty(tagIds)) { return(new List <ContentPost>()); } List <DataTagShip> list = DataTagShip.find("TagId in (" + tagIds + ") and TypeFullName=:tname") .set("tname", typeof(ContentPost).FullName) .list(count); List <int> ids = new List <int>(); foreach (DataTagShip x in list) { if (ids.Contains(x.DataId)) { continue; } ids.Add(x.DataId); } if (ids.Count == 0) { return(new List <ContentPost>()); } String strIds = ""; for (int i = 0; i < ids.Count; i++) { strIds += ids[i]; if (i < ids.Count - 1) { strIds += ","; } } return(GetByIds(strIds)); }
private static void joinTag_Data( Tag tag, IAppData data ) { if (DataTagShip.find( "DataId=:dataId and Tag.Id=:tagId and TypeFullName=:dataType" ) .set( "dataId", data.Id ) .set( "tagId", tag.Id ) .set( "dataType", data.GetType().FullName ) .count() == 0) { DataTagShip ship = new DataTagShip(); ship.DataId = data.Id; ship.TypeFullName = data.GetType().FullName; ship.Tag = tag; db.insert( ship ); } }
private string getRelativePosts(ForumPost data) { if (data.ParentId > 0) { return(""); } ForumTopic topic = data.Topic; if (topic == null) { return(""); } String tagIds = topic.Tag.TagIds; if (strUtil.IsNullOrEmpty(tagIds)) { return(""); } List <DataTagShip> list = DataTagShip.find("TagId in (" + tagIds + ")").list(21); if (list.Count <= 1) { return(""); } StringBuilder sb = new StringBuilder(); sb.AppendLine("<div class=\"relative-post\">"); sb.AppendLine("<div class=\"relative-title\">相关文章</div>"); sb.AppendLine("<ul>"); List <IAppData> addList = new List <IAppData>(); foreach (DataTagShip dt in list) { if (dt.DataId == topic.Id && dt.TypeFullName == typeof(ForumTopic).FullName) { continue; } EntityInfo ei = Entity.GetInfo(dt.TypeFullName); if (ei == null) { continue; } IAppData obj = ndb.findById(ei.Type, dt.DataId) as IAppData; if (obj == null) { continue; } if (hasAdded(addList, obj)) { continue; } sb.AppendFormat("<li><div><a href=\"{0}\">{1}</a></div></li>", alink.ToAppData(obj), obj.Title); sb.AppendLine(); addList.Add(obj); } sb.AppendLine("</ul>"); sb.AppendLine("<div style=\"clear:both;\"></div>"); sb.AppendLine("</div>"); return(sb.ToString()); }
private bool containsDataTag( List<DataTagShip> results, DataTagShip dt ) { foreach (DataTagShip d in results) { if (d.DataId == dt.DataId && d.TypeFullName.Equals( dt.TypeFullName )) return true; } return false; }