版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、颁廉价融资融券或半QFII系统建奥设思路TOC o 1-3 h u HYPERLINK l _Toc31705 1. 题记 PAGEREF _Toc31705 3 HYPERLINK l _Toc27070 把2鞍. 阿总体构想唉 PAGEREF _Toc27070 斑4 HYPERLINK l _Toc14312 扳3按. 矮搭建思路吧 PAGEREF _Toc14312 柏5 HYPERLINK l _Toc30795 佰3.1 总思路耙 PAGEREF _Toc30795 哀5 HYPERLINK l _Toc7980 版3.2 平台定拌位凹 PAGEREF _Toc7980 袄5 HY
2、PERLINK l _Toc30815 氨4摆. 案具体功能蔼 PAGEREF _Toc30815 柏7 HYPERLINK l _Toc12661 凹4.1系统特点鞍 PAGEREF _Toc12661 柏7 HYPERLINK l _Toc28054 啊4.2 系统功唉能百 PAGEREF _Toc28054 哎9 HYPERLINK l _Toc8886 盎4.2.1总后胺台功能芭 PAGEREF _Toc8886 鞍9绊 HYPERLINK l _Toc10172 氨爱客户管理皑 PAGEREF _Toc10172 捌9芭 HYPERLINK l _Toc18602 叭办代理商管理蔼
3、PAGEREF _Toc18602 盎10巴 HYPERLINK l _Toc15954 胺把留仓股票查询背 PAGEREF _Toc15954 凹10肮 HYPERLINK l _Toc23218 哀背交割清单查询碍 PAGEREF _Toc23218 邦11扳 HYPERLINK l _Toc14708 敖拔股票设置矮 PAGEREF _Toc14708 坝11蔼 HYPERLINK l _Toc15804 澳背财务管理疤 PAGEREF _Toc15804 颁11岸 HYPERLINK l _Toc23214 案斑总账查询熬 PAGEREF _Toc23214 挨12敖 HYPERLIN
4、K l _Toc9255 伴白资金变动查询爱 PAGEREF _Toc9255 案12敖 HYPERLINK l _Toc19909 佰安 管理员设置凹 PAGEREF _Toc19909 背12 HYPERLINK l _Toc18943 艾4.2.2 P稗C代理商功能摆 PAGEREF _Toc18943 鞍12邦 HYPERLINK l _Toc2177 翱鞍用户管理颁 PAGEREF _Toc2177 哀13翱 HYPERLINK l _Toc6166 搬吧交割清单盎 PAGEREF _Toc6166 白13熬 HYPERLINK l _Toc6644 叭矮出入金记录稗 PAGEREF
5、 _Toc6644 蔼13啊 HYPERLINK l _Toc3253 肮鞍 总账查询邦 PAGEREF _Toc3253 奥14 HYPERLINK l _Toc27862 哀4.2.3 P捌C客户端功能班 PAGEREF _Toc27862 岸14扳 HYPERLINK l _Toc32504 拌案 股票查询肮 PAGEREF _Toc32504 百14般 HYPERLINK l _Toc24047 稗蔼 股票交易耙 PAGEREF _Toc24047 啊14搬 HYPERLINK l _Toc14883 邦般 资金转账岸 PAGEREF _Toc14883 敖15肮 HYPERLINK
6、l _Toc20136 敖稗留仓查询瓣 PAGEREF _Toc20136 把16般 HYPERLINK l _Toc6248 般板交割单查询拔 PAGEREF _Toc6248 班16拜 HYPERLINK l _Toc23858 奥啊 其他功能熬 PAGEREF _Toc23858 昂16 HYPERLINK l _Toc16619 蔼4.3.4安卓翱客户端岸 PAGEREF _Toc16619 版16 HYPERLINK l _Toc30442 懊4.2.5 I翱OS客户端爸 PAGEREF _Toc30442 罢16 HYPERLINK l _Toc2844 背4.2.6 商败城搬 P
7、AGEREF _Toc2844 爸16 HYPERLINK l _Toc24295 癌4.2.7股价艾监听程序案 PAGEREF _Toc24295 啊16唉 HYPERLINK l _Toc22933 柏熬 自动监听股价背 PAGEREF _Toc22933 拔17懊 HYPERLINK l _Toc20939 艾胺采集历史股价数碍据澳 PAGEREF _Toc20939 扒17柏 HYPERLINK l _Toc4377 耙耙根据股价波动自吧动平仓哎 PAGEREF _Toc4377 芭17摆 HYPERLINK l _Toc31057 扮皑自动收取过夜费办 PAGEREF _Toc310
8、57 啊17疤 HYPERLINK l _Toc13423 皑叭超过六个工作日安自动售出股票艾 PAGEREF _Toc13423 昂18 HYPERLINK l _Toc13623 柏5巴. 拔技术要点班 PAGEREF _Toc13623 疤18 HYPERLINK l _Toc13351 耙5.1 开发技翱术和语言佰 PAGEREF _Toc13351 佰18 HYPERLINK l _Toc11370 扳5.2 服务端袄接口技术白 PAGEREF _Toc11370 百18 HYPERLINK l _Toc14743 俺5.3 数据库笆技术扳 PAGEREF _Toc14743 安23
9、 HYPERLINK l _Toc28833 隘5.4 高并发爱技术熬 PAGEREF _Toc28833 瓣26 HYPERLINK l _Toc11907 盎5.5 转账接啊口案 PAGEREF _Toc11907 矮28 HYPERLINK l _Toc4043 罢5.6 股票接颁口安 PAGEREF _Toc4043 挨30 HYPERLINK l _Toc3926 袄5.7 自动处拔理技术捌 PAGEREF _Toc3926 俺33 HYPERLINK l _Toc2560 拔5.8 分页技扒术把 PAGEREF _Toc2560 拌33 HYPERLINK l _Toc17365
10、拜5.9 手机端昂开发技术败 PAGEREF _Toc17365 版39题记敖把看似复杂的事瓣情想透彻了,就矮会变得很简单。案我没事喜欢将一拌件事情研究透彻班,证券市场平台扮是我突发灵感,罢感觉一向神秘的暗证券平台或许门巴槛没有这么高,肮如是开始着手研邦究,我研究证券背平台有三个目的按:扮证券平台一向神吧秘,没有工作经霸验的人很难窥其俺真容,这对我是拔一个诱惑,我想叭从网上搜集资料奥,整理一下。办一直认为技术大凹数据的分析可以把降低投资风险,瓣如果拥有这个大啊数据,加上先进蔼的分析模型,肯俺定可以大幅降低翱理财风险,形成百群狼效应。半互联网资源丰富袄,依靠廉价的互挨联网自建为大家爱服务是我的爱
11、好敖。懊 历时接近三个隘月的测试,已经盎形成一部分成果板:一种小型、实办用的A股融资融疤券平台搭建思路斑。可以很少量的拜投资就可以窥探白证券动向,并可肮以对外提供一些艾增值服务。总体构想总部代理分部客户客户代理分部客户客户客户胺 傲系统是一个小规笆模的生态,有三皑种用户:总部、蔼代理分部和客户疤。总部负责运维颁整个系统,包括疤股票设置、用户哎账号管理、虚拟盎资金统计分析、巴真实资金管理等鞍;代理商可以依败靠这个平台搭建靶小型的运营生态笆,包括开设自己版下面的客户账号搬、归属自己的资癌金分析、和总部坝进行真实资金结背算等;客户就是邦股民了,可以在鞍平台开仓、平仓八、资金转账等等芭。八平台建成之后
12、,奥“笆总部俺”唉可以按照自己的百“办运作熬”奥特点,精选一些翱股票,在平台设八置一下,客户就白可以放心的按照挨我们的哎“颁指导半”办够买了。总部贡颁献技巧,代理商芭做大市场,客户版分享收益,一个鞍良好的生态。搭建思路3.1 总思路总后台服务端PC客户端安卓客户端IOS客户端股价监听器PC代理端商城拌 有人可能会说隘,你个大骗子,坝不是说好的廉价半平台吗?则么搞埃这么多东东?道吧理很简单:您误柏会我了。据我了疤解,一套成熟的罢融资融券系统,瓣造价在1000颁多万甚至几千万按,而且是在中国隘的价格,现在美蔼国的很多系统都斑交给中国开发,拌因为中国开发便蔼宜。这样的整个半系统互相依托运凹作,笔者估
13、计大哎概仅需要30-斑60万,是不是啊很傲“叭廉价芭”氨呢?那么我们看扒看每一个系统都巴是干什么的吧?哎3.2 平台定扳位 服务端芭整个系统的中心袄,位于我们的中按心机房为各个系袄统提供网络服务耙,让我们的总后佰台、代理端和客背户端都能在它的背服务下互相协作颁。总后台搬 顾名思义是整八个系统的最高权般力机构,负责管拔理整个系统的运吧作,这个程序运岸行在运行这个平跋台的个人电脑上凹面,依靠服务端邦进行设置,整个暗系统在这个总后般台的指导下运作八。PC代理端蔼 代理端负责发办展客户,给自己扒的客户开户,开啊户以后客户端就办可以立即使用客癌户端了,但这个安时候是不能立即颁开仓的,需要客吧户自己登录到
14、P爱C客户端进行充邦值,有了资金以板后客户可以开仓背了。客户操作所败收取的费用,代跋理端可以查看自翱己的利润。PC客户端袄 PC客户端提翱供给客户使用,般客户进行股票查瓣询、开仓、留仓百股票查询、平仓碍、资金转账等操爱作。胺Android搬客户端唉 功能参照PC靶客户端,去掉了矮资金转账功能,爸因为移动支付开澳发相对麻烦,我爱没有做相关研究百。IOS客户端拜 功能参照PC败客户端,去掉了按资金转账功能,袄因为移动支付开捌发相对麻烦,我按没有做相关研究案。监听器艾这也是系统的重柏点之一。首先因瓣为我们整个系统鞍需要实时股价作啊为支撑,这个监绊听器就负责从网靶上拉取最新股价蔼信息放到我们系奥统,供
15、开仓、平盎仓和风险控制等艾操作;其次我们坝系统作为指导性颁强的系统,应该邦指导用户操作,肮包括是否当日留佰仓、股价波动到肮一定幅度自动平把仓等等,因为这版些操作需要我们哀的客户端不打开傲也能够做到的。商城袄之所以要建立一奥个商城是因为我版们的平台资金账疤号,因为这样的阿系统,即使是玩拜票,估计也很难罢申请到,但是商挨城就比较容易申耙请了,建议公司百开通一个商城,般利用商城的资金摆账号进行模拟交搬易。具体功能摆终于到了重点,邦这样一个系统是哀怎么实现的呢?皑我们先分析系统拜的特点和特色,办然后根据这个脉颁络继续向下分析肮。4.1系统特点一种独立的系统隘它不依靠大型券班商系统,形成自笆己的交易生态
16、,班所有交易规则自肮己来定独立的用户体系捌账号管理是独立岸的,系统和第三白方支付平台对接办实现资金转账高价值用户服务靶包括优选股票、把开仓和平仓风险挨控制、股价波动肮风险控制、T+氨0等服务项目。双向挨支持开多仓和开凹空仓。透明灵活的计费坝计费是运营的基柏础,系统应该计爸费透明而且合理扮才更有竞争力。杠杆哀可以放大可用资般金,用户以小博安大。快速摆这是所有系统的颁共性了,股价瞬皑息万变,股民肯俺定要求根据最新啊的股价操作,我佰们不是大券商,班股价数据比大券阿商言辞1-2秒伴还是很靠谱的吧暗。广泛伴支持沪深股票、吧股指期货、贵金傲属交易。安全可靠百整个系统并不是稗基于网页实现,熬而是基于客户端拔
17、服务器技术,客凹户、代理商、总八后台的功能均通扒过安装包安装应绊用程序实现,和哀服务器通信快速澳,安全可靠,整伴个实现和大券商肮客户端相同。伴4.2 系统功吧能傲4.2.1总后版台功能融资融券总后台客户管理代理商管理留仓股票查询交割单查询股票设置财务管理总账查询资金变动查询管理员设置盎翱客户管理办客户管理负责对艾所有客户账号进碍行管理,主要功版能有客户列表、岸客户统计、资金摆调整、账号冻结芭和解冻、客户信吧息修改等。客户列表鞍显示所有客户的昂信息,可以根据芭客户姓名、账号癌、所属代理商、按注册时间来查询暗某些客户信息。客户统计俺可以按照区域、邦代理商、注册时摆段、开户行来统奥计客户分布情况哀。
18、资金调整爸修改某一个客户佰的账户资金,该案功能是为了系统摆机动处理某些特爸殊账户资金的预把留功能。账号冻结、解冻白冻结一个客户,敖冻结后该客户将皑不能使用客户端俺功能,包括交易皑。解冻是指恢复按一个客户账号的疤正常状态。客户信息修改挨修改客户的信息拌,包括银行账号翱、初始化密码等芭。埃鞍代理商管理案该模块负责代理俺商所有管理功能阿,开设代理商账半号、冻结代理商胺账号、代理商资挨金结算等。开设代理商账号拔开设一个代理商哎账号,将可以使蔼用该账号登录P俺C代理端。冻结代理商账号碍冻结代理商账号稗的功能是指关闭罢该代理商的管理稗功能,冻结以后爱该代理商无法开扮设账号,其下面隘的客户仍然可以哀使用客户
19、端交易耙。代理商资金结算叭平台结算给代理霸商利润是分期结罢算的,平台提供半简单的结算功能半即可:平台实时白计算应计算的金安额,并可以根据挨时间查询应结算案总额,总后台不瓣提供网银转账结背算功能,通过网傲银直接转账或线版下方式结算,完碍成以后到平台标百记结算金额,下哎次结算的时候系拌统统计待结算金盎额(扣除以前结靶算的金额),直邦接结算即可。叭背留仓股票查询柏查询所有客户当懊前持仓的股票信氨息,包括客户信版息、股票信息、蔼购买时间、当前摆盈亏、各种费用白收取和待收取情吧况等,可以强平芭客户的持仓股票拌,强平客户持仓艾股票是指在任意芭时间点,后台可罢以指定一个价格扒强行将该股票售巴出。扮翱交割清单
20、查询板查询客户已经平跋仓的股票信息,胺包括客户信息、矮股票信息、购买蔼时的股票价格,搬售出时的股票价傲格,盈利情况,唉平台费用收取情肮况等信息。办扒股票设置拌设置系统支持操奥作的股票,在此暗登记的股票,在巴客户端才可以进跋行交易。功能包按括添加股票信息般、删除股票信息埃、快速导入多支扒股票信息、导出碍股票信息、设置胺是否允许开多仓阿或开空仓、是否癌禁止交易、是否俺启用风险控制。稗股票设置的信息巴会立即体现在每俺一个客户的客户暗端,当禁止交易啊或者修改了股票碍信息,客户端要爱立即禁止相关操鞍作或显示最新内案容。胺股票设置的基本版信息仅仅包括股翱票代码和股票名敖称即可,信息一懊定要和A股一定爸要一
21、致,否则后跋面提到的获取股奥价功能将无法实凹现。叭奥财务管理颁该功能实际值出傲入金的管理,用摆于财务查看客户百入金的明细情况般、按月统计入金百报表,财务出金跋转账登记,出金胺汇总等。入金管理摆 客户转账到平俺台称为入金,系颁统可以开通资金奥账号,PC客户蔼端直接调用网银瓣功能实现立即转搬账,平台可以收伴到转账成功后的背各种信息。入金搬管理是指统计客佰户转账到平台的肮时间、资金情况矮等信息。出金管理瓣 平台转账给客扳户称为出金。出胺金不通过平台,柏客户从PC客户颁端发起出金请求扒,平台审核通过跋以后,在当日将班资金通过其他平拔台转账,系统只板需登记即可,登爸记完成后,用户昂的可用资金将减罢少。百
22、耙总账查询靶 查询平台目前捌的资金情况、客奥户的收益情况、熬平台的收益情况般、客户预期收益岸情况、平台预期澳收益情况、代理昂商收益和预期收扒益情况等信息。跋靶资金变动查询暗 用于查看客户把的资金变动历史拜,包括客户的各隘种操作引发的资奥金变动:入金、芭出金、开仓、平岸仓、后台强制平奥仓、系统自动平把仓、后台修改资拜金等。邦挨 管理员设置搬包括开通管理员瓣账号、修改管理矮员账号等功能。胺4.2.2 P熬C代理商功能PC代理端用户管理交割清单出入金记录总账查询懊 PC代癌理端提供给代理案商使用,包括代哎理商管理自己的邦客户、交割清单澳、出入金记录、把总账查询。邦斑用户管理挨 用户管理包括背客户管理
23、负责对暗所有客户账号进唉行管理,主要功颁能有客户列表、按客户统计、资金敖调整、账号冻结翱和解冻、客户信拔息修改等。客户列表碍 显示所有客户霸的信息,可以根颁据客户姓名、账俺号、所属代理商跋、注册时间来查唉询某些客户信息绊。账号冻结、解冻啊 冻结一埃个客户,冻结后凹该客户将不能使肮用客户端功能,凹包括交易。解冻澳是指恢复一个客澳户账号的正常状阿态。客户信息修改耙 修改客户的信碍息,包括银行账板号、初始化密码艾等。捌笆交割清单敖查询所有客户当傲前持仓的股票信班息,包括客户信般息、股票信息、扒购买时间、当前扒盈亏、各种费用邦收取和待收取情吧况等。绊傲出入金记录跋该功能实际值出熬入金的管理,用柏于财务
24、查看客户肮入金的明细情况般、按月统计入金扮报表,财务出金艾转账登记,出金百汇总等。入金管理罢 统计该代理商胺的客户转账到平拌台的时间、资金盎情况等信息。出金管理敖 统计该代理商俺的客户从平台提罢取资金的时间、懊资金情况等信息背。癌凹 总账查询败 查询平台目前皑的资金情况、客哀户的收益情况、芭平台的收益情况拔、客户预期收益芭情况、平台预期坝收益情况、代理拌商收益和预期收背益情况等信息。颁4.2.3 P啊C客户端功能柏PC客户端是客隘户进行股票交易澳的客户端软件。爱包括股票查询、耙股票交易、资金捌转账、修改密码挨、留仓查询、交霸割单查询等功能败。PC客户端股票查询股票交易资金转账修改密码留仓查询交
25、割单查询扒懊 股票查询挨股票查询功能是背指为客户端提供颁可以交易的股票隘列表,用户可以耙按照股票代码和胺股票名称查询某巴一只股票。唉股票查询所包括傲的信息包括股票暗代码、股票名称哎、是否允许多开懊、是否允许空开把、是否禁止交易扳等。白哀 股票交易安股票交易是指进翱行股票开仓和交昂割两类操作。开仓矮开仓是指用户购扒入某一只股票,疤包括股票查询、傲购买和刷新留仓耙四个环节。股票袄查询负责从服务白器查询股票信息傲,包括获取股票袄代码、股票名称瓣、多空开仓限制哎、是否禁止交易哀、根据开盘停盘把时间停止交易、翱根据节假日停止扳交易、根据股价凹波动停止交易、凹查询最新的股价叭信息、显示平台罢规定的交易价格
26、霸等信息。购买包爱括对用户输入的稗手数进行判断是叭否允许交易,执班行购买同时扣除吧用户的资金。刷把新留仓是指刷新耙客户端的留仓信艾息,看到自己的扒开仓成功,开仓拔后30分钟不允耙许交易,防止客靶户频繁刷单。班开仓分为开多仓邦和开空仓,开多板仓是指股价涨的般时候盈利,开空捌仓是指股价跌的班时候盈利。交割按交割是指出售一扒只股票交割的交俺割的操作包括出巴售股票和返还资扒金两部分。般昂 资金转账跋资金转账包括银袄证转账和证银转暗账。银证转账俺银证转账是指从澳客户的银行账号哀到平台的资金账隘号转账,客户发柏起银证转账以后八,系统调用平台矮开通的网银页面拜,用户输入转账半的金额,将客户颁的银行资金转入佰
27、到平台,转账成百功后用户的信用伴资金立即增加。证银转账扳证银转账是指平凹台资金转入到客疤户的银行账号,敖用户从客户端发耙起证银转账,后扳台收到转账请求隘以后,财务通过熬其他渠道转给用霸户资金,转出以阿后在系统中确认暗订单完成,客户皑的使用资金降低背。靶翱留仓查询盎留仓查询用于查埃询留仓信息,所隘查询信息包括自耙己所留仓的股票搬,信息包括股票柏基本信息、当前百股价、当前盈亏班、费用收取情况案、即将收取的费艾用情况、是否允巴许平仓等。可以靶对留仓股票出仓搬。爱案交割单查询邦交割单查询用于翱查询已经交割的按股票情况,包括昂股票基本信息、埃交割盈亏情况、百费用收取情况等班信息。隘肮 其他功能拜包括修改
28、密码、氨锁定客户端等功扮能。凹4.3.4安卓胺客户端翱参见PC客户端蔼功能。比客户端吧少了资金转账功隘能。摆4.2.5 I八OS客户端碍参见PC客户端瓣功能。比客户端耙少了资金转账功癌能。岸4.2.6 商懊城巴商城负责在申请芭平台的资金账号笆的时候使用,用颁户银证转账的时盎候也可以使用商芭城的商品名称进翱行交易,这里没澳有什么技术含量袄。肮4.2.7股价扳监听程序按股价监听程序负熬责从互联网拉取胺最新的股价信息扳,供平台所用,安并且提供平台服矮务端自动化处理叭的功能。埃哀 自动监听股价俺 自动监听股价敖的功能是根据系疤统设定的股价范摆围,从互联网拉瓣取股价,提供给八系统使用。我们背优先选用新浪
29、财绊经的股价接口,版因为这个接口包板含的信息是相当稗齐全的,而且响爱应速度快,非常唉稳定。据我测试巴2000只股票班,获取时间最长霸2秒,当然如果唉我们的服务器够癌好,应该能做到耙1秒以内,这就凹完全够我们使用懊了。敖斑采集历史股价数搬据按前面提到我们希罢望平台具有扒“袄分析功能芭”拌,根据股价波动暗来分析风险,从巴而自动平仓或者把自动禁止开仓,斑这个新浪接口不百能直接帮我们实白现,因为它没有坝查询历史股价的凹能力,我们系统胺可以做一个补偿俺设计,就是每日碍扫描一次股价信耙息,保存在我们懊系统中,供查询挨使用,这也是翱“翱大数据办”哎哦。我们可以采白集的信息包括翱“胺最近一周的最高搬价波动情况
30、哎”扳、袄“哀近期开盘就涨停白情况按”搬,拌“昂近期涨停和跌停按次数把”氨等等。斑皑根据股价波动自瓣动平仓捌系统有一个功能把:当股价波动到皑一定幅度以后,哀系统会自动止损邦或者止盈平仓。拜该功能是平台自肮动的,因此需要袄靠监听程序来实奥现。监听程序首胺先遍历所有留仓肮中的股票,然后板对比当前的股价凹,如果股价波动霸超过一定的比例百,自动按照当前半的股价出仓,并矮且将利润返回给扒当前账号。背靶自动收取过夜费案 如果平台开启柏收取过夜费的收拔费项目,那么过案夜费在第一个交埃易日结束或者第艾一日收盘的时候坝开始自动收取。办该功能也是系统芭主动+主动的行艾为,按照行规,胺过夜费收取的时拔候,如果用户的
31、案账户资金不够,伴则自动出售该股熬票,将该股票的疤资金用于过夜费扒,如果股票卖出安以后仍然不够,靶则出售其他股票敖收取。吧傲超过六个工作日扳自动售出股票肮 如果系统系统捌中的留仓股票超艾过6个工作日仍办未手动出仓,系爱统将强制自动出隘仓。技术要点皑既然需求已经分昂析,我们一起看稗看要完成这样的哎系统所需要的技袄术。版5.1 开发技懊术和语言埃 前端技术是为斑操作本系统的人哎提供的交互界面般开发技术。包括蔼PC客户端、代敖理商客户端、总瓣后台和股价监听胺系统的界面,考背虑数据交换的及佰时性、系统安全巴性和交互体验,奥系统需要采用C岸/S的架构,这碍也是绝大多数大澳型券商系统的通伴用格式。颁 那么
32、我们应该艾采用什么技术实敖现呢?目前主流俺的服务端技术有隘java、.n背et等,其中j懊ava不适合做俺前端开发,因此靶我们应该选用.昂net作为开发埃语言,前端采用皑Winform半技术开发,后台爱采用.net 肮WebAPI技拜术。拌Winform笆研发爸所用到的技术包暗括控件技术、排版版布局技术,当懊然如果要做得更傲好,需要用到自般定义控件技术、癌多线程预加载技岸术、进度条交互氨技术。跋5.2 服务端俺接口技术耙服务端接口技术办主要是服务端的办处理业务逻辑以拔及和客户端AP拌I对接的技术,吧刚讲到主要是使稗用.net W伴EBAPI技术败,建议接口采用疤restful拔规范,主要约束邦
33、如下:由于系统埃接口不多,建议巴只使用get 蔼和post两类扮接口方式,一般斑向服务端上报数扒据采用post瓣方式,从服务端啊拉取数据采用g啊et方式。服务阿端收到客户端的靶请求以后,开始按进行业务处理,耙完毕以后返回数阿据,举例:蔼webAPI 巴首先需要初始化岸一些参数,对W拌ebAPICo奥nfig改造一盎下。隘using哀 CacheC板ow.Serv拌er;爸using拔 Newton白soft.Js办on.Seri百alizati唉on;岸using笆 System唉.Linq;坝using伴 System办.Net.Ht凹tp.Form把atting;半using柏 Syste
34、m凹.Web.Ht疤tp;艾namespa巴ce办 FundAP耙I皑氨 八public佰 伴static盎 疤class颁 哀WebApiC绊onfig斑 吧 唉 伴public挨 肮static懊 芭void搬 Regist瓣er(伴HttpCon巴figurat懊ion八 config摆)按 罢 蔼 俺 绊/ 去掉js斑on序列化时的艾循环引用把 佰 蔼var摆 json =靶 config背.Format把ters.Js瓣onForma把tter;哎 哎 js扳on.Seri蔼alizerS叭ettings搬.Refere啊nceLoop斑Handlin稗g = New癌tonsoft
35、皑.Json.鞍Referen碍ceLoopH矮andling哀.Ignore笆;斑 扳 co摆nfig.Fo白rmatter氨s.JsonF肮ormatte巴r.Seria搬lizerSe把ttings.蔼DateTim罢eZoneHa邦ndling 巴 = Newt办onsoft.稗Json.皑DateTim扮eZoneHa盎ndling阿.Utc;昂 伴 稗/ 去掉XM绊L序列化器巴 皑 co扒nfig.Fo耙rmatter奥s.Remov绊e(confi啊g.Forma敖tters.X矮mlForma巴tter);捌 安 胺var捌 jsonFo哀rmatter扒 = conf碍ig.
36、Form吧atters.拔OfType().Fir半st();暗 笆 js耙onForma挨tter.Se巴rialize靶rSettin半gs.Cont奥ractRes办olver =昂 阿new癌 岸CamelCa皑sePrope挨rtyName案sContra拜ctResol蔼ver斑();芭 扳 摆/服务端缓存耙器拌 熬 扒GlobalC爸onfigur芭ation挨.Config鞍uration颁.Messag案eHandle爱rs.Add(笆new矮 般Caching哀Handler按(奥GlobalC耙onfigur芭ation氨.Config背uration哀);拌 耙 奥/
37、Web 白API 路由败 靶 co埃nfig.Ma办pHttpAt芭tribute澳Routes(靶);耙 般 co肮nfig.Ro白utes.Ma罢pHttpRo绊ute(傲 胺 癌 name:俺 稗Defaul爸tApi霸,巴 袄 疤 route芭Templat俺e: 办fstock斑/v2/api捌/contr奥oller/隘action暗/id奥,坝 氨 稗 defau八lts: 搬new矮 id =斑 绊RoutePa阿rameter疤.Option拔al 扮 爱 );般 氨 阿 班矮然后在API层凹进行接口代码编氨写,首先一个A跋PI的代码文件佰存放一块业务逻搬辑,例如节假日安设置
38、的API,阿我们可以按照如哀下编写:艾using拔 FundAP爸I.Model跋s;岸using盎 FundAP扒I.Model氨s.vo;霸using俺 FundAP扒I.Servi埃ces;癌using吧 System吧;耙using哀 System暗.Collec佰tions.G案eneric;案using癌 System背.Web.Ht百tp;阿namespa把ce氨 FundAP坝I.Contr佰ollers八爸 哎public敖 奥class搬 版SyslogC板ontroll奥er瓣 : 办ApiCont暗roller柏 柏 暗 扮/跋 坝袄 败 办/碍 获取一个客户版在指定日
39、期的操笆作资金变动日志拔 袄 岸/巴 靶坝 哀 百/岸 安啊 半 埃/扮 肮熬 般 百HttpPos芭t俺办 稗 斑public阿 疤IHttpAc肮tionRes岸ult盎 AllSys八logByCu氨stomerA肮ndDate(熬Deliver矮yQueryV哀O吧 vo)暗 澳 澳 百 哎DateTim颁e傲 dtBegi案n = 唉DateTim隘e爱.Parse(肮vo.begi傲ndate);伴 癌 蔼DateTim坝e稗 dtEnd 氨= 巴DateTim巴e皑.Parse(熬vo.endd皑ate);哎 绊 疤List邦 ret =胺 瓣new伴 熬List败();氨 扮
40、re俺t.Add(皑new扒 按SyslogS笆ervice摆().GetB斑yCustom懊erId(vo鞍.u_logi罢nname)袄;暗 叭 re艾t.Add(盎new昂 啊Info拔(芭获取成功邦);扒 翱 白return奥 Ok(ret背);办 巴 爱 挨 袄/八 芭跋 翱 般/盎 获取该日所有阿用户的资金变动扮日志柏 捌 吧/皑 巴艾 疤 搬/安 霸案 绊 按/袄 败碍 叭 柏HttpPos耙t埃八 爸 安public拌 拌IHttpAc白tionRes扳ult巴 AllSys半logByDa捌te(爸Deliver巴yQueryV拔O班 vo)奥 败 艾 澳 拔DateTim按
41、e安 dtBegi埃n = 叭DateTim拔e昂.Parse(班vo.begi安ndate);拔 绊 按DateTim艾e疤 dtEnd 邦= 搬DateTim芭e八.Parse(敖vo.endd把ate);搬 版 安List柏 ret =板 稗new澳 百List按();捌 办 re班t.Add(埃new皑 昂SyslogS敖ervice稗().GetA罢llByDat伴e( dtBe熬gin, dt搬End);坝 澳 re叭t.Add(袄new矮 按Info皑(懊获取成功艾);拔 稗 盎return挨 Ok(ret耙);翱 懊 摆 扒 袄/懊 百敖 版 哎/懊 所有客户的总霸变动日志案
42、芭 艾/捌 霸肮 跋 胺/稗 凹盎 隘 爱HttpPos奥t百疤 熬 肮public挨 瓣IHttpAc伴tionRes鞍ult版 AllSys跋log()奥 背 岸 八 埃List跋 ret =班 耙new埃 按List隘();癌 芭 re巴t.Add(哎new白 蔼SyslogS蔼ervice败().Sele把ctAll()皑);败 皑 re扳t.Add(懊new百 绊Info爱(背获取成功捌);癌 蔼 巴return版 Ok(ret暗);胺 凹 皑 耙捌在服务层,我们百需要书写具体的伴实现代码:疤using佰 FundAP柏I.commo啊ns;昂using搬 FundAP伴I.Mode
43、l凹s;按using鞍 FundDB胺;板using瓣 MongoD板B;柏using疤 System昂;摆using皑 System霸.Collec颁tions.G按eneric;胺using扒 System罢.Linq;霸namespa扒ce八 FundAP袄I.Servi岸ces稗伴 敖public败 疤class奥 跋SyslogS扳ervice霸 昂 版 般public坝 艾void翱 ADD(艾SysLog按 item)俺 阿 笆 唉 岸using暗 (埃FundMon岸goDB八 mdb = 懊new奥 皑FundMon袄goDB拔()般 胺 把 靶 斑 隘var巴 collec
44、肮tion = 吧mdb.Get岸Collect傲ion();袄 坝 埃 colle拔ction.I柏nsert(i吧tem);熬 办 伴 案 拔 坝 癌public摆 胺IEnumer扮able碍 Selec按tAll()板 百 搬 叭 把using袄 (罢FundMon百goDB搬 mdb = 把new懊 安FundMon吧goDB疤()扳 瓣 啊 摆 翱 瓣var邦 collec碍tion = 癌mdb.Get版Collect把ion();笆 坝 罢 艾var斑 query 氨= 搬from哎 delive碍ryStock坝 扮in阿 collec艾tion.Li唉nq() 般selec
45、t埃 delive把ryStock蔼;扒 矮 耙 版IEnumer巴able芭 deliv摆eryStoc拔kIEnume唉rator =安 query.跋AsEnume隘rable()耙;皑 傲 隘 deliv坝eryStoc爸kIEnume胺rator =伴 捌StructC捌lone昂.CloneL扳ist(del白iverySt鞍ockIEnu叭merator奥);扮 傲 八 败return傲 delive凹ryStock叭IEnumer绊ator;澳 疤 跋 蔼 瓣 八 拜/盎 疤半 案 稗/昂 根据客户查找爸 百 碍/鞍 班氨 八 唉/叭 爸百 俺 霸/靶 阿氨 八 笆public
46、埃 斑IEnumer耙able板 GetBy笆Custome跋rId(瓣string癌 loginn摆ame)扳 靶 巴 昂 安using暗 (哎FundMon白goDB叭 mdb = 拔new叭 碍FundMon半goDB佰()败 熬 按 暗 奥 哀var稗 collec哎tion = 捌mdb.Get皑Collect佰ion();搬 案 昂 板IEnumer傲able俺 deliv叭eryStoc霸kIEnume胺rable =蔼 collec稗tion.Fi啊nd(c =啊 c.u_lo疤ginname捌 = log版inname)澳.Docume爸nts;拌 按 扮 deliv笆ery
47、Stoc罢kIEnume挨rable =疤 佰StructC懊lone斑.CloneL佰ist(del癌iverySt版ockIEnu叭merable矮);暗 斑 肮 安return百 delive跋ryStock班IEnumer哎able;埃 捌 背 斑 俺 绊 癌 澳 蔼/败 伴摆 稗 拔/隘 根据客户查找耙 唉 俺/岸 巴叭 唉 把/胺 靶捌 斑 办/哀 袄扮 颁 鞍public疤 埃IEnumer霸able办 GetAl捌lByDate摆(矮DateTim澳e袄 dtBegi拌n, 矮DateTim拌e叭 dtEnd)叭 隘 稗 柏 隘using半 (败FundMon半goDB挨 md
48、b = 艾new耙 挨FundMon哎goDB摆()皑 绊 懊 巴 柏 吧var凹 collec艾tion = 摆mdb.Get百Collect瓣ion();哀 盎 案 稗IEnumer熬able吧 deliv吧eryStoc颁kIEnume懊rable =佰 collec案tion.Fi稗nd(c =隘 c.date八 dtBe挨gin & 斑c.date 芭 dtEnd奥).Docum霸ents;耙 扒 隘 deliv捌eryStoc敖kIEnume安rable =艾 埃StructC爱lone艾.CloneL岸ist(del安iverySt暗ockIEnu巴merable背);捌 凹 凹
49、 爸return啊 delive吧ryStock坝IEnumer扮able; 绊 捌 办 傲 罢 敖 俺public袄 摆void绊 Save(坝SysLog翱 item)氨 颁 百 岸 昂using翱 (唉FundMon笆goDB艾 mdb = 佰new阿 袄FundMon稗goDB巴()傲 埃 稗 隘 颁 败var拌 collec安tion = 肮mdb.Get哀Collect搬ion();扳 按 办 colle叭ction.S爱ave(ite袄m);稗 扳 袄 岸 蔼 俺百5.3 数据库安技术唉选用数据库涉及芭到很多地方,本邦文选中了Mon拜godb数据库蔼,肯定很多人都白说了,为什么选
50、扮用一种大家都不袄熟悉的数据库呢般?原因如下:拔Mongodb爸到3.0版本以袄后还是很稳定的坝,内置的缓存使案查询速度非常快哎,这样服务器会癌降低很多压力。搬Mongodb疤没有SQL语言挨,这样可以让我拜们的业务逻辑更安清晰,大家都希安望自己的代码很埃干净。摆我们的系统知识皑规划的第一步,鞍将来要做大数据靶分析,Mong坝odb作为非关巴系型数据库,在疤多版本迭代、多绊版本数据并存分般析方面还是非常爱有实力的。稗MondoDB俺基础封装如下:八using暗 System叭;哀using岸 MongoD扳B;罢namespa白ce哀 FundDB靶伴 搬public案 耙class凹 岸Fu
51、ndMon傲goDB佰: 般IDispos巴able安 叭 矮 蔼private阿 绊Mongo凹 _mongo俺;昂 奥 拜private阿 拜IMongoD半atabase澳 _db;捌 疤 般private氨 罢static把 斑string蔼 connec叭tionStr稗ing = 罢Server坝=127.0.袄0.1;JD_稗DB搬;罢 俺 拔private芭 哀static昂 唉readonl八y般 摆string按 _conne跋ctionSt办ring = 碍connect班ionStri巴ng.Spli伴t(岸;阿)0;鞍/ Ser跋ver=127绊.0.0.1艾;哎 袄
52、 巴private奥 班static斑 绊readonl半y案 拌string敖 _dbNam敖e = con疤nection癌String.百Split(艾;艾)1;百 扒 跋public氨 FundMo拌ngoDB()扮 跋 : 唉this办(_conne袄ctionSt暗ring, _鞍dbName)皑 败 伴 扮 澳 氨 敖public碍 FundMo肮ngoDB(哎string澳 dbName案)癌 挨 : 半this岸(_conne坝ctionSt罢ring, d按bName)伴 叭 巴 埃 芭 办 奥/隘 坝八 啊 拜/胺 构造函数。根靶据指定连接字符百串和数据库名吧 邦 叭/板
53、 哀哀 办 拌/芭 邦八连接字符串扮蔼 按 爸/瓣 拜阿数据库名,可为蔼空,但必须在任岸何操作数据库之笆前要调用Use八Db()方法摆半 扒 敖public阿 FundMo矮ngoDB(扳string背 connec矮tionStr八ing, 唉string鞍 dbName班)傲 熬 跋 疤 案if搬 (埃string爸.IsNull昂OrEmpty白(connec暗tionStr捌ing)扳 熬 翱 斑throw佰 瓣new背 捌Argumen哀tNullEx稗ception芭(按connec傲tionStr绊ing熬);白 坝 _m爱ongo = 斑new爱 吧Mongo跋(connec碍
54、tionStr皑ing);背 靶 唉/ 立即连接隘 MongoD熬B捌 霸 _m叭ongo.Co肮nnect()安;罢 澳 办if阿 (胺string按.IsNull爸OrEmpty拔(dbName拔) = 爱false碍)安 板 拔 _db =叭 _mongo昂.GetDat板abase(d爸bName);熬 斑 岸 板 百/昂 氨把 稗 捌/捌 切换到指定的柏数据库吧 罢 氨/伴 艾柏 埃 鞍/氨 拜百 皑 凹/傲 癌八 搬 八public袄 柏IMongoD板atabase般 UseDb(办string爸 dbName岸)般 隘 笆 案 案if唉 (扳string蔼.IsNull办OrE
55、mpty八(dbName奥)版 笆 吧 奥throw哎 敖new绊 绊Argumen爱tNullEx白ception矮(背dbName埃扒);摆 笆 _d板b = _mo霸ngo.Get搬Databas按e(dbNam按e);凹 阿 俺return唉 _db;爱 靶 斑 哎 凹/岸 耙百 办 坝/稗 获取当前连接鞍的数据库扒 澳 拔/懊 八傲 啊 板public百 罢IMongoD拌atabase昂 Curren败tDb稗 奥 班 傲 斑get稗 绊 百 熬 柏 皑if盎 (_db =靶= 啊null皑)白 埃 岸 佰throw耙 艾new皑 盎Excepti扒on癌(胺当前连接没有靶指定任何
56、数据库皑。昂);半 暗 败 坝return叭 _db;阿 耙 敖 袄 扳 八 唉/半 背拔 靶 翱/稗 获取当前连接凹数据库的指定集按合【依据类型】皑 瓣 拌/拔 癌拔 办 叭/袄 佰拜 摆 伴/柏 败败 昂 八public啊 敖IMongoC隘ollecti八on半 GetCo扮llectio绊n() 暗where班 傲T爱 : 案class稗 拔 霸 拌 坝return啊 笆this罢.Curren板tDb.Get埃Collect爸ion();凹 扳 佰 奥 案/吧 佰奥 巴 胺/昂 获取当前连接搬数据库的指定集皑合【根据指定名吧称】爱 熬 氨/拜 捌办 败 按/袄 拜阿 扮 按/叭 把芭
57、集合名称笆懊 捌 翱/板 捌俺 澳 搬public班 巴IMongoC艾ollecti拜on叭 GetCo稗llectio拜n(爸string扒 name) 笆where奥 按T哎 : 暗class颁 叭 邦 办 胺return凹 癌this八.Curren昂tDb.Get皑Collect艾ion(name)暗;柏 白 颁 坝 扳public懊 绊void背 Dispos扳e()百 百 拔 唉 拌if笆 (_mong案o != 笆null板)鞍 埃 挨 芭 邦 _mong氨o.Dispo拜se();奥 霸 摆 _mong埃o = 拔null凹;哀 俺 唉 吧 懊 佰八5.4 高并发瓣技术搬基于
58、IIS的.半net技术作为澳服务端,那么怎败么做到很高的并癌发,能让APP半有更流畅的访问耙速度,并且不会矮因为客户多速度斑而明显降低,我艾们应该怎么做呢安?暗设置IIS,能叭接受更多的请求版;定期回收资源疤,保证在健康的爸状况下运行。败多使用缓存,采把用数据库会损耗傲服务器性能,而巴且通常存放在数办据库中的内容越伴多,越有利于并捌发。例如股价的搬访问一定要快,奥我们放在内存中安,保障客户端只碍要是访问,就能颁立即返回。我们摆用的是Memc拔ache作为缓案存服务,当然我爸更倾向于用Re芭dis。傲using啊 FundAP般I.Model班s;按using八 FundAP背I.Servi颁c
59、es;斑using耙 System把;暗using稗 System挨.Collec坝tions.G斑eneric;扒using氨 System败.Web;板namespa耙ce办 FundAP敖I.App_C百atche斑爱 哀public俺 啊class斑 扒StockPr案iceHist鞍oryCach伴e岸 哀 按 稗private百 奥static安 懊int氨 CACHED伴DAYS = 斑7; 阿/缓存7个工摆作日的股票价格艾 安 般public熬 摆static跋 肮void昂 CacheS绊tockPri霸ceHisto把ry()半 把 疤 哀 拌IEnumer八able艾 h
60、ol办idays =俺 挨new拜 芭CloseDa柏ysServi巴ce耙().getW扳orkDays败Before(按CACHEDD斑AYS);坝 白 Ca芭cheStoc吧kPriceH坝istory(跋holiday扳s);班 敖 敖 佰 靶private般 把static疤 安void皑 CacheS跋tockPri芭ceHisto隘ry(奥IEnumer绊able隘 days)昂 啊 把 氨 癌if哎 (days 唉= 肮null肮) 安return澳;白 癌 稗IEnumer埃able佰 catch搬edDays 半= (白IEnumer哀able般)八HttpRun凹time
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 污水管网施工材料选择方案
- HZS50型混凝土搅拌楼质量控制方案
- 广西柳州2024-2025学年高二10月月考英语试题(解析版)
- 2024年品牌代言人与广告发布合同
- 2024年会议摄影与录像合同
- 2024年度河北省高校教师资格证之高等教育心理学自我检测试卷A卷附答案
- 黑龙江省龙东联盟2024-2025学年高一上学期10月月考数学试卷(解析版)
- 广西钦州市2024-2025学年高一上学期10月同步月考测数学试卷(解析版)
- 2024年度江西省高校教师资格证之高等教育法规题库检测试卷B卷附答案
- 医院党支部换届发言稿
- 部编人教版四年级上册语文 第四单元核心考点清单
- 全国文物保护工程施工一级资质单位
- 8.1运行效率概述
- 有趣的英国文化
- 皮内注射评分标准
- 上海交通大学学生生存手册
- 治疗药物监测与精准用药
- 施家山隧道瓦斯爆炸演练实施方案
- 市场调查方法-观察法教学课件
- 人教A版高中数学必修第一册《指数函数》评课稿
- 肾内科医疗教学计划
评论
0/150
提交评论