Browse Source

增加“查询内部成交单信息”接口

Simon Zhou 5 years ago
parent
commit
4eaf6ce545
6 changed files with 998 additions and 0 deletions
  1. 160 0
      controllers/erms2/erms2.go
  2. 237 0
      docs/docs.go
  3. 237 0
      docs/swagger.json
  4. 172 0
      docs/swagger.yaml
  5. 184 0
      models/erms2Models.go
  6. 8 0
      routers/router.go

+ 160 - 0
controllers/erms2/erms2.go

@@ -0,0 +1,160 @@
+package erms2
+
+import (
+	"fmt"
+	"mtp2_if/db"
+	"mtp2_if/global/app"
+	"mtp2_if/global/e"
+	"mtp2_if/logger"
+	"net/http"
+	"time"
+
+	"github.com/gin-gonic/gin"
+)
+
+// QueryInnerTradeDetailReq 查询内部成交单信息请求参数
+type QueryInnerTradeDetailReq struct {
+	AccountID int `form:"accountid" binding:"required"`
+}
+
+// QueryInnerTradeDetailRsp 内部成交单信息
+type QueryInnerTradeDetailRsp struct {
+	Tradeid                  int64     `json:"tradeid"  xorm:"'TRADEID'" binding:"required"`                // 成交单号(108+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+	Buyorsell                int64     `json:"buyorsell"  xorm:"'BUYORSELL'" binding:"required"`            // 方向 - 0:买 1:卖
+	Orderid                  int64     `json:"orderid"  xorm:"'ORDERID'"`                                   // 委托单号
+	Tradedate                string    `json:"tradedate"  xorm:"'TRADEDATE'"`                               // 交易日(yyyyMMdd)
+	Accountid                int64     `json:"accountid"  xorm:"'ACCOUNTID'"`                               // 账号ID
+	Goodsid                  int64     `json:"goodsid"  xorm:"'GOODSID'"`                                   // 商品ID
+	Marketid                 int64     `json:"marketid"  xorm:"'MARKETID'"`                                 // 市场ID
+	Tradetime                time.Time `json:"tradetime"  xorm:"'TRADETIME'"`                               // 成交时间
+	Tradeprice               float64   `json:"tradeprice"  xorm:"'TRADEPRICE'"`                             // 成交价格
+	Tradeqty                 int64     `json:"tradeqty"  xorm:"'TRADEQTY'"`                                 // 成交数量
+	Tradeamount              float64   `json:"tradeamount"  xorm:"'TRADEAMOUNT'"`                           // 成交金额(账户)
+	Closepl                  float64   `json:"closepl"  xorm:"'CLOSEPL'"`                                   // 平仓盈亏(账户)
+	Opencharge               float64   `json:"opencharge"  xorm:"'OPENCHARGE'"`                             // 建仓手续费(账户)
+	Closecharge              float64   `json:"closecharge"  xorm:"'CLOSECHARGE'"`                           // 平仓手续费(账户)
+	Tradetype                int64     `json:"tradetype"  xorm:"'TRADETYPE'"`                               // 成交类别 - 1:正常委托成交 2:风控斩仓成交 3:修正持仓成交 4:管理端斩仓成交
+	Channelbuildtype         int64     `json:"channelbuildtype"  xorm:"'CHANNELBUILDTYPE'"`                 // 委托单据类型 0:无 1:建仓 2:平仓
+	Closetype                int64     `json:"closetype"  xorm:"'CLOSETYPE'"`                               // 平仓方式 - 0:无 1:平今 2:平昨
+	Hedgeflag                int64     `json:"hedgeflag"  xorm:"'HEDGEFLAG'"`                               // 投机套保标志 - 0:无 1:投机 2:套保 3:套利
+	Openqty                  int64     `json:"openqty"  xorm:"'OPENQTY'"`                                   // 开仓数量(先建后平操作 需要记录)
+	Closeqty                 int64     `json:"closeqty"  xorm:"'CLOSEQTY'"`                                 // 平仓数量(先建后平操作 需要记录)
+	Status                   int64     `json:"status"  xorm:"'STATUS'"`                                     // 处理状态 - 1:待处理 2:已处理 3:处理失败
+	Isreckoned               int64     `json:"isreckoned"  xorm:"'ISRECKONED'"`                             // 是否结算 - 0:未结算 1:已结算
+	Openfeealgorithm         int64     `json:"openfeealgorithm"  xorm:"'OPENFEEALGORITHM'"`                 // 建仓手续费收取方式  1:比率  2:固定
+	Openchargevalue          float64   `json:"openchargevalue"  xorm:"'OPENCHARGEVALUE'"`                   // 建仓手续费设置值
+	Closefeealgorithm        int64     `json:"closefeealgorithm"  xorm:"'CLOSEFEEALGORITHM'"`               // 平仓手续费收取方式 1:比率  2:固定
+	Closechargevalue         float64   `json:"closechargevalue"  xorm:"'CLOSECHARGEVALUE'"`                 // 平仓手续费设置值
+	Accountcurrencyid        int64     `json:"accountcurrencyid"  xorm:"'ACCOUNTCURRENCYID'"`               // 账户币种ID
+	Goodscurrencyid          int64     `json:"goodscurrencyid"  xorm:"'GOODSCURRENCYID'"`                   // 商品币种ID
+	Curexchangerate          float64   `json:"curexchangerate"  xorm:"'CUREXCHANGERATE'"`                   // 当前汇率
+	Opencharge2              float64   `json:"opencharge2"  xorm:"'OPENCHARGE2'"`                           // 建仓手续费(商品)
+	Closecharge2             float64   `json:"closecharge2"  xorm:"'CLOSECHARGE2'"`                         // 平仓手续费(商品)
+	Closepl2                 float64   `json:"closepl2"  xorm:"'CLOSEPL2'"`                                 // 平仓盈亏(商品)
+	Closepl3                 float64   `json:"closepl3"  xorm:"'CLOSEPL3'"`                                 // 平仓盈亏(账户)(逐笔)
+	Closepl4                 float64   `json:"closepl4"  xorm:"'CLOSEPL4'"`                                 // 平仓盈亏(商品)(逐笔)
+	Extenalopenfeealgorithm  int64     `json:"extenalopenfeealgorithm"  xorm:"'EXTENALOPENFEEALGORITHM'"`   // 建仓手续费收取方式(外部配置) 1:比率  2:固定
+	Extenalopenchargevalue   float64   `json:"extenalopenchargevalue"  xorm:"'EXTENALOPENCHARGEVALUE'"`     // 建仓手续费设置值
+	Extenalclosefeealgorithm int64     `json:"extenalclosefeealgorithm"  xorm:"'EXTENALCLOSEFEEALGORITHM'"` // 平仓手续费收取方式 1:比率  2:固定
+	Extenalclosechargevalue  float64   `json:"extenalclosechargevalue"  xorm:"'EXTENALCLOSECHARGEVALUE'"`   // 平仓手续费设置值
+	Extenalopencharge        float64   `json:"extenalopencharge"  xorm:"'EXTENALOPENCHARGE'"`               // 建仓手续费(商品)(外部)
+	Extenalclosecharge       float64   `json:"extenalclosecharge"  xorm:"'EXTENALCLOSECHARGE'"`             // 平仓手续费(商品)(外部)
+	Parentaccountid          int64     `json:"parentaccountid"  xorm:"'PARENTACCOUNTID'"`                   // 所属母账户
+	Relatedouttradeid        int64     `json:"relatedouttradeid"  xorm:"'RELATEDOUTTRADEID'"`               // 关联外部成交单ID
+
+	Asapplyid      int64 `json:"asapplyid"  xorm:"'ASAPPLYID'" binding:"required"` // 策略申请ID
+	Detailtype     int64 `json:"detailtype"  xorm:"'DETAILTYPE'"`                  // 明细类型 - 1:套利对冲 2:期货换月 3:期货仓位调整
+	Spotcontractid int64 `json:"spotcontractid"  xorm:"'SPOTCONTRACTID'"`          // 现货合同ID [1:套利对冲 为合同ID,2:期货换月\3:期货仓位调整时为0]
+
+	ASContractno string `json:"ascontractno"  xorm:"'ASCONTRACTNO'"` // 策略编号
+
+	Spotcontractno string `json:"spotcontractno"  xorm:"'SPOTCONTRACTNO'"` // 现货合同编号
+}
+
+// QueryInnerTradeDetail 查询内部成交单信息
+// @Summary 查询内部成交单信息
+// @Produce json
+// @Security ApiKeyAuth
+// @Param accountid query int true "资金账户"
+// @Success 200 {object} QueryInnerTradeDetailRsp
+// @Failure 500 {object} app.Response
+// @Router /Erms2/QueryInnerTradeDetail [get]
+// @Tags 风险管理
+func QueryInnerTradeDetail(c *gin.Context) {
+	appG := app.Gin{C: c}
+
+	// 获取请求参数
+	var req QueryInnerTradeDetailReq
+	if err := appG.C.ShouldBindQuery(&req); err != nil {
+		logger.GetLogger().Errorf("QueryInnerTradeDetail failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
+		return
+	}
+
+	// 查询数据
+	engine := db.GetEngine()
+	datas := make([]QueryInnerTradeDetailRsp, 0)
+	sql := fmt.Sprintf(`select
+							t.Tradeid,
+							t.Buyorsell,
+							t.Orderid,
+							t.Tradedate,
+							t.Accountid,
+							t.Goodsid,
+							t.Marketid,
+							t.Tradetime,
+							t.Tradeprice,
+							t.Tradeqty,
+							t.Tradeamount,
+							t.Closepl,
+							t.Opencharge,
+							t.Closecharge,
+							t.Tradetype,
+							t.Channelbuildtype,
+							t.Closetype,
+							t.Hedgeflag,
+							t.Openqty,
+							t.Closeqty,
+							t.Status,
+							t.Isreckoned,
+							t.Openfeealgorithm,
+							t.Openchargevalue,
+							t.Closefeealgorithm,
+							t.Closechargevalue,
+							t.Accountcurrencyid,
+							t.Goodscurrencyid,
+							t.Curexchangerate,
+							t.Opencharge2,
+							t.Closecharge2,
+							t.Closepl2,
+							t.Closepl3,
+							t.Closepl4,
+							t.Extenalopenfeealgorithm,
+							t.Extenalopenchargevalue,
+							t.Extenalclosefeealgorithm,
+							t.Extenalclosechargevalue,
+							t.Extenalopencharge,
+							t.Extenalclosecharge,
+							t.Parentaccountid,
+							t.Relatedouttradeid,
+							ast.Asapplyid,
+							ast.Detailtype,
+							ast.Spotcontractid,
+							asd.ContractNo ASContractno,
+							sc.contractno Spotcontractno
+						from Hedge_InnerTradeDetail t
+						left join ERMS2_ASTradeDetails ast on t.relatedouttradeid = OutTradeID
+						left join ERMS2_ArbitrageStrategy asd on ast.asapplyid = asd.asapplyid
+						left join ERMS2_SpotContract sc on ast.spotcontractid = sc.spotcontractid
+						where t.Accountid = %d`, req.AccountID)
+	if err := engine.SQL(sql).Find(&datas); err != nil {
+		// 查询失败
+		logger.GetLogger().Errorf("QueryInnerTradeDetail failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+		return
+	}
+
+	// 查询成功
+	logger.GetLogger().Infof("QueryInnerTradeDetail successed: %v", datas)
+	appG.Response(http.StatusOK, e.SUCCESS, datas)
+}

+ 237 - 0
docs/docs.go

@@ -419,6 +419,45 @@ var doc = `{
                 }
             }
         },
+        "/Erms2/QueryInnerTradeDetail": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "风险管理"
+                ],
+                "summary": "查询内部成交单信息",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "资金账户",
+                        "name": "accountid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/erms2.QueryInnerTradeDetailRsp"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/WRTrade/GetAllDeliveryGoods": {
             "get": {
                 "security": [
@@ -1409,6 +1448,204 @@ var doc = `{
                     "type": "integer"
                 }
             }
+        },
+        "erms2.QueryInnerTradeDetailRsp": {
+            "type": "object",
+            "required": [
+                "asapplyid",
+                "buyorsell",
+                "tradeid"
+            ],
+            "properties": {
+                "accountcurrencyid": {
+                    "description": "账户币种ID",
+                    "type": "integer"
+                },
+                "accountid": {
+                    "description": "账号ID",
+                    "type": "integer"
+                },
+                "asapplyid": {
+                    "description": "策略申请ID",
+                    "type": "integer"
+                },
+                "ascontractno": {
+                    "description": "策略编号",
+                    "type": "string"
+                },
+                "buyorsell": {
+                    "description": "方向 - 0:买 1:卖",
+                    "type": "integer"
+                },
+                "channelbuildtype": {
+                    "description": "委托单据类型 0:无 1:建仓 2:平仓",
+                    "type": "integer"
+                },
+                "closecharge": {
+                    "description": "平仓手续费(账户)",
+                    "type": "number"
+                },
+                "closecharge2": {
+                    "description": "平仓手续费(商品)",
+                    "type": "number"
+                },
+                "closechargevalue": {
+                    "description": "平仓手续费设置值",
+                    "type": "number"
+                },
+                "closefeealgorithm": {
+                    "description": "平仓手续费收取方式 1:比率  2:固定",
+                    "type": "integer"
+                },
+                "closepl": {
+                    "description": "平仓盈亏(账户)",
+                    "type": "number"
+                },
+                "closepl2": {
+                    "description": "平仓盈亏(商品)",
+                    "type": "number"
+                },
+                "closepl3": {
+                    "description": "平仓盈亏(账户)(逐笔)",
+                    "type": "number"
+                },
+                "closepl4": {
+                    "description": "平仓盈亏(商品)(逐笔)",
+                    "type": "number"
+                },
+                "closeqty": {
+                    "description": "平仓数量(先建后平操作 需要记录)",
+                    "type": "integer"
+                },
+                "closetype": {
+                    "description": "平仓方式 - 0:无 1:平今 2:平昨",
+                    "type": "integer"
+                },
+                "curexchangerate": {
+                    "description": "当前汇率",
+                    "type": "number"
+                },
+                "detailtype": {
+                    "description": "明细类型 - 1:套利对冲 2:期货换月 3:期货仓位调整",
+                    "type": "integer"
+                },
+                "extenalclosecharge": {
+                    "description": "平仓手续费(商品)(外部)",
+                    "type": "number"
+                },
+                "extenalclosechargevalue": {
+                    "description": "平仓手续费设置值",
+                    "type": "number"
+                },
+                "extenalclosefeealgorithm": {
+                    "description": "平仓手续费收取方式 1:比率  2:固定",
+                    "type": "integer"
+                },
+                "extenalopencharge": {
+                    "description": "建仓手续费(商品)(外部)",
+                    "type": "number"
+                },
+                "extenalopenchargevalue": {
+                    "description": "建仓手续费设置值",
+                    "type": "number"
+                },
+                "extenalopenfeealgorithm": {
+                    "description": "建仓手续费收取方式(外部配置) 1:比率  2:固定",
+                    "type": "integer"
+                },
+                "goodscurrencyid": {
+                    "description": "商品币种ID",
+                    "type": "integer"
+                },
+                "goodsid": {
+                    "description": "商品ID",
+                    "type": "integer"
+                },
+                "hedgeflag": {
+                    "description": "投机套保标志 - 0:无 1:投机 2:套保 3:套利",
+                    "type": "integer"
+                },
+                "isreckoned": {
+                    "description": "是否结算 - 0:未结算 1:已结算",
+                    "type": "integer"
+                },
+                "marketid": {
+                    "description": "市场ID",
+                    "type": "integer"
+                },
+                "opencharge": {
+                    "description": "建仓手续费(账户)",
+                    "type": "number"
+                },
+                "opencharge2": {
+                    "description": "建仓手续费(商品)",
+                    "type": "number"
+                },
+                "openchargevalue": {
+                    "description": "建仓手续费设置值",
+                    "type": "number"
+                },
+                "openfeealgorithm": {
+                    "description": "建仓手续费收取方式  1:比率  2:固定",
+                    "type": "integer"
+                },
+                "openqty": {
+                    "description": "开仓数量(先建后平操作 需要记录)",
+                    "type": "integer"
+                },
+                "orderid": {
+                    "description": "委托单号",
+                    "type": "integer"
+                },
+                "parentaccountid": {
+                    "description": "所属母账户",
+                    "type": "integer"
+                },
+                "relatedouttradeid": {
+                    "description": "关联外部成交单ID",
+                    "type": "integer"
+                },
+                "spotcontractid": {
+                    "description": "现货合同ID [1:套利对冲 为合同ID,2:期货换月\\3:期货仓位调整时为0]",
+                    "type": "integer"
+                },
+                "spotcontractno": {
+                    "description": "现货合同编号",
+                    "type": "string"
+                },
+                "status": {
+                    "description": "处理状态 - 1:待处理 2:已处理 3:处理失败",
+                    "type": "integer"
+                },
+                "tradeamount": {
+                    "description": "成交金额(账户)",
+                    "type": "number"
+                },
+                "tradedate": {
+                    "description": "交易日(yyyyMMdd)",
+                    "type": "string"
+                },
+                "tradeid": {
+                    "description": "成交单号(108+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)",
+                    "type": "integer"
+                },
+                "tradeprice": {
+                    "description": "成交价格",
+                    "type": "number"
+                },
+                "tradeqty": {
+                    "description": "成交数量",
+                    "type": "integer"
+                },
+                "tradetime": {
+                    "description": "成交时间",
+                    "type": "string"
+                },
+                "tradetype": {
+                    "description": "成交类别 - 1:正常委托成交 2:风控斩仓成交 3:修正持仓成交 4:管理端斩仓成交",
+                    "type": "integer"
+                }
+            }
         }
     },
     "securityDefinitions": {

+ 237 - 0
docs/swagger.json

@@ -403,6 +403,45 @@
                 }
             }
         },
