S StockOffice
DEMO · 前台 / 後台 / 模擬支付

黃金與白銀的模擬交易辦公室

一套可跑起來的前中後台示範:客戶開戶、存款取款、同客轉賬、投資買賣、儲蓄計息,以及後台報表與日結。報價、新聞和模擬支付都有明確來源。

項目說明

StockOffice 把客戶看到的交易平台,和公司內部的結算後台拆開。客戶在前台管理自己的交易賬戶;後台審批客戶、看報表、設定平台利率與存倉費。支付通知由模擬渠道發出,用來走完存款和取款,而不連接真實銀行。

兩個交易平台,一套客戶號碼

每位客戶有一個客戶號碼,格式是 CU84 加 6 位數字。開戶時會同時開立所有已啟用的交易平台。投資平台用於買賣,儲蓄平台預設只計息、不可買賣。交易賬號是客戶號碼加上平台縮寫,例如 CU84000001_INV。

資金分可用餘額和信用額。電匯存款進入開單時選定的賬戶;信用幣(USDT)在到賬時,存入客戶當前設定的信用幣平台。同一客戶可以在自己的平台賬戶之間即時轉賬。

前台、後台、資料庫與訊息佇列的示意

引用的技術

映像在本機先建好程式再複製進去,容器內不執行 Maven。資料庫遷移只由後台服務在啟動時套用。智能營運在這套後台之上,多接一個模型來整理數據和說明畫面,不另開資料庫。

Java 24 / Spring Boot 3.5

前台 API、後台 API、報價任務、訂單任務、成交入庫和模擬支付,都是獨立的 Spring Boot 服務。

MySQL 8 與 Flyway

客戶、賬戶、流水、持倉和平台設定存在 MySQL。結構變更用 Flyway,由後台服務負責。

Kafka 與 Redis

報價和訂單指令走 Kafka。最新報價放在 Redis,報表和頁面讀得到即時買入價、賣出價。

React、Vite、Ant Design

前台、後台和模擬支付都是 Vite 建置的 React 頁面。撮合在記憶體引擎完成,成交再寫回資料庫。

OpenCode Go / GPT 6 Luna

智能營運由後台頁面呼叫後台 API,再由 Java 以 HTTPS 詢問 OpenCode Go 上的 GPT 6 Luna。模型只負責判斷該查什麼或該改哪個點差,不持有後台登入憑證,也不直接連資料庫。

白名單工具與唯讀檢視

月份、全年盈虧和存款排名由 Java 用既有報表算法計算。其他讀取只允許對 v_ 檢視下單條 SELECT,最多 50 筆並設查詢逾時。改點差仍走原有產品接口,而且要有產品管理權限。

客戶隱私

唯讀賬戶只能查檢視表,不能查正式表。檢視不含姓名、電郵、電話、密碼和備註。排名和智能營運的查詢結果只回客戶號碼與金額。後台人員自己打開客戶報表時,仍按原有權限看到完整資料。

怎麼玩

建議先註冊一個新客戶,或使用已生成的模擬客戶。新註冊的客戶要等後台審批,才可以開戶、存款和交易。

1. 註冊

打開前台註冊頁。可按「代填測試」填入姓名、電郵和電話,密碼要自己輸入。提交後畫面上會顯示客戶號碼。

2. 後台審批

後台登入 admin / admin1234,在客戶報表把狀態改為可交易。已生成的模擬客戶 sim01 至 sim30@stockoffice.test 也可登入,密碼同為 admin1234。

3. 開戶與存款

前台一次開立全部平台賬戶。電匯或 USDT 由模擬支付頁確認或拒絕。USDT 存入客戶設定的信用幣平台。

4. 買賣與轉賬

只有可交易的平台能買賣。黃金、白銀按實時賣出價計算浮動盈虧。同一客戶的資金可在投資與儲蓄之間轉賬。

5. 日結

每個顯示時區的日曆日結算一次。先按平台每日利率計息,再按存倉費從餘額扣除。餘額不足時會先取消掛單,再按收市買入價平倉。

6. 看報表

後台首頁的盈虧是公司角度,客戶賺錢計為公司虧損。其餘報表,包括持倉和客戶明細,都是客戶角度的毛盈虧。

智能營運

智能營運放在後台左側「首頁」下方。它把翻報表、對數字和找畫面這三件事收成一句話,縮短數據整理時間,也降低新同事熟悉後台的成本。回答裡的選單路徑和權限說明,可以直接當作後台功能說明書。

加快數據整理

可以直接問「本年 10 大盈虧客戶」或「2026 年 9 月存款最多的客戶」。盈虧按客戶角度的已實現盈虧計算,存款用已入賬合計。不必逐張打開日月報表再自己排序。結果只有客戶號碼和金額。

降低學習成本

任何已登入的後台賬戶都能打開,不必再申請選單權限。不知道按鈕在哪時,問「在哪能修改點差」,會回答:左側「交易類型」→「產品列表」,有產品管理權限時按該列「修改」,填寫買入價點差和賣出價點差後按「確定」。只問位置時不會改資料。

當作功能說明書

可以問客戶、交易賬戶、額度流水、存取款、轉賬、訂單、成交和持倉怎麼查。它會說明要有報表查看權限。改點差只改指定產品的買入價點差和賣出價點差。每個 IP 每 24 小時可提問 10 次,用完會寫明下次可用時間,時間跟隨後台顯示時區。

它不會做什麼

不會審批存款或取款,不會做額度調整,不會改客戶狀態,也不會改後台賬戶或平台利率。模型不能自己讀正式表,因此回答裡不會出現客戶姓名、電郵或電話。

數據來源

報價優先用人工價,其次抓公開金銀報價,抓不到才用模擬波動。新聞和歷史成交則是另一套來源,不會互相冒充。

客戶在前台看報價與下單

報價、新聞、流水

報價任務先讀產品上的人工價。沒有人工價時,依序讀取 goldprice.org 的黃金、白銀美元報價,以及 api.gold-api.com。兩者都失敗時,沿上一口中間價做小幅模擬。賣出價是中間價減點差,買入價是中間價加點差。系統只保留最近 7 日的報價,前台走勢圖用的是每小時最後一口。

前台首頁的金銀新聞是整理過的公開報道,每則都連回原文,不是即時爬蟲。模擬客戶和一年成交在 testSql 的 SQL 裡。存款、取款的第三方回調由模擬支付以簽名通知前台,再轉給後台入賬。

各系統連結

以下網址是本機 Docker 對外的端口。主頁本身不代理這些系統,只負責把它們介紹清楚。