统计报表
公司运营报表(gray)
表结构:公司ID/公司名称/运营中心ID/日期/注册数/期初余额/期间入金/期间出金/额度调整/平仓盈亏/派息/手续费/利息/收益分成/期末余额
统计维度: 公司+日期(天)
统计范围: 交易数据+业务数据
客户成交报表(super)
表结构:客户交易账号ID/公司ID/营运中心ID/用户编号/产品ID/订单类型/订单方向/订单号/母订单号/交易方向/订单状态/委托价格/委托数量/成交均价/成交数量/撤销数量/货币单位/开仓手续费(市场货币)/开仓手续费(账户货币)/订单号/下单时间/更新时间
统计范围: 订单记录与成交记录
统计维度: 公司+用户+母订单号+日期(天)
订单明细:查询客户成交报表与t_item_deal明细表
收益分成报表(greet)
表结构:公司ID/营运中心ID/日期(天)/手续费(总)/利息(总)/手续费(公司)/利息(公司)/手续费(顶层)/利息(顶层)/手续费(营运中心)/利息(营运中心)/更新时间
统计范围: 用户交易明细数据
统计维度: 公司+日期(天)
备注: 1. 收益总额=手续费+利息费<br>2. 此报表要计算分成, 将分成规则通过日志打印
手续费收益报表(greet)
表结构: 客户交易账号ID/客户编号/公司ID/营运中心ID/开仓时间/订单ID/交易记录ID/产品ID/开仓成交均价/开仓数量/货币单位/固定手续费/固定手续费(USD)/公司分成/营运中心分成/顶层公司分成
统计范围: 用户交易数据表, 交易类型为开仓的数据
统计维度: 公司+交易账户ID+母订单号
备注: 1. 产品名称等信息从缓存读取 <br>2. 分成计算规则打印日志追踪
利息收益报表(greet)
表结构: 客户交易账号ID/客户编号/公司ID/营运中心ID/持仓金额峰值/固定利息/公司分成/营运中心分成/顶层公司分成/统计日期
统计维度: 公司+交易账户ID+日期(天)
统计范围: 用户交易记录, 交易类型为利息的数据
备注: 1. 产品名称等信息从缓存读取 <br>2. 分成计算规则打印日志追踪<br>3. 持仓金额峰值取交易记录表的src_open_price字段
客户账户报表(allen)
表结构:公司ID/客户编号/交易账户ID/账户组/运营中心ID/日期/期初余额/期间入金/期间出金/额度调整/派息/平仓盈亏/交易手续费/利息/期末余额
统计维度: 公司+交易账户ID+日期(天)
统计范围: 交易记录与业务数据
注意:<br>1. 按日期范围检索, 以统计维度的字段做GROUP BY汇集,每个用户一条, 求和统计结果<br>2. 按日期范围检索, 期末余额取结束日期的期初余额
公司账户报表(射单)allen
表结构:公司ID/客户编号(B端)/交易账户ID(B端)/账户组/运营中心ID/日期/期初余额/期间入金/期间出金/额度调整/派息/平仓盈亏/交易手续费/利息/期末余额
统计维度:交易账户ID(B端)+日期(天)
统计范围: 交易记录与业务数据
注意:<br>1. 按日期范围检索, 以统计维度的字段做Group By汇集,每个用户一条, 求和统计结果<br>2. 按日期范围检索, 期末余额取结束日期的期初余额
客户盈亏报表(ray)
表结构: 公司ID/客户编号/交易账户ID/运营中心ID/产品ID/平仓时间/订单号ID/交易记录ID/开仓方向/持仓成本均价/平仓成交均价/平仓数量/货币单位/平仓盈亏/平仓盈亏(USD)/创建时间
统计维度: 公司+交易账户ID+母订单号+平仓
统计范围:交易记录表, 交易类型为平仓的记录数据
公司盈亏报表(射单)ray
表结构:公司ID/客户编号(B端)/ 交易账户ID(B端)/ 运营中心ID/平仓时间/订单号ID/交易记录ID/产品ID/开仓方向/持仓成本均价/平仓成交均价/平仓数量/货币单位/平仓盈亏/平仓盈亏(USD)/创建时间
统计维度: 交易账户ID(B端)+ 母订单号+平仓
统计范围:交易记录表(GW平台), 交易类型为平仓的记录数据
手续费收益报表(射单)gray
表结构:公司ID/客户编号(B端)/交易账号ID(B端)/营运中心ID/开仓时间/订单号ID/交易记录ID/产品ID/开仓成交均价/开仓数量/货币单位/固定手续费/固定手续费(USD)
统计维度: 交易账户ID(B端)+母订单号
统计范围: 交易记录表, 开仓记录
利息收益报表(射单)gray
表结构: 公司ID/客户编号(B端)/交易账号ID(B端)/营运中心ID/持仓金额峰值/固定利息
统计维度: 交易账户ID(B端)+日期(天)
统计范围: 交易记录表, 类型为利息记录数据
IX移植
客户出入金报表优化
公司管理
公司配置
1. 存款配置:界面呈现交互改变, 原有接口逻辑不变
2. 取款配置, 交互更改, 接口逻辑不变
3. 其他配置, 交互更改, 接口逻辑不变
新增子公司
1. 新建B端公司
2. 新建运营中心
表结构
营运中心:ID/ 名称/联系人/联系电话/创建人/创建时间
营运中心与公司关联 :ID/营运中心ID/公司ID
3. 需根据角色做数据过滤, 营运中心角色登陆,只可看到自己下属的公司 (只能查看, 无其他操作权限)
分成模板
表结构
1. 分成模板表:ID/模板名称/GW分成比例/营运中心分成比例/状态/修改时间/操作人
3. 分成模板明细表:ID/分成模板表ID/市场/类型/百分比
业务规则
1. 一个分成模板可以对应多条模板明细规则
2. 分成模板的操作要记录至系统操作日志
射单账号管理
表结构
1. 射单账号表: ID/营运中心ID/公司ID/射单账号/射单密码/修改时间/操作人
业务规则
1. 射单总额与射单次数: 查询LP射单交易汇总表
客户管理
客户维护
客户明细
交易平台: <br>1. 资金信息实时交易部分数据从pika获取<br>2. 持仓信息的浮动盈亏调用ixpnl接口获取<br>3. 委托单信息查找t_item_order表获取
银行卡信息: 读取原IX接口
历史交易信息: 读取trade记录
资金流水: 从交易记录查询接口获取(appGetTradeReportPage)
列表: 参照原型移植
客户组别设置
1. 创建BO业务账户组, 通过客户组类别, 关联对应交易账户组
2. 整合原IX账户组存款设置信息, 支持存款额度设置
消息管理
短信发送记录
短信模板管理
短信账号管理
邮件发送记录
邮件模板管理
新增表结构
营运中心:ID/ 名称/联系人/联系电话/创建人/创建时间
营运中心与公司关联 :ID/营运中心ID/公司ID
射单账号表: ID/营运中心ID/公司ID/射单账号/射单密码/修改时间/操作人
分成模板表:ID/模板名称/GW分成比例/营运中心分成比例/状态/修改时间/操作人
分成模板明细表:ID/分成模板表ID/市场/类型/百分比
LP射单交易汇总表:ID/射单账号表ID/交易账号(B端)/公司ID/日期(天)/手续费/利息/派息/保证金余额/交易总金额/交易次数/交易成功次数
LP射单交易明细表: ID/射单账号表ID/交易账号(B端)/公司ID/订单号/母订单号/订单类型/订单数量/成交单号/成交均价/成交数量/成交状态/汇率/买卖方向/成交状态
LP持仓汇总表:ID/射单账号表ID/交易账号(B端)/公司ID/日期(天)/产品/持仓数量/开仓价格/止盈/止损/浮动盈亏/买卖方向/佣金/利息
分红派息
表结构
除权派息表: ID/公司ID/提案状态/执行状态/执行完成数量/执行总数/股票市场/股票代码/行动类型/执行方式/每股派发金额/货币单位/除权日/强平日/登记日/派息日/配置同步状态/提案人/审批人/更新时间/备注
派息登记表:ID/公司ID/除权派息表ID/状态/股票市场/股票代码/投资者账号/持仓数量/每股派发金额/派发总金额/货币单位/除权日/登记日/派息日 【唯一索引:股票代码/除权日/登记记录编号/投资者账号】
<strike style="">除权强平撤单登记表:ID/状态/股票市场/股票代码/投资者账号/类型(强平或撤单)/持仓量/成本均价/强平价格/货币单位/除权日/强平日/强平时间/委托方向/交易类型/委托数量/委托价格</strike>
分红流程(greet前端提案功能)
1. 新增提案, 设定登记日与派息日 (时间必须在当前时间之后), 选择日期后, 时间通过对应产品的结算时间自动带出
2. 修改: 待审批的提案,所有属性都可修改; 已审批的提案, 只能修改派息日和每股派发金额, 取消提案操作只针对待审批的提案, 取消后, 只有查看功能
3. 执行操作:【执行派息】, 执行状态改为待派息,必须为已登记状态才能执行派息, 不触发【用户分红处理流程】; 【取消派息】, 撤回待派息状态(如果是登记, 为已登记)
4. 定时任务服务调度(每15分钟轮询)除权派息表, 过滤审批通过且待登记的记录, 取出登记日时间, 执行【用户仓位登记处理流程】
5. 定时任务服务调度(每15分钟轮询)除权派息表, 过滤审批通过,且待执行的记录, 执行【用户分红处理流程】
6. 除权日: 精确到天; 登记日: 精确到秒, 但用户只能选择天, 时间由结算日带出; 强平日: 精确到秒, 完全由用户选择。 以上三个日期选择, 必须大于当前时间点
强平/撤单处理流程(greet)
1. 行动类型为拆股/合股/配股/送股时, 进入此流程
2. 填写强平日点击审批通过后,不可修改
3. 审批操作, 需检测该产品对应市场的交易时间, 必须满足两个条件: <br>a) 设置的时间必须大于当前时间半小时以上<br>b) 设置的时间, 必须在交易时间范围之内<br>c) 交易时间由产品提供固定的模板, 每个市场有对应的交易时间范围
4. 定时任务调度(每3分钟轮询)查询除权派息表, 检测已审批通过且执行状态是待强平的记录;<br> 调用交易服务器接口(需判断是否到达提案的强平时间), 发送产品,执行记录编号,强平日等配置信息,返写执行状态;<br>如果失败, 进入下次任务调度, 超过强平日当天, 不再执行, 发送邮件预警。(增加调用次数记录, 每次执行记录更新时间)
5. 交易服务器处理逻辑:<br> a) 根据产品检索所有持仓(撤单)信息, 在指定的强平时间点执行强平(撤单)动作;<br> b) 返写交易记录表, 加上对应执行类型, 强平时间, 执行记录编号,执行状态,强平价等信息;<br> c) 交易服务器支持f..f(fx) = f(x) 幂等调用, 如果休市, 取结算价强平。
6. 后台从交易记录表读取数据, 展示强平与撤单记录
SUB-用户仓位登记处理流程(super)
1. 读取ix_trade的t_item_position表记录, 找出产品对应的所有用户的有效持仓, 写入派息登记表, 派发金额不写入
2. 返写除权派息表,将待登记状态改为已登记
3. 登记失败或出现异常, 发送预警
4. 事务控制
SUB-用户分红处理流程(super)
1. 根据除权派息表ID查找派息登记表所有记录,放至MAP缓存, 分500一批处理(每批创建一个事务)
2. 根据产品货币与账户货币, 去虚拟产品里查找对应配置的汇率
3. 返写该批次记录的每股派发金额, 派发总金额
4. 传递该批次记录(非单条), 执行额度调整方法,写入对应调整的额度类型
5. 执行成功后, 提交整个事务(--fescar分布式事务)
6. 失败记录, 后台增加“重做”按钮, 重新执行派息与额度调整, 核心逻辑注意封装复用, 可以勾选, 支持多条重做,如果勾选10条, 其中3条失败, 不应阻塞
执行记录展示(Paul)
包含: 派息记录/强平记录/撤单记录
交易服务器逻辑
<br> 1. 接口传递参数: 行动类型, 执行方式, 提案ID, 强平时间(精确到时间点),执行记录编号, 除权日, 产品<br> 2. 交易服务器接收成功或失败, BO返写标记状态, BO在提案上增加重新执行强平操作, 如果接收失败, 重新发送交易服务器执行。<br> 3. 交易服务器逻辑: 交易服务器根据强平时间, 执行强平处理, 如果强平时间是在结算日之前, 取结算价; 如果是在结算日之后, 取第二天的第一口报价。<br> 4. 交易服务器做强平或撤单, 需要返写执行记录编号。<br> 5. 交易服务器如果某个账户强平失败, 需要支持重新检测, 自动执行 <br>
同步服务
BO同步服务改造
Data_Monitor改造-super
1. 去除kafka及sync_consume服务
2 . 需要同步的表做成可配置形式, 目标表和来源表的表名称可以支持映射,<br>例如(item_symbol->t_item_symbol, item_deal->gw_item_deal)
3. 从Canal监听获取批次数据, 直接持久化对应数据表, 按事务处理
4. 判断监听数据类型, 如果是交易数据, 需要保存游标信息,纳入同一事务处理
5. 数据处理异常, 加入预警通知
交易报表改造(T_TRADE)-allen
1. 通过游标方式处理,记录相关事件, 剥离至BO_TASK工程处理
发送消息通知 -allen
1. 剥离消息服务至BO_TASK发送处理, 通过消息状态控制逻辑处理
GW同步服务 -super
1. 复用上面改造后的Data_Monitor服务, 流程基本一致, 独立运行
2. 只配置需要的交易信息表, 和射单报表相关的数据, 核心三张(order,position, deal)交易表, 不必要的表不用同步
3. 游标信息表复用, 通知类型要加以区分