diff --git a/app/admin/service/dto/line_pre_order.go b/app/admin/service/dto/line_pre_order.go index fbcbf25..2788d33 100644 --- a/app/admin/service/dto/line_pre_order.go +++ b/app/admin/service/dto/line_pre_order.go @@ -411,10 +411,14 @@ func (req LineBatchAddPreOrderReq) CheckParams() error { return errors.New("主单减仓价格百分比不能为空") } - if req.ReduceNumRatio.IsZero() { + if req.ReduceNumRatio.Cmp(decimal.Zero) <= 0 { return errors.New("主单减仓数量百分比不能为空") } + if req.ReducePriceRatio.Cmp(decimal.Zero) <= 0 || req.ReducePriceRatio.Cmp(decimal.NewFromInt(100)) >= 0 { + return errors.New("主单减仓价格百分比错误") + } + for _, v := range req.Ext { name := "加仓" diff --git a/app/admin/service/line_pre_order.go b/app/admin/service/line_pre_order.go index c771b50..d1117b9 100644 --- a/app/admin/service/line_pre_order.go +++ b/app/admin/service/line_pre_order.go @@ -588,7 +588,10 @@ func (e *LinePreOrder) AddPreOrder(req *dto.LineAddPreOrderReq, p *actions.DataP mainParam.AddPositionType = req.Ext[index].AddPositionType mainParam.AddPositionVal = req.Ext[index].AddPositionVal - e.CalculateBreakEvenRatio(&mainParam, &calculateResp, tradeSet) + if err := e.CalculateBreakEvenRatio(&mainParam, &calculateResp, tradeSet); err != nil { + *errs = append(*errs, err) + return err + } ext.TotalBefore = mainParam.RemainingQuantity //初始数量 ext.TotalAfter = calculateResp.RemainingQuantity //计算后数量