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的内容并记住这些内容。
2、打开./src/logic4variety/create.go并维持风格不变的前提下将业务调整为1中的信息。
---
---
1、看一下./sql/07_variety.sql的内容并记住这些内容。
2、打开./src/logic4variety/delete.go并维持风格不变的前提下将业务调整为1中的信息。
---

View File

@@ -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),
)