+        "/Erms2/QueryInnerTradeDetail": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "风险管理"
+                ],
+                "summary": "查询内部成交单信息",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "资金账户",
+                        "name": "accountid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/erms2.QueryInnerTradeDetailRsp"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/WRTrade/GetAllDeliveryGoods": {
             "get": {
                 "security": [
@@ -1393,6 +1432,204 @@
                     "type": "integer"
                 }
             }
+        },
+        "erms2.QueryInnerTradeDetailRsp": {
+            "type": "object",
+            "required": [
+                "asapplyid",
+                "buyorsell",
+                "tradeid"
+            ],
+            "properties": {
+                "accountcurrencyid": {
+                    "description": "账户币种ID",
+                    "type": "integer"
+                },
+                "accountid": {
+                    "description": "账号ID",
+                    "type": "integer"
+                },
+                "asapplyid": {
+                    "description": "策略申请ID",
+                    "type": "integer"
+                },
+                "ascontractno": {
+                    "description": "策略编号",
+                    "type": "string"
+                },
+                "buyorsell": {
+                    "description": "方向 - 0:买 1:卖",
+                    "type": "integer"
+                },
+                "channelbuildtype": {
+                    "description": "委托单据类型 0:无 1:建仓 2:平仓",
+                    "type": "integer"
+                },
+                "closecharge": {
+                    "description": "平仓手续费(账户)",
+                    "type": "number"
+                },
+                "closecharge2": {
+                    "description": "平仓手续费(商品)",
+                    "type": "number"
+                },
+                "closechargevalue": {
+                    "description": "平仓手续费设置值",
+                    "type": "number"
+                },
+                "closefeealgorithm": {
+                    "description": "平仓手续费收取方式 1:比率  2:固定",
+                    "type": "integer"
+                },
+                "closepl": {
+                    "description": "平仓盈亏(账户)",
+                    "type": "number"
+                },
+                "closepl2": {
+                    "description": "平仓盈亏(商品)",
+                    "type": "number"
+                },
+                "closepl3": {
+                    "description": "平仓盈亏(账户)(逐笔)",
+                    "type": "number"
+                },
+                "closepl4": {
+                    "description": "平仓盈亏(商品)(逐笔)",
+                    "type": "number"
+                },
+                "closeqty": {
+                    "description": "平仓数量(先建后平操作 需要记录)",
+                    "type": "integer"
+                },
+                "closetype": {
+                    "description": "平仓方式 - 0:无 1:平今 2:平昨",
+                    "type": "integer"
+                },
+                "curexchangerate": {
+                    "description": "当前汇率",
+                    "type": "number"
+                },
+                "detailtype": {
+                    "description": "明细类型 - 1:套利对冲 2:期货换月 3:期货仓位调整",
+                    "type": "integer"
+                },
+                "extenalclosecharge": {
+                    "description": "平仓手续费(商品)(外部)",
+                    "type": "number"
+                },
+                "extenalclosechargevalue": {
+                    "description": "平仓手续费设置值",
+                    "type": "number"
+                },
+                "extenalclosefeealgorithm": {
+                    "description": "平仓手续费收取方式 1:比率  2:固定",
+                    "type": "integer"
+                },
+                "extenalopencharge": {
+                    "description": "建仓手续费(商品)(外部)",
+                    "type": "number"
+                },
+                "extenalopenchargevalue": {
+                    "description": "建仓手续费设置值",
+                    "type": "number"
+                },
+                "extenalopenfeealgorithm": {
+                    "description": "建仓手续费收取方式(外部配置) 1:比率  2:固定",
+                    "type": "integer"
+                },
+                "goodscurrencyid": {
+                    "description": "商品币种ID",
+                    "type": "integer"
+                },
+                "goodsid": {
+                    "description": "商品ID",
+                    "type": "integer"
+                },
+                "hedgeflag": {
+                    "description": "投机套保标志 - 0:无 1:投机 2:套保 3:套利",
+                    "type": "integer"
+                },
+                "isreckoned": {
+                    "description": "是否结算 - 0:未结算 1:已结算",
+                    "type": "integer"
+                },
+                "marketid": {
+                    "description": "市场ID",
+                    "type": "integer"
+                },
+                "opencharge": {
+                    "description": "建仓手续费(账户)",
+                    "type": "number"
+                },
+                "opencharge2": {
+                    "description": "建仓手续费(商品)",
+                    "type": "number"
+                },
+                "openchargevalue": {
+                    "description": "建仓手续费设置值",
+                    "type": "number"
+                },
+                "openfeealgorithm": {
+                    "description": "建仓手续费收取方式  1:比率  2:固定",
+                    "type": "integer"
+                },
+                "openqty": {
+                    "description": "开仓数量(先建后平操作 需要记录)",
+                    "type": "integer"
+                },
+                "orderid": {
+                    "description": "委托单号",
+                    "type": "integer"
+                },
+                "parentaccountid": {
+                    "description": "所属母账户",
+                    "type": "integer"
+                },
+                "relatedouttradeid": {
+                    "description": "关联外部成交单ID",
+                    "type": "integer"
+                },
+                "spotcontractid": {
+                    "description": "现货合同ID [1:套利对冲 为合同ID,2:期货换月\\3:期货仓位调整时为0]",
+                    "type": "integer"
+                },
+                "spotcontractno": {
+                    "description": "现货合同编号",
+                    "type": "string"
+                },
+                "status": {
+                    "description": "处理状态 - 1:待处理 2:已处理 3:处理失败",
+                    "type": "integer"
+                },
+                "tradeamount": {
+                    "description": "成交金额(账户)",
+                    "type": "number"
+                },
+                "tradedate": {
+                    "description": "交易日(yyyyMMdd)",
+                    "type": "string"
+                },
+                "tradeid": {
+                    "description": "成交单号(108+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)",
+                    "type": "integer"
+                },
+                "tradeprice": {
+                    "description": "成交价格",
+                    "type": "number"
+                },
+                "tradeqty": {
+                    "description": "成交数量",
+                    "type": "integer"
+                },
+                "tradetime": {
+                    "description": "成交时间",
+                    "type": "string"
+                },
+                "tradetype": {
+                    "description": "成交类别 - 1:正常委托成交 2:风控斩仓成交 3:修正持仓成交 4:管理端斩仓成交",
+                    "type": "integer"
+                }
+            }
         }
     },
     "securityDefinitions": {

+ 172 - 0
docs/swagger.yaml

@@ -717,6 +717,154 @@ definitions:
     - mindeliveryqty
     - xdeliveryratio
     type: object
+  erms2.QueryInnerTradeDetailRsp:
+    properties:
+      accountcurrencyid:
+        description: 账户币种ID
+        type: integer
+      accountid:
+        description: 账号ID
+        type: integer
+      asapplyid:
+        description: 策略申请ID
+        type: integer
+      ascontractno:
+        description: 策略编号
+        type: string
+      buyorsell:
+        description: 方向 - 0:买 1:卖
+        type: integer
+      channelbuildtype:
+        description: 委托单据类型 0:无 1:建仓 2:平仓
+        type: integer
+      closecharge:
+        description: 平仓手续费(账户)
+        type: number
+      closecharge2:
+        description: 平仓手续费(商品)
+        type: number
+      closechargevalue:
+        description: 平仓手续费设置值
+        type: number
+      closefeealgorithm:
+        description: 平仓手续费收取方式 1:比率  2:固定
+        type: integer
+      closepl:
+        description: 平仓盈亏(账户)
+        type: number
+      closepl2:
+        description: 平仓盈亏(商品)
+        type: number
+      closepl3:
+        description: 平仓盈亏(账户)(逐笔)
+        type: number
+      closepl4:
+        description: 平仓盈亏(商品)(逐笔)
+        type: number
+      closeqty:
+        description: 平仓数量(先建后平操作 需要记录)
+        type: integer
+      closetype:
+        description: 平仓方式 - 0:无 1:平今 2:平昨
+        type: integer
+      curexchangerate:
+        description: 当前汇率
+        type: number
+      detailtype:
+        description: 明细类型 - 1:套利对冲 2:期货换月 3:期货仓位调整
+        type: integer
+      extenalclosecharge:
+        description: 平仓手续费(商品)(外部)
+        type: number
+      extenalclosechargevalue:
+        description: 平仓手续费设置值
+        type: number
+      extenalclosefeealgorithm:
+        description: 平仓手续费收取方式 1:比率  2:固定
+        type: integer
+      extenalopencharge:
+        description: 建仓手续费(商品)(外部)
+        type: number
+      extenalopenchargevalue:
+        description: 建仓手续费设置值
+        type: number
+      extenalopenfeealgorithm:
+        description: 建仓手续费收取方式(外部配置) 1:比率  2:固定
+        type: integer
+      goodscurrencyid:
+        description: 商品币种ID
+        type: integer
+      goodsid:
+        description: 商品ID
+        type: integer
+      hedgeflag:
+        description: 投机套保标志 - 0:无 1:投机 2:套保 3:套利
+        type: integer
+      isreckoned:
+        description: 是否结算 - 0:未结算 1:已结算
+        type: integer
+      marketid:
+        description: 市场ID
+        type: integer
+      opencharge:
+        description: 建仓手续费(账户)
+        type: number
+      opencharge2:
+        description: 建仓手续费(商品)
+        type: number
+      openchargevalue:
+        description: 建仓手续费设置值
+        type: number
+      openfeealgorithm:
+        description: 建仓手续费收取方式  1:比率  2:固定
+        type: integer
+      openqty:
+        description: 开仓数量(先建后平操作 需要记录)
+        type: integer
+      orderid:
+        description: 委托单号
+        type: integer
+      parentaccountid:
+        description: 所属母账户
+        type: integer
+      relatedouttradeid:
+        description: 关联外部成交单ID
+        type: integer
+      spotcontractid:
+        description: 现货合同ID [1:套利对冲 为合同ID,2:期货换月\3:期货仓位调整时为0]
+        type: integer
+      spotcontractno:
+        description: 现货合同编号
+        type: string
+      status:
+        description: 处理状态 - 1:待处理 2:已处理 3:处理失败
+        type: integer
+      tradeamount:
+        description: 成交金额(账户)
+        type: number
+      tradedate:
+        description: 交易日(yyyyMMdd)
+        type: string
+      tradeid:
+        description: 成交单号(108+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+        type: integer
+      tradeprice:
+        description: 成交价格
+        type: number
+      tradeqty:
+        description: 成交数量
+        type: integer
+      tradetime:
+        description: 成交时间
+        type: string
+      tradetype:
+        description: 成交类别 - 1:正常委托成交 2:风控斩仓成交 3:修正持仓成交 4:管理端斩仓成交
+        type: integer
+    required:
+    - asapplyid
+    - buyorsell
+    - tradeid
+    type: object
 info:
   contact: {}
   description: 新的查询服务,替代原通用查询服务。
@@ -970,6 +1118,30 @@ paths:
       summary: 查询商品交割关系表
       tags:
       - 交割服务
+  /Erms2/QueryInnerTradeDetail:
+    get:
+      parameters:
+      - description: 资金账户
+        in: query
+        name: accountid
+        required: true
+        type: integer
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/erms2.QueryInnerTradeDetailRsp'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      security:
+      - ApiKeyAuth: []
+      summary: 查询内部成交单信息
+      tags:
+      - 风险管理
   /WRTrade/GetAllDeliveryGoods:
     get:
       produces:

+ 184 - 0
models/erms2Models.go

@@ -0,0 +1,184 @@
+// Package models 211.2风险管理系统2020_期现套利
+package models
+
+import "time"
+
+// Hedgeinnertradedetail 对冲内部成交单表 - 导历史
+type Hedgeinnertradedetail struct {
+	Tradeid                  int64     `json:"tradeid"  xorm:"'TRADEID'" binding:"required"`                // 成交单号(108+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+	Buyorsell                int64     `json:"buyorsell"  xorm:"'BUYORSELL'" binding:"required"`            // 方向 - 0:买 1:卖
+	Orderid                  int64     `json:"orderid"  xorm:"'ORDERID'"`                                   // 委托单号
+	Tradedate                string    `json:"tradedate"  xorm:"'TRADEDATE'"`                               // 交易日(yyyyMMdd)
+	Accountid                int64     `json:"accountid"  xorm:"'ACCOUNTID'"`                               // 账号ID
+	Goodsid                  int64     `json:"goodsid"  xorm:"'GOODSID'"`                                   // 商品ID
+	Marketid                 int64     `json:"marketid"  xorm:"'MARKETID'"`                                 // 市场ID
+	Tradetime                time.Time `json:"tradetime"  xorm:"'TRADETIME'"`                               // 成交时间
+	Tradeprice               float64   `json:"tradeprice"  xorm:"'TRADEPRICE'"`                             // 成交价格
+	Tradeqty                 int64     `json:"tradeqty"  xorm:"'TRADEQTY'"`                                 // 成交数量
+	Tradeamount              float64   `json:"tradeamount"  xorm:"'TRADEAMOUNT'"`                           // 成交金额(账户)
+	Closepl                  float64   `json:"closepl"  xorm:"'CLOSEPL'"`                                   // 平仓盈亏(账户)
+	Opencharge               float64   `json:"opencharge"  xorm:"'OPENCHARGE'"`                             // 建仓手续费(账户)
+	Closecharge              float64   `json:"closecharge"  xorm:"'CLOSECHARGE'"`                           // 平仓手续费(账户)
+	Tradetype                int64     `json:"tradetype"  xorm:"'TRADETYPE'"`                               // 成交类别 - 1:正常委托成交 2:风控斩仓成交 3:修正持仓成交 4:管理端斩仓成交
+	Channelbuildtype         int64     `json:"channelbuildtype"  xorm:"'CHANNELBUILDTYPE'"`                 // 委托单据类型 0:无 1:建仓 2:平仓
+	Closetype                int64     `json:"closetype"  xorm:"'CLOSETYPE'"`                               // 平仓方式 - 0:无 1:平今 2:平昨
+	Hedgeflag                int64     `json:"hedgeflag"  xorm:"'HEDGEFLAG'"`                               // 投机套保标志 - 0:无 1:投机 2:套保 3:套利
+	Openqty                  int64     `json:"openqty"  xorm:"'OPENQTY'"`                                   // 开仓数量(先建后平操作 需要记录)
+	Closeqty                 int64     `json:"closeqty"  xorm:"'CLOSEQTY'"`                                 // 平仓数量(先建后平操作 需要记录)
+	Status                   int64     `json:"status"  xorm:"'STATUS'"`                                     // 处理状态 - 1:待处理 2:已处理 3:处理失败
+	Isreckoned               int64     `json:"isreckoned"  xorm:"'ISRECKONED'"`                             // 是否结算 - 0:未结算 1:已结算
+	Openfeealgorithm         int64     `json:"openfeealgorithm"  xorm:"'OPENFEEALGORITHM'"`                 // 建仓手续费收取方式  1:比率  2:固定
+	Openchargevalue          float64   `json:"openchargevalue"  xorm:"'OPENCHARGEVALUE'"`                   // 建仓手续费设置值
+	Closefeealgorithm        int64     `json:"closefeealgorithm"  xorm:"'CLOSEFEEALGORITHM'"`               // 平仓手续费收取方式 1:比率  2:固定
+	Closechargevalue         float64   `json:"closechargevalue"  xorm:"'CLOSECHARGEVALUE'"`                 // 平仓手续费设置值
+	Accountcurrencyid        int64     `json:"accountcurrencyid"  xorm:"'ACCOUNTCURRENCYID'"`               // 账户币种ID
+	Goodscurrencyid          int64     `json:"goodscurrencyid"  xorm:"'GOODSCURRENCYID'"`                   // 商品币种ID
+	Curexchangerate          float64   `json:"curexchangerate"  xorm:"'CUREXCHANGERATE'"`                   // 当前汇率
+	Opencharge2              float64   `json:"opencharge2"  xorm:"'OPENCHARGE2'"`                           // 建仓手续费(商品)
+	Closecharge2             float64   `json:"closecharge2"  xorm:"'CLOSECHARGE2'"`                         // 平仓手续费(商品)
+	Closepl2                 float64   `json:"closepl2"  xorm:"'CLOSEPL2'"`                                 // 平仓盈亏(商品)
+	Closepl3                 float64   `json:"closepl3"  xorm:"'CLOSEPL3'"`                                 // 平仓盈亏(账户)(逐笔)
+	Closepl4                 float64   `json:"closepl4"  xorm:"'CLOSEPL4'"`                                 // 平仓盈亏(商品)(逐笔)
+	Extenalopenfeealgorithm  int64     `json:"extenalopenfeealgorithm"  xorm:"'EXTENALOPENFEEALGORITHM'"`   // 建仓手续费收取方式(外部配置) 1:比率  2:固定
+	Extenalopenchargevalue   float64   `json:"extenalopenchargevalue"  xorm:"'EXTENALOPENCHARGEVALUE'"`     // 建仓手续费设置值
+	Extenalclosefeealgorithm int64     `json:"extenalclosefeealgorithm"  xorm:"'EXTENALCLOSEFEEALGORITHM'"` // 平仓手续费收取方式 1:比率  2:固定
+	Extenalclosechargevalue  float64   `json:"extenalclosechargevalue"  xorm:"'EXTENALCLOSECHARGEVALUE'"`   // 平仓手续费设置值
+	Extenalopencharge        float64   `json:"extenalopencharge"  xorm:"'EXTENALOPENCHARGE'"`               // 建仓手续费(商品)(外部)
+	Extenalclosecharge       float64   `json:"extenalclosecharge"  xorm:"'EXTENALCLOSECHARGE'"`             // 平仓手续费(商品)(外部)
+	Parentaccountid          int64     `json:"parentaccountid"  xorm:"'PARENTACCOUNTID'"`                   // 所属母账户
+	Relatedouttradeid        int64     `json:"relatedouttradeid"  xorm:"'RELATEDOUTTRADEID'"`               // 关联外部成交单ID
+}
+
+// TableName is HEDGE_INNERTRADEDETAIL
+func (Hedgeinnertradedetail) TableName() string {
+	return "HEDGE_INNERTRADEDETAIL"
+}
+
+// Erms2astradedetails 期现套利期货成交单关联表
+type Erms2astradedetails struct {
+	Asapplyid      int64     `json:"asapplyid"  xorm:"'ASAPPLYID'" binding:"required"`   // 策略申请ID
+	Outtradeid     int64     `json:"outtradeid"  xorm:"'OUTTRADEID'" binding:"required"` // 外部成交单ID(114+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+	Biztype        int64     `json:"biztype"  xorm:"'BIZTYPE'"`                          // 策略业务类型 - 1:正向套利 2:反向套利
+	Detailtype     int64     `json:"detailtype"  xorm:"'DETAILTYPE'"`                    // 明细类型 - 1:套利对冲 2:期货换月 3:期货仓位调整
+	Spotcontractid int64     `json:"spotcontractid"  xorm:"'SPOTCONTRACTID'"`            // 现货合同ID [1:套利对冲 为合同ID,2:期货换月\3:期货仓位调整时为0]
+	Contracttype   int64     `json:"contracttype"  xorm:"'CONTRACTTYPE'"`                // 现货合同类型 - 1:采购合同 -1:销售合同
+	Hedgegoodsid   int64     `json:"hedgegoodsid"  xorm:"'HEDGEGOODSID'"`                // 对冲合约ID
+	Buyorsell      int64     `json:"buyorsell"  xorm:"'BUYORSELL'"`                      // 买卖方向 - 0:买 1:卖 [成交单方向]
+	Buildtype      int64     `json:"buildtype"  xorm:"'BUILDTYPE'"`                      // 开平标志- 0:无 1:开仓 2:平仓  [根据成交单方向及策略业务类型确定]正向套利	成交单:卖  开	成交单:买  平反向套利	成交单:买 开	成交单:卖 平
+	Goodsgroupid   int64     `json:"goodsgroupid"  xorm:"'GOODSGROUPID'"`                // 对冲品种ID[期货合约商品组ID]
+	Tradedate      string    `json:"tradedate"  xorm:"'TRADEDATE'"`                      // 成交交易日(yyyyMMdd)
+	Tradeprice     float64   `json:"tradeprice"  xorm:"'TRADEPRICE'"`                    // 成交价
+	Tradelot       float64   `json:"tradelot"  xorm:"'TRADELOT'"`                        // 成交手数
+	Agreeunit      float64   `json:"agreeunit"  xorm:"'AGREEUNIT'"`                      // 合约单位
+	Tradeamount    float64   `json:"tradeamount"  xorm:"'TRADEAMOUNT'"`                  // 成交金额 = 成交价*成交手数*合约单位
+	Tradecharge    float64   `json:"tradecharge"  xorm:"'TRADECHARGE'"`                  // 交易手续费
+	Basisflag      int64     `json:"basisflag"  xorm:"'BASISFLAG'"`                      // 是否计入基差损益 - 0:不计入 1:计入 [明细类型:1\2为1,3:期货仓位调整是为0]
+	Remark         string    `json:"remark"  xorm:"'REMARK'"`                            // 备注
+	Updatetime     time.Time `json:"updatetime"  xorm:"'UPDATETIME'"`                    // 更新时间
+}
+
+// TableName is ERMS2_ASTRADEDETAILS
+func (Erms2astradedetails) TableName() string {
+	return "ERMS2_ASTRADEDETAILS"
+}
+
+// Erms2arbitragestrategy 期现套利策略表 - 导历史
+type Erms2arbitragestrategy struct {
+	Asapplyid          int64     `json:"asapplyid"  xorm:"'ASAPPLYID'" binding:"required"` // 策略申请ID(702+Unix秒时间戳(10位)+xxxxxx)
+	Contractno         string    `json:"contractno"  xorm:"'CONTRACTNO'"`                  // 策略编号
+	Biztype            int64     `json:"biztype"  xorm:"'BIZTYPE'"`                        // 业务类型 - 1:正向套利 -1:反向套利
+	Userid             int64     `json:"userid"  xorm:"'USERID'"`                          // 所属机构
+	Deliverygoodsid    int64     `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'"`        // 现货品种ID
+	Goodsgroupid       int64     `json:"goodsgroupid"  xorm:"'GOODSGROUPID'"`              // 期货品种ID
+	Spotquota          float64   `json:"spotquota"  xorm:"'SPOTQUOTA'"`                    // 现货额度
+	Futurequote        float64   `json:"futurequote"  xorm:"'FUTUREQUOTE'"`                // 期货额度
+	Applybasis         float64   `json:"applybasis"  xorm:"'APPLYBASIS'"`                  // 申请基差
+	Strategystatus     int64     `json:"strategystatus"  xorm:"'STRATEGYSTATUS'"`          // 策略状态 - 0:未结束 1:已结束
+	Remark             string    `json:"remark"  xorm:"'REMARK'"`                          // 备注
+	Marketid           int64     `json:"marketid"  xorm:"'MARKETID'"`                      // 市场ID
+	Tradedate          string    `json:"tradedate"  xorm:"'TRADEDATE'"`                    // 交易日(yyyyMMdd)
+	Closetradedate     string    `json:"closetradedate"  xorm:"'CLOSETRADEDATE'"`          // 完结交易日(yyyyMMdd)
+	Usedquota          float64   `json:"usedquota"  xorm:"'USEDQUOTA'"`                    // 已占用资金
+	Futureqty          float64   `json:"futureqty"  xorm:"'FUTUREQTY'"`                    // 期货持仓数量
+	Futureavgprice     float64   `json:"futureavgprice"  xorm:"'FUTUREAVGPRICE'"`          // 期货建仓均价
+	Futurepl           float64   `json:"futurepl"  xorm:"'FUTUREPL'"`                      // 期货总盈亏[结算更新]
+	Pricedspotqty      float64   `json:"pricedspotqty"  xorm:"'PRICEDSPOTQTY'"`            // 已定价现货数量
+	Pricedspotqtynotax float64   `json:"pricedspotqtynotax"  xorm:"'PRICEDSPOTQTYNOTAX'"`  // 已定价现货不含税数量
+	Spotavgprice       float64   `json:"spotavgprice"  xorm:"'SPOTAVGPRICE'"`              // 现货均价
+	Spotpl             float64   `json:"spotpl"  xorm:"'SPOTPL'"`                          // 现货总盈亏[结算更新]
+	Netexposure        float64   `json:"netexposure"  xorm:"'NETEXPOSURE'"`                // 单笔业务头寸净敞口 = 期货持仓数量 + 已定价现货不含税数量
+	Netexposurerate    float64   `json:"netexposurerate"  xorm:"'NETEXPOSURERATE'"`        // 净敞口比例 - 0:未结束 =  (NetExposure/PriceSpotQtyNoTax) ; 已结束为0
+	Totalpl            float64   `json:"totalpl"  xorm:"'TOTALPL'"`                        // 业务合计损益 = FuturePL + SpotPL [结算更新]
+	Openbasis          float64   `json:"openbasis"  xorm:"'OPENBASIS'"`                    // 建仓基差
+	Curbasis           float64   `json:"curbasis"  xorm:"'CURBASIS'"`                      // 当前基差[结算更新]
+	Basischangepl      float64   `json:"basischangepl"  xorm:"'BASISCHANGEPL'"`            // 基差变动损益[结算更新]
+	Netexposurepl      float64   `json:"netexposurepl"  xorm:"'NETEXPOSUREPL'"`            // 净敞口损益 = TotalPL - BasisChangePL[结算更新]
+	Spotusedquota      float64   `json:"spotusedquota"  xorm:"'SPOTUSEDQUOTA'"`            // 现货占用资金
+	Futureopenqty      float64   `json:"futureopenqty"  xorm:"'FUTUREOPENQTY'"`            // 期货开仓数量
+	Futureopenamount   float64   `json:"futureopenamount"  xorm:"'FUTUREOPENAMOUNT'"`      // 期货开仓金额
+	Futurecloseqty     float64   `json:"futurecloseqty"  xorm:"'FUTURECLOSEQTY'"`          // 期货平仓数量
+	Futurecloseamount  float64   `json:"futurecloseamount"  xorm:"'FUTURECLOSEAMOUNT'"`    // 期货平仓金额
+	Spotbuyamount      float64   `json:"spotbuyamount"  xorm:"'SPOTBUYAMOUNT'"`            // 现货采购金额
+	Spotbuyqty         float64   `json:"spotbuyqty"  xorm:"'SPOTBUYQTY'"`                  // 现货采购数量
+	Spotsellamount     float64   `json:"spotsellamount"  xorm:"'SPOTSELLAMOUNT'"`          // 现货销售金额
+	Spotsellqty        float64   `json:"spotsellqty"  xorm:"'SPOTSELLQTY'"`                // 现货销售数量
+	Updatetime         time.Time `json:"updatetime"  xorm:"'UPDATETIME'"`                  // 更新时间
+}
+
+// TableName is ERMS2_ARBITRAGESTRATEGY
+func (Erms2arbitragestrategy) TableName() string {
+	return "ERMS2_ARBITRAGESTRATEGY"
+}
+
+// Erms2spotcontract 现货合同表
+type Erms2spotcontract struct {
+	Spotcontractid     int64     `json:"spotcontractid"  xorm:"'SPOTCONTRACTID'" binding:"required"` // 现货合同ID(701+Unix秒时间戳(10位)+xxxxxx)
+	Tradedate          string    `json:"tradedate"  xorm:"'TRADEDATE'"`                              // 交易日(yyyyMMdd)
+	Contractno         string    `json:"contractno"  xorm:"'CONTRACTNO'"`                            // 现货合同编号
+	Contracttype       int64     `json:"contracttype"  xorm:"'CONTRACTTYPE'"`                        // 现货合同类型 - 1:采购合同 -1:销售合同
+	Areauserid         int64     `json:"areauserid"  xorm:"'AREAUSERID'"`                            // 所属机构
+	Userid             int64     `json:"userid"  xorm:"'USERID'"`                                    // 业务员用户ID
+	Accountid          int64     `json:"accountid"  xorm:"'ACCOUNTID'"`                              // 资金账户ID
+	Customeruserid     int64     `json:"customeruserid"  xorm:"'CUSTOMERUSERID'"`                    // 客户ID
+	Customeraccountid  int64     `json:"customeraccountid"  xorm:"'CUSTOMERACCOUNTID'"`              // 客户资金账户ID
+	Signdate           time.Time `json:"signdate"  xorm:"'SIGNDATE'"`                                // 签订日期
+	Lastdate           time.Time `json:"lastdate"  xorm:"'LASTDATE'"`                                // 交货时间
+	Contractattachment string    `json:"contractattachment"  xorm:"'CONTRACTATTACHMENT'"`            // 合同附件
+	Producttype        int64     `json:"producttype"  xorm:"'PRODUCTTYPE'"`                          // 产品类型 - 1:标准仓单 2:等标 3:非标
+	Deliverygoodsid    int64     `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'"`                  // 现货品种ID
+	Deliverygoodsdesc  string    `json:"deliverygoodsdesc"  xorm:"'DELIVERYGOODSDESC'"`              // 品种说明
+	Warehouseid        int64     `json:"warehouseid"  xorm:"'WAREHOUSEID'"`                          // 仓库ID
+	Wrfactortypeid     int64     `json:"wrfactortypeid"  xorm:"'WRFACTORTYPEID'"`                    // 仓单要素类型ID
+	Contractqtychar    string    `json:"contractqtychar"  xorm:"'CONTRACTQTYCHAR'"`                  // 合同数量\已订价数量 (用于显示)
+	Spotprice          float64   `json:"spotprice"  xorm:"'SPOTPRICE'"`                              // 价格
+	Contractamount     float64   `json:"contractamount"  xorm:"'CONTRACTAMOUNT'"`                    // 合同金额
+	Marketid           int64     `json:"marketid"  xorm:"'MARKETID'"`                                // 市场ID
+	Remark             string    `json:"remark"  xorm:"'REMARK'"`                                    // 备注
+	Handlestatus       int64     `json:"handlestatus"  xorm:"'HANDLESTATUS'"`                        // 处理状态
+	Contractqty        float64   `json:"contractqty"  xorm:"'CONTRACTQTY'"`                          // 合同数量(数值) (用于计算)
+	Positionqty        int64     `json:"positionqty"  xorm:"'POSITIONQTY'"`                          // 头寸数量 - 合同数量去小数部分
+	Paystatus          int64     `json:"paystatus"  xorm:"'PAYSTATUS'"`                              // 收付款状态 - 0:未支付 1:已收款 2:已付款
+	Payremark          string    `json:"payremark"  xorm:"'PAYREMARK'"`                              // 收付款备注
+	Paydatetime        time.Time `json:"paydatetime"  xorm:"'PAYDATETIME'"`                          // 收付款更新时间
+	Invoicestatus      int64     `json:"invoicestatus"  xorm:"'INVOICESTATUS'"`                      // 开收票状态 - 0:未开票 1:已开票
+	Invoiceremark      string    `json:"invoiceremark"  xorm:"'INVOICEREMARK'"`                      // 发票备注
+	Invoiceatt         string    `json:"invoiceatt"  xorm:"'INVOICEATT'"`                            // 发票附件
+	Invoicedatetime    time.Time `json:"invoicedatetime"  xorm:"'INVOICEDATETIME'"`                  // 开收票更新时间
+	Spotstatus         int64     `json:"spotstatus"  xorm:"'SPOTSTATUS'"`                            // 收发货状态 - 0:未交收 1:已发货 2:已发货
+	Spotremark         string    `json:"spotremark"  xorm:"'SPOTREMARK'"`                            // 收发货备注
+	Spotdatetime       time.Time `json:"spotdatetime"  xorm:"'SPOTDATETIME'"`                        // 收发货更新时间
+	Relatedqty         float64   `json:"relatedqty"  xorm:"'RELATEDQTY'"`                            // 已关联数量
+	Contractstatus     int64     `json:"contractstatus"  xorm:"'CONTRACTSTATUS'"`                    // 合同状态 - 0:未结束 1:已结束
+	Closeremark        string    `json:"closeremark"  xorm:"'CLOSEREMARK'"`                          // 结束备注
+	Closetradedate     string    `json:"closetradedate"  xorm:"'CLOSETRADEDATE'"`                    // 完结交易日(yyyyMMdd)
+	Relatedstatus      int64     `json:"relatedstatus"  xorm:"'RELATEDSTATUS'"`                      // 关联完结状态 - 0:未结束 1:已结束
+	Wrstandardid       int64     `json:"wrstandardid"  xorm:"'WRSTANDARDID'"`                        // 仓单标准ID(SEQ_WRSTANDARD)
+	Invoiceopentime    time.Time `json:"invoiceopentime"  xorm:"'INVOICEOPENTIME'"`                  // 开票时间
+	Closetype          int64     `json:"closetype"  xorm:"'CLOSETYPE'"`                              // 终止类型 - 1:违约 2:提前终止
+	Closedate          time.Time `json:"closedate"  xorm:"'CLOSEDATE'"`                              // 终止日期
+}
+
+// TableName is ERMS2_SPOTCONTRACT
+func (Erms2spotcontract) TableName() string {
+	return "ERMS2_SPOTCONTRACT"
+}

+ 8 - 0
routers/router.go

@@ -3,6 +3,7 @@ package routers
 import (
 	"mtp2_if/controllers/cptrade"
 	"mtp2_if/controllers/delivery"
+	"mtp2_if/controllers/erms2"
 	"mtp2_if/controllers/wrtrade"
 	"mtp2_if/logger"
 	"mtp2_if/token"
@@ -65,6 +66,13 @@ func InitRouter() *gin.Engine {
 		// 查询商品交割关系表
 		deliveryR.GET("/QueryDeliveryRelation", delivery.QueryDeliveryRelation)
 	}
+	// ************************ 风险管理 ************************
+	erms2R := apiR.Group("Erms2")
+	erms2R.Use()
+	{
+		// 查询内部成交单信息
+		erms2R.GET("/QueryInnerTradeDetail", erms2.QueryInnerTradeDetail)
+	}
 
 	return r
 }