股票點買3.0交易系統介面設計思路

zhuangwei發表於2019-03-18

一、點買【市價委託】

引數:

    股票程式碼:symbol、股票名稱、委託方式:style(2市價)、委託價格:buyPrice、委託數量:buyNum、漲停價、跌停價、持倉時間:holdingTime、止盈線:stopProfitLine、止損線:stopLossLine、抵扣卷id:discountId、槓桿:multiple
複製程式碼

邏輯:

  • 引數校驗
  • 履約保證金的計算
  • 從快取中獲取手動接單和自動接單配置
  • 初始化訂單的接單型別【自動接單還需要初始化投資人資訊】
  • 將初始化的訂單作為引數,呼叫service層方法
  • 履約保證金+交易綜合費,判斷使用者賬戶的可用餘額是否充足
  • 若是自動接單,判斷投資人的可用餘額是否充足,登入三方介面獲取token,檢視三方劵商的可用餘額是否充足,傳送委託單資料及token獲取委託訂單model,手動接單則不需要
  • 資金處理:凍結履約保證金和交易綜合費,在交易綜合費中扣除抵扣卷,抵扣卷金額大於交易綜合費,則將交易綜合費置為0,抵扣卷直接置為已使用並新增抵扣卷使用記錄。
  • 生成資金凍結記錄
  • 插入訂單【委託狀態交易中】,手動接單的狀態是匹配中,自動接單的狀態是交易中
  • 訂單放入redis佇列中(push、標誌:訂單的字首+委託單的uuid):佇列名稱分為手動和自動的佇列

同步成交定時器設計

  • 獲取redis自動接單佇列,通過佇列的名稱彈出(pop)訂單物件
  • 將佇列中的訂單物件當做引數,呼叫service層方法
  • 校驗訂單的委託狀態:只有交易中的才可以進行同步成交操作。
  • 從快取中獲取自動交易訂單的model,判斷返回狀態是已成交還是部分成交。
  • 處理扣除資金的流程: 獲取成交時候的。。。。。。【待續】

點賣

描述:類似於期權中的持倉中,在點買中的同步成交系統中生成持倉中的點賣訂單。

平倉:

根據點買規定的持倉時間,建立一個定時器,定時查詢點賣列表,通過根據建立時間與持倉時間,判斷是否到了平倉的時間,需要給會員傳送簡訊提醒平倉的時間到了。若到了時間點還沒有平倉則強制平倉。

追加保證金

保證金不足,簡訊提醒,會員自己手動追加保證金,若沒有追加保證金,不夠則強制平倉。

修改止盈止損

穿倉

委託中

結算中

管理端投資人手動搶單【手動接單的匹配】

流單定時刷選

相關文章