仿花田:相亲网站意中人已在GitHub上开源stoneniqiu

1.MVC我先说模型,共有20几张表,支持数据迁移。BaseInfos(基本资料),DetailInfos(详细资料),LoveViews(恋爱观)应该是做到一张User表中的,脑抽的我把他们分成了三张表,因为他们是分别存储的。下载之后,改成你自己的数据库,运行就能创建新表了。

3.视图:主要是基于Bootstrap2,Jquery1.7.2.,form.js注册的日期控件和Topic的编辑器用的是KendoUi,小伙伴们可以去换成Ckeditor,而Bootstrap用的地方主要是在

Layout的导航,后台导航,举报、私信、图片上传的模态对话框,在主页面使用它的栅格比较少,因为老是和导航对不齐,就放弃了。或许是我用的不对。Jquery用来交互,获取数据。form.js用的比较多,很多地方是form提交,没有用MVC自带的Create。原因就是不好看,而且不好控制,ie下面会走样。

二、前端特别说明

这里特别要说明的就是一些函数和窗口的触发

1.图片上传和举报框。

在用户主页的视图和PersonalInfo视图中会有这两个相似的html代码,是用来触发图片上传框的。

举报也同样的做法:但举报需要提供更多的信息,所以加了很多data属性。用脚本触发对话框

我想大家也明白了,就是这样的一回事,脚本没有压缩,大家可以去看。其他像喜欢,私信,都是一个道理,定义好一个样式,主要是样式名称,在layout里面写脚本,这样就很方便了。

2.form提交:

用form.js,能很好的控制整个提交过程,BeginForm,隐藏的form,图片上传的form。

编辑基本资料:

