Пример #1
0
        /// <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);
        }