50ETF點掌期權專案開發的業務設計

zhuangwei發表於2019-03-18

技術架構:mybatis、springboot1.5.X、redis、mysql、quartz、springcloud eureka

交易

1:委託買入

引數:

委託價格、委託數量、委託方式【市價、限價】、價格型別、合約程式碼、合約名稱、使用者的紅包標識

邏輯:

  • 引數校驗
  • 判斷交易時間是否合乎規定
  • 根據合約程式碼獲取該合約最新的行情,判斷委託單的委託型別,設定委託價格
  • 計算手續費,抵扣紅包金額,平臺使用者的資金處理【判斷、凍結可用餘額、生成資金記錄】
  • 按照一定的權重刷選三方劵商的資訊
  • 登入劵商賬號獲取token,得到劵商的資金資訊,判斷可用餘額是否充足
  • 傳送委託單資料,獲取三方的委託實體模型【回填的委託單編號和委託單引用】
  • 更新委託單的狀態、設定委託單的委託編號和委託引用
  • 新增委託單到資料庫
  • 將委託單物件存放到redis快取中【下單結束。。。。。】

委託賣出【以什麼樣的委託方式買進了就以什麼樣的委託方式賣出】

引數

委託數量、委託價格、持倉單標識、價格型別

邏輯:

  • 引數校驗
  • 根據持倉單的標識判斷該持倉是否存在
  • 判斷交易時間是否合乎規定
  • 根據合約程式碼獲取最新的行情資訊
  • 建立委託賣出單物件
  • 呼叫service層的方法【引數:委託賣出單、行情、持倉物件】
  • 判斷委託方式,獲取委託賣出價格
  • 計算手續費,平臺使用者資金處理
  • 登入三方劵商的賬戶,獲取token,傳送資料獲取委託實體模型
  • 初始化委託賣出單的欄位並修改狀態
  • 新增委託賣出單,修改持倉可賣數量
  • 將委託賣出單存放到快取中【賣單結束。。。。】

定時器

包含的定時器:1、從資料庫中查詢中處於交易中的委託單【買入和賣出】,加入快取中;2、同步實盤買入委託單任務排程;3、同步實盤賣出委託單任務排程;3、定時查詢劵商下面的委託單資訊存放到快取中;4、定時查詢劵商下面的成交明細並存放到快取中;5、平倉定時通知簡訊和到時間點強制平倉;6、遞延費收取和不足給予簡訊提醒【通知找出一筆點買額度最小盈利最多的直接強制平倉】;7、定時分傭結算

相關文章