1、*有限公司*XXXXV1.0详细设计说明书XXXXXXX部2008年 5 月*编制部门EPG批准日期2008/1/22 文档修改记录版本修订人修订说明批准人发布日期1.0.1.0XXX初稿,X年X月X日提交同行评审。*200805071.0.1.1XXX根据同行评审的结论做了修订。*20080508说 明本文档中所包含的信息属于商业机密信息,如无*有限公司的书面许可,任何人都无权复制或利用。模版版本信息编辑部门:EPG批准日期:2022/1/22目录1引言11.1编写目的11.2背景11.3定义11.4法律法规和参考资料12系统详细设计22.1.1个股行情接口模块22.1.2股票排名接口模块4
2、2.1.3资讯接口模块62.1.4交易(中间层服务)模块82.1.5行情(中间层服务)模块142.1.6资讯(中间层服务)模块183管理后台数据库设计223.1基本思路223.2数据结构描述22I1 引言1.1 编写目的本详细设计说明是项目设计阶段的必要文件,明确了本项目的需求的实现方式。本设计把系统划分成若干个模块,决定了各个模块之间的接口、模块之间传递的信息,已经数据结构、模块接口的设计。在本阶段中,确定应该如何具体实现所以的功能,从而为编码阶段把这些描述直接翻译成具体的程序设计语言提供依据。本设计的预期读者:项目开发人员、项目评审者、项目测试和维护人员。1.2 背景项目名称*XXXXV1
3、.0项目简称XXXXV1.0英文缩写项目编号P2008XXXX版本号1.0任务提出者 开发者 用户 同其他系统的关系1.3 定义1.4 法律法规和参考资料项目需要说明书项目可行性研究报告项目立项申请表金融产品销售系统周边接口规范功能模块接口(XXXX)“XXX”XXX分析系统通讯协议设计说明书2 系统详细设计2.1.1 个股行情接口模块2.1.1.1 功能描述根据股票(或期货)信息获得该股票(或期货)的行情数据。行情数据包括实时数据(包含个股五档),分时数据,K线数据等。2.1.1.2 相关需求需求功能0401, 0403, 0404, 04052.1.1.3 输入项股票信息(CodeInfo
4、)。2.1.1.4 输出项行情信息(AnswerQuoteData)2.1.1.5 相关数据结构说明CodeInfo股票信息类AnswerQuoteData 行情信息类AnsRealTime 实时行情信息类AnsTrendData 分时行情信息类AnsDayData K线行情信息类2.1.1.6 相关接口或者存储过程说明QuoteManager:/ 获得实时行情信息public static AnswerQuoteData getRealTime(CodeInfo codeInfo) throws QuoteException ;/ 获得分时行情信息public static AnswerQu
5、oteData getTrendData(CodeInfo codeInfo) throws QuoteException ;/ 获得K线行情信息public static QuoteData getTechData(CodeInfo codeInfo) throws QuoteException ;2.1.1.7 主要页面设计无2.1.1.8 关键算法说明2.1.1.9 关键流程说明a) QuoteManager通过Connection Pool获得有效的通向行情服务器的链接QuoteConnection。b) 根据请求的行情类型,将股票(或期货)信息(CodeInfo)打包成请求数据包As
6、kDatac) 将请求数据包拼成二进制数据流通过QuoteConnection发送给行情服务器d) 取得行情服务器返回的行情数据,并解析打包成AnswerQuoteData,返回。2.1.1.10 特殊情况说明股票(期货)实时行情信息将使用缓存存储从行情服务器主推过来的,Client需要实时行情信息时,直接从缓存里获取。2.1.1.11 关键错误处理说明l 链接超时:取消当前服务,断开链接,重连。l 请求应当超时:从请求发生到收到应当的时间超过设置值,则重新发送请求。l 链接断开:定时访问服务器,防止因为长期未响应导致被服务器主动断开;如果已经被断开,则过一定间隙后尝试连接备用服务器。l 上诉
7、超时的参数从配置文件中读取。2.1.1.12 尚未解决的问题2.1.2 股票排名接口模块2.1.2.1 功能描述根据用户请求,排序列出相应的股票数据2.1.2.2 相关需求需求功能04022.1.2.3 输入项排名请求信息:市场类型、显示数目、升降序、排序类型等2.1.2.4 输出项AnswerQuoteData2.1.2.5 相关数据结构说明ReqAnyReport:排行请求类ReqGeneralSort:排行请求类AnsReportData:排行返回类AnsGeneralSort:排行返回类2.1.2.6 相关接口或者存储过程说明QuoteManager:/ 获得排名报表public st
8、atic AnswerQuoteData getReportData(ReqAnyReport req) throws QuoteException ;/ 获得综合排名public static AnswerQuoteData getGeneralData(ReqGeneralSort req) throws QuoteException ;2.1.2.7 主要页面设计2.1.2.8 关键算法说明2.1.2.9 关键流程说明参考个股行情接口模块2.1.2.10 特殊情况说明普通排名和综合排名的区分:对下来排名使用ReqAnyReport请求(普通排名):上海A股涨幅排名上海B股涨幅排名深圳A股
9、涨幅排名 深圳B股涨幅排名上海债券涨幅排名深圳债券涨幅排名上海基金涨幅排名深圳基金涨幅排名对下来排名使用ReqGenarelSort请求(综合排名):上海A股综合排名上海B股综合排名深圳A股综合排名 深圳B股综合排名上海债券综合排名深圳债券综合排名上海基金综合排名深圳基金综合排名2.1.2.11 关键错误处理说明参考个股行情接口模块2.1.2.12 尚未解决的问题2.1.3 资讯接口模块2.1.3.1 功能描述提供资讯信息访问的接口。2.1.3.2 相关需求功能需求0501,0502,0503,0504,05052.1.3.3 输入项InfoListIdInfoId2.1.3.4 输出项资讯信
10、息(AnsInformationData)2.1.3.5 相关数据结构说明InfoListRequest:资讯分类信息请求类InfoContentRequest:资讯内容信息请求类AnsInfoList:资讯分类信息类AnsInfoContent:资讯内容类2.1.3.6 相关接口或者存储过程说明InformationManager:/ 获得资讯栏目信息或索引信息public static AnswerInformationData getInfoList(InfoListRequest request) throws QuoteException ;/ 获得资讯内容public static
11、 AnswerInformationeData getInfoContent(InfoContentRequest request) throws QuoteException ;2.1.3.7 主要页面设计2.1.3.8 关键算法说明2.1.3.9 关键流程说明参考个股行情接口模块2.1.3.10 特殊情况说明资讯栏目信息的取得将采用AR,而其它资讯信息则采用Socket向服务器发送请求的方式。由于包括个股资讯在内的资讯信息都保存在行情服务器,且采用的是同一套协议机制,所以资讯的接口和行情类似。2.1.3.11 关键错误处理说明参考个股行情接口模块2.1.3.12 尚未解决的问题2.1.4
12、交易(中间层服务)模块2.1.4.1 功能描述交易模块用来实现 证券、期货、基金的登录、委托买卖、查询、账单、转帐等所有交易相关的功能。IPO图:2.1.4.2 相关需求需求功能:证券:01010124开放式基金:0201-0212期货:0301-03092.1.4.3 输入项输入项:页面输入:function_idexchange_typestock_accountstock_codeentrust_amountentrust_priceentrust_propentrust_bsquery_directionquery_modestart_dateend_datesession输入:ver
13、sionidentity_typeop_entrust_wayop_branch_noop_stationbranch_no fund_accountpassword交易模块的输入分为从web端提交的输入和从session提取的输入。2.1.4.4 输出项Json结构的输。输出项:出错时的输出项目:error_noerror_info正常输出时:可选输出项(由业务功能决定):1.无表格的反馈。反馈形式:filed1=value1 filedn=valuen 如:查询客户状态(证券)(功能号:209)branch_no=xxxxfund_account=xxxxonline_time=xxxxc
14、lient_name=xxxxmoney_count=xxxxmoney_type=xxxxenable_balance=xxxxexchange_type=xxxxstock_account=xxxx(具体可参考:金融产品销售系统_周边接口规范.xls文件)2.有表格的反馈(包含无表格反馈部分)反馈形式:table0=field1,field2,field3.fieldn|value11, value12, value13.value1n |value21, value22, value23.value2n|valuen1, valuen2, valuen3.valuenn2.1.4.5 相
15、关数据结构说明2.1.4.6 相关接口或者存储过程说明由金融产品销售系统_周边接口规范(证券、期货、基金)的所有交易功能均本模块的定义方式由代码自动生产工具生成。2.1.4.7 主要页面设计a) 证券-普通委托-买入界面证券委托买入页面可参考页面设计的buystock.htm页面。b)证券持仓证券持仓页面可参考页面设计的mystock.htm页面。c)基金-基金申购基金申购页面可参考页面设计的fund-perchase.htm页面。2.1.4.8 关键算法说明2.1.4.9 关键流程说明a).web端通过ajax的请求方式向EXAction发生请求。b).EXAction首先校验数据合法性(t
16、oken令牌控制、session有效期控制)。c)EXAction根据业务类型和交易功能号确定具体交易业务。d)由具体业务处理类(bizProcess)填充AR通讯包内容,其中PackInfo(通讯包结构)的营业部号、功能号、参数个数必须给定,整理好哪些是session中读取的参数,那些是从页面提供的参数,全部填充到PackInfo里paramBody类型的容器中。e)AR通讯发包,接受应当结构保存在ARDataSet类中。(对于登录功能完成后要把常用信息保存到session中,以便其他功能可以直接复用session保存的字段。)f)对结果按要求格式化(主要有排序、数据日期、时间、货币等的格式
17、化)。g)对格式化后的结果集打包成Json结构, 通过EXAction直接输出到页面。h)页面ajax回调函数解析Json结构,更加反馈的内容做相应的处理和用户提示。2.1.4.10 特殊情况说明2.1.4.11 关键错误处理说明提交的请求不合法:直接把出错原因和代码通过json反馈给页面 约定:error_no:从-10000到-10005表示web服务器自主返回的错误。具体的出错原因由Error_info返回。2.1.4.12 尚未解决的问题2.1.5 行情(中间层服务)模块2.1.5.1 功能描述行情(中间层服务)模块用来实现 证券、期货、基金的实时行情、分时图、K线图等行情功能相关从w
18、eb端请求到接口服务的过程。IPO图:2.1.5.2 相关需求需求功能:0401,0402,0403,0404,04052.1.5.3 输入项输入项:stockcode行情请求功能代码2.1.5.4 输出项Json结构的输。输出项:出错时的输出项目:error_noerror_info正常输出时: AnswerQuoteData转换为Json接口输出。具体可参考:“投资通”网上行情分析系统通讯协议设计说明书2.1.5.5 相关数据结构说明2.1.5.6 相关接口或者存储过程说明参考行情接口模块。2.1.5.7 主要页面设计a) 取实时行情(五档行情) 取五档行情可参考页面设计的buystock
19、.htm页面。b) 取分时图取分时图可参考页面设计的future-buy.htm页面。c) 取K线图取分时图可参考页面设计的future_market.htm页面。2.1.5.8 关键算法说明2.1.5.9 关键流程说明a).web端通过ajax的请求方式向QuoteAction发送行情请求。b).QuoteAction填充CodeInfo结构类内容。c)QuoteAction根据行情请求功能代码确定行情类别(实时、分时、K线、排名)。d)把请求结果AnswerQuoteData打包成Json结构, 通过QuoteAction直接输出到页面。e)页面ajax回调函数解析Json结构,更加反馈的
20、内容做相应的处理和用户提示。2.1.5.10 特殊情况说明AnswerQuoteData的结构集根据行情请求代码,分别调用不用的类来处理。可参照行情接口模块的规定。2.1.5.11 关键错误处理说明提交的行情请求无法出来时:直接把出错原因和代码通过json反馈给页面 约定:error_no:从-20000到-20020表示web服务器自主返回的行情错误。具体的出错原因由Error_info返回。行情先从缓存中取,如果该缓存的行情已经更新,则到调用行情类请求行情,判断依据:缓存更新标志(行情接口在更新了本地内存的最新后,会修改对于缓存(如果缓存存在)的状态标志,置为过期,告诉请求者需重新向接口请
21、求行情)。2.1.5.12 尚未解决的问题2.1.6 资讯(中间层服务)模块2.1.6.1 功能描述资讯(中间层服务)模块用来实现 证券、期货、基金的资讯栏目和资讯内容从web端请求到接口服务的过程。IPO图:2.1.6.2 相关需求需求功能:0501-05112.1.6.3 输入项输入项:InfoListNoInfoId2.1.6.4 输出项Json结构的输出。输出项:出错时的输出项目:error_noerror_info正常输出时:AnswerInfoList(栏目列表)转换为Json接口输出。AnswerInfoContent(资讯内容)转换为Json接口输出。具体可参考:“投资通”网上
22、行情分析系统通讯协议设计说明书2.1.6.5 相关数据结构说明2.1.6.6 相关接口或者存储过程说明参考资讯接口模块说明。2.1.6.7 主要页面设计a) 资讯首页资讯首页参考页面设计的index.htm页面。b) 证券资讯(部分)证券资讯页面参考页面设计的stock.htm页面。c) 期货资讯(部分)期货资讯页面参考页面设计的futures_index.htm页面。d) 基金资讯(部分)基金资讯页面参考页面设计的fund-main.htm页面。2.1.6.8 关键算法说明2.1.6.9 关键流程说明a).web端通过ajax的请求方式向InfoAction发送行情请求。b)InfoActi
23、on根据资讯请求栏目或者资讯内容确定资讯请求类别。c)把请求结果AnswerInfoList或AnswerInfoContent打包成Json结构, 通过InfoAction直接输出到页面。d)页面ajax回调函数解析Json结构,更加反馈的内容做相应的处理和用户提示。2.1.6.10 特殊情况说明AnswerQuoteData的结构集根据行情请求代码,分别调用不用的类来处理。可参照行情接口模块的规定。2.1.6.11 关键错误处理说明提交的资讯请求无法出来时:直接把出错原因和代码通过json反馈给页面 约定:error_no:从-30000到-30020表示web服务器自主返回的资讯错误。具
24、体的出错原因由Error_info返回。2.1.6.12 尚未解决的问题3 管理后台数据库设计3.1 基本思路相对于C/S版的XXXX,浏览器版XXXX项目一些新的功能和模块(如我关注的基金、股票、期货, 网站点击率,设置请求超时时间、网站模块配置等)需要新建一些数据库表,定义完表结构后还规范他们的接口,以生成存储过程,网站和数据库的联系是通过存储过程来进行的。本系统使用Oracle数据库。下面是各表的表结构,字段解释,接口的定义。详细的功能模块接口信息请参阅“功能模块接口_oracle.xls”文件;详细的表定义请参阅“数据库设计说明书_oracle.xls”3.2 数据结构描述网站中需要用
25、到但之前没有的表结构1. 我关注的产品(包含证券、基金、期货)2. 网站点击率3. 设置请求超时的时间4. 网站模块配置(针对不同的客户,哪些模块显示出来,哪些模块隐藏)1) 我关注的股票: tb_focus_stock(user_id(VARCHAR2(20),product_code(VARCHAR2(16),exchange_type(VARCHAR2(50)字段解释:user_id VARCHAR2 (32):用户Id号,用户表的主键product_code VARCHAR2 (32):产品编号exchange_type VARCHAR2 (32):产品的交易场地接口定义:功能号功能名
26、称接口名功能含义输入参数返回参数/值添加我关注的产品(股票、基金、期货)add将指定的产品添加为我关注的产品productCode:产品编号userId:用户名exechangeType:交易场地错误号:error_no错误信息:error_info删除自选股delete从我关注的产品列表删除指定的产品productCode:产品编号userId:用户名exechangeType:交易场地错误号:error_no错误信息:error_info显示我的自选股列表list列出我关注的产品userId:用户名exechangeType:交易场地返回值: List产品的结果集2) 网站点击率:反映各个
27、模块/各个页面的点击频率 tb_clicks(module_id (VARCHAR2(32) ,times(NUMBER(32)字段解释: module_id VARCHAR2(32) 模块编号(即各个模块的点击率)module_date Date 点击日期timesNUMBER (32):点击的次数接口定义:功能号功能名称接口名功能含义输入参数返回参数/值点击addClicks将点击次数加1moduleId: 模块编号错误号:error_no错误信息:error_info清零clearClicks将指定模块的点击次数重置为0moduleId: 模块编号错误号:error_no错误信息:err
28、or_info查看View查看指定模块当前的点击次数moduleId: 模块编号点击次数:times3) 请求超时的时间设置表设定各模块响应的超时时间 tb_overtime(module_id (VARCHAR2(32) ,time_type(NUMBER(32)字段解释: func_id VARCHAR2(32) 功能编号(即各个功能的响应时间)time_type VARCHAR2 (32):超时的时间类型(快、中、慢)接口定义:功能号功能名称接口名功能含义输入参数返回参数/值查看超时时间view根据模块编号查看该功能的超时时间类型funcId: 功能编号返回该功能的超时时间类型设置超时时
29、间update设置指定功能的超时时间类型funcId: 功能编号timeType:超时时间类型(快、中、慢)错误号:error_no错误信息:error_info4) 网站模块配置tb_module_config(module_id(VARCHAR2(32),module_name(VARCHAR2(32) ,parent_module_id(VARCHAR2(32) ,order_navigation(NUMBER (2) ,order_page(NUMBER (2), visible NUMBER(1)字段解释: module_id VARCHAR2(32) 模块号module_name
30、VARCHAR2(32) 模块名称module_description VARCHAR2(200) 模块描述parent_module_id VARCHAR2(32) 父模块号(上一级的模块的模块号)visibleNUMBER(1)指定模块显示,还是隐藏接口定义:功能号功能名称接口名功能含义输入参数返回参数/值维护update设置某模块的内容(包含模块的名称,该模块是否显示,模块的父模块号)moduleId: 模块号moduleName模块名称parentModuleId父模块号module_description模块描述错误号:error_no错误信息:error_info受控 第 31 页 共 31 页 (机密)
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100