This commit is contained in:
vipg
2025-11-26 16:04:28 +08:00
parent 276be30387
commit 3833ed68db
2 changed files with 69 additions and 38 deletions

View File

@@ -113,7 +113,6 @@ updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
1、看一下./sql/07_variety.sql的内容并记住这些内容。 1、看一下./sql/07_variety.sql的内容并记住这些内容。
2、打开./src/logic4variety/create.go并维持风格不变的前提下将业务调整为1中的信息。 2、打开./src/logic4variety/create.go并维持风格不变的前提下将业务调整为1中的信息。
--- ---
---
1、看一下./sql/07_variety.sql的内容并记住这些内容。 1、看一下./sql/07_variety.sql的内容并记住这些内容。
2、打开./src/logic4variety/delete.go并维持风格不变的前提下将业务调整为1中的信息。 2、打开./src/logic4variety/delete.go并维持风格不变的前提下将业务调整为1中的信息。
--- ---

View File

@@ -1,5 +1,5 @@
package logic4exchange package logic4variety
import ( import (
"asset_assistant/db" "asset_assistant/db"
@@ -13,7 +13,7 @@ import (
// DeleteRequest 删除请求参数结构 // DeleteRequest 删除请求参数结构
type DeleteRequest struct { type DeleteRequest struct {
ExchangeID string `json:"exchange_id" binding:"required"` // 交易所ID必填 VarietyID string `json:"variety_id" binding:"required"` // 品种ID必填
} }
// DeleteResponse 删除响应结构 // DeleteResponse 删除响应结构
@@ -31,7 +31,7 @@ func DeleteHandler(c *gin.Context) {
zap.L().Debug("✨ 生成新的请求ID", zap.String("req_id", reqID)) zap.L().Debug("✨ 生成新的请求ID", zap.String("req_id", reqID))
} }
zap.L().Info("📥 收到交易所删除请求", zap.L().Info("📥 收到品种删除请求",
zap.String("req_id", reqID), zap.String("req_id", reqID),
zap.String("path", c.Request.URL.Path), zap.String("path", c.Request.URL.Path),
zap.String("method", c.Request.Method), zap.String("method", c.Request.Method),
@@ -46,14 +46,14 @@ func DeleteHandler(c *gin.Context) {
) )
c.JSON(http.StatusBadRequest, DeleteResponse{ c.JSON(http.StatusBadRequest, DeleteResponse{
Success: false, Success: false,
Message: "请求参数错误:exchange_id为必填项", Message: "请求参数错误:variety_id为必填项",
}) })
return return
} }
zap.L().Debug("✅ 请求参数验证通过", zap.L().Debug("✅ 请求参数验证通过",
zap.String("req_id", reqID), 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 // 1. 更新variety
_, err = tx.Exec("UPDATE exchange SET deleted = TRUE WHERE id = $1", req.ExchangeID) _, err = tx.Exec("UPDATE variety SET deleted = TRUE WHERE id = $1", req.VarietyID)
if err != nil { if err != nil {
tx.Rollback() tx.Rollback()
zap.L().Error("❌ exchange表更新失败", zap.L().Error("❌ variety表更新失败",
zap.String("req_id", reqID), zap.String("req_id", reqID),
zap.String("exchange_id", req.ExchangeID), zap.String("variety_id", req.VarietyID),
zap.Error(err), zap.Error(err),
) )
c.JSON(http.StatusInternalServerError, DeleteResponse{ c.JSON(http.StatusInternalServerError, DeleteResponse{
Success: false, Success: false,
Message: "删除交易所记录失败", Message: "删除品种记录失败",
}) })
return return
} }
// 2. 更新exchange_name // 2. 更新variety_exchange表
_, err = tx.Exec("UPDATE exchange_name SET deleted = TRUE WHERE exchange_id = $1", req.ExchangeID) _, err = tx.Exec("UPDATE variety_exchange SET deleted = TRUE WHERE variety_id = $1", req.VarietyID)
if err != nil { if err != nil {
tx.Rollback() tx.Rollback()
zap.L().Error("❌ exchange_name表更新失败", zap.L().Error("❌ variety_exchange表更新失败",
zap.String("req_id", reqID), 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), zap.Error(err),
) )
c.JSON(http.StatusInternalServerError, DeleteResponse{ c.JSON(http.StatusInternalServerError, DeleteResponse{
@@ -122,29 +138,13 @@ func DeleteHandler(c *gin.Context) {
return return
} }
// 3. 新增更新exchange_short_name表软删除短名称记录 // 4. 更新variety_code表
_, err = tx.Exec("UPDATE exchange_short_name SET deleted = TRUE WHERE exchange_id = $1", req.ExchangeID) _, err = tx.Exec("UPDATE variety_code SET deleted = TRUE WHERE variety_id = $1", req.VarietyID)
if err != nil { if err != nil {
tx.Rollback() tx.Rollback()
zap.L().Error("❌ exchange_short_name表更新失败", zap.L().Error("❌ variety_code表更新失败",
zap.String("req_id", reqID), 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
}
// 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.Error(err), zap.Error(err),
) )
c.JSON(http.StatusInternalServerError, DeleteResponse{ c.JSON(http.StatusInternalServerError, DeleteResponse{
@@ -154,12 +154,44 @@ func DeleteHandler(c *gin.Context) {
return 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 { if err := tx.Commit(); err != nil {
tx.Rollback() tx.Rollback()
zap.L().Error("❌ 事务提交失败", zap.L().Error("❌ 事务提交失败",
zap.String("req_id", reqID), zap.String("req_id", reqID),
zap.String("exchange_id", req.ExchangeID), zap.String("variety_id", req.VarietyID),
zap.Error(err), zap.Error(err),
) )
c.JSON(http.StatusInternalServerError, DeleteResponse{ c.JSON(http.StatusInternalServerError, DeleteResponse{
@@ -171,9 +203,9 @@ func DeleteHandler(c *gin.Context) {
// 记录请求处理耗时 // 记录请求处理耗时
duration := time.Since(startTime) duration := time.Since(startTime)
zap.L().Info("✅ 交易所删除请求处理完成", zap.L().Info("✅ 品种删除请求处理完成",
zap.String("req_id", reqID), zap.String("req_id", reqID),
zap.String("exchange_id", req.ExchangeID), zap.String("variety_id", req.VarietyID),
zap.Duration("duration", duration), zap.Duration("duration", duration),
) )