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