1、暂存
This commit is contained in:
@ -120,6 +120,11 @@ func (e LineApiUser) Insert(c *gin.Context) {
|
|||||||
// 设置创建人
|
// 设置创建人
|
||||||
req.SetCreateBy(user.GetUserId(c))
|
req.SetCreateBy(user.GetUserId(c))
|
||||||
|
|
||||||
|
if err := req.Valid(); err != nil {
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
err = s.Insert(&req)
|
err = s.Insert(&req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Error(500, err, fmt.Sprintf("创建api用户管理失败,\r\n失败信息 %s", err.Error()))
|
e.Error(500, err, fmt.Sprintf("创建api用户管理失败,\r\n失败信息 %s", err.Error()))
|
||||||
@ -153,6 +158,12 @@ func (e LineApiUser) Update(c *gin.Context) {
|
|||||||
e.Error(500, err, err.Error())
|
e.Error(500, err, err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := req.Valid(); err != nil {
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
req.SetUpdateBy(user.GetUserId(c))
|
req.SetUpdateBy(user.GetUserId(c))
|
||||||
p := actions.GetPermissionFromContext(c)
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
@ -267,3 +278,30 @@ func (e LineApiUser) GetMainUser(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
e.OK(list, "操作成功")
|
e.OK(list, "操作成功")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetUnBindApiUser 获取未绑定下反单api用户
|
||||||
|
func (e LineApiUser) GetUnBindReverseApiUser(c *gin.Context) {
|
||||||
|
s := service.LineApiUser{}
|
||||||
|
req := dto.GetUnBindReverseReq{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req, binding.Query, binding.Form).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
e.Error(500, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
datas := make([]dto.UnBindReverseResp, 0)
|
||||||
|
|
||||||
|
err = s.GetUnBindApiUser(&req, &datas)
|
||||||
|
if err != nil {
|
||||||
|
e.Error(500, err, fmt.Sprintf("获取失败,\r\n失败信息 %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
e.OK(datas, "查询成功")
|
||||||
|
}
|
||||||
|
|||||||
191
app/admin/apis/line_reverse_setting.go
Normal file
191
app/admin/apis/line_reverse_setting.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 LineReverseSetting 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.LineReverseSetting}} "{"code": 200, "data": [...]}"
|
||||||
|
// @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
|
||||||
|
}
|
||||||
|
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
list := make([]models.LineReverseSetting, 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.LineReverseSetting} "{"code": 200, "data": [...]}"
|
||||||
|
// @Router /api/v1/line-reverse-setting/{id} [get]
|
||||||
|
// @Security Bearer
|
||||||
|
func (e LineReverseSetting) Get(c *gin.Context) {
|
||||||
|
req := dto.LineReverseSettingGetReq{}
|
||||||
|
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
|
||||||
|
}
|
||||||
|
var object models.LineReverseSetting
|
||||||
|
|
||||||
|
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.LineReverseSettingInsertReq true "data"
|
||||||
|
// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}"
|
||||||
|
// @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.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.LineReverseSettingUpdateReq true "body"
|
||||||
|
// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
|
||||||
|
// @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.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.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(), "删除成功")
|
||||||
|
}
|
||||||
@ -2,29 +2,31 @@ package models
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"go-admin/common/models"
|
"go-admin/common/models"
|
||||||
|
|
||||||
|
"github.com/shopspring/decimal"
|
||||||
)
|
)
|
||||||
|
|
||||||
type LineApiUser struct {
|
type LineApiUser struct {
|
||||||
models.Model
|
models.Model
|
||||||
|
|
||||||
ExchangeType string `json:"exchangeType" gorm:"type:varchar(20);comment:交易所类型(字典 exchange_type)"`
|
ExchangeType string `json:"exchangeType" gorm:"type:varchar(20);comment:交易所类型(字典 exchange_type)"`
|
||||||
UserId int64 `json:"userId" gorm:"type:int unsigned;comment:用户id"`
|
UserId int64 `json:"userId" gorm:"type:int unsigned;comment:用户id"`
|
||||||
JysId int64 `json:"jysId" gorm:"type:int;comment:关联交易所账号id"`
|
ApiName string `json:"apiName" gorm:"type:varchar(255);comment:api用户名"`
|
||||||
ApiName string `json:"apiName" gorm:"type:varchar(255);comment:api用户名"`
|
ApiKey string `json:"apiKey" gorm:"type:varchar(255);comment:apiKey"`
|
||||||
ApiKey string `json:"apiKey" gorm:"type:varchar(255);comment:apiKey"`
|
ApiSecret string `json:"apiSecret" gorm:"type:varchar(255);comment:apiSecret"`
|
||||||
ApiSecret string `json:"apiSecret" gorm:"type:varchar(255);comment:apiSecret"`
|
IpAddress string `json:"ipAddress" gorm:"type:varchar(255);comment:代理地址"`
|
||||||
IpAddress string `json:"ipAddress" gorm:"type:varchar(255);comment:代理地址"`
|
UserPass string `json:"userPass" gorm:"type:varchar(255);comment:代码账号密码"`
|
||||||
UserPass string `json:"userPass" gorm:"type:varchar(255);comment:代码账号密码"`
|
Affiliation int64 `json:"affiliation" gorm:"type:int;comment:归属:1=现货,2=合约,3=现货合约"`
|
||||||
AdminId int64 `json:"adminId" gorm:"type:int unsigned;comment:管理员id"`
|
AdminShow int64 `json:"adminShow" gorm:"type:int;comment:是否超管可见:1=是,0=否"`
|
||||||
Affiliation int64 `json:"affiliation" gorm:"type:int;comment:归属:1=现货,2=合约,3=现货合约"`
|
Site string `json:"site" gorm:"type:enum('1','2','3');comment:允许下单的方向:1=多;2=空;3=多空"`
|
||||||
AdminShow int64 `json:"adminShow" gorm:"type:int;comment:是否超管可见:1=是,0=否"`
|
Subordinate string `json:"subordinate" gorm:"type:enum('0','1','2');comment:从属关系:0=未绑定关系;1=主账号;2=副帐号"`
|
||||||
Site string `json:"site" gorm:"type:enum('1','2','3');comment:允许下单的方向:1=多;2=空;3=多空"`
|
GroupId int64 `json:"groupId" gorm:"type:int unsigned;comment:所属组id"`
|
||||||
Subordinate string `json:"subordinate" gorm:"type:enum('0','1','2');comment:从属关系:0=未绑定关系;1=主账号;2=副帐号"`
|
OpenStatus int64 `json:"openStatus" gorm:"type:int unsigned;comment:开启状态 0=关闭 1=开启"`
|
||||||
GroupId int64 `json:"groupId" gorm:"type:int unsigned;comment:所属组id"`
|
ReverseStatus int `json:"reverseStatus" gorm:"type:tinyint unsigned;comment:反向开仓:1=开启;2=关闭"`
|
||||||
OpenStatus int64 `json:"openStatus" gorm:"type:int unsigned;comment:开启状态 0=关闭 1=开启"`
|
ReverseApiId int `json:"reverseApiId" gorm:"type:bigint;comment:反向apiId"`
|
||||||
|
OrderProportion decimal.Decimal `json:"orderProportion" gorm:"type:decimal(10,2);comment:委托比例"`
|
||||||
SpotLastTime string `json:"spotLastTime" gorm:"-"` //现货websocket最后通信时间
|
SpotLastTime string `json:"spotLastTime" gorm:"-"` //现货websocket最后通信时间
|
||||||
FuturesLastTime string `json:"futuresLastTime" gorm:"-"` //合约websocket最后通信时间
|
FuturesLastTime string `json:"futuresLastTime" gorm:"-"` //合约websocket最后通信时间
|
||||||
models.ModelTime
|
models.ModelTime
|
||||||
models.ControlBy
|
models.ControlBy
|
||||||
}
|
}
|
||||||
|
|||||||
30
app/admin/models/line_reverse_setting.go
Normal file
30
app/admin/models/line_reverse_setting.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go-admin/common/models"
|
||||||
|
|
||||||
|
"github.com/shopspring/decimal"
|
||||||
|
)
|
||||||
|
|
||||||
|
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:止损百分比"`
|
||||||
|
models.ModelTime
|
||||||
|
models.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (LineReverseSetting) TableName() string {
|
||||||
|
return "line_reverse_setting"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *LineReverseSetting) Generate() models.ActiveRecord {
|
||||||
|
o := *e
|
||||||
|
return &o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *LineReverseSetting) GetId() interface{} {
|
||||||
|
return e.Id
|
||||||
|
}
|
||||||
@ -27,5 +27,7 @@ func registerLineApiUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMi
|
|||||||
r.POST("bind", api.Bind) //绑定从属关系
|
r.POST("bind", api.Bind) //绑定从属关系
|
||||||
r.POST("getUser", api.GetUser) //获取未绑定的用户
|
r.POST("getUser", api.GetUser) //获取未绑定的用户
|
||||||
r.POST("getMainUser", api.GetMainUser) //获取获取主账号的用户
|
r.POST("getMainUser", api.GetMainUser) //获取获取主账号的用户
|
||||||
|
|
||||||
|
r.GET("unbind-reverse", api.GetUnBindReverseApiUser) //获取未绑定下反单用户
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
27
app/admin/router/line_reverse_setting.go
Normal file
27
app/admin/router/line_reverse_setting.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, registerLineReverseSettingRouter)
|
||||||
|
}
|
||||||
|
|
||||||
|
// registerLineReverseSettingRouter
|
||||||
|
func registerLineReverseSettingRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||||
|
api := apis.LineReverseSetting{}
|
||||||
|
r := v1.Group("/line-reverse-setting").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)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,9 +1,12 @@
|
|||||||
package dto
|
package dto
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"go-admin/app/admin/models"
|
"go-admin/app/admin/models"
|
||||||
"go-admin/common/dto"
|
"go-admin/common/dto"
|
||||||
common "go-admin/common/models"
|
common "go-admin/common/models"
|
||||||
|
|
||||||
|
"github.com/shopspring/decimal"
|
||||||
)
|
)
|
||||||
|
|
||||||
type LineApiUserGetPageReq struct {
|
type LineApiUserGetPageReq struct {
|
||||||
@ -41,44 +44,66 @@ func (m *LineApiUserGetPageReq) GetNeedSearch() interface{} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type LineApiUserInsertReq struct {
|
type LineApiUserInsertReq struct {
|
||||||
Id int `json:"-" comment:"id"` // id
|
Id int `json:"-" comment:"id"` // id
|
||||||
ExchangeType string `json:"exchangeType" comment:"交易所code"`
|
ExchangeType string `json:"exchangeType" comment:"交易所code"`
|
||||||
UserId int64 `json:"userId" comment:"用户id"`
|
UserId int64 `json:"userId" comment:"用户id"`
|
||||||
JysId int64 `json:"jysId" comment:"关联交易所账号id"`
|
JysId int64 `json:"jysId" comment:"关联交易所账号id"`
|
||||||
ApiName string `json:"apiName" comment:"api用户名"`
|
ApiName string `json:"apiName" comment:"api用户名"`
|
||||||
ApiKey string `json:"apiKey" comment:"apiKey"`
|
ApiKey string `json:"apiKey" comment:"apiKey"`
|
||||||
ApiSecret string `json:"apiSecret" comment:"apiSecret"`
|
ApiSecret string `json:"apiSecret" comment:"apiSecret"`
|
||||||
IpAddress string `json:"ipAddress" comment:"代理地址"`
|
IpAddress string `json:"ipAddress" comment:"代理地址"`
|
||||||
UserPass string `json:"userPass" comment:"代码账号密码"`
|
UserPass string `json:"userPass" comment:"代码账号密码"`
|
||||||
AdminId int64 `json:"adminId" comment:"管理员id"`
|
Affiliation int64 `json:"affiliation" comment:"归属:1=现货,2=合约,3=现货合约"`
|
||||||
Affiliation int64 `json:"affiliation" comment:"归属:1=现货,2=合约,3=现货合约"`
|
AdminShow int64 `json:"adminShow" comment:"是否超管可见:1=是,0=否"`
|
||||||
AdminShow int64 `json:"adminShow" comment:"是否超管可见:1=是,0=否"`
|
Site string `json:"site" comment:"允许下单的方向:1=多;2=空;3=多空"`
|
||||||
Site string `json:"site" comment:"允许下单的方向:1=多;2=空;3=多空"`
|
Subordinate string `json:"subordinate" comment:"从属关系:0=未绑定关系;1=主账号;2=副帐号"`
|
||||||
Subordinate string `json:"subordinate" comment:"从属关系:0=未绑定关系;1=主账号;2=副帐号"`
|
GroupId int64 `json:"groupId" comment:"所属组id"`
|
||||||
GroupId int64 `json:"groupId" comment:"所属组id"`
|
OpenStatus int64 `json:"openStatus" comment:"开启状态 0=关闭 1=开启"`
|
||||||
OpenStatus int64 `json:"openStatus" comment:"开启状态 0=关闭 1=开启"`
|
ReverseStatus int `json:"reverseStatus" comment:"反向下单状态 1-开启 2-关闭"`
|
||||||
|
ReverseApiId int `json:"reverseApiId" comment:"反向下单apiId"`
|
||||||
|
OrderProportion decimal.Decimal `json:"orderProportion" comment:"委托比例"`
|
||||||
common.ControlBy
|
common.ControlBy
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *LineApiUserInsertReq) Valid() error {
|
||||||
|
if s.ReverseStatus == 1 {
|
||||||
|
if s.OrderProportion.Cmp(decimal.Zero) <= 0 {
|
||||||
|
return errors.New("委托比例必须大于0")
|
||||||
|
}
|
||||||
|
|
||||||
|
if s.ReverseStatus == 1 && s.ReverseApiId == 0 {
|
||||||
|
return errors.New("反向下单api不能为空")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *LineApiUserInsertReq) Generate(model *models.LineApiUser) {
|
func (s *LineApiUserInsertReq) Generate(model *models.LineApiUser) {
|
||||||
if s.Id == 0 {
|
if s.Id == 0 {
|
||||||
model.Model = common.Model{Id: s.Id}
|
model.Model = common.Model{Id: s.Id}
|
||||||
}
|
}
|
||||||
model.ExchangeType = s.ExchangeType
|
model.ExchangeType = s.ExchangeType
|
||||||
model.UserId = s.UserId
|
model.UserId = s.UserId
|
||||||
model.JysId = s.JysId
|
|
||||||
model.ApiName = s.ApiName
|
model.ApiName = s.ApiName
|
||||||
model.ApiKey = s.ApiKey
|
model.ApiKey = s.ApiKey
|
||||||
model.ApiSecret = s.ApiSecret
|
model.ApiSecret = s.ApiSecret
|
||||||
model.IpAddress = s.IpAddress
|
model.IpAddress = s.IpAddress
|
||||||
model.UserPass = s.UserPass
|
model.UserPass = s.UserPass
|
||||||
model.AdminId = s.AdminId
|
|
||||||
model.Affiliation = s.Affiliation
|
model.Affiliation = s.Affiliation
|
||||||
model.AdminShow = s.AdminShow
|
model.AdminShow = s.AdminShow
|
||||||
model.Site = s.Site
|
model.Site = s.Site
|
||||||
model.Subordinate = s.Subordinate
|
model.Subordinate = s.Subordinate
|
||||||
model.GroupId = s.GroupId
|
model.GroupId = s.GroupId
|
||||||
model.OpenStatus = s.OpenStatus
|
model.OpenStatus = s.OpenStatus
|
||||||
|
model.ReverseStatus = s.ReverseStatus
|
||||||
|
model.OrderProportion = s.OrderProportion
|
||||||
|
|
||||||
|
if model.ReverseStatus == 1 {
|
||||||
|
model.ReverseApiId = s.ReverseApiId
|
||||||
|
} else {
|
||||||
|
model.ReverseApiId = 0
|
||||||
|
}
|
||||||
|
|
||||||
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,44 +112,66 @@ func (s *LineApiUserInsertReq) GetId() interface{} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type LineApiUserUpdateReq struct {
|
type LineApiUserUpdateReq struct {
|
||||||
Id int `uri:"id" comment:"id"` // id
|
Id int `uri:"id" comment:"id"` // id
|
||||||
ExchangeType string `json:"exchangeType" comment:"交易所code"`
|
ExchangeType string `json:"exchangeType" comment:"交易所code"`
|
||||||
UserId int64 `json:"userId" comment:"用户id"`
|
UserId int64 `json:"userId" comment:"用户id"`
|
||||||
JysId int64 `json:"jysId" comment:"关联交易所账号id"`
|
JysId int64 `json:"jysId" comment:"关联交易所账号id"`
|
||||||
ApiName string `json:"apiName" comment:"api用户名"`
|
ApiName string `json:"apiName" comment:"api用户名"`
|
||||||
ApiKey string `json:"apiKey" comment:"apiKey"`
|
ApiKey string `json:"apiKey" comment:"apiKey"`
|
||||||
ApiSecret string `json:"apiSecret" comment:"apiSecret"`
|
ApiSecret string `json:"apiSecret" comment:"apiSecret"`
|
||||||
IpAddress string `json:"ipAddress" comment:"代理地址"`
|
IpAddress string `json:"ipAddress" comment:"代理地址"`
|
||||||
UserPass string `json:"userPass" comment:"代码账号密码"`
|
UserPass string `json:"userPass" comment:"代码账号密码"`
|
||||||
AdminId int64 `json:"adminId" comment:"管理员id"`
|
Affiliation int64 `json:"affiliation" comment:"归属:1=现货,2=合约,3=现货合约"`
|
||||||
Affiliation int64 `json:"affiliation" comment:"归属:1=现货,2=合约,3=现货合约"`
|
AdminShow int64 `json:"adminShow" comment:"是否超管可见:1=是,0=否"`
|
||||||
AdminShow int64 `json:"adminShow" comment:"是否超管可见:1=是,0=否"`
|
Site string `json:"site" comment:"允许下单的方向:1=多;2=空;3=多空"`
|
||||||
Site string `json:"site" comment:"允许下单的方向:1=多;2=空;3=多空"`
|
Subordinate string `json:"subordinate" comment:"从属关系:0=未绑定关系;1=主账号;2=副帐号"`
|
||||||
Subordinate string `json:"subordinate" comment:"从属关系:0=未绑定关系;1=主账号;2=副帐号"`
|
GroupId int64 `json:"groupId" comment:"所属组id"`
|
||||||
GroupId int64 `json:"groupId" comment:"所属组id"`
|
OpenStatus int64 `json:"openStatus" comment:"开启状态 0=关闭 1=开启"`
|
||||||
OpenStatus int64 `json:"openStatus" comment:"开启状态 0=关闭 1=开启"`
|
ReverseStatus int `json:"reverseStatus" comment:"反向下单状态 1-开启 2-关闭"`
|
||||||
|
ReverseApiId int `json:"reverseApiId" comment:"反向下单apiId"`
|
||||||
|
OrderProportion decimal.Decimal `json:"orderProportion" comment:"委托比例"`
|
||||||
common.ControlBy
|
common.ControlBy
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *LineApiUserUpdateReq) Valid() error {
|
||||||
|
if s.ReverseStatus == 1 {
|
||||||
|
if s.OrderProportion.Cmp(decimal.Zero) <= 0 {
|
||||||
|
return errors.New("委托比例必须大于0")
|
||||||
|
}
|
||||||
|
|
||||||
|
if s.ReverseStatus == 1 && s.ReverseApiId == 0 {
|
||||||
|
return errors.New("反向下单api不能为空")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *LineApiUserUpdateReq) Generate(model *models.LineApiUser) {
|
func (s *LineApiUserUpdateReq) Generate(model *models.LineApiUser) {
|
||||||
if s.Id == 0 {
|
if s.Id == 0 {
|
||||||
model.Model = common.Model{Id: s.Id}
|
model.Model = common.Model{Id: s.Id}
|
||||||
}
|
}
|
||||||
model.ExchangeType = s.ExchangeType
|
model.ExchangeType = s.ExchangeType
|
||||||
model.UserId = s.UserId
|
model.UserId = s.UserId
|
||||||
model.JysId = s.JysId
|
|
||||||
model.ApiName = s.ApiName
|
model.ApiName = s.ApiName
|
||||||
model.ApiKey = s.ApiKey
|
model.ApiKey = s.ApiKey
|
||||||
model.ApiSecret = s.ApiSecret
|
model.ApiSecret = s.ApiSecret
|
||||||
model.IpAddress = s.IpAddress
|
model.IpAddress = s.IpAddress
|
||||||
model.UserPass = s.UserPass
|
model.UserPass = s.UserPass
|
||||||
model.AdminId = s.AdminId
|
|
||||||
model.Affiliation = s.Affiliation
|
model.Affiliation = s.Affiliation
|
||||||
model.AdminShow = s.AdminShow
|
model.AdminShow = s.AdminShow
|
||||||
model.Site = s.Site
|
model.Site = s.Site
|
||||||
model.Subordinate = s.Subordinate
|
model.Subordinate = s.Subordinate
|
||||||
model.GroupId = s.GroupId
|
model.GroupId = s.GroupId
|
||||||
model.OpenStatus = s.OpenStatus
|
model.OpenStatus = s.OpenStatus
|
||||||
|
model.ReverseStatus = s.ReverseStatus
|
||||||
|
model.OrderProportion = s.OrderProportion
|
||||||
|
|
||||||
|
if model.ReverseStatus == 1 {
|
||||||
|
model.ReverseApiId = s.ReverseApiId
|
||||||
|
} else {
|
||||||
|
model.ReverseApiId = 0
|
||||||
|
}
|
||||||
|
|
||||||
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,3 +206,16 @@ type LineApiUserBindSubordinateReq struct {
|
|||||||
type GetMainUserReq struct {
|
type GetMainUserReq struct {
|
||||||
ExchangeType string `json:"exchangeType"`
|
ExchangeType string `json:"exchangeType"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type GetUnBindReverseReq struct {
|
||||||
|
ExchangeType string `json:"exchangeType" form:"exchangeType"`
|
||||||
|
ApiId int `json:"apiId" form:"apiId" comment:"当前apiId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// 未绑定反向下单查询返回结构体
|
||||||
|
type UnBindReverseResp struct {
|
||||||
|
Id int `json:"id"`
|
||||||
|
UserId int64 `json:"userId"`
|
||||||
|
Disabled bool `json:"disabled"`
|
||||||
|
ApiName string `json:"apiName"`
|
||||||
|
}
|
||||||
|
|||||||
89
app/admin/service/dto/line_reverse_setting.go
Normal file
89
app/admin/service/dto/line_reverse_setting.go
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
package dto
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go-admin/app/admin/models"
|
||||||
|
"go-admin/common/dto"
|
||||||
|
common "go-admin/common/models"
|
||||||
|
|
||||||
|
"github.com/shopspring/decimal"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LineReverseSettingGetPageReq struct {
|
||||||
|
dto.Pagination `search:"-"`
|
||||||
|
LineReverseSettingOrder
|
||||||
|
}
|
||||||
|
|
||||||
|
type LineReverseSettingOrder struct {
|
||||||
|
Id string `form:"idOrder" search:"type:order;column:id;table:line_reverse_setting"`
|
||||||
|
ReverseOrderType string `form:"reverseOrderTypeOrder" search:"type:order;column:reverse_order_type;table:line_reverse_setting"`
|
||||||
|
ReversePremiumRatio string `form:"reversePremiumRatioOrder" search:"type:order;column:reverse_premium_ratio;table:line_reverse_setting"`
|
||||||
|
CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:line_reverse_setting"`
|
||||||
|
UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:line_reverse_setting"`
|
||||||
|
DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:line_reverse_setting"`
|
||||||
|
CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:line_reverse_setting"`
|
||||||
|
UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:line_reverse_setting"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *LineReverseSettingGetPageReq) GetNeedSearch() interface{} {
|
||||||
|
return *m
|
||||||
|
}
|
||||||
|
|
||||||
|
type LineReverseSettingInsertReq struct {
|
||||||
|
Id int `json:"-" comment:"主键id"` // 主键id
|
||||||
|
ReverseOrderType string `json:"reverseOrderType" comment:"反单下单类型 LIMIT-限价 MARKET-市价"`
|
||||||
|
ReversePremiumRatio decimal.Decimal `json:"reversePremiumRatio" comment:"溢价百分比"`
|
||||||
|
common.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseSettingInsertReq) Generate(model *models.LineReverseSetting) {
|
||||||
|
if s.Id == 0 {
|
||||||
|
model.Model = common.Model{Id: s.Id}
|
||||||
|
}
|
||||||
|
model.ReverseOrderType = s.ReverseOrderType
|
||||||
|
model.ReversePremiumRatio = s.ReversePremiumRatio
|
||||||
|
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseSettingInsertReq) GetId() interface{} {
|
||||||
|
return s.Id
|
||||||
|
}
|
||||||
|
|
||||||
|
type LineReverseSettingUpdateReq struct {
|
||||||
|
Id int `uri:"id" comment:"主键id"` // 主键id
|
||||||
|
ReverseOrderType string `json:"reverseOrderType" comment:"反单下单类型 LIMIT-限价 MARKET-市价"`
|
||||||
|
ReversePremiumRatio decimal.Decimal `json:"reversePremiumRatio" comment:"溢价百分比"`
|
||||||
|
StopLossRatio decimal.Decimal `json:"stopLossRatio" comment:"止损百分比"`
|
||||||
|
common.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseSettingUpdateReq) Generate(model *models.LineReverseSetting) {
|
||||||
|
if s.Id == 0 {
|
||||||
|
model.Model = common.Model{Id: s.Id}
|
||||||
|
}
|
||||||
|
model.ReverseOrderType = s.ReverseOrderType
|
||||||
|
model.ReversePremiumRatio = s.ReversePremiumRatio
|
||||||
|
model.StopLossRatio = s.StopLossRatio
|
||||||
|
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseSettingUpdateReq) GetId() interface{} {
|
||||||
|
return s.Id
|
||||||
|
}
|
||||||
|
|
||||||
|
// LineReverseSettingGetReq 功能获取请求参数
|
||||||
|
type LineReverseSettingGetReq struct {
|
||||||
|
Id int `uri:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseSettingGetReq) GetId() interface{} {
|
||||||
|
return s.Id
|
||||||
|
}
|
||||||
|
|
||||||
|
// LineReverseSettingDeleteReq 功能删除请求参数
|
||||||
|
type LineReverseSettingDeleteReq struct {
|
||||||
|
Ids []int `json:"ids"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LineReverseSettingDeleteReq) GetId() interface{} {
|
||||||
|
return s.Ids
|
||||||
|
}
|
||||||
@ -97,7 +97,28 @@ func (e *LineApiUser) Insert(c *dto.LineApiUserInsertReq) error {
|
|||||||
var err error
|
var err error
|
||||||
var data models.LineApiUser
|
var data models.LineApiUser
|
||||||
c.Generate(&data)
|
c.Generate(&data)
|
||||||
err = e.Orm.Create(&data).Error
|
err = e.Orm.Transaction(func(tx *gorm.DB) error {
|
||||||
|
if c.ReverseApiId > 0 {
|
||||||
|
var count int64
|
||||||
|
if err2 := tx.Model(models.LineApiUser{}).Where("subordinate <> '0' AND id=?", c.ReverseApiId).Count(&count).Error; err2 != nil {
|
||||||
|
return err2
|
||||||
|
}
|
||||||
|
if count > 0 {
|
||||||
|
return errors.New("反向api已被使用")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err2 := tx.Model(models.LineApiUser{}).Where("id =?", c.ReverseApiId).Update("subordinate", 2).Error; err2 != nil {
|
||||||
|
return err2
|
||||||
|
}
|
||||||
|
data.Subordinate = "1"
|
||||||
|
}
|
||||||
|
|
||||||
|
if err2 := tx.Create(&data).Error; err2 != nil {
|
||||||
|
return err2
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Log.Errorf("LineApiUserService Insert error:%s \r\n", err)
|
e.Log.Errorf("LineApiUserService Insert error:%s \r\n", err)
|
||||||
return err
|
return err
|
||||||
@ -197,6 +218,7 @@ func (e *LineApiUser) Update(c *dto.LineApiUserUpdateReq, p *actions.DataPermiss
|
|||||||
actions.Permission(data.TableName(), p),
|
actions.Permission(data.TableName(), p),
|
||||||
).First(&data, c.GetId())
|
).First(&data, c.GetId())
|
||||||
oldApiKey := data.ApiKey
|
oldApiKey := data.ApiKey
|
||||||
|
oldReverseApiId := data.ReverseApiId
|
||||||
|
|
||||||
c.Generate(&data)
|
c.Generate(&data)
|
||||||
|
|
||||||
@ -204,6 +226,33 @@ func (e *LineApiUser) Update(c *dto.LineApiUserUpdateReq, p *actions.DataPermiss
|
|||||||
|
|
||||||
//事务
|
//事务
|
||||||
err = e.Orm.Transaction(func(tx *gorm.DB) error {
|
err = e.Orm.Transaction(func(tx *gorm.DB) error {
|
||||||
|
if data.ReverseApiId > 0 && data.ReverseApiId != oldReverseApiId {
|
||||||
|
var count int64
|
||||||
|
if err2 := tx.Model(models.LineApiUser{}).Where("subordinate <> '0' AND id=?", c.ReverseApiId).Count(&count).Error; err2 != nil {
|
||||||
|
return err2
|
||||||
|
}
|
||||||
|
if count > 0 {
|
||||||
|
return errors.New("反向api已被使用")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err2 := tx.Model(models.LineApiUser{}).Where("id =?", c.ReverseApiId).Update("subordinate", "2").Error; err2 != nil {
|
||||||
|
return err2
|
||||||
|
}
|
||||||
|
|
||||||
|
data.Subordinate = "1"
|
||||||
|
}
|
||||||
|
|
||||||
|
if oldReverseApiId > 0 && oldReverseApiId != data.ReverseApiId {
|
||||||
|
if err2 := tx.Model(models.LineApiUser{}).Where("id =?", oldReverseApiId).Update("subordinate", "0").Error; err2 != nil {
|
||||||
|
e.Log.Errorf("解绑反向api失败 api:%d err:%v", oldReverseApiId, err2)
|
||||||
|
return fmt.Errorf("解绑反向api失败")
|
||||||
|
}
|
||||||
|
|
||||||
|
if data.ReverseApiId == 0 {
|
||||||
|
data.Subordinate = "0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
db := tx.Save(&data)
|
db := tx.Save(&data)
|
||||||
if err = db.Error; err != nil {
|
if err = db.Error; err != nil {
|
||||||
e.Log.Errorf("LineApiUserService Save error:%s \r\n", err)
|
e.Log.Errorf("LineApiUserService Save error:%s \r\n", err)
|
||||||
@ -414,3 +463,44 @@ func (e *LineApiUser) GetActiveApis(apiIds []int) ([]int, error) {
|
|||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetUnBindApiUser 获取未绑定反向下单的的api用户
|
||||||
|
func (e *LineApiUser) GetUnBindApiUser(req *dto.GetUnBindReverseReq, list *[]dto.UnBindReverseResp) error {
|
||||||
|
var datas []models.LineApiUser
|
||||||
|
var data models.LineApiUser
|
||||||
|
var count int64
|
||||||
|
|
||||||
|
if req.ApiId > 0 {
|
||||||
|
e.Orm.Model(data).Where("id =? AND subordinate = '2'", req.ApiId).Count(&count)
|
||||||
|
|
||||||
|
if count > 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
query := e.Orm.Model(&data).
|
||||||
|
Where("open_status =1 AND exchange_type = ? ", req.ExchangeType)
|
||||||
|
|
||||||
|
if err := query.
|
||||||
|
Find(&datas).Error; err != nil {
|
||||||
|
e.Log.Error("获取未绑定用户失败:", err)
|
||||||
|
return fmt.Errorf("获取未绑定用户失败")
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, item := range datas {
|
||||||
|
if item.Id == req.ApiId {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
listItem := dto.UnBindReverseResp{
|
||||||
|
Id: item.Id,
|
||||||
|
UserId: item.UserId,
|
||||||
|
ApiName: item.ApiName,
|
||||||
|
Disabled: item.Subordinate != "0",
|
||||||
|
}
|
||||||
|
|
||||||
|
(*list) = append((*list), listItem)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
109
app/admin/service/line_reverse_setting.go
Normal file
109
app/admin/service/line_reverse_setting.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 LineReverseSetting struct {
|
||||||
|
service.Service
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPage 获取LineReverseSetting列表
|
||||||
|
func (e *LineReverseSetting) GetPage(c *dto.LineReverseSettingGetPageReq, p *actions.DataPermission, list *[]models.LineReverseSetting, count *int64) error {
|
||||||
|
var err error
|
||||||
|
var data models.LineReverseSetting
|
||||||
|
|
||||||
|
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("LineReverseSettingService GetPage error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get 获取LineReverseSetting对象
|
||||||
|
func (e *LineReverseSetting) Get(d *dto.LineReverseSettingGetReq, p *actions.DataPermission, model *models.LineReverseSetting) error {
|
||||||
|
var data models.LineReverseSetting
|
||||||
|
|
||||||
|
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 GetLineReverseSetting error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("db error:%s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert 创建LineReverseSetting对象
|
||||||
|
func (e *LineReverseSetting) Insert(c *dto.LineReverseSettingInsertReq) error {
|
||||||
|
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
|
||||||
|
}
|
||||||
|
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)
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove 删除LineReverseSetting
|
||||||
|
func (e *LineReverseSetting) Remove(d *dto.LineReverseSettingDeleteReq, p *actions.DataPermission) error {
|
||||||
|
var data models.LineReverseSetting
|
||||||
|
|
||||||
|
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 RemoveLineReverseSetting error:%s \r\n", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if db.RowsAffected == 0 {
|
||||||
|
return errors.New("无权删除该数据")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user