50ETF点掌期权项目开发的业务设计

技术架构:mybatis、springboot1.5.X、redis、mysql、quartz、springcloud eurekamysql

交易

1:委托买入

参数:

委托价格、委托数量、委托方式【市价、限价】、价格类型、合约代码、合约名称、用户的红包标识redis

逻辑:

  • 参数校验
  • 判断交易时间是否合乎规定
  • 根据合约代码获取该合约最新的行情,判断委托单的委托类型,设置委托价格
  • 计算手续费,抵扣红包金额,平台用户的资金处理【判断、冻结可用余额、生成资金记录】
  • 按照必定的权重刷选三方劵商的信息
  • 登陆劵商帐号获取token,获得劵商的资金信息,判断可用余额是否充足
  • 发送委托单数据,获取三方的委托实体模型【回填的委托单编号和委托单引用】
  • 更新委托单的状态、设置委托单的委托编号和委托引用
  • 添加委托单到数据库
  • 将委托单对象存放到redis缓存中【下单结束。。。。。】

委托卖出【以什么样的委托方式买进了就以什么样的委托方式卖出】

参数

委托数量、委托价格、持仓单标识、价格类型spring

逻辑:

  • 参数校验
  • 根据持仓单的标识判断该持仓是否存在
  • 判断交易时间是否合乎规定
  • 根据合约代码获取最新的行情信息
  • 建立委托卖出单对象
  • 调用service层的方法【参数:委托卖出单、行情、持仓对象】
  • 判断委托方式,获取委托卖出价格
  • 计算手续费,平台用户资金处理
  • 登陆三方劵商的帐户,获取token,发送数据获取委托实体模型
  • 初始化委托卖出单的字段并修改状态
  • 添加委托卖出单,修改持仓可卖数量
  • 将委托卖出单存放到缓存中【卖单结束。。。。】

定时器

包含的定时器:一、从数据库中查询中处于交易中的委托单【买入和卖出】,加入缓存中;二、同步实盘买入委托单任务调度;三、同步实盘卖出委托单任务调度;三、定时查询劵商下面的委托单信息存放到缓存中;四、定时查询劵商下面的成交明细并存放到缓存中;五、平仓定时通知短信和到时间点强制平仓;六、递延费收取和不足给予短信提醒【通知找出一笔点买额度最小盈利最多的直接强制平仓】;七、定时分佣结算sql

相关文章
相关标签/搜索