/// <summary> /// 用户热度,相互符合度,生活观契合度 /// </summary> /// <param name="selfid">本人</param> /// <param name="otherid">比较者</param> /// <returns></returns> public RecommendRate GetRecommendRate(int selfid, int otherid) { var usersum = LoveDb.UserAll().Count; //得到两个人的需求表 来计算相互符合度 var myre = LoveDb.One((Requirement r) => r.UserId == selfid); var youre = LoveDb.One((Requirement r) => r.UserId == otherid); var yourUnin = LoveDb.GetUninUser(otherid); var me = GetMyself(); var rr = new RecommendRate { //用户热度排名UserHotRate UserHotRate = (double)(usersum - LoveDb.UserHotAllDes().FindIndex(n => n.UserId == otherid)) / usersum, ForMeRate = TomeRate(yourUnin, myre), ForOtherRate = TomeRate(me, youre), LoveViwRate = GetLoveViewRate(yourUnin, me) }; rr.TotalRate = (rr.UserHotRate + rr.LoveViwRate + rr.ForMeRate + rr.ForOtherRate) / 4; return(rr); }