1、點買【市價委託】
參數:
股票代碼:symbol、股票名稱、委託方式:style(2市價)、委託價格:buyPrice、委託數量:buyNum、漲停價、跌停價、持倉時間:holdingTime、止盈線:stopProfitLine、止損線:stopLossLine、抵扣卷id:discountId、槓桿:multiple
複製代碼
邏輯:
- 參數校驗
- 履約保證金的計算
- 從緩存中獲取手動接單和自動接單配置
- 初始化訂單的接單類型【自動接單還須要初始化投資人信息】
- 將初始化的訂單做爲參數,調用service層方法
- 履約保證金+交易綜合費,判斷用戶帳戶的可用餘額是否充足
- 如果自動接單,判斷投資人的可用餘額是否充足,登陸三方接口獲取token,查看三方劵商的可用餘額是否充足,發送委託單數據及token獲取委託訂單model,手動接單則不須要
- 資金處理:凍結履約保證金和交易綜合費,在交易綜合費中扣除抵扣卷,抵扣卷金額大於交易綜合費,則將交易綜合費置爲0,抵扣卷直接置爲已使用並添加抵扣卷使用記錄。
- 生成資金凍結記錄
- 插入訂單【委託狀態交易中】,手動接單的狀態是匹配中,自動接單的狀態是交易中
- 訂單放入redis隊列中(push、標誌:訂單的前綴+委託單的uuid):隊列名稱分爲手動和自動的隊列
同步成交定時器設計redis
- 獲取redis自動接單隊列,經過隊列的名稱彈出(pop)訂單對象
- 將隊列中的訂單對象當作參數,調用service層方法
- 校驗訂單的委託狀態:只有交易中的才能夠進行同步成交操做。
- 從緩存中獲取自動交易訂單的model,判斷返回狀態是已成交仍是部分紅交。
- 處理扣除資金的流程: 獲取成交時候的。。。。。。【待續】
點賣
描述:相似於期權中的持倉中,在點買中的同步成交系統中生成持倉中的點賣訂單。
平倉:
根據點買規定的持倉時間,建立一個定時器,定時查找點賣列表,經過根據建立時間與持倉時間,判斷是否到了平倉的時間,須要給會員發送短信提醒平倉的時間到了。若到了時間點尚未平倉則強制平倉。緩存
追加保證金
保證金不足,短信提醒,會員本身手動追加保證金,若沒有追加保證金,不夠則強制平倉。ui
修改止盈止損
穿倉
委託中
結算中
管理端投資人手動搶單【手動接單的匹配】
流單定時刷選