$('#Form1').submit(function(){$(this).ajaxSubmit(options);returnfalse;});varoptions={dataType:'json',success:processJson,};functionprocessJson(data){//还是返回json的好,再去更新。$(".infowrap").show();//......$("#sProfession").html(data.Profession);$("#sPosition").html(data.Position);$("#sSchool").html(data.School);$("#sState").html(data.State);}

二、后台逻辑

其实这个部分是最没有含金量的,只要大家清楚业务流程了,逻辑再怎么也能写出来。我也没有用AOP来记录日志或者处理异常,用IOC/DI来解耦。这也是我的弱点。所以我就简单说明下。

1.符合基本条件的用户:因为是相亲交友,所以要筛选用户。在BaseController中有个GetBaseUsers

///

///获取基本的异性集合不可以允许未审核图片的人进来!/////////protectedIEnumerableGetBaseUsers(intid){varlz=LoveDb.One((Usern)=>n.UserId==id);vardislikelist=GetDislikeList();//过滤的名单。过掉我不喜欢的人。//还要过掉不喜欢我的人?if(lz!=null){//选出所有异性中图片审核过的,资料审核过的人,且资料开放,没有被禁止的人returnLoveDb.UserAll().Where(n=>n.Sex!=lz.Sex&&n.IsVerified&&n.IsVerifiedImg&&n.IsOpen&&n.Enable==1&&!dislikelist.Contains(n.UserId)).ToList();}returnnull;}2.推荐的用户:推荐,动态,搜索的基本用户都是来自这里。你可以稍微改下代码让他可以选择同性。而推荐和动态的用户还需要满足一个用户的基本择偶要求。就是比如我择偶的要求是

158以上,江苏,22岁以上。那出现在这两个页面的用户就必须满足这三个条件是硬性指标,但学历,薪水是可以不匹配的。所以在推荐页面是这样的:

publicActionResultRecommendPage(){varid=CheckValid();if(id==-1||Session["uid"]==null){returnRedirectToAction("Logon","User");//不知道有没有效果}varrequire=LoveDb.One((Requirementr)=>r.UserId==id);varbaseusers=GetBaseUsers(id).Where(n=>PartMathUser(require,LoveDb.GetUninUser(n.UserId)));//找出所有正规的异性符合需求的。ViewBag.Sex=GetMyself().User.Sex=="man""她":"他";varuserlist=baseusers.Select(baseuser=>GetRecommendUser(baseuser.UserId)).ToList();returnPartialView(userlist.OrderByDescending(n=>n.Rate.TotalRate));}partMathUser就是一个专门用来比对的函数。原理就是捞出来一个一个比对,三个条件全部对了就是true。搜索也是一个道理,前台把条件传过来,后台来处理。我想这个地方应该是很有优化的空间。

3.推荐度和热度

计算推荐度,就是看两者资料的匹配度,而热度大家可以去看模型就知道了,就是统计数据再综合排名。换成百分率。

///

///用户热度,相互符合度,生活观契合度//////本人///比较者///publicRecommendRateGetRecommendRate(intselfid,intotherid){varusersum=LoveDb.UserAll().Count;//得到两个人的需求表来计算相互符合度varmyre=LoveDb.One((Requirementr)=>r.UserId==selfid);varyoure=LoveDb.One((Requirementr)=>r.UserId==otherid);varyourUnin=LoveDb.GetUninUser(otherid);varme=GetMyself();varrr=newRecommendRate{//用户热度排名UserHotRateUserHotRate=(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;returnrr;}其他就没啥好说的,各种returnjson,returnpartview()我想这个是容易看明白的。

三、数据层

1.LoveDb仓库,像单例模式,获取实例,用反射封装了Add,Delete,One,All等常用方法。

namespaceFindlover.Migrations{usingSystem.Data.Entity;usingSystem.Data.Entity.Migrations;internalsealedclassConfiguration:DbMigrationsConfigurationwhereTContext:DbContext{publicConfiguration(){AutomaticMigrationsEnabled=true;AutomaticMigrationDataLossAllowed=true;}protectedoverridevoidSeed(TContextcontext){}}}再就是Lambda,linq。到处都是,没有写一句sql语句。这个没什么说的。

四、问题和扩展

大大小小的问题还是蛮多的,兼容性的,脚本的,逻辑的,性能的,结构的。这些都还要慢慢的改。所以有问题不要惊奇,是很正常的。像上传和文本编辑应该换uploadfy和ckeditor控件。这个版本还么有加入分页,或者换成流行的滚动加载。增加一些好玩的功能,这些就要看你们的了,尽情的去折腾吧。小丘比特谢谢你!

祝你幸福~

五、说下开源

CodePlex和gitHub合作了,CodePlex可以用git上传,而git也变成了这个windows风格:方便大方好用。

在github的工程名称叫FindLover(说DreamLover更合适些吧),因为FindLover是先取的,名字想了很久才叫意中人。

总结下:现在MVC5已经出来了,我还在看MVC4,EntityFrameWork6也来了,还有VS2013,.NetFrameWork4.5。Bootstrap也到3了。Html5动画研究的还不咋地,还有各种前端的,后端的框架,目不暇接,人艰不拆啊。

新的技术提供了一些更好的方式,但是你更需要的是一个方向,一个ideal,几个一条路上的小伙伴。

(下载后可能又的问题。

1.缺少引用:请在package1中找缺少的引用。建议安装Nuget,会自动给你还原。

我晚上再补上创建表的SQL命令。数据库我不传了。

4.缺少引用的dll中,只有Nlog,kendo.MVC,Web.Provider是有用的,其他的缺少的dll可以移除。是因为之前做过其他的测试留下的。

THE END
1.女孩相亲只有两个条件,第一是年薪百万,第二更是惊呆了所有人01:24 某航空等15名外国人3个多小时后续,航空公司和乘务员的说法不一 04:19 “香水富婆”戚薇:一瓶香水可抵北京别墅,坐月子就花掉7位数 05:12 26女孩不仅漂亮,年薪还是百万,可她却找不到一个对象#相亲 01:15 黄雨婷夺首金,老家门前巨石再次走红,石头来历曝光,难怪都去摸 02:24 比科技卡脖子还可怕https://www.163.com/v/video/VKHA24CT1.html
2.婚恋平台认识的高富帅婚恋平台认识的对象第一次约会有些人可能会问,这些平台到底是不是“合适”的恋爱场所?答案并不简单。如果我们将其看作一种工具,那么它与传统相亲模式相比,至少提供了更多的选择空间和多样的交往方式。工具的最终效果还是取决于使用者的态度和行为。倘若人们只是追求快速的“验证式”关系,难免会陷入表面上的交往,而忽略了背后的情感深度。 http://www.wedating.cn/hunl/47327.html
3."80后"相亲面面观男生找富婆不怕倒插门。80后的特点!你占几样?结果:快餐式相亲成功率低 有时间相亲,没时间经营,成了“80后”相亲的通病。“我两个月相了5场亲,一个都没相中,满腔热情胎死腹中。”一名网友抱怨说。一名过来人告诉记者,由于现代人相亲更看中外貌、条件,一旦不中意不喜欢浪费时间,快餐式的相亲很难在短短1小时的一个饭局中建立深厚的感情,成功率偏低。相亲多次https://blog.csdn.net/zhbchn/article/details/2213100
4.城同城官方网站,名人名言,文案,经典句子,手机壁纸,手绘,桌面所有的人是真的想不明白,几乎可是说是引发了很多讨论,如此前途光明的一个人为什么会做那么低级的事情,还重复手段去做,可以说是匪夷所思了。 此时,他不同于常人的思维模式开始了。 在大家都在窃窃私语的时候,李牛逼同学低着头,看起来垂头丧气的样子,和普通的罪犯毫无区别,犯罪了肯定后悔呀,对不对? https://www.ctc123.cn/post/140.html
5.职场交往要注意什么职场交往技巧→MAIGOO知识摘要:在职场人际交往中形成的职业群体人际关系,是职业群体存在的基本条件和重要特征。它直接或间接地影响着人们的职业活动和工作效率。那么在职场中交往要注意什么?怎么跟同事、上司、下级相处呢?职场交往禁忌有哪些?别慌,maigoo小编整理的这篇职场交往法则希望对初入职场的你有所帮助。 https://www.maigoo.com/goomai/221853.html
6.国际在线国际在线(www.cri.cn)是由中央广播电视总台主办的中央重点新闻网站,通过44种语言(不含广客闽潮4种方言)对全球进行传播,是中国使用语种最多、传播地域最广、影响人群最大的多应用、多终端网站集群。国际在线依托中央广播电视总台广泛的资讯渠道和媒体资源,在全球拥有40多个http://cri.cn/
7.好真实,女性的美貌在相亲市场上不值一提更重要的是,我们应该在相亲中寻找那些能够与我们共同成长、相互支持的人,而不是仅仅看重他们的外在条件。#0元玩转这座城 #因为一个片段追了整个剧 #优质作者追光计划 #优质笔记萌芽计划 #一人说一部在追的电视剧 #热播电视剧 #电视剧推荐 #精彩片段 #好剧推荐https://m.dianping.com/ugcdetail/301826224?sceneType=0&bizType=29&msource=baiduappugc
8.《维和步兵营》海蓝最后和林浩楠在一起了吗分集剧情介绍(135集)林浩楠也发现了这批不明劫匪,知道他们手里一定绑架了有用的人质,他一直跟着他们,请求中国撤侨指挥长的指示,指挥长命令他可以见机行事,为了解救人质,如果确认对方是恐怖分子,那就是人类的公敌,必须无条件消灭他们。 绑匪押着戈睿和李墨斗在离戈向东及属下职员藏身不远处喊话,好让他们主动出来就擒,戈向东听出其中有http://www.northnews.cn/p/1604909
9.防骗篇手把手教你揭穿已婚男:相亲本以为遇到了真命天子,谁知被试想,你的男朋友或同龄相亲男,谁不是对你要求这个要求那个,可是这个男人,根本不关心你的出身,你的工作,甚至大多人都在意的。换句话说,因为他对你是短择,除了你年轻的肉体,其他都和他没关系。而像这种条件的男人,其实你的圈子中,基本也碰不到,试想,他为什么偏偏会选择你呢?怎么你们好上的就这么容易呢? https://www.jianshu.com/p/eea503d3d8c7
10.打不死的世纪佳缘们,靠4亿催婚的家长活着一位充了某相亲网站会员的年轻男子接到了红娘的电话,对方声称,有姑娘看了他的资料表示好感,想邀请他来线下店来聊聊。 在3个小时的沟通中,红娘耐心听取他的感情经历,获取信任,并建议他提高择偶要求,还给他介绍了几位理想型对象。接着红娘说,像你条件这么好的青年才俊,应该找一个好妻子,并且展示了自己过往成功的案https://36kr.com/p/2026782857866248