This commit is contained in:
2026-04-24 09:49:33 +08:00
parent 8bae04bc5e
commit 9274ef4689
2 changed files with 18 additions and 18 deletions

View File

@@ -13,9 +13,9 @@ import (
)
// SaveStatus 保存完整状态数据(使用事务)
func SaveData(status *types.StatusData) error {
func SaveData(data *types.Data) error {
// 验证必要字段 - AccountID是所有Upsert的共同条件
if status.Data.Assets.AccountID == "" {
if data.Assets.AccountID == "" {
return fmt.Errorf("账户ID不能为空")
}
@@ -25,16 +25,16 @@ func SaveData(status *types.StatusData) error {
// 保存资产快照 (先查询后更新/插入)
var existingAsset models.CollectorAssets
err := impl.DBService.Where("account_id = ? AND ymd = ?", status.Data.Assets.AccountID, ymd).First(&existingAsset).Error
err := impl.DBService.Where("account_id = ? AND ymd = ?", data.Assets.AccountID, ymd).First(&existingAsset).Error
asset := models.CollectorAssets{
AccountID: status.Data.Assets.AccountID,
AccountID: data.Assets.AccountID,
Ymd: ymd,
Cash: status.Data.Assets.Cash,
FrozenCash: status.Data.Assets.FrozenCash,
MarketValue: status.Data.Assets.MarketValue,
Profit: status.Data.Assets.Profit,
TotalAsset: status.Data.Assets.TotalAsset,
Cash: data.Assets.Cash,
FrozenCash: data.Assets.FrozenCash,
MarketValue: data.Assets.MarketValue,
Profit: data.Assets.Profit,
TotalAsset: data.Assets.TotalAsset,
CollectedAt: now,
}
@@ -57,8 +57,8 @@ func SaveData(status *types.StatusData) error {
}
// 批量保存订单 (先查询后更新/插入)
if len(status.Data.Orders) > 0 {
for _, order := range status.Data.Orders {
if len(data.Orders) > 0 {
for _, order := range data.Orders {
// 验证必要条件: OrderID和StockCode
if order.OrderID == 0 {
continue
@@ -79,14 +79,14 @@ func SaveData(status *types.StatusData) error {
// 查询是否存在
var cnt int64
impl.DBService.Model(&models.CollectorOrder{}).Where("account_id = ? AND order_id = ? AND ymd = ?", status.Data.Assets.AccountID, order.OrderID, ymd).Count(&cnt)
impl.DBService.Model(&models.CollectorOrder{}).Where("account_id = ? AND order_id = ? AND ymd = ?", data.Assets.AccountID, order.OrderID, ymd).Count(&cnt)
if cnt > 0 {
continue
}
orderRecord := models.CollectorOrder{
OrderID: order.OrderID,
AccountID: status.Data.Assets.AccountID,
AccountID: data.Assets.AccountID,
StockCode: order.StockCode,
Ymd: ymd,
Price: order.Price,
@@ -116,8 +116,8 @@ func SaveData(status *types.StatusData) error {
}
// 批量保存持仓 (先查询后更新/插入)
if len(status.Data.Positions) > 0 {
for _, pos := range status.Data.Positions {
if len(data.Positions) > 0 {
for _, pos := range data.Positions {
// 验证必要条件: Code
if pos.Code == "" {
continue
@@ -126,10 +126,10 @@ func SaveData(status *types.StatusData) error {
// 查询是否存在
var existingPosition models.CollectorPosition
err := impl.DBService.Where("account_id = ? AND code = ? AND ymd = ?",
status.Data.Assets.AccountID, pos.Code, ymd).First(&existingPosition).Error
data.Assets.AccountID, pos.Code, ymd).First(&existingPosition).Error
positionRecord := models.CollectorPosition{
AccountID: status.Data.Assets.AccountID,
AccountID: data.Assets.AccountID,
Code: pos.Code,
Ymd: ymd,
Volume: pos.Volume,