diff --git a/backend/prompt.md b/backend/prompt.md index d1d8c00..37afb24 100644 --- a/backend/prompt.md +++ b/backend/prompt.md @@ -113,7 +113,6 @@ updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP 1、看一下./sql/07_variety.sql的内容,并记住这些内容。 2、打开./src/logic4variety/create.go,并维持风格不变的前提下,将业务调整为1中的信息。 --- ---- 1、看一下./sql/07_variety.sql的内容,并记住这些内容。 2、打开./src/logic4variety/delete.go,并维持风格不变的前提下,将业务调整为1中的信息。 --- \ No newline at end of file diff --git a/backend/src/logic4variety/delete.go b/backend/src/logic4variety/delete.go index 5bcb55a..4024699 100644 --- a/backend/src/logic4variety/delete.go +++ b/backend/src/logic4variety/delete.go @@ -1,5 +1,5 @@ -package logic4exchange +package logic4variety import ( "asset_assistant/db" @@ -13,7 +13,7 @@ import ( // DeleteRequest 删除请求参数结构 type DeleteRequest struct { - ExchangeID string `json:"exchange_id" binding:"required"` // 交易所ID,必填 + VarietyID string `json:"variety_id" binding:"required"` // 品种ID,必填 } // DeleteResponse 删除响应结构 @@ -31,7 +31,7 @@ func DeleteHandler(c *gin.Context) { zap.L().Debug("✨ 生成新的请求ID", zap.String("req_id", reqID)) } - zap.L().Info("📥 收到交易所删除请求", + zap.L().Info("📥 收到品种删除请求", zap.String("req_id", reqID), zap.String("path", c.Request.URL.Path), zap.String("method", c.Request.Method), @@ -46,14 +46,14 @@ func DeleteHandler(c *gin.Context) { ) c.JSON(http.StatusBadRequest, DeleteResponse{ Success: false, - Message: "请求参数错误:exchange_id为必填项", + Message: "请求参数错误:variety_id为必填项", }) return } zap.L().Debug("✅ 请求参数验证通过", zap.String("req_id", reqID), - zap.String("exchange_id", req.ExchangeID), + zap.String("variety_id", req.VarietyID), ) // 开启数据库事务 @@ -90,29 +90,45 @@ func DeleteHandler(c *gin.Context) { } }() - // 1. 更新exchange表 - _, err = tx.Exec("UPDATE exchange SET deleted = TRUE WHERE id = $1", req.ExchangeID) + // 1. 更新variety表 + _, err = tx.Exec("UPDATE variety SET deleted = TRUE WHERE id = $1", req.VarietyID) if err != nil { tx.Rollback() - zap.L().Error("❌ exchange表更新失败", + zap.L().Error("❌ variety表更新失败", zap.String("req_id", reqID), - zap.String("exchange_id", req.ExchangeID), + zap.String("variety_id", req.VarietyID), zap.Error(err), ) c.JSON(http.StatusInternalServerError, DeleteResponse{ Success: false, - Message: "删除交易所记录失败", + Message: "删除品种记录失败", }) return } - // 2. 更新exchange_name表 - _, err = tx.Exec("UPDATE exchange_name SET deleted = TRUE WHERE exchange_id = $1", req.ExchangeID) + // 2. 更新variety_exchange表 + _, err = tx.Exec("UPDATE variety_exchange SET deleted = TRUE WHERE variety_id = $1", req.VarietyID) if err != nil { tx.Rollback() - zap.L().Error("❌ exchange_name表更新失败", + zap.L().Error("❌ variety_exchange表更新失败", zap.String("req_id", reqID), - zap.String("exchange_id", req.ExchangeID), + zap.String("variety_id", req.VarietyID), + zap.Error(err), + ) + c.JSON(http.StatusInternalServerError, DeleteResponse{ + Success: false, + Message: "删除交易所关联信息失败", + }) + return + } + + // 3. 更新variety_name表 + _, err = tx.Exec("UPDATE variety_name SET deleted = TRUE WHERE variety_id = $1", req.VarietyID) + if err != nil { + tx.Rollback() + zap.L().Error("❌ variety_name表更新失败", + zap.String("req_id", reqID), + zap.String("variety_id", req.VarietyID), zap.Error(err), ) c.JSON(http.StatusInternalServerError, DeleteResponse{ @@ -122,29 +138,13 @@ func DeleteHandler(c *gin.Context) { return } - // 3. 新增:更新exchange_short_name表(软删除短名称记录) - _, err = tx.Exec("UPDATE exchange_short_name SET deleted = TRUE WHERE exchange_id = $1", req.ExchangeID) + // 4. 更新variety_code表 + _, err = tx.Exec("UPDATE variety_code SET deleted = TRUE WHERE variety_id = $1", req.VarietyID) if err != nil { tx.Rollback() - zap.L().Error("❌ exchange_short_name表更新失败", + zap.L().Error("❌ variety_code表更新失败", zap.String("req_id", reqID), - zap.String("exchange_id", req.ExchangeID), - zap.Error(err), - ) - c.JSON(http.StatusInternalServerError, DeleteResponse{ - Success: false, - Message: "删除短名称信息失败", - }) - return - } - - // 4. 更新exchange_code表 - _, err = tx.Exec("UPDATE exchange_code SET deleted = TRUE WHERE exchange_id = $1", req.ExchangeID) - if err != nil { - tx.Rollback() - zap.L().Error("❌ exchange_code表更新失败", - zap.String("req_id", reqID), - zap.String("exchange_id", req.ExchangeID), + zap.String("variety_id", req.VarietyID), zap.Error(err), ) c.JSON(http.StatusInternalServerError, DeleteResponse{ @@ -154,12 +154,44 @@ func DeleteHandler(c *gin.Context) { return } + // 5. 更新variety_tick表 + _, err = tx.Exec("UPDATE variety_tick SET deleted = TRUE WHERE variety_id = $1", req.VarietyID) + if err != nil { + tx.Rollback() + zap.L().Error("❌ variety_tick表更新失败", + zap.String("req_id", reqID), + zap.String("variety_id", req.VarietyID), + zap.Error(err), + ) + c.JSON(http.StatusInternalServerError, DeleteResponse{ + Success: false, + Message: "删除最小变动价位信息失败", + }) + return + } + + // 6. 更新variety_tick_price表 + _, err = tx.Exec("UPDATE variety_tick_price SET deleted = TRUE WHERE variety_id = $1", req.VarietyID) + if err != nil { + tx.Rollback() + zap.L().Error("❌ variety_tick_price表更新失败", + zap.String("req_id", reqID), + zap.String("variety_id", req.VarietyID), + zap.Error(err), + ) + c.JSON(http.StatusInternalServerError, DeleteResponse{ + Success: false, + Message: "删除最小变动价位金额信息失败", + }) + return + } + // 提交事务 if err := tx.Commit(); err != nil { tx.Rollback() zap.L().Error("❌ 事务提交失败", zap.String("req_id", reqID), - zap.String("exchange_id", req.ExchangeID), + zap.String("variety_id", req.VarietyID), zap.Error(err), ) c.JSON(http.StatusInternalServerError, DeleteResponse{ @@ -171,9 +203,9 @@ func DeleteHandler(c *gin.Context) { // 记录请求处理耗时 duration := time.Since(startTime) - zap.L().Info("✅ 交易所删除请求处理完成", + zap.L().Info("✅ 品种删除请求处理完成", zap.String("req_id", reqID), - zap.String("exchange_id", req.ExchangeID), + zap.String("variety_id", req.VarietyID), zap.Duration("duration", duration), )