add
This commit is contained in:
@@ -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中的信息。
|
||||
---
|
||||
@@ -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),
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user