1、状态更新错误处理

This commit is contained in:
2025-08-27 14:54:03 +08:00
parent 4b28684fe4
commit b1cca5bec7
14 changed files with 4474 additions and 173 deletions

View File

@ -253,3 +253,30 @@ func (e LineReversePosition) ClosePositionBatch(c *gin.Context) {
}
e.OK(nil, "批量平仓成功")
}
// 清除所有
func (e LineReversePosition) CleanAll(c *gin.Context) {
s := service.LineReversePosition{}
err := e.MakeContext(c).
MakeOrm().
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
userId := user.GetUserId(c)
p := actions.GetPermissionFromContext(c)
err = s.CleanAll(p, userId)
if err != nil {
e.Error(500, err, fmt.Sprintf("清除所有仓位失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(nil, "清除所有仓位成功")
}

View File

@ -23,6 +23,7 @@ type LineReversePosition struct {
ReverseStatus int `json:"reverseStatus" gorm:"type:tinyint;comment:反单仓位状态 1-已开仓 2-已平仓"`
AveragePrice decimal.Decimal `json:"averagePrice" gorm:"type:decimal(18,8);comment:主单平均价格"`
ReverseAveragePrice decimal.Decimal `json:"reverseAveragePrice" gorm:"type:decimal(18,8);comment:反单平均价格"`
Version int `json:"version" gorm:"type:int;default:0;comment:版本号,用于乐观锁控制"`
models.ModelTime
models.ControlBy
}

View File

@ -22,6 +22,9 @@ func registerLineReversePositionRouter(v1 *gin.RouterGroup, authMiddleware *jwt.
r.GET("/:id", actions.PermissionAction(), api.Get)
r.POST("", api.Insert)
r.PUT("/:id", actions.PermissionAction(), api.Update)
//清理所有
r.DELETE("/clean-all", actions.PermissionAction(), api.CleanAll)
r.DELETE("", api.Delete)
r.PUT("close/:id", actions.PermissionAction(), api.ClosePosition)

View File

@ -25,6 +25,27 @@ type LineReversePosition struct {
service.Service
}
// 清除仓位记录
func (e LineReversePosition) CleanAll(p *actions.DataPermission, userId int) error {
var count int64
if err := e.Orm.Model(&models.LineReversePosition{}).
Where("status =1 or reverse_status = 1").Count(&count).Error; err != nil {
return err
}
if count > 0 {
e.Log.Errorf("还有仓位无法清除")
return errors.New("有仓位正在进行中,不能清除所有")
}
if err := e.Orm.Exec("TRUNCATE TABLE line_reverse_position").Error; err != nil {
return err
}
return nil
}
// 批量关闭仓位
func (e LineReversePosition) ClosePositionBatch(req *dto.LineReversePositionCloseBatchReq, p *actions.DataPermission, userId int, errs *[]string) error {
var positions []models.LineReversePosition