1、反向下单初始化
This commit is contained in:
198
app/admin/apis/line_reverse_order.go
Normal file
198
app/admin/apis/line_reverse_order.go
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
package apis
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||||
|
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||||
|
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||||
|
|
||||||
|
"go-admin/app/admin/models"
|
||||||
|
"go-admin/app/admin/service"
|
||||||
|
"go-admin/app/admin/service/dto"
|
||||||
|
"go-admin/common/actions"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LineReverseOrder struct {
|
||||||
|
api.Api
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPage 获取反单下单列表列表
|
||||||
|
// @Summary 获取反单下单列表列表
|
||||||
|
// @Description 获取反单下单列表列表
|
||||||
|
// @Tags 反单下单列表
|
||||||
|
// @Param orderSn query string false "订单号"
|
||||||
|
// @Param orderId query string false "币安订单号"
|
||||||
|
// @Param followOrderSn query string false "跟随币安订单号"
|
||||||
|
// @Param orderType query int false "订单类型 0-主单 1-止损单 2-加仓 3-减仓"
|
||||||
|
// @Param positionSide query string false "持仓方向 LONG-多 SHORT-空"
|
||||||
|
// @Param side query string false "买卖方向 SELL-卖 BUY-买"
|
||||||
|
// @Param status query int false "状态 1-待下单 2-已下单 3-已成交 4-已平仓 5-已止损"
|
||||||
|
// @Param pageSize query int false "页条数"
|
||||||
|
// @Param pageIndex query int false "页码"
|
||||||
|
// @Success 200 {object} response.Response{data=response.Page{list=[]models.LineReverseOrder}} "{"code": 200, "data": [...]}"
|
||||||
|
// @Router /api/v1/line-reverse-order [get]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrder) GetPage(c *gin.Context) {
|
||||||
|
req := dto.LineReverseOrderGetPageReq{}
|
||||||
|
s := service.LineReverseOrder{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
list := make([]models.LineReverseOrder, 0)
|
||||||
|
var count int64
|
||||||
|
|
||||||
|
err = s.GetPage(&req, p, &list, &count)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("获取反单下单列表失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get 获取反单下单列表
|
||||||
|
// @Summary 获取反单下单列表
|
||||||
|
// @Description 获取反单下单列表
|
||||||
|
// @Tags 反单下单列表
|
||||||
|
// @Param id path int false "id"
|
||||||
|
// @Success 200 {object} response.Response{data=models.LineReverseOrder} "{"code": 200, "data": [...]}"
|
||||||
|
// @Router /api/v1/line-reverse-order/{id} [get]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrder) Get(c *gin.Context) {
|
||||||
|
req := dto.LineReverseOrderGetReq{}
|
||||||
|
s := service.LineReverseOrder{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var object models.LineReverseOrder
|
||||||
|
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
err = s.Get(&req, p, &object)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("获取反单下单列表失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
e.OK( object, "查询成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert 创建反单下单列表
|
||||||
|
// @Summary 创建反单下单列表
|
||||||
|
// @Description 创建反单下单列表
|
||||||
|
// @Tags 反单下单列表
|
||||||
|
// @Accept application/json
|
||||||
|
// @Product application/json
|
||||||
|
// @Param data body dto.LineReverseOrderInsertReq true "data"
|
||||||
|
// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}"
|
||||||
|
// @Router /api/v1/line-reverse-order [post]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrder) Insert(c *gin.Context) {
|
||||||
|
req := dto.LineReverseOrderInsertReq{}
|
||||||
|
s := service.LineReverseOrder{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 设置创建人
|
||||||
|
req.SetCreateBy(user.GetUserId(c))
|
||||||
|
|
||||||
|
err = s.Insert(&req)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("创建反单下单列表失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
e.OK(req.GetId(), "创建成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update 修改反单下单列表
|
||||||
|
// @Summary 修改反单下单列表
|
||||||
|
// @Description 修改反单下单列表
|
||||||
|
// @Tags 反单下单列表
|
||||||
|
// @Accept application/json
|
||||||
|
// @Product application/json
|
||||||
|
// @Param id path int true "id"
|
||||||
|
// @Param data body dto.LineReverseOrderUpdateReq true "body"
|
||||||
|
// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
|
||||||
|
// @Router /api/v1/line-reverse-order/{id} [put]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrder) Update(c *gin.Context) {
|
||||||
|
req := dto.LineReverseOrderUpdateReq{}
|
||||||
|
s := service.LineReverseOrder{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req.SetUpdateBy(user.GetUserId(c))
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
|
err = s.Update(&req, p)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("修改反单下单列表失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
e.OK( req.GetId(), "修改成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete 删除反单下单列表
|
||||||
|
// @Summary 删除反单下单列表
|
||||||
|
// @Description 删除反单下单列表
|
||||||
|
// @Tags 反单下单列表
|
||||||
|
// @Param data body dto.LineReverseOrderDeleteReq true "body"
|
||||||
|
// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}"
|
||||||
|
// @Router /api/v1/line-reverse-order [delete]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrder) Delete(c *gin.Context) {
|
||||||
|
s := service.LineReverseOrder{}
|
||||||
|
req := dto.LineReverseOrderDeleteReq{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// req.SetUpdateBy(user.GetUserId(c))
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
|
err = s.Remove(&req, p)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("删除反单下单列表失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
e.OK( req.GetId(), "删除成功")
|
||||||
|
}
|
||||||
191
app/admin/apis/line_reverse_order_ext.go
Normal file
191
app/admin/apis/line_reverse_order_ext.go
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
package apis
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||||
|
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||||
|
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||||
|
|
||||||
|
"go-admin/app/admin/models"
|
||||||
|
"go-admin/app/admin/service"
|
||||||
|
"go-admin/app/admin/service/dto"
|
||||||
|
"go-admin/common/actions"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LineReverseOrderExt struct {
|
||||||
|
api.Api
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPage 获取反单拓展信息列表
|
||||||
|
// @Summary 获取反单拓展信息列表
|
||||||
|
// @Description 获取反单拓展信息列表
|
||||||
|
// @Tags 反单拓展信息
|
||||||
|
// @Param pageSize query int false "页条数"
|
||||||
|
// @Param pageIndex query int false "页码"
|
||||||
|
// @Success 200 {object} response.Response{data=response.Page{list=[]models.LineReverseOrderExt}} "{"code": 200, "data": [...]}"
|
||||||
|
// @Router /api/v1/line-reverse-order-ext [get]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrderExt) GetPage(c *gin.Context) {
|
||||||
|
req := dto.LineReverseOrderExtGetPageReq{}
|
||||||
|
s := service.LineReverseOrderExt{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
list := make([]models.LineReverseOrderExt, 0)
|
||||||
|
var count int64
|
||||||
|
|
||||||
|
err = s.GetPage(&req, p, &list, &count)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("获取反单拓展信息失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get 获取反单拓展信息
|
||||||
|
// @Summary 获取反单拓展信息
|
||||||
|
// @Description 获取反单拓展信息
|
||||||
|
// @Tags 反单拓展信息
|
||||||
|
// @Param id path int false "id"
|
||||||
|
// @Success 200 {object} response.Response{data=models.LineReverseOrderExt} "{"code": 200, "data": [...]}"
|
||||||
|
// @Router /api/v1/line-reverse-order-ext/{id} [get]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrderExt) Get(c *gin.Context) {
|
||||||
|
req := dto.LineReverseOrderExtGetReq{}
|
||||||
|
s := service.LineReverseOrderExt{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var object models.LineReverseOrderExt
|
||||||
|
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
err = s.Get(&req, p, &object)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("获取反单拓展信息失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
e.OK( object, "查询成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert 创建反单拓展信息
|
||||||
|
// @Summary 创建反单拓展信息
|
||||||
|
// @Description 创建反单拓展信息
|
||||||
|
// @Tags 反单拓展信息
|
||||||
|
// @Accept application/json
|
||||||
|
// @Product application/json
|
||||||
|
// @Param data body dto.LineReverseOrderExtInsertReq true "data"
|
||||||
|
// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}"
|
||||||
|
// @Router /api/v1/line-reverse-order-ext [post]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrderExt) Insert(c *gin.Context) {
|
||||||
|
req := dto.LineReverseOrderExtInsertReq{}
|
||||||
|
s := service.LineReverseOrderExt{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 设置创建人
|
||||||
|
req.SetCreateBy(user.GetUserId(c))
|
||||||
|
|
||||||
|
err = s.Insert(&req)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("创建反单拓展信息失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
e.OK(req.GetId(), "创建成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update 修改反单拓展信息
|
||||||
|
// @Summary 修改反单拓展信息
|
||||||
|
// @Description 修改反单拓展信息
|
||||||
|
// @Tags 反单拓展信息
|
||||||
|
// @Accept application/json
|
||||||
|
// @Product application/json
|
||||||
|
// @Param id path int true "id"
|
||||||
|
// @Param data body dto.LineReverseOrderExtUpdateReq true "body"
|
||||||
|
// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
|
||||||
|
// @Router /api/v1/line-reverse-order-ext/{id} [put]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrderExt) Update(c *gin.Context) {
|
||||||
|
req := dto.LineReverseOrderExtUpdateReq{}
|
||||||
|
s := service.LineReverseOrderExt{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req.SetUpdateBy(user.GetUserId(c))
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
|
err = s.Update(&req, p)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("修改反单拓展信息失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
e.OK( req.GetId(), "修改成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete 删除反单拓展信息
|
||||||
|
// @Summary 删除反单拓展信息
|
||||||
|
// @Description 删除反单拓展信息
|
||||||
|
// @Tags 反单拓展信息
|
||||||
|
// @Param data body dto.LineReverseOrderExtDeleteReq true "body"
|
||||||
|
// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}"
|
||||||
|
// @Router /api/v1/line-reverse-order-ext [delete]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseOrderExt) Delete(c *gin.Context) {
|
||||||
|
s := service.LineReverseOrderExt{}
|
||||||
|
req := dto.LineReverseOrderExtDeleteReq{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// req.SetUpdateBy(user.GetUserId(c))
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
|
err = s.Remove(&req, p)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("删除反单拓展信息失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
e.OK( req.GetId(), "删除成功")
|
||||||
|
}
|
||||||
43
app/admin/models/line_reverse_order.go
Normal file
43
app/admin/models/line_reverse_order.go
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"go-admin/common/models"
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
type LineReverseOrder struct {
|
||||||
|
models.Model
|
||||||
|
|
||||||
|
PId int `json:"pId" gorm:"type:bigint;comment:主单id"`
|
||||||
|
OrderSn string `json:"orderSn" gorm:"type:varchar(50);comment:订单号"`
|
||||||
|
OrderId string `json:"orderId" gorm:"type:varchar(50);comment:币安订单号"`
|
||||||
|
FollowOrderSn string `json:"followOrderSn" gorm:"type:varchar(50);comment:跟随币安订单号"`
|
||||||
|
Symbol string `json:"symbol" gorm:"type:varchar(20);comment:交易对"`
|
||||||
|
OrderType int `json:"orderType" gorm:"type:tinyint;comment:订单类型 0-主单 1-止损单 2-加仓 3-减仓"`
|
||||||
|
BuyPrice decimal.Decimal `json:"buyPrice" gorm:"type:decimal(18,8);comment:购买金额"`
|
||||||
|
Price decimal.Decimal `json:"price" gorm:"type:decimal(18,8);comment:委托价格"`
|
||||||
|
PriceU decimal.Decimal `json:"priceU" gorm:"type:decimal(18,8);comment:委托价格(U)"`
|
||||||
|
FinalPrice decimal.Decimal `json:"finalPrice" gorm:"type:decimal(18,8);comment:实际成交价"`
|
||||||
|
PositionSide string `json:"positionSide" gorm:"type:varchar(10);comment:持仓方向 LONG-多 SHORT-空"`
|
||||||
|
Side string `json:"side" gorm:"type:varchar(10);comment:买卖方向 SELL-卖 BUY-买"`
|
||||||
|
SignPrice decimal.Decimal `json:"signPrice" gorm:"type:decimal(18,8);comment:行情价"`
|
||||||
|
TriggerTime time.Time `json:"triggerTime" gorm:"type:datetime;comment:触发时间"`
|
||||||
|
Status int `json:"status" gorm:"type:tinyint;comment:状态 1-待下单 2-已下单 3-已成交 4-已平仓 5-已止损"`
|
||||||
|
models.ModelTime
|
||||||
|
models.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (LineReverseOrder) TableName() string {
|
||||||
|
return "line_reverse_order"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *LineReverseOrder) Generate() models.ActiveRecord {
|
||||||
|
o := *e
|
||||||
|
return &o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *LineReverseOrder) GetId() interface{} {
|
||||||
|
return e.Id
|
||||||
|
}
|
||||||
30
app/admin/models/line_reverse_order_ext.go
Normal file
30
app/admin/models/line_reverse_order_ext.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
|
||||||
|
"go-admin/common/models"
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
type LineReverseOrderExt struct {
|
||||||
|
models.Model
|
||||||
|
|
||||||
|
ReverseOrderId int `json:"reverseOrderId" gorm:"type:bigint;comment:下反单id"`
|
||||||
|
IsAddPosition int `json:"isAddPosition" gorm:"type:tinyint;comment:加仓状态 1-已加仓 2-未加仓"`
|
||||||
|
IsReduce int `json:"isReduce" gorm:"type:tinyint;comment:减仓状态 1-已减仓 2-未减仓"`
|
||||||
|
models.ModelTime
|
||||||
|
models.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (LineReverseOrderExt) TableName() string {
|
||||||
|
return "line_reverse_order_ext"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *LineReverseOrderExt) Generate() models.ActiveRecord {
|
||||||
|
o := *e
|
||||||
|
return &o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *LineReverseOrderExt) GetId() interface{} {
|
||||||
|
return e.Id
|
||||||
|
}
|
||||||
27
app/admin/router/line_reverse_order.go
Normal file
27
app/admin/router/line_reverse_order.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package router
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
|
||||||
|
|
||||||
|
"go-admin/app/admin/apis"
|
||||||
|
"go-admin/common/middleware"
|
||||||
|
"go-admin/common/actions"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
routerCheckRole = append(routerCheckRole, registerLineReverseOrderRouter)
|
||||||
|
}
|
||||||
|
|
||||||
|
// registerLineReverseOrderRouter
|
||||||
|
func registerLineReverseOrderRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||||
|
api := apis.LineReverseOrder{}
|
||||||
|
r := v1.Group("/line-reverse-order").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||||
|
{
|
||||||
|
r.GET("", actions.PermissionAction(), api.GetPage)
|
||||||
|
r.GET("/:id", actions.PermissionAction(), api.Get)
|
||||||
|
r.POST("", api.Insert)
|
||||||
|
r.PUT("/:id", actions.PermissionAction(), api.Update)
|
||||||
|
r.DELETE("", api.Delete)
|
||||||
|
}
|
||||||
|
}
|
||||||
27
app/admin/router/line_reverse_order_ext.go
Normal file
27
app/admin/router/line_reverse_order_ext.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package router
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
|
||||||
|
|
||||||
|
"go-admin/app/admin/apis"
|
||||||
|
"go-admin/common/middleware"
|
||||||
|
"go-admin/common/actions"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
routerCheckRole = append(routerCheckRole, registerLineReverseOrderExtRouter)
|
||||||
|
}
|
||||||
|
|
||||||
|
// registerLineReverseOrderExtRouter
|
||||||
|
func registerLineReverseOrderExtRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||||
|
api := apis.LineReverseOrderExt{}
|
||||||
|
r := v1.Group("/line-reverse-order-ext").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||||
|
{
|
||||||
|
r.GET("", actions.PermissionAction(), api.GetPage)
|
||||||
|
r.GET("/:id", actions.PermissionAction(), api.Get)
|
||||||
|
r.POST("", api.Insert)
|
||||||
|
r.PUT("/:id", actions.PermissionAction(), api.Update)
|
||||||
|
r.DELETE("", api.Delete)
|
||||||
|
}
|
||||||
|
}
|
||||||
159
app/admin/service/dto/line_reverse_order.go
Normal file
159
app/admin/service/dto/line_reverse_order.go
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
package dto
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"go-admin/app/admin/models"
|
||||||
|
"go-admin/common/dto"
|
||||||
|
common "go-admin/common/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LineReverseOrderGetPageReq struct {
|
||||||
|
dto.Pagination `search:"-"`
|
||||||
|
OrderSn string `form:"orderSn" search:"type:contains;column:order_sn;table:line_reverse_order" comment:"订单号"`
|
||||||
|
OrderId string `form:"orderId" search:"type:contains;column:order_id;table:line_reverse_order" comment:"币安订单号"`
|
||||||
|
FollowOrderSn string `form:"followOrderSn" search:"type:contains;column:follow_order_sn;table:line_reverse_order" comment:"跟随币安订单号"`
|
||||||
|
OrderType int `form:"orderType" search:"type:exact;column:order_type;table:line_reverse_order" comment:"订单类型 0-主单 1-止损单 2-加仓 3-减仓"`
|
||||||
|
PositionSide string `form:"positionSide" search:"type:exact;column:position_side;table:line_reverse_order" comment:"持仓方向 LONG-多 SHORT-空"`
|
||||||
|
Side string `form:"side" search:"type:exact;column:side;table:line_reverse_order" comment:"买卖方向 SELL-卖 BUY-买"`
|
||||||
|
Status int `form:"status" search:"type:exact;column:status;table:line_reverse_order" comment:"状态 1-待下单 2-已下单 3-已成交 4-已平仓 5-已止损"`
|
||||||
|
LineReverseOrderOrder
|
||||||
|
}
|
||||||
|
|
||||||
|
type LineReverseOrderOrder struct {
|
||||||
|
Id string `form:"idOrder" search:"type:order;column:id;table:line_reverse_order"`
|
||||||
|
PId string `form:"pIdOrder" search:"type:order;column:p_id;table:line_reverse_order"`
|
||||||
|
OrderSn string `form:"orderSnOrder" search:"type:order;column:order_sn;table:line_reverse_order"`
|
||||||
|
OrderId string `form:"orderIdOrder" search:"type:order;column:order_id;table:line_reverse_order"`
|
||||||
|
FollowOrderSn string `form:"followOrderSnOrder" search:"type:order;column:follow_order_sn;table:line_reverse_order"`
|
||||||
|
Symbol string `form:"symbolOrder" search:"type:order;column:symbol;table:line_reverse_order"`
|
||||||
|
OrderType string `form:"orderTypeOrder" search:"type:order;column:order_type;table:line_reverse_order"`
|
||||||
|
BuyPrice string `form:"buyPriceOrder" search:"type:order;column:buy_price;table:line_reverse_order"`
|
||||||
|
Price string `form:"priceOrder" search:"type:order;column:price;table:line_reverse_order"`
|
||||||
|
PriceU string `form:"priceUOrder" search:"type:order;column:price_u;table:line_reverse_order"`
|
||||||
|
FinalPrice string `form:"finalPriceOrder" search:"type:order;column:final_price;table:line_reverse_order"`
|
||||||
|
PositionSide string `form:"positionSideOrder" search:"type:order;column:position_side;table:line_reverse_order"`
|
||||||
|
Side string `form:"sideOrder" search:"type:order;column:side;table:line_reverse_order"`
|
||||||
|
SignPrice string `form:"signPriceOrder" search:"type:order;column:sign_price;table:line_reverse_order"`
|
||||||
|
TriggerTime string `form:"triggerTimeOrder" search:"type:order;column:trigger_time;table:line_reverse_order"`
|
||||||
|
Status string `form:"statusOrder" search:"type:order;column:status;table:line_reverse_order"`
|
||||||
|
CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:line_reverse_order"`
|
||||||
|
UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:line_reverse_order"`
|
||||||
|
DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:line_reverse_order"`
|
||||||
|
CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:line_reverse_order"`
|
||||||
|
UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:line_reverse_order"`
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *LineReverseOrderGetPageReq) GetNeedSearch() interface{} {
|
||||||
|
return *m
|
||||||
|
}
|
||||||
|
|
||||||
|
type LineReverseOrderInsertReq struct {
|
||||||
|
Id int `json:"-" comment:"主键id"` // 主键id
|
||||||
|
PId int `json:"pId" comment:"主单id"`
|
||||||
|
OrderSn string `json:"orderSn" comment:"订单号"`
|
||||||
|
OrderId string `json:"orderId" comment:"币安订单号"`
|
||||||
|
FollowOrderSn string `json:"followOrderSn" comment:"跟随币安订单号"`
|
||||||
|
Symbol string `json:"symbol" comment:"交易对"`
|
||||||
|
OrderType int `json:"orderType" comment:"订单类型 0-主单 1-止损单 2-加仓 3-减仓"`
|
||||||
|
BuyPrice decimal.Decimal `json:"buyPrice" comment:"购买金额"`
|
||||||
|
Price decimal.Decimal `json:"price" comment:"委托价格"`
|
||||||
|
PriceU decimal.Decimal `json:"priceU" comment:"委托价格(U)"`
|
||||||
|
FinalPrice decimal.Decimal `json:"finalPrice" comment:"实际成交价"`
|
||||||
|
PositionSide string `json:"positionSide" comment:"持仓方向 LONG-多 SHORT-空"`
|
||||||
|
Side string `json:"side" comment:"买卖方向 SELL-卖 BUY-买"`
|
||||||
|
SignPrice decimal.Decimal `json:"signPrice" comment:"行情价"`
|
||||||
|
TriggerTime time.Time `json:"triggerTime" comment:"触发时间"`
|
||||||
|
Status int `json:"status" comment:"状态 1-待下单 2-已下单 3-已成交 4-已平仓 5-已止损"`
|
||||||
|
common.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderInsertReq) Generate(model *models.LineReverseOrder) {
|
||||||
|
if s.Id == 0 {
|
||||||
|
model.Model = common.Model{ Id: s.Id }
|
||||||
|
}
|
||||||
|
model.PId = s.PId
|
||||||
|
model.OrderSn = s.OrderSn
|
||||||
|
model.OrderId = s.OrderId
|
||||||
|
model.FollowOrderSn = s.FollowOrderSn
|
||||||
|
model.Symbol = s.Symbol
|
||||||
|
model.OrderType = s.OrderType
|
||||||
|
model.BuyPrice = s.BuyPrice
|
||||||
|
model.Price = s.Price
|
||||||
|
model.PriceU = s.PriceU
|
||||||
|
model.FinalPrice = s.FinalPrice
|
||||||
|
model.PositionSide = s.PositionSide
|
||||||
|
model.Side = s.Side
|
||||||
|
model.SignPrice = s.SignPrice
|
||||||
|
model.TriggerTime = s.TriggerTime
|
||||||
|
model.Status = s.Status
|
||||||
|
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderInsertReq) GetId() interface{} {
|
||||||
|
return s.Id
|
||||||
|
}
|
||||||
|
|
||||||
|
type LineReverseOrderUpdateReq struct {
|
||||||
|
Id int `uri:"id" comment:"主键id"` // 主键id
|
||||||
|
PId int `json:"pId" comment:"主单id"`
|
||||||
|
OrderSn string `json:"orderSn" comment:"订单号"`
|
||||||
|
OrderId string `json:"orderId" comment:"币安订单号"`
|
||||||
|
FollowOrderSn string `json:"followOrderSn" comment:"跟随币安订单号"`
|
||||||
|
Symbol string `json:"symbol" comment:"交易对"`
|
||||||
|
OrderType int `json:"orderType" comment:"订单类型 0-主单 1-止损单 2-加仓 3-减仓"`
|
||||||
|
BuyPrice decimal.Decimal `json:"buyPrice" comment:"购买金额"`
|
||||||
|
Price decimal.Decimal `json:"price" comment:"委托价格"`
|
||||||
|
PriceU decimal.Decimal `json:"priceU" comment:"委托价格(U)"`
|
||||||
|
FinalPrice decimal.Decimal `json:"finalPrice" comment:"实际成交价"`
|
||||||
|
PositionSide string `json:"positionSide" comment:"持仓方向 LONG-多 SHORT-空"`
|
||||||
|
Side string `json:"side" comment:"买卖方向 SELL-卖 BUY-买"`
|
||||||
|
SignPrice decimal.Decimal `json:"signPrice" comment:"行情价"`
|
||||||
|
TriggerTime time.Time `json:"triggerTime" comment:"触发时间"`
|
||||||
|
Status int `json:"status" comment:"状态 1-待下单 2-已下单 3-已成交 4-已平仓 5-已止损"`
|
||||||
|
common.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderUpdateReq) Generate(model *models.LineReverseOrder) {
|
||||||
|
if s.Id == 0 {
|
||||||
|
model.Model = common.Model{ Id: s.Id }
|
||||||
|
}
|
||||||
|
model.PId = s.PId
|
||||||
|
model.OrderSn = s.OrderSn
|
||||||
|
model.OrderId = s.OrderId
|
||||||
|
model.FollowOrderSn = s.FollowOrderSn
|
||||||
|
model.Symbol = s.Symbol
|
||||||
|
model.OrderType = s.OrderType
|
||||||
|
model.BuyPrice = s.BuyPrice
|
||||||
|
model.Price = s.Price
|
||||||
|
model.PriceU = s.PriceU
|
||||||
|
model.FinalPrice = s.FinalPrice
|
||||||
|
model.PositionSide = s.PositionSide
|
||||||
|
model.Side = s.Side
|
||||||
|
model.SignPrice = s.SignPrice
|
||||||
|
model.TriggerTime = s.TriggerTime
|
||||||
|
model.Status = s.Status
|
||||||
|
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderUpdateReq) GetId() interface{} {
|
||||||
|
return s.Id
|
||||||
|
}
|
||||||
|
|
||||||
|
// LineReverseOrderGetReq 功能获取请求参数
|
||||||
|
type LineReverseOrderGetReq struct {
|
||||||
|
Id int `uri:"id"`
|
||||||
|
}
|
||||||
|
func (s *LineReverseOrderGetReq) GetId() interface{} {
|
||||||
|
return s.Id
|
||||||
|
}
|
||||||
|
|
||||||
|
// LineReverseOrderDeleteReq 功能删除请求参数
|
||||||
|
type LineReverseOrderDeleteReq struct {
|
||||||
|
Ids []int `json:"ids"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderDeleteReq) GetId() interface{} {
|
||||||
|
return s.Ids
|
||||||
|
}
|
||||||
91
app/admin/service/dto/line_reverse_order_ext.go
Normal file
91
app/admin/service/dto/line_reverse_order_ext.go
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
package dto
|
||||||
|
|
||||||
|
import (
|
||||||
|
|
||||||
|
"go-admin/app/admin/models"
|
||||||
|
"go-admin/common/dto"
|
||||||
|
common "go-admin/common/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LineReverseOrderExtGetPageReq struct {
|
||||||
|
dto.Pagination `search:"-"`
|
||||||
|
LineReverseOrderExtOrder
|
||||||
|
}
|
||||||
|
|
||||||
|
type LineReverseOrderExtOrder struct {
|
||||||
|
Id string `form:"idOrder" search:"type:order;column:id;table:line_reverse_order_ext"`
|
||||||
|
ReverseOrderId string `form:"reverseOrderIdOrder" search:"type:order;column:reverse_order_id;table:line_reverse_order_ext"`
|
||||||
|
IsAddPosition string `form:"isAddPositionOrder" search:"type:order;column:is_add_position;table:line_reverse_order_ext"`
|
||||||
|
IsReduce string `form:"isReduceOrder" search:"type:order;column:is_reduce;table:line_reverse_order_ext"`
|
||||||
|
CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:line_reverse_order_ext"`
|
||||||
|
UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:line_reverse_order_ext"`
|
||||||
|
DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:line_reverse_order_ext"`
|
||||||
|
CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:line_reverse_order_ext"`
|
||||||
|
UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:line_reverse_order_ext"`
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *LineReverseOrderExtGetPageReq) GetNeedSearch() interface{} {
|
||||||
|
return *m
|
||||||
|
}
|
||||||
|
|
||||||
|
type LineReverseOrderExtInsertReq struct {
|
||||||
|
Id int `json:"-" comment:"主键id"` // 主键id
|
||||||
|
ReverseOrderId int `json:"reverseOrderId" comment:"下反单id"`
|
||||||
|
IsAddPosition int `json:"isAddPosition" comment:"加仓状态 1-已加仓 2-未加仓"`
|
||||||
|
IsReduce int `json:"isReduce" comment:"减仓状态 1-已减仓 2-未减仓"`
|
||||||
|
common.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderExtInsertReq) Generate(model *models.LineReverseOrderExt) {
|
||||||
|
if s.Id == 0 {
|
||||||
|
model.Model = common.Model{ Id: s.Id }
|
||||||
|
}
|
||||||
|
model.ReverseOrderId = s.ReverseOrderId
|
||||||
|
model.IsAddPosition = s.IsAddPosition
|
||||||
|
model.IsReduce = s.IsReduce
|
||||||
|
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderExtInsertReq) GetId() interface{} {
|
||||||
|
return s.Id
|
||||||
|
}
|
||||||
|
|
||||||
|
type LineReverseOrderExtUpdateReq struct {
|
||||||
|
Id int `uri:"id" comment:"主键id"` // 主键id
|
||||||
|
ReverseOrderId int `json:"reverseOrderId" comment:"下反单id"`
|
||||||
|
IsAddPosition int `json:"isAddPosition" comment:"加仓状态 1-已加仓 2-未加仓"`
|
||||||
|
IsReduce int `json:"isReduce" comment:"减仓状态 1-已减仓 2-未减仓"`
|
||||||
|
common.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderExtUpdateReq) Generate(model *models.LineReverseOrderExt) {
|
||||||
|
if s.Id == 0 {
|
||||||
|
model.Model = common.Model{ Id: s.Id }
|
||||||
|
}
|
||||||
|
model.ReverseOrderId = s.ReverseOrderId
|
||||||
|
model.IsAddPosition = s.IsAddPosition
|
||||||
|
model.IsReduce = s.IsReduce
|
||||||
|
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderExtUpdateReq) GetId() interface{} {
|
||||||
|
return s.Id
|
||||||
|
}
|
||||||
|
|
||||||
|
// LineReverseOrderExtGetReq 功能获取请求参数
|
||||||
|
type LineReverseOrderExtGetReq struct {
|
||||||
|
Id int `uri:"id"`
|
||||||
|
}
|
||||||
|
func (s *LineReverseOrderExtGetReq) GetId() interface{} {
|
||||||
|
return s.Id
|
||||||
|
}
|
||||||
|
|
||||||
|
// LineReverseOrderExtDeleteReq 功能删除请求参数
|
||||||
|
type LineReverseOrderExtDeleteReq struct {
|
||||||
|
Ids []int `json:"ids"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseOrderExtDeleteReq) GetId() interface{} {
|
||||||
|
return s.Ids
|
||||||
|
}
|
||||||
109
app/admin/service/line_reverse_order.go
Normal file
109
app/admin/service/line_reverse_order.go
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
package service
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
|
||||||
|
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
|
||||||
|
"go-admin/app/admin/models"
|
||||||
|
"go-admin/app/admin/service/dto"
|
||||||
|
"go-admin/common/actions"
|
||||||
|
cDto "go-admin/common/dto"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LineReverseOrder struct {
|
||||||
|
service.Service
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPage 获取LineReverseOrder列表
|
||||||
|
func (e *LineReverseOrder) GetPage(c *dto.LineReverseOrderGetPageReq, p *actions.DataPermission, list *[]models.LineReverseOrder, count *int64) error {
|
||||||
|
var err error
|
||||||
|
var data models.LineReverseOrder
|
||||||
|
|
||||||
|
err = e.Orm.Model(&data).
|
||||||
|
Scopes(
|
||||||
|
cDto.MakeCondition(c.GetNeedSearch()),
|
||||||
|
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
||||||
|
actions.Permission(data.TableName(), p),
|
||||||
|
).
|
||||||
|
Find(list).Limit(-1).Offset(-1).
|
||||||
|
Count(count).Error
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("LineReverseOrderService GetPage error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get 获取LineReverseOrder对象
|
||||||
|
func (e *LineReverseOrder) Get(d *dto.LineReverseOrderGetReq, p *actions.DataPermission, model *models.LineReverseOrder) error {
|
||||||
|
var data models.LineReverseOrder
|
||||||
|
|
||||||
|
err := e.Orm.Model(&data).
|
||||||
|
Scopes(
|
||||||
|
actions.Permission(data.TableName(), p),
|
||||||
|
).
|
||||||
|
First(model, d.GetId()).Error
|
||||||
|
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
err = errors.New("查看对象不存在或无权查看")
|
||||||
|
e.Log.Errorf("Service GetLineReverseOrder error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("db error:%s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert 创建LineReverseOrder对象
|
||||||
|
func (e *LineReverseOrder) Insert(c *dto.LineReverseOrderInsertReq) error {
|
||||||
|
var err error
|
||||||
|
var data models.LineReverseOrder
|
||||||
|
c.Generate(&data)
|
||||||
|
err = e.Orm.Create(&data).Error
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("LineReverseOrderService Insert error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update 修改LineReverseOrder对象
|
||||||
|
func (e *LineReverseOrder) Update(c *dto.LineReverseOrderUpdateReq, p *actions.DataPermission) error {
|
||||||
|
var err error
|
||||||
|
var data = models.LineReverseOrder{}
|
||||||
|
e.Orm.Scopes(
|
||||||
|
actions.Permission(data.TableName(), p),
|
||||||
|
).First(&data, c.GetId())
|
||||||
|
c.Generate(&data)
|
||||||
|
|
||||||
|
db := e.Orm.Save(&data)
|
||||||
|
if err = db.Error; err != nil {
|
||||||
|
e.Log.Errorf("LineReverseOrderService Save error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if db.RowsAffected == 0 {
|
||||||
|
return errors.New("无权更新该数据")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove 删除LineReverseOrder
|
||||||
|
func (e *LineReverseOrder) Remove(d *dto.LineReverseOrderDeleteReq, p *actions.DataPermission) error {
|
||||||
|
var data models.LineReverseOrder
|
||||||
|
|
||||||
|
db := e.Orm.Model(&data).
|
||||||
|
Scopes(
|
||||||
|
actions.Permission(data.TableName(), p),
|
||||||
|
).Delete(&data, d.GetId())
|
||||||
|
if err := db.Error; err != nil {
|
||||||
|
e.Log.Errorf("Service RemoveLineReverseOrder error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if db.RowsAffected == 0 {
|
||||||
|
return errors.New("无权删除该数据")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
109
app/admin/service/line_reverse_order_ext.go
Normal file
109
app/admin/service/line_reverse_order_ext.go
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
package service
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
|
||||||
|
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
|
||||||
|
"go-admin/app/admin/models"
|
||||||
|
"go-admin/app/admin/service/dto"
|
||||||
|
"go-admin/common/actions"
|
||||||
|
cDto "go-admin/common/dto"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LineReverseOrderExt struct {
|
||||||
|
service.Service
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPage 获取LineReverseOrderExt列表
|
||||||
|
func (e *LineReverseOrderExt) GetPage(c *dto.LineReverseOrderExtGetPageReq, p *actions.DataPermission, list *[]models.LineReverseOrderExt, count *int64) error {
|
||||||
|
var err error
|
||||||
|
var data models.LineReverseOrderExt
|
||||||
|
|
||||||
|
err = e.Orm.Model(&data).
|
||||||
|
Scopes(
|
||||||
|
cDto.MakeCondition(c.GetNeedSearch()),
|
||||||
|
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
||||||
|
actions.Permission(data.TableName(), p),
|
||||||
|
).
|
||||||
|
Find(list).Limit(-1).Offset(-1).
|
||||||
|
Count(count).Error
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("LineReverseOrderExtService GetPage error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get 获取LineReverseOrderExt对象
|
||||||
|
func (e *LineReverseOrderExt) Get(d *dto.LineReverseOrderExtGetReq, p *actions.DataPermission, model *models.LineReverseOrderExt) error {
|
||||||
|
var data models.LineReverseOrderExt
|
||||||
|
|
||||||
|
err := e.Orm.Model(&data).
|
||||||
|
Scopes(
|
||||||
|
actions.Permission(data.TableName(), p),
|
||||||
|
).
|
||||||
|
First(model, d.GetId()).Error
|
||||||
|
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
err = errors.New("查看对象不存在或无权查看")
|
||||||
|
e.Log.Errorf("Service GetLineReverseOrderExt error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("db error:%s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert 创建LineReverseOrderExt对象
|
||||||
|
func (e *LineReverseOrderExt) Insert(c *dto.LineReverseOrderExtInsertReq) error {
|
||||||
|
var err error
|
||||||
|
var data models.LineReverseOrderExt
|
||||||
|
c.Generate(&data)
|
||||||
|
err = e.Orm.Create(&data).Error
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("LineReverseOrderExtService Insert error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update 修改LineReverseOrderExt对象
|
||||||
|
func (e *LineReverseOrderExt) Update(c *dto.LineReverseOrderExtUpdateReq, p *actions.DataPermission) error {
|
||||||
|
var err error
|
||||||
|
var data = models.LineReverseOrderExt{}
|
||||||
|
e.Orm.Scopes(
|
||||||
|
actions.Permission(data.TableName(), p),
|
||||||
|
).First(&data, c.GetId())
|
||||||
|
c.Generate(&data)
|
||||||
|
|
||||||
|
db := e.Orm.Save(&data)
|
||||||
|
if err = db.Error; err != nil {
|
||||||
|
e.Log.Errorf("LineReverseOrderExtService Save error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if db.RowsAffected == 0 {
|
||||||
|
return errors.New("无权更新该数据")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove 删除LineReverseOrderExt
|
||||||
|
func (e *LineReverseOrderExt) Remove(d *dto.LineReverseOrderExtDeleteReq, p *actions.DataPermission) error {
|
||||||
|
var data models.LineReverseOrderExt
|
||||||
|
|
||||||
|
db := e.Orm.Model(&data).
|
||||||
|
Scopes(
|
||||||
|
actions.Permission(data.TableName(), p),
|
||||||
|
).Delete(&data, d.GetId())
|
||||||
|
if err := db.Error; err != nil {
|
||||||
|
e.Log.Errorf("Service RemoveLineReverseOrderExt error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if db.RowsAffected == 0 {
|
||||||
|
return errors.New("无权删除该数据")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
15
services/binanceservice/biance_reverse_futures_service.go
Normal file
15
services/binanceservice/biance_reverse_futures_service.go
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package binanceservice
|
||||||
|
|
||||||
|
import "github.com/go-admin-team/go-admin-core/sdk/service"
|
||||||
|
|
||||||
|
type BinanceReverseFuturesService struct {
|
||||||
|
service.Service
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
func (e *BinanceReverseFuturesService) DoReverse() error {
|
||||||
|
apiInfo, ok := ShouldReverse(apiKey)
|
||||||
|
//TODO: 实现反向开仓逻辑
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
12
services/binanceservice/biance_reverse_spot_service.go
Normal file
12
services/binanceservice/biance_reverse_spot_service.go
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package binanceservice
|
||||||
|
|
||||||
|
import "github.com/go-admin-team/go-admin-core/sdk/service"
|
||||||
|
|
||||||
|
type BinanceReverseSpotService struct {
|
||||||
|
service.Service
|
||||||
|
}
|
||||||
|
|
||||||
|
// JudgeApiUser 判断是否需要
|
||||||
|
func (e *BinanceReverseSpotService) JudgeApiUser() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
16
services/binanceservice/binance_reverse_service.go
Normal file
16
services/binanceservice/binance_reverse_service.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package binanceservice
|
||||||
|
|
||||||
|
import DbModels "go-admin/app/admin/models"
|
||||||
|
|
||||||
|
// ShouldReverse 判断是否需要反单
|
||||||
|
// return apiInfo, bool
|
||||||
|
func ShouldReverse(apiKey string) (DbModels.LineApiUser, bool) {
|
||||||
|
// TODO: 实现判断是否需要反单的逻辑
|
||||||
|
apiInfo := GetApiInfoByKey(apiKey)
|
||||||
|
|
||||||
|
if apiInfo.ReverseStatus == 1 && apiInfo.ReverseApiId > 0 {
|
||||||
|
return apiInfo, true
|
||||||
|
}
|
||||||
|
|
||||||
|
return DbModels.LineApiUser{}, false
|
||||||
|
}
|
||||||
@ -467,6 +467,21 @@ func GetApiInfo(apiId int) (DbModels.LineApiUser, error) {
|
|||||||
return api, nil
|
return api, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetReverseApiInfo 根据apiKey获取api用户信息
|
||||||
|
func GetApiInfoByKey(apiKey string) DbModels.LineApiUser {
|
||||||
|
result := DbModels.LineApiUser{}
|
||||||
|
keys, _ := helper.DefaultRedis.GetAllKeysAndValues(fmt.Sprintf(rediskey.API_USER, "*"))
|
||||||
|
|
||||||
|
for _, key := range keys {
|
||||||
|
if strings.Contains(key, apiKey) {
|
||||||
|
sonic.UnmarshalString(key, &result)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
根据A账户获取B账号信息
|
根据A账户获取B账号信息
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user