public ActionResult EditRecommend(string ID) { RecommendView re = reManager.FindDetailById(ID); return(View(re)); }
public ActionResult Recommend() { //根据用户标签获取拥有相似标签的对象,目前每组标签推荐2组,不重复 UserNumber me = db.UserNumbers.Find(User.Identity.Name); List <string> labs = new List <string>(); if (!string.IsNullOrEmpty(me.Labels)) { labs = me.Labels.Split(',').ToList(); } //List<string> labs = me.Labels.Length>0?me.Labels.Split(',').ToList():new List<string>(); List <UserNumber> users = new List <UserNumber>(); List <Activities> Acts = new List <Activities>(); List <ClubNumber> Clubs = new List <ClubNumber>(); //Acts = db.Activities.Where(a => a.Label.Split(',').Any(lab => labs.Contains(lab))).Take(6).ToList(); //Clubs = db.ClubNumbers.Where(a => a.Label.Split(',').Any(lab => labs.Contains(lab))).Take(6).ToList(); //users = db.UserNumbers.Where(a => a.Labels.Split(',').Any(lab => labs.Contains(lab))).Take(6).ToList(); List <string> uid = new List <string>(); uid.Add(me.UserId);//把自己从推荐用户中排除 List <int> aid = new List <int>(); List <string> cid = new List <string>(); Random r1 = new Random(); foreach (string lab in labs) { int ucount = db.UserNumbers.Where(u => u.Labels.Contains(lab) && !uid.Contains(u.UserId)).Count(); int i = r1.Next(ucount); List <UserNumber> us = db.UserNumbers.Where(u => u.State == (int)EnumState.正常 && u.Labels.Contains(lab) && !uid.Contains(u.UserId)).OrderBy(u => u.UserId).Skip(i).Take(2).ToList(); foreach (UserNumber u0 in us) { uid.Add(u0.UserId); users.Add(u0); } List <Activities> ats = db.Activities.Where(a => a.State == (int)EnumState.正常 && a.Label.Contains(lab) && !aid.Contains(a.Id)).OrderByDescending(a => a.Id).Take(2).ToList(); foreach (Activities a0 in ats) { aid.Add(a0.Id); Acts.Add(a0); } List <ClubNumber> cs = db.ClubNumbers.Where(c => c.State == (int)EnumState.正常 && c.Label.Contains(lab) && !cid.Contains(c.ClubId)).OrderByDescending(c => c.ClubId).Take(2).ToList(); foreach (ClubNumber c0 in cs) { cid.Add(c0.ClubId); Clubs.Add(c0); } //UserNumber u1 = db.UserNumbers.Where(u => u.Labels.Contains(lab)&&!uid.Contains(u.UserId)).FirstOrDefault(); //Activities a1 = db.Activities.Where(a => a.Label.Contains(lab)&&!aid.Contains(a.Id)).OrderByDescending(a => a.Id).FirstOrDefault(); //ClubNumber c1 = db.ClubNumbers.Where(c => c.Label.Contains(lab) && !cid.Contains(c.ClubId)).OrderByDescending(c => c.ClubId).FirstOrDefault(); //if (u1 != null) //{ // uid.Add(u1.UserId); // users.Add(u1); //} //if (a1 != null) //{ // aid.Add(a1.Id); // Acts.Add(a1); //} //if (c1 != null) //{ // cid.Add(c1.ClubId); // Clubs.Add(c1); //} } RecommendView model = new RecommendView { Uid = me.UserId, Labels = me.Labels, Acts = Acts, Clubs = Clubs, Users = users }; return(View(model)); }