1、反向下单 暂时提交
This commit is contained in:
@ -305,3 +305,26 @@ func (e LineApiUser) GetUnBindReverseApiUser(c *gin.Context) {
|
||||
|
||||
e.OK(datas, "查询成功")
|
||||
}
|
||||
|
||||
// 获取反单api用户选项
|
||||
func (e LineApiUser) GetReverseApiOptions(c *gin.Context) {
|
||||
req := dto.GetReverseApiOptionsReq{}
|
||||
s := service.LineApiUser{}
|
||||
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
|
||||
}
|
||||
list := make([]models.LineApiUser, 0)
|
||||
err = s.GetReverseApiOptions(&req, &list)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("获取失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
e.OK(list, "操作成功")
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ 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"
|
||||
@ -193,6 +194,7 @@ func (e LinePriceLimit) Delete(c *gin.Context) {
|
||||
e.OK(req.GetId(), "删除成功")
|
||||
}
|
||||
|
||||
// aicoin数据同步
|
||||
func (e LinePriceLimit) UpRange(c *gin.Context) {
|
||||
s := service.LinePriceLimit{}
|
||||
err := e.MakeContext(c).
|
||||
|
||||
@ -14,22 +14,27 @@ import (
|
||||
"go-admin/common/actions"
|
||||
)
|
||||
|
||||
type LineReverseOrderExt struct {
|
||||
type LineReversePosition struct {
|
||||
api.Api
|
||||
}
|
||||
|
||||
// GetPage 获取反单拓展信息列表
|
||||
// @Summary 获取反单拓展信息列表
|
||||
// @Description 获取反单拓展信息列表
|
||||
// @Tags 反单拓展信息
|
||||
// GetPage 获取反单管理-仓位列表
|
||||
// @Summary 获取反单管理-仓位列表
|
||||
// @Description 获取反单管理-仓位列表
|
||||
// @Tags 反单管理-仓位
|
||||
// @Param apiId query int64 false "api_id"
|
||||
// @Param reverseApiId query int64 false "反单api_id"
|
||||
// @Param side query string false "买卖方向 BUY SELL"
|
||||
// @Param positionSide query string false "持仓方向 LONG SHORT"
|
||||
// @Param symbol query string false "交易对"
|
||||
// @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]
|
||||
// @Success 200 {object} response.Response{data=response.Page{list=[]models.LineReversePosition}} "{"code": 200, "data": [...]}"
|
||||
// @Router /api/v1/line-reverse-position [get]
|
||||
// @Security Bearer
|
||||
func (e LineReverseOrderExt) GetPage(c *gin.Context) {
|
||||
req := dto.LineReverseOrderExtGetPageReq{}
|
||||
s := service.LineReverseOrderExt{}
|
||||
func (e LineReversePosition) GetPage(c *gin.Context) {
|
||||
req := dto.LineReversePositionGetPageReq{}
|
||||
s := service.LineReversePosition{}
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(&req).
|
||||
@ -42,29 +47,29 @@ func (e LineReverseOrderExt) GetPage(c *gin.Context) {
|
||||
}
|
||||
|
||||
p := actions.GetPermissionFromContext(c)
|
||||
list := make([]models.LineReverseOrderExt, 0)
|
||||
list := make([]models.LineReversePosition, 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()))
|
||||
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 反单拓展信息
|
||||
// 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]
|
||||
// @Success 200 {object} response.Response{data=models.LineReversePosition} "{"code": 200, "data": [...]}"
|
||||
// @Router /api/v1/line-reverse-position/{id} [get]
|
||||
// @Security Bearer
|
||||
func (e LineReverseOrderExt) Get(c *gin.Context) {
|
||||
req := dto.LineReverseOrderExtGetReq{}
|
||||
s := service.LineReverseOrderExt{}
|
||||
func (e LineReversePosition) Get(c *gin.Context) {
|
||||
req := dto.LineReversePositionGetReq{}
|
||||
s := service.LineReversePosition{}
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(&req).
|
||||
@ -75,31 +80,31 @@ func (e LineReverseOrderExt) Get(c *gin.Context) {
|
||||
e.Error(500, err, err.Error())
|
||||
return
|
||||
}
|
||||
var object models.LineReverseOrderExt
|
||||
var object models.LineReversePosition
|
||||
|
||||
p := actions.GetPermissionFromContext(c)
|
||||
err = s.Get(&req, p, &object)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("获取反单拓展信息失败,\r\n失败信息 %s", err.Error()))
|
||||
e.Error(500, err, fmt.Sprintf("获取反单管理-仓位失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
e.OK( object, "查询成功")
|
||||
}
|
||||
|
||||
// Insert 创建反单拓展信息
|
||||
// @Summary 创建反单拓展信息
|
||||
// @Description 创建反单拓展信息
|
||||
// @Tags 反单拓展信息
|
||||
// Insert 创建反单管理-仓位
|
||||
// @Summary 创建反单管理-仓位
|
||||
// @Description 创建反单管理-仓位
|
||||
// @Tags 反单管理-仓位
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body dto.LineReverseOrderExtInsertReq true "data"
|
||||
// @Param data body dto.LineReversePositionInsertReq true "data"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}"
|
||||
// @Router /api/v1/line-reverse-order-ext [post]
|
||||
// @Router /api/v1/line-reverse-position [post]
|
||||
// @Security Bearer
|
||||
func (e LineReverseOrderExt) Insert(c *gin.Context) {
|
||||
req := dto.LineReverseOrderExtInsertReq{}
|
||||
s := service.LineReverseOrderExt{}
|
||||
func (e LineReversePosition) Insert(c *gin.Context) {
|
||||
req := dto.LineReversePositionInsertReq{}
|
||||
s := service.LineReversePosition{}
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(&req).
|
||||
@ -115,27 +120,27 @@ func (e LineReverseOrderExt) Insert(c *gin.Context) {
|
||||
|
||||
err = s.Insert(&req)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("创建反单拓展信息失败,\r\n失败信息 %s", err.Error()))
|
||||
e.Error(500, err, fmt.Sprintf("创建反单管理-仓位失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
e.OK(req.GetId(), "创建成功")
|
||||
}
|
||||
|
||||
// Update 修改反单拓展信息
|
||||
// @Summary 修改反单拓展信息
|
||||
// @Description 修改反单拓展信息
|
||||
// @Tags 反单拓展信息
|
||||
// Update 修改反单管理-仓位
|
||||
// @Summary 修改反单管理-仓位
|
||||
// @Description 修改反单管理-仓位
|
||||
// @Tags 反单管理-仓位
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param id path int true "id"
|
||||
// @Param data body dto.LineReverseOrderExtUpdateReq true "body"
|
||||
// @Param data body dto.LineReversePositionUpdateReq true "body"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
|
||||
// @Router /api/v1/line-reverse-order-ext/{id} [put]
|
||||
// @Router /api/v1/line-reverse-position/{id} [put]
|
||||
// @Security Bearer
|
||||
func (e LineReverseOrderExt) Update(c *gin.Context) {
|
||||
req := dto.LineReverseOrderExtUpdateReq{}
|
||||
s := service.LineReverseOrderExt{}
|
||||
func (e LineReversePosition) Update(c *gin.Context) {
|
||||
req := dto.LineReversePositionUpdateReq{}
|
||||
s := service.LineReversePosition{}
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(&req).
|
||||
@ -151,23 +156,23 @@ func (e LineReverseOrderExt) Update(c *gin.Context) {
|
||||
|
||||
err = s.Update(&req, p)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("修改反单拓展信息失败,\r\n失败信息 %s", err.Error()))
|
||||
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"
|
||||
// Delete 删除反单管理-仓位
|
||||
// @Summary 删除反单管理-仓位
|
||||
// @Description 删除反单管理-仓位
|
||||
// @Tags 反单管理-仓位
|
||||
// @Param data body dto.LineReversePositionDeleteReq true "body"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}"
|
||||
// @Router /api/v1/line-reverse-order-ext [delete]
|
||||
// @Router /api/v1/line-reverse-position [delete]
|
||||
// @Security Bearer
|
||||
func (e LineReverseOrderExt) Delete(c *gin.Context) {
|
||||
s := service.LineReverseOrderExt{}
|
||||
req := dto.LineReverseOrderExtDeleteReq{}
|
||||
func (e LineReversePosition) Delete(c *gin.Context) {
|
||||
s := service.LineReversePosition{}
|
||||
req := dto.LineReversePositionDeleteReq{}
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(&req).
|
||||
@ -184,7 +189,7 @@ func (e LineReverseOrderExt) Delete(c *gin.Context) {
|
||||
|
||||
err = s.Remove(&req, p)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("删除反单拓展信息失败,\r\n失败信息 %s", err.Error()))
|
||||
e.Error(500, err, fmt.Sprintf("删除反单管理-仓位失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
e.OK( req.GetId(), "删除成功")
|
||||
@ -1,7 +1,7 @@
|
||||
package apis
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
@ -28,18 +28,18 @@ type LineReverseSetting struct {
|
||||
// @Router /api/v1/line-reverse-setting [get]
|
||||
// @Security Bearer
|
||||
func (e LineReverseSetting) GetPage(c *gin.Context) {
|
||||
req := dto.LineReverseSettingGetPageReq{}
|
||||
s := service.LineReverseSetting{}
|
||||
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 := dto.LineReverseSettingGetPageReq{}
|
||||
s := service.LineReverseSetting{}
|
||||
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.LineReverseSetting, 0)
|
||||
@ -48,7 +48,7 @@ func (e LineReverseSetting) GetPage(c *gin.Context) {
|
||||
err = s.GetPage(&req, p, &list, &count)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("获取反单下单配置失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
return
|
||||
}
|
||||
|
||||
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
|
||||
@ -65,7 +65,7 @@ func (e LineReverseSetting) GetPage(c *gin.Context) {
|
||||
func (e LineReverseSetting) Get(c *gin.Context) {
|
||||
req := dto.LineReverseSettingGetReq{}
|
||||
s := service.LineReverseSetting{}
|
||||
err := e.MakeContext(c).
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(&req).
|
||||
MakeService(&s.Service).
|
||||
@ -81,10 +81,10 @@ func (e LineReverseSetting) Get(c *gin.Context) {
|
||||
err = s.Get(&req, p, &object)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("获取反单下单配置失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
return
|
||||
}
|
||||
|
||||
e.OK( object, "查询成功")
|
||||
e.OK(object, "查询成功")
|
||||
}
|
||||
|
||||
// Insert 创建反单下单配置
|
||||
@ -98,25 +98,25 @@ func (e LineReverseSetting) Get(c *gin.Context) {
|
||||
// @Router /api/v1/line-reverse-setting [post]
|
||||
// @Security Bearer
|
||||
func (e LineReverseSetting) Insert(c *gin.Context) {
|
||||
req := dto.LineReverseSettingInsertReq{}
|
||||
s := service.LineReverseSetting{}
|
||||
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 := dto.LineReverseSettingInsertReq{}
|
||||
s := service.LineReverseSetting{}
|
||||
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
|
||||
return
|
||||
}
|
||||
|
||||
e.OK(req.GetId(), "创建成功")
|
||||
@ -134,58 +134,25 @@ func (e LineReverseSetting) Insert(c *gin.Context) {
|
||||
// @Router /api/v1/line-reverse-setting/{id} [put]
|
||||
// @Security Bearer
|
||||
func (e LineReverseSetting) Update(c *gin.Context) {
|
||||
req := dto.LineReverseSettingUpdateReq{}
|
||||
s := service.LineReverseSetting{}
|
||||
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 := dto.LineReverseSettingUpdateReq{}
|
||||
s := service.LineReverseSetting{}
|
||||
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
|
||||
return
|
||||
}
|
||||
e.OK( req.GetId(), "修改成功")
|
||||
}
|
||||
|
||||
// Delete 删除反单下单配置
|
||||
// @Summary 删除反单下单配置
|
||||
// @Description 删除反单下单配置
|
||||
// @Tags 反单下单配置
|
||||
// @Param data body dto.LineReverseSettingDeleteReq true "body"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}"
|
||||
// @Router /api/v1/line-reverse-setting [delete]
|
||||
// @Security Bearer
|
||||
func (e LineReverseSetting) Delete(c *gin.Context) {
|
||||
s := service.LineReverseSetting{}
|
||||
req := dto.LineReverseSettingDeleteReq{}
|
||||
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(), "删除成功")
|
||||
e.OK(req.GetId(), "修改成功")
|
||||
}
|
||||
|
||||
@ -1,36 +1,44 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
"time"
|
||||
|
||||
"go-admin/common/models"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
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
|
||||
models.Model
|
||||
|
||||
ApiId int `json:"apiId" gorm:"type:bigint;comment:api id"`
|
||||
Category int `json:"category" gorm:"type:tinyint;comment:分类 0-原始订单 1-反单"`
|
||||
|
||||
OrderSn string `json:"orderSn" gorm:"type:varchar(50);comment:订单号 0-主单 1-止盈 2-止损"`
|
||||
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:交易对"`
|
||||
Type string `json:"type" gorm:"type:varchar(20);comment:交易类型"`
|
||||
OrderType int `json:"orderType" gorm:"type:tinyint;comment:订单类型 0-主单 1-止盈 2-止损 3-减仓单 4-平仓单"`
|
||||
BuyPrice decimal.Decimal `json:"buyPrice" gorm:"type:decimal(18,8);comment:购买金额"`
|
||||
Price decimal.Decimal `json:"price" gorm:"type:decimal(18,8);comment:委托价格"`
|
||||
TotalNum decimal.Decimal `json:"totalNum" 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-已成交 6-已取消 7-已过期 8-已失败"`
|
||||
IsAddPosition int `json:"isAddPosition" gorm:"type:tinyint;comment:是否增加仓位 1-否 2-是"`
|
||||
IsReduce int `json:"isReduce" gorm:"type:tinyint;comment:是否减少仓位 1-否 2-是"`
|
||||
Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"`
|
||||
models.ModelTime
|
||||
models.ControlBy
|
||||
}
|
||||
|
||||
func (LineReverseOrder) TableName() string {
|
||||
return "line_reverse_order"
|
||||
return "line_reverse_order"
|
||||
}
|
||||
|
||||
func (e *LineReverseOrder) Generate() models.ActiveRecord {
|
||||
@ -40,4 +48,4 @@ func (e *LineReverseOrder) Generate() models.ActiveRecord {
|
||||
|
||||
func (e *LineReverseOrder) GetId() interface{} {
|
||||
return e.Id
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
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
|
||||
}
|
||||
39
app/admin/models/line_reverse_position.go
Normal file
39
app/admin/models/line_reverse_position.go
Normal file
@ -0,0 +1,39 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"go-admin/common/models"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
type LineReversePosition struct {
|
||||
models.Model
|
||||
|
||||
ApiId int `json:"apiId" gorm:"type:bigint;comment:api_id"`
|
||||
TotalAmount decimal.Decimal `json:"totalAmount" gorm:"type:decimal(18,8);comment:总仓位"`
|
||||
Amount decimal.Decimal `json:"amount" gorm:"type:decimal(18,8);comment:仓位"`
|
||||
ReverseApiId int `json:"reverseApiId" gorm:"type:bigint;comment:反单api_id"`
|
||||
TotalReverseAmount decimal.Decimal `json:"totalReverseAmount" gorm:"type:decimal(18,8);comment:总反单仓位"`
|
||||
ReverseAmount decimal.Decimal `json:"reverseAmount" gorm:"type:decimal(18,8);comment:反单仓位"`
|
||||
Side string `json:"side" gorm:"type:varchar(10);comment:买卖方向 BUY SELL"`
|
||||
PositionSide string `json:"positionSide" gorm:"type:varchar(10);comment:持仓方向 LONG SHORT"`
|
||||
Symbol string `json:"symbol" gorm:"type:varchar(20);comment:交易对"`
|
||||
Status int `json:"status" gorm:"type:tinyint;comment:仓位状态 1-已开仓 2-已平仓"`
|
||||
ReverseStatus int `json:"reverseStatus" gorm:"type:tinyint;comment:反单仓位状态 1-已开仓 2-已平仓"`
|
||||
|
||||
models.ModelTime
|
||||
models.ControlBy
|
||||
}
|
||||
|
||||
func (LineReversePosition) TableName() string {
|
||||
return "line_reverse_position"
|
||||
}
|
||||
|
||||
func (e *LineReversePosition) Generate() models.ActiveRecord {
|
||||
o := *e
|
||||
return &o
|
||||
}
|
||||
|
||||
func (e *LineReversePosition) GetId() interface{} {
|
||||
return e.Id
|
||||
}
|
||||
@ -9,9 +9,10 @@ import (
|
||||
type LineReverseSetting struct {
|
||||
models.Model
|
||||
|
||||
ReverseOrderType string `json:"reverseOrderType" gorm:"type:varchar(10);comment:反单下单类型 LIMIT-限价 MARKET-市价"`
|
||||
ReversePremiumRatio decimal.Decimal `json:"reversePremiumRatio" gorm:"type:decimal(10,2);comment:溢价百分比"`
|
||||
StopLossRatio decimal.Decimal `json:"stopLossRatio" gorm:"type:decimal(10,2);comment:止损百分比"`
|
||||
ReverseOrderType string `json:"reverseOrderType" redis:"reverseOrderType" gorm:"type:varchar(10);comment:反单下单类型 LIMIT-限价 MARKET-市价"`
|
||||
ReversePremiumRatio decimal.Decimal `json:"reversePremiumRatio" redis:"reversePremiumRatio" gorm:"type:decimal(10,2);comment:溢价百分比"`
|
||||
TakeProfitRatio decimal.Decimal `json:"takeProfitRatio" redis:"takeProfitRatio" gorm:"type:decimal(10,2);comment:止盈百分比"`
|
||||
StopLossRatio decimal.Decimal `json:"stopLossRatio" redis:"stopLossRatio" gorm:"type:decimal(10,2);comment:止损百分比"`
|
||||
models.ModelTime
|
||||
models.ControlBy
|
||||
}
|
||||
|
||||
@ -29,5 +29,7 @@ func registerLineApiUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMi
|
||||
r.POST("getMainUser", api.GetMainUser) //获取获取主账号的用户
|
||||
|
||||
r.GET("unbind-reverse", api.GetUnBindReverseApiUser) //获取未绑定下反单用户
|
||||
|
||||
r.GET("reverse-options", api.GetReverseApiOptions) //获取可用反单api用户
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,13 +10,13 @@ import (
|
||||
)
|
||||
|
||||
func init() {
|
||||
routerCheckRole = append(routerCheckRole, registerLineReverseOrderExtRouter)
|
||||
routerCheckRole = append(routerCheckRole, registerLineReversePositionRouter)
|
||||
}
|
||||
|
||||
// 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())
|
||||
// registerLineReversePositionRouter
|
||||
func registerLineReversePositionRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||
api := apis.LineReversePosition{}
|
||||
r := v1.Group("/line-reverse-position").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
{
|
||||
r.GET("", actions.PermissionAction(), api.GetPage)
|
||||
r.GET("/:id", actions.PermissionAction(), api.Get)
|
||||
@ -5,8 +5,8 @@ import (
|
||||
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"
|
||||
"go-admin/common/middleware"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -22,6 +22,6 @@ func registerLineReverseSettingRouter(v1 *gin.RouterGroup, authMiddleware *jwt.G
|
||||
r.GET("/:id", actions.PermissionAction(), api.Get)
|
||||
r.POST("", api.Insert)
|
||||
r.PUT("/:id", actions.PermissionAction(), api.Update)
|
||||
r.DELETE("", api.Delete)
|
||||
// r.DELETE("", api.Delete)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -219,3 +219,8 @@ type UnBindReverseResp struct {
|
||||
Disabled bool `json:"disabled"`
|
||||
ApiName string `json:"apiName"`
|
||||
}
|
||||
|
||||
type GetReverseApiOptionsReq struct {
|
||||
Id int `json:"apiId" form:"id"`
|
||||
ApiId int `json:"apiId" form:"apiId"`
|
||||
}
|
||||
|
||||
@ -1,48 +1,49 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
"time"
|
||||
"time"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/common/dto"
|
||||
common "go-admin/common/models"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
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
|
||||
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"`
|
||||
|
||||
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{} {
|
||||
@ -50,45 +51,43 @@ func (m *LineReverseOrderGetPageReq) GetNeedSearch() interface{} {
|
||||
}
|
||||
|
||||
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
|
||||
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) Generate(model *models.LineReverseOrder) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{Id: s.Id}
|
||||
}
|
||||
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.Status = s.Status
|
||||
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||
}
|
||||
|
||||
func (s *LineReverseOrderInsertReq) GetId() interface{} {
|
||||
@ -96,45 +95,44 @@ func (s *LineReverseOrderInsertReq) GetId() interface{} {
|
||||
}
|
||||
|
||||
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
|
||||
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) Generate(model *models.LineReverseOrder) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{Id: s.Id}
|
||||
}
|
||||
|
||||
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.Status = s.Status
|
||||
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||
}
|
||||
|
||||
func (s *LineReverseOrderUpdateReq) GetId() interface{} {
|
||||
@ -143,8 +141,9 @@ func (s *LineReverseOrderUpdateReq) GetId() interface{} {
|
||||
|
||||
// LineReverseOrderGetReq 功能获取请求参数
|
||||
type LineReverseOrderGetReq struct {
|
||||
Id int `uri:"id"`
|
||||
Id int `uri:"id"`
|
||||
}
|
||||
|
||||
func (s *LineReverseOrderGetReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
@ -1,91 +0,0 @@
|
||||
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
|
||||
}
|
||||
117
app/admin/service/dto/line_reverse_position.go
Normal file
117
app/admin/service/dto/line_reverse_position.go
Normal file
@ -0,0 +1,117 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/common/dto"
|
||||
common "go-admin/common/models"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
type LineReversePositionGetPageReq struct {
|
||||
dto.Pagination `search:"-"`
|
||||
ApiId int64 `form:"apiId" search:"type:exact;column:api_id;table:line_reverse_position" comment:"api_id"`
|
||||
ReverseApiId int64 `form:"reverseApiId" search:"type:exact;column:reverse_api_id;table:line_reverse_position" comment:"反单api_id"`
|
||||
Side string `form:"side" search:"type:exact;column:side;table:line_reverse_position" comment:"买卖方向 BUY SELL"`
|
||||
PositionSide string `form:"positionSide" search:"type:exact;column:position_side;table:line_reverse_position" comment:"持仓方向 LONG SHORT"`
|
||||
Symbol string `form:"symbol" search:"type:contains;column:symbol;table:line_reverse_position" comment:"交易对"`
|
||||
LineReversePositionOrder
|
||||
}
|
||||
|
||||
type LineReversePositionOrder struct {
|
||||
Id string `form:"idOrder" search:"type:order;column:id;table:line_reverse_position"`
|
||||
ApiId string `form:"apiIdOrder" search:"type:order;column:api_id;table:line_reverse_position"`
|
||||
ReverseApiId string `form:"reverseApiIdOrder" search:"type:order;column:reverse_api_id;table:line_reverse_position"`
|
||||
ReverseAmount string `form:"reverseAmountOrder" search:"type:order;column:reverse_amount;table:line_reverse_position"`
|
||||
Side string `form:"sideOrder" search:"type:order;column:side;table:line_reverse_position"`
|
||||
PositionSide string `form:"positionSideOrder" search:"type:order;column:position_side;table:line_reverse_position"`
|
||||
Symbol string `form:"symbolOrder" search:"type:order;column:symbol;table:line_reverse_position"`
|
||||
Status string `form:"statusOrder" search:"type:order;column:status;table:line_reverse_position"`
|
||||
CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:line_reverse_position"`
|
||||
UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:line_reverse_position"`
|
||||
DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:line_reverse_position"`
|
||||
CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:line_reverse_position"`
|
||||
UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:line_reverse_position"`
|
||||
}
|
||||
|
||||
func (m *LineReversePositionGetPageReq) GetNeedSearch() interface{} {
|
||||
return *m
|
||||
}
|
||||
|
||||
type LineReversePositionInsertReq struct {
|
||||
Id int `json:"-" comment:"主键"` // 主键
|
||||
ApiId int `json:"apiId" comment:"api_id"`
|
||||
ReverseApiId int `json:"reverseApiId" comment:"反单api_id"`
|
||||
ReverseAmount decimal.Decimal `json:"reverseAmount" comment:"反单仓位"`
|
||||
Side string `json:"side" comment:"买卖方向 BUY SELL"`
|
||||
PositionSide string `json:"positionSide" comment:"持仓方向 LONG SHORT"`
|
||||
Symbol string `json:"symbol" comment:"交易对"`
|
||||
Status int `json:"status" comment:"仓位状态 1-已开仓 2-已平仓"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *LineReversePositionInsertReq) Generate(model *models.LineReversePosition) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{Id: s.Id}
|
||||
}
|
||||
model.ApiId = s.ApiId
|
||||
model.ReverseApiId = s.ReverseApiId
|
||||
model.ReverseAmount = s.ReverseAmount
|
||||
model.Side = s.Side
|
||||
model.PositionSide = s.PositionSide
|
||||
model.Symbol = s.Symbol
|
||||
model.Status = s.Status
|
||||
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||
}
|
||||
|
||||
func (s *LineReversePositionInsertReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
type LineReversePositionUpdateReq struct {
|
||||
Id int `uri:"id" comment:"主键"` // 主键
|
||||
ApiId int `json:"apiId" comment:"api_id"`
|
||||
ReverseApiId int `json:"reverseApiId" comment:"反单api_id"`
|
||||
ReverseAmount decimal.Decimal `json:"reverseAmount" comment:"反单仓位"`
|
||||
Side string `json:"side" comment:"买卖方向 BUY SELL"`
|
||||
PositionSide string `json:"positionSide" comment:"持仓方向 LONG SHORT"`
|
||||
Symbol string `json:"symbol" comment:"交易对"`
|
||||
Status int `json:"status" comment:"仓位状态 1-已开仓 2-已平仓"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *LineReversePositionUpdateReq) Generate(model *models.LineReversePosition) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{Id: s.Id}
|
||||
}
|
||||
model.ApiId = s.ApiId
|
||||
model.ReverseApiId = s.ReverseApiId
|
||||
model.ReverseAmount = s.ReverseAmount
|
||||
model.Side = s.Side
|
||||
model.PositionSide = s.PositionSide
|
||||
model.Symbol = s.Symbol
|
||||
model.Status = s.Status
|
||||
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||
}
|
||||
|
||||
func (s *LineReversePositionUpdateReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
// LineReversePositionGetReq 功能获取请求参数
|
||||
type LineReversePositionGetReq struct {
|
||||
Id int `uri:"id"`
|
||||
}
|
||||
|
||||
func (s *LineReversePositionGetReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
// LineReversePositionDeleteReq 功能删除请求参数
|
||||
type LineReversePositionDeleteReq struct {
|
||||
Ids []int `json:"ids"`
|
||||
}
|
||||
|
||||
func (s *LineReversePositionDeleteReq) GetId() interface{} {
|
||||
return s.Ids
|
||||
}
|
||||
@ -32,6 +32,8 @@ type LineReverseSettingInsertReq struct {
|
||||
Id int `json:"-" comment:"主键id"` // 主键id
|
||||
ReverseOrderType string `json:"reverseOrderType" comment:"反单下单类型 LIMIT-限价 MARKET-市价"`
|
||||
ReversePremiumRatio decimal.Decimal `json:"reversePremiumRatio" comment:"溢价百分比"`
|
||||
TakeProfitRatio decimal.Decimal `json:"takeProfitRatio" comment:"止盈百分比"`
|
||||
StopLossRatio decimal.Decimal `json:"stopLossRatio" comment:"止损百分比"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
@ -41,6 +43,8 @@ func (s *LineReverseSettingInsertReq) Generate(model *models.LineReverseSetting)
|
||||
}
|
||||
model.ReverseOrderType = s.ReverseOrderType
|
||||
model.ReversePremiumRatio = s.ReversePremiumRatio
|
||||
model.StopLossRatio = s.StopLossRatio
|
||||
model.TakeProfitRatio = s.TakeProfitRatio
|
||||
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||
}
|
||||
|
||||
@ -52,6 +56,7 @@ type LineReverseSettingUpdateReq struct {
|
||||
Id int `uri:"id" comment:"主键id"` // 主键id
|
||||
ReverseOrderType string `json:"reverseOrderType" comment:"反单下单类型 LIMIT-限价 MARKET-市价"`
|
||||
ReversePremiumRatio decimal.Decimal `json:"reversePremiumRatio" comment:"溢价百分比"`
|
||||
TakeProfitRatio decimal.Decimal `json:"takeProfitRatio" comment:"止盈百分比"`
|
||||
StopLossRatio decimal.Decimal `json:"stopLossRatio" comment:"止损百分比"`
|
||||
common.ControlBy
|
||||
}
|
||||
@ -63,6 +68,7 @@ func (s *LineReverseSettingUpdateReq) Generate(model *models.LineReverseSetting)
|
||||
model.ReverseOrderType = s.ReverseOrderType
|
||||
model.ReversePremiumRatio = s.ReversePremiumRatio
|
||||
model.StopLossRatio = s.StopLossRatio
|
||||
model.TakeProfitRatio = s.TakeProfitRatio
|
||||
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||
}
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ import (
|
||||
"github.com/bytedance/sonic"
|
||||
"github.com/go-admin-team/go-admin-core/logger"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"github.com/go-redis/redis/v8"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
@ -25,6 +26,23 @@ type LineApiUser struct {
|
||||
service.Service
|
||||
}
|
||||
|
||||
// 获取可以绑定的api列表
|
||||
func (e LineApiUser) GetReverseApiOptions(req *dto.GetReverseApiOptionsReq, user *[]models.LineApiUser) error {
|
||||
query := e.Orm.Model(models.LineApiUser{}).
|
||||
Where("subordinate ='0' and id != ?", req.Id)
|
||||
|
||||
if req.ApiId > 0 {
|
||||
query = query.Or(" id =?", req.ApiId)
|
||||
}
|
||||
|
||||
if err := query.Find(user).Error; err != nil {
|
||||
e.Log.Errorf("LineApiUserService GetReverseApiOptions error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetPage 获取LineApiUser列表
|
||||
func (e *LineApiUser) GetPage(c *dto.LineApiUserGetPageReq, p *actions.DataPermission, list *[]models.LineApiUser, count *int64) error {
|
||||
var err error
|
||||
@ -107,7 +125,7 @@ func (e *LineApiUser) Insert(c *dto.LineApiUserInsertReq) error {
|
||||
return errors.New("反向api已被使用")
|
||||
}
|
||||
|
||||
if err2 := tx.Model(models.LineApiUser{}).Where("id =?", c.ReverseApiId).Update("subordinate", 2).Error; err2 != nil {
|
||||
if err2 := tx.Model(models.LineApiUser{}).Where("id =?", c.ReverseApiId).Update("subordinate", '2').Error; err2 != nil {
|
||||
return err2
|
||||
}
|
||||
data.Subordinate = "1"
|
||||
@ -133,6 +151,9 @@ func (e *LineApiUser) Insert(c *dto.LineApiUserInsertReq) error {
|
||||
}
|
||||
}
|
||||
|
||||
if err2 := e.CacheRelation(); err2 != nil {
|
||||
return err2
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -170,6 +191,33 @@ func (e *LineApiUser) saveCache(data models.LineApiUser) {
|
||||
}
|
||||
}
|
||||
|
||||
// 缓存关系
|
||||
// cacheAll 是否缓存所有关系
|
||||
func (e *LineApiUser) CacheRelation() error {
|
||||
var datas *[]models.LineApiUser
|
||||
cacheStrs := make([]string, 0)
|
||||
|
||||
if err := e.Orm.Model(&models.LineApiUser{}).Where("subordinate ='1' and reverse_api_id >0 and open_status =1 and reverse_status =1").Find(&datas).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, data := range *datas {
|
||||
cacheStrs = append(cacheStrs, fmt.Sprintf("%d:%d", data.Id, data.ReverseApiId))
|
||||
}
|
||||
|
||||
if len(cacheStrs) > 0 {
|
||||
if err := helper.DefaultRedis.SetListCache(rediskey.ApiReverseRelation, 0, cacheStrs...); err != nil {
|
||||
e.Log.Errorf("设置缓存失败 err:%v", err)
|
||||
}
|
||||
} else {
|
||||
if err := helper.DefaultRedis.DeleteString(rediskey.ApiReverseRelation); err != nil {
|
||||
e.Log.Errorf("删除缓存失败 err:%v", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
/*
|
||||
打开用户websocket订阅
|
||||
*/
|
||||
@ -292,6 +340,10 @@ func (e *LineApiUser) Update(c *dto.LineApiUserUpdateReq, p *actions.DataPermiss
|
||||
}
|
||||
}
|
||||
|
||||
if err2 := e.CacheRelation(); err2 != nil {
|
||||
return err2
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -338,10 +390,14 @@ func (e *LineApiUser) Remove(d *dto.LineApiUserDeleteReq, p *actions.DataPermiss
|
||||
|
||||
_, err := helper.DefaultRedis.BatchDeleteKeys(delKeys)
|
||||
|
||||
if err != nil {
|
||||
if err != nil && !errors.Is(err, redis.Nil) {
|
||||
e.Log.Error("批量删除api_user key失败", err)
|
||||
}
|
||||
|
||||
if err2 := e.CacheRelation(); err2 != nil {
|
||||
return err2
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -12,14 +12,14 @@ import (
|
||||
cDto "go-admin/common/dto"
|
||||
)
|
||||
|
||||
type LineReverseOrderExt struct {
|
||||
type LineReversePosition struct {
|
||||
service.Service
|
||||
}
|
||||
|
||||
// GetPage 获取LineReverseOrderExt列表
|
||||
func (e *LineReverseOrderExt) GetPage(c *dto.LineReverseOrderExtGetPageReq, p *actions.DataPermission, list *[]models.LineReverseOrderExt, count *int64) error {
|
||||
// GetPage 获取LineReversePosition列表
|
||||
func (e *LineReversePosition) GetPage(c *dto.LineReversePositionGetPageReq, p *actions.DataPermission, list *[]models.LineReversePosition, count *int64) error {
|
||||
var err error
|
||||
var data models.LineReverseOrderExt
|
||||
var data models.LineReversePosition
|
||||
|
||||
err = e.Orm.Model(&data).
|
||||
Scopes(
|
||||
@ -30,15 +30,15 @@ func (e *LineReverseOrderExt) GetPage(c *dto.LineReverseOrderExtGetPageReq, p *a
|
||||
Find(list).Limit(-1).Offset(-1).
|
||||
Count(count).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("LineReverseOrderExtService GetPage error:%s \r\n", err)
|
||||
e.Log.Errorf("LineReversePositionService 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
|
||||
// Get 获取LineReversePosition对象
|
||||
func (e *LineReversePosition) Get(d *dto.LineReversePositionGetReq, p *actions.DataPermission, model *models.LineReversePosition) error {
|
||||
var data models.LineReversePosition
|
||||
|
||||
err := e.Orm.Model(&data).
|
||||
Scopes(
|
||||
@ -47,7 +47,7 @@ func (e *LineReverseOrderExt) Get(d *dto.LineReverseOrderExtGetReq, p *actions.D
|
||||
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)
|
||||
e.Log.Errorf("Service GetLineReversePosition error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if err != nil {
|
||||
@ -57,23 +57,23 @@ func (e *LineReverseOrderExt) Get(d *dto.LineReverseOrderExtGetReq, p *actions.D
|
||||
return nil
|
||||
}
|
||||
|
||||
// Insert 创建LineReverseOrderExt对象
|
||||
func (e *LineReverseOrderExt) Insert(c *dto.LineReverseOrderExtInsertReq) error {
|
||||
// Insert 创建LineReversePosition对象
|
||||
func (e *LineReversePosition) Insert(c *dto.LineReversePositionInsertReq) error {
|
||||
var err error
|
||||
var data models.LineReverseOrderExt
|
||||
var data models.LineReversePosition
|
||||
c.Generate(&data)
|
||||
err = e.Orm.Create(&data).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("LineReverseOrderExtService Insert error:%s \r\n", err)
|
||||
e.Log.Errorf("LineReversePositionService Insert error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Update 修改LineReverseOrderExt对象
|
||||
func (e *LineReverseOrderExt) Update(c *dto.LineReverseOrderExtUpdateReq, p *actions.DataPermission) error {
|
||||
// Update 修改LineReversePosition对象
|
||||
func (e *LineReversePosition) Update(c *dto.LineReversePositionUpdateReq, p *actions.DataPermission) error {
|
||||
var err error
|
||||
var data = models.LineReverseOrderExt{}
|
||||
var data = models.LineReversePosition{}
|
||||
e.Orm.Scopes(
|
||||
actions.Permission(data.TableName(), p),
|
||||
).First(&data, c.GetId())
|
||||
@ -81,7 +81,7 @@ func (e *LineReverseOrderExt) Update(c *dto.LineReverseOrderExtUpdateReq, p *act
|
||||
|
||||
db := e.Orm.Save(&data)
|
||||
if err = db.Error; err != nil {
|
||||
e.Log.Errorf("LineReverseOrderExtService Save error:%s \r\n", err)
|
||||
e.Log.Errorf("LineReversePositionService Save error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
@ -90,16 +90,16 @@ func (e *LineReverseOrderExt) Update(c *dto.LineReverseOrderExtUpdateReq, p *act
|
||||
return nil
|
||||
}
|
||||
|
||||
// Remove 删除LineReverseOrderExt
|
||||
func (e *LineReverseOrderExt) Remove(d *dto.LineReverseOrderExtDeleteReq, p *actions.DataPermission) error {
|
||||
var data models.LineReverseOrderExt
|
||||
// Remove 删除LineReversePosition
|
||||
func (e *LineReversePosition) Remove(d *dto.LineReversePositionDeleteReq, p *actions.DataPermission) error {
|
||||
var data models.LineReversePosition
|
||||
|
||||
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)
|
||||
e.Log.Errorf("Service RemoveLineReversePosition error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
@ -3,13 +3,15 @@ package service
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"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"
|
||||
"go-admin/common/const/rediskey"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/helper"
|
||||
)
|
||||
|
||||
type LineReverseSetting struct {
|
||||
@ -59,35 +61,60 @@ func (e *LineReverseSetting) Get(d *dto.LineReverseSettingGetReq, p *actions.Dat
|
||||
|
||||
// Insert 创建LineReverseSetting对象
|
||||
func (e *LineReverseSetting) Insert(c *dto.LineReverseSettingInsertReq) error {
|
||||
var err error
|
||||
var data models.LineReverseSetting
|
||||
c.Generate(&data)
|
||||
var err error
|
||||
var data models.LineReverseSetting
|
||||
c.Generate(&data)
|
||||
err = e.Orm.Create(&data).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("LineReverseSettingService Insert error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
|
||||
err = e.SaveCache(data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 缓存数据
|
||||
func (e *LineReverseSetting) SaveCache(data models.LineReverseSetting) error {
|
||||
if data.Id == 0 {
|
||||
if err := e.Orm.First(&data).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if err := helper.DefaultRedis.SetHashWithTags(rediskey.ReverseSetting, &data); err != nil {
|
||||
e.Log.Errorf("redis error:%s", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Update 修改LineReverseSetting对象
|
||||
func (e *LineReverseSetting) Update(c *dto.LineReverseSettingUpdateReq, p *actions.DataPermission) error {
|
||||
var err error
|
||||
var data = models.LineReverseSetting{}
|
||||
e.Orm.Scopes(
|
||||
actions.Permission(data.TableName(), p),
|
||||
).First(&data, c.GetId())
|
||||
c.Generate(&data)
|
||||
var err error
|
||||
var data = models.LineReverseSetting{}
|
||||
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("LineReverseSettingService Save error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权更新该数据")
|
||||
}
|
||||
return nil
|
||||
db := e.Orm.Save(&data)
|
||||
if err = db.Error; err != nil {
|
||||
e.Log.Errorf("LineReverseSettingService Save error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权更新该数据")
|
||||
}
|
||||
if err = helper.DefaultRedis.SetHashWithTags(rediskey.ReverseSetting, data); err != nil {
|
||||
e.Log.Errorf("redis error:%s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Remove 删除LineReverseSetting
|
||||
@ -99,11 +126,11 @@ func (e *LineReverseSetting) Remove(d *dto.LineReverseSettingDeleteReq, p *actio
|
||||
actions.Permission(data.TableName(), p),
|
||||
).Delete(&data, d.GetId())
|
||||
if err := db.Error; err != nil {
|
||||
e.Log.Errorf("Service RemoveLineReverseSetting error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权删除该数据")
|
||||
}
|
||||
e.Log.Errorf("Service RemoveLineReverseSetting error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权删除该数据")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user