Browse Source

1.增加查询合约交易买卖大厅接口
2.增加查询合约交易买卖大厅详情接口

zou.yingbin 4 years ago
parent
commit
eeb1b90bdd
9 changed files with 731 additions and 43 deletions
  1. 36 0
      controllers/wrTrade2/qryWrTrade.go
  2. 160 0
      docs/docs.go
  3. 160 0
      docs/swagger.json
  4. 106 0
      docs/swagger.yaml
  5. 142 41
      models/delivery.go
  6. 1 1
      models/tradexx.go
  7. 12 0
      models/wrTrade.go
  8. 112 1
      models/wrTrade2.go
  9. 2 0
      routers/router.go

+ 36 - 0
controllers/wrTrade2/qryWrTrade.go

@@ -430,3 +430,39 @@ func QueryWrDeliveryDetail(c *gin.Context) {
 	a.DoBindReq(&m)
 	a.DoGetDataI(&m)
 }
+
+// QueryWrBsGoodsInfo
+// @Summary 查询合约交易买卖大厅详情
+// @Description 合约交易/买卖大厅/详情
+// @Produce json
+// @Security ApiKeyAuth
+// @Param goodsid query int true "商品id"
+// @Success 200 {array} models.WrBsGoodsInfo
+// @Failure 500 {object} app.Response
+// @Router /WrTrade2/QueryWrBsGoodsInfo [get]
+// @Tags 仓单贸易v2
+func QueryWrBsGoodsInfo(c *gin.Context) {
+	a := app.GinUtils{Gin: app.Gin{C: c}}
+	m := models.WrBsGoodsInfo{}
+	a.DoBindReq(&m)
+	a.DoGetDataI(&m)
+}
+
+// QueryWrTradeOrderDetail
+// @Summary 查询合约交易买卖大厅
+// @Produce json
+// @Security ApiKeyAuth
+// @Param page query int false "页码"
+// @Param pagesize query int false "每页条数"
+// @Param goodsid query int true "商品id"
+// @Param buyorsell query int true "买卖方向 0-买 1-卖"
+// @Success 200 {array} models.WrTradeOrderDetail
+// @Failure 500 {object} app.Response
+// @Router /WrTrade2/QueryWrTradeOrderDetail [get]
+// @Tags 仓单贸易v2
+func QueryWrTradeOrderDetail(c *gin.Context) {
+	a := app.GinUtils{Gin: app.Gin{C: c}}
+	m := models.WrTradeOrderDetail{}
+	a.DoBindReq(&m)
+	a.DoGetDataI(&m)
+}

+ 160 - 0
docs/docs.go

@@ -11364,6 +11364,49 @@ var doc = `{
                 }
             }
         },
+        "/WrTrade2/QueryWrBsGoodsInfo": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "description": "合约交易/买卖大厅/详情",
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "仓单贸易v2"
+                ],
+                "summary": "查询合约交易买卖大厅详情",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "商品id",
+                        "name": "goodsid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.WrBsGoodsInfo"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/WrTrade2/QueryWrBuybackDetail": {
             "get": {
                 "security": [
@@ -12180,6 +12223,67 @@ var doc = `{
                     }
                 }
             }
+        },
+        "/WrTrade2/QueryWrTradeOrderDetail": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "仓单贸易v2"
+                ],
+                "summary": "查询合约交易买卖大厅",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "页码",
+                        "name": "page",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "每页条数",
+                        "name": "pagesize",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "商品id",
+                        "name": "goodsid",
+                        "in": "query",
+                        "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "买卖方向 0-买 1-卖",
+                        "name": "buyorsell",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.WrTradeOrderDetail"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
         }
     },
     "definitions": {
@@ -30031,6 +30135,33 @@ var doc = `{
                 }
             }
         },
+        "models.WrBsGoodsInfo": {
+            "type": "object",
+            "properties": {
+                "buyorsell": {
+                    "description": "买卖方向 0-买 1-卖",
+                    "type": "integer"
+                },
+                "goodsid": {
+                    "description": "交易合约ID",
+                    "type": "integer"
+                },
+                "lstitem": {
+                    "description": "商品信息项",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.WrTypeItem"
+                    }
+                },
+                "lststep": {
+                    "description": "履约规则",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.WrGoodsPerformanceStep"
+                    }
+                }
+            }
+        },
         "models.WrBuybackDetail": {
             "type": "object",
             "properties": {
@@ -32419,6 +32550,35 @@ var doc = `{
                 }
             }
         },
+        "models.WrTradeOrderDetail": {
+            "type": "object",
+            "properties": {
+                "buyorsell": {
+                    "description": "买卖方向 0-买 1-卖",
+                    "type": "integer"
+                },
+                "goodsid": {
+                    "description": "商品id",
+                    "type": "integer"
+                },
+                "orderid": {
+                    "description": "委托单号",
+                    "type": "string"
+                },
+                "orderprice": {
+                    "description": "委托价格",
+                    "type": "number"
+                },
+                "userid": {
+                    "description": "用户id",
+                    "type": "integer"
+                },
+                "username": {
+                    "description": "用户名称(已脱敏)",
+                    "type": "string"
+                }
+            }
+        },
         "models.WrTypeItem": {
             "type": "object",
             "properties": {

+ 160 - 0
docs/swagger.json

@@ -11348,6 +11348,49 @@
                 }
             }
         },
+        "/WrTrade2/QueryWrBsGoodsInfo": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "description": "合约交易/买卖大厅/详情",
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "仓单贸易v2"
+                ],
+                "summary": "查询合约交易买卖大厅详情",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "商品id",
+                        "name": "goodsid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.WrBsGoodsInfo"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/WrTrade2/QueryWrBuybackDetail": {
             "get": {
                 "security": [
@@ -12164,6 +12207,67 @@
                     }
                 }
             }
+        },
+        "/WrTrade2/QueryWrTradeOrderDetail": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "仓单贸易v2"
+                ],
+                "summary": "查询合约交易买卖大厅",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "页码",
+                        "name": "page",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "每页条数",
+                        "name": "pagesize",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "商品id",
+                        "name": "goodsid",
+                        "in": "query",
+                        "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "买卖方向 0-买 1-卖",
+                        "name": "buyorsell",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.WrTradeOrderDetail"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
         }
     },
     "definitions": {
@@ -30015,6 +30119,33 @@
                 }
             }
         },
+        "models.WrBsGoodsInfo": {
+            "type": "object",
+            "properties": {
+                "buyorsell": {
+                    "description": "买卖方向 0-买 1-卖",
+                    "type": "integer"
+                },
+                "goodsid": {
+                    "description": "交易合约ID",
+                    "type": "integer"
+                },
+                "lstitem": {
+                    "description": "商品信息项",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.WrTypeItem"
+                    }
+                },
+                "lststep": {
+                    "description": "履约规则",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.WrGoodsPerformanceStep"
+                    }
+                }
+            }
+        },
         "models.WrBuybackDetail": {
             "type": "object",
             "properties": {
@@ -32403,6 +32534,35 @@
                 }
             }
         },
+        "models.WrTradeOrderDetail": {
+            "type": "object",
+            "properties": {
+                "buyorsell": {
+                    "description": "买卖方向 0-买 1-卖",
+                    "type": "integer"
+                },
+                "goodsid": {
+                    "description": "商品id",
+                    "type": "integer"
+                },
+                "orderid": {
+                    "description": "委托单号",
+                    "type": "string"
+                },
+                "orderprice": {
+                    "description": "委托价格",
+                    "type": "number"
+                },
+                "userid": {
+                    "description": "用户id",
+                    "type": "integer"
+                },
+                "username": {
+                    "description": "用户名称(已脱敏)",
+                    "type": "string"
+                }
+            }
+        },
         "models.WrTypeItem": {
             "type": "object",
             "properties": {

+ 106 - 0
docs/swagger.yaml

@@ -13304,6 +13304,25 @@ definitions:
     - autoid
     - warehousecode
     type: object
+  models.WrBsGoodsInfo:
+    properties:
+      buyorsell:
+        description: 买卖方向 0-买 1-卖
+        type: integer
+      goodsid:
+        description: 交易合约ID
+        type: integer
+      lstitem:
+        description: 商品信息项
+        items:
+          $ref: '#/definitions/models.WrTypeItem'
+        type: array
+      lststep:
+        description: 履约规则
+        items:
+          $ref: '#/definitions/models.WrGoodsPerformanceStep'
+        type: array
+    type: object
   models.WrBuybackDetail:
     properties:
       buybackamount:
@@ -15089,6 +15108,27 @@ definitions:
         description: 商品
         type: string
     type: object
+  models.WrTradeOrderDetail:
+    properties:
+      buyorsell:
+        description: 买卖方向 0-买 1-卖
+        type: integer
+      goodsid:
+        description: 商品id
+        type: integer
+      orderid:
+        description: 委托单号
+        type: string
+      orderprice:
+        description: 委托价格
+        type: number
+      userid:
+        description: 用户id
+        type: integer
+      username:
+        description: 用户名称(已脱敏)
+        type: string
+    type: object
   models.WrTypeItem:
     properties:
       name:
@@ -24236,6 +24276,33 @@ paths:
       summary: 查询履约信息
       tags:
       - 仓单贸易v2
+  /WrTrade2/QueryWrBsGoodsInfo:
+    get:
+      description: 合约交易/买卖大厅/详情
+      parameters:
+      - description: 商品id
+        in: query
+        name: goodsid
+        required: true
+        type: integer
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            items:
+              $ref: '#/definitions/models.WrBsGoodsInfo'
+            type: array
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      security:
+      - ApiKeyAuth: []
+      summary: 查询合约交易买卖大厅详情
+      tags:
+      - 仓单贸易v2
   /WrTrade2/QueryWrBuybackDetail:
     get:
       parameters:
@@ -24751,6 +24818,45 @@ paths:
       summary: 查询仓单成交明细
       tags:
       - 仓单贸易v2
+  /WrTrade2/QueryWrTradeOrderDetail:
+    get:
+      parameters:
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 每页条数
+        in: query
+        name: pagesize
+        type: integer
+      - description: 商品id
+        in: query
+        name: goodsid
+        required: true
+        type: integer
+      - description: 买卖方向 0-买 1-卖
+        in: query
+        name: buyorsell
+        required: true
+        type: integer
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            items:
+              $ref: '#/definitions/models.WrTradeOrderDetail'
+            type: array
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      security:
+      - ApiKeyAuth: []
+      summary: 查询合约交易买卖大厅
+      tags:
+      - 仓单贸易v2
 securityDefinitions:
   ApiKeyAuth:
     in: header

+ 142 - 41
models/delivery.go

@@ -1,50 +1,151 @@
-// Package models 40.a交割服务
 package models
 
 import (
-	"fmt"
 	"mtp2_if/db"
+	"mtp2_if/utils"
 )
 
-// Deliveryrelation 商品交割关系表
-type Deliveryrelation struct {
-	Goodsid           int64   `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`               // 交易合约ID
-	Deliverymode      int64   `json:"deliverymode"  xorm:"'DELIVERYMODE'"`                        // 交割方式 - 1:点选式 2:申报式
-	Wrstandardid      int64   `json:"wrstandardid"  xorm:"'WRSTANDARDID'"`                        // 仓单标准ID
-	Deliverygoodsid   int64   `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'"`                  // 交割商品
-	Mindeliveryqty    int64   `json:"mindeliveryqty"  xorm:"'MINDELIVERYQTY'" binding:"required"` // 最小交割系数(K)
-	Rratio1           int64   `json:"rratio1"  xorm:"'RRATIO1'"`                                  // 兑换系数(交易合约)(R1)
-	Rratio2           int64   `json:"rratio2"  xorm:"'RRATIO2'"`                                  // 兑换系数(仓单标准)(R2)
-	Deliverypricerule int64   `json:"deliverypricerule"  xorm:"'DELIVERYPRICERULE'"`              // 交割价规则- 1:行情价 2:建仓价
-	Begindate         string  `json:"begindate"  xorm:"'BEGINDATE'" binding:"required"`           // 起始日期(yyyyMMdd)
-	Enddate           string  `json:"enddate"  xorm:"'ENDDATE'" binding:"required"`               // 结束日期(yyyyMMdd)
-	Buytemplateid     int64   `json:"buytemplateid"  xorm:"'BUYTEMPLATEID'"`                      // 买履约计划模板ID
-	Selltemplateid    int64   `json:"selltemplateid"  xorm:"'SELLTEMPLATEID'"`                    // 卖履约计划模板ID
-	Deliverytype      int64   `json:"deliverytype"  xorm:"'DELIVERYTYPE'"`                        // 交割模式 - 1:X交割 2:X+P交割 3:X+C交割 4:X+P+C交割
-	Xdeliveryratio    int64   `json:"xdeliveryratio"  xorm:"'XDELIVERYRATIO'" binding:"required"` // 交易合约系数(m)
-	Ppricemode        int64   `json:"ppricemode"  xorm:"'PPRICEMODE'"`                            // P合约价格方式 - 1:商品价  2:固定值
-	Pdeliveryprice    float64 `json:"pdeliveryprice"  xorm:"'PDELIVERYPRICE'"`                    // P合约价格(商品价时填写0,固定值时填写固定值)
-	Pdeliveryratio    int64   `json:"pdeliveryratio"  xorm:"'PDELIVERYRATIO'"`                    // P合约系数(n)
-	Pgoodsid          int64   `json:"pgoodsid"  xorm:"'PGOODSID'"`                                // P合约ID
-	P2pricemode       int64   `json:"p2pricemode"  xorm:"'P2PRICEMODE'"`                          // P2合约价格方式 - 1:商品价  2:固定值
-	P2deliveryprice   float64 `json:"p2deliveryprice"  xorm:"'P2DELIVERYPRICE'"`                  // P2合约价格(商品价时填写0,固定值时填写固定值)
-	P2deliveryratio   int64   `json:"p2deliveryratio"  xorm:"'P2DELIVERYRATIO'"`                  // P2合约系数(p)
-	P2goodsid         int64   `json:"p2goodsid"  xorm:"'P2GOODSID'"`                              // P2合约ID
-	Rratio            int64   `json:"rratio"  xorm:"'RRATIO'"`                                    // 兑换系数(R)
-}
-
-// TableName is DELIVERYRELATION
-func (Deliveryrelation) TableName() string {
-	return "DELIVERYRELATION"
-}
-
-// GetDeliverGoods 获取交割商品
-func GetDeliverGoods() ([]Deliverygoods, error) {
-	engine := db.GetEngine()
-	d := make([]Deliverygoods, 0)
-	if err := engine.Where("IsValid=1").And("categoryid<>0").Find(&d); err != nil {
-		return nil, fmt.Errorf("query deleiverygoods fail")
+// DeliveryRelation 交割关系
+type DeliveryRelation struct {
+	GOODSID           int32   `json:"goodsid"  xorm:"GOODSID" form:"goodsid"`                         // 交易合约ID
+	DELIVERYMODE      int32   `json:"deliverymode"  xorm:"DELIVERYMODE"`                              // 交割方式 - 1:点选式 2:申报式
+	WRSTANDARDID      int32   `json:"wrstandardid"  xorm:"WRSTANDARDID" form:"wrstandardid"`          // 现货商品ID
+	DELIVERYGOODSID   int32   `json:"deliverygoodsid"  xorm:"DELIVERYGOODSID" form:"deliverygoodsid"` // 现货品种ID
+	MINDELIVERYQTY    float64 `json:"mindeliveryqty"  xorm:"MINDELIVERYQTY"`                          // 最小交割系数(K)
+	RRATIO1           int32   `json:"rratio1"  xorm:"RRATIO1"`                                        // 兑换系数(交易合约)(R1)
+	RRATIO2           int32   `json:"rratio2"  xorm:"RRATIO2"`                                        // 兑换系数(现货商品)(R2)
+	DELIVERYPRICERULE int32   `json:"deliverypricerule"  xorm:"DELIVERYPRICERULE"`                    // 交割价规则- 1:行情价 2:建仓价
+	BEGINDATE         string  `json:"begindate"  xorm:"BEGINDATE" form:"begindate"`                   // 起始日期(yyyyMMdd)
+	ENDDATE           string  `json:"enddate"  xorm:"ENDDATE" form:"enddate"`                         // 结束日期(yyyyMMdd)
+	BUYTEMPLATEID     int64   `json:"buytemplateid"  xorm:"BUYTEMPLATEID" form:"buytemplateid"`       // 买履约计划模板ID
+	SELLTEMPLATEID    int64   `json:"selltemplateid"  xorm:"SELLTEMPLATEID" form:"selltemplateid"`    // 卖履约计划模板ID
+	DELIVERYTYPE      int32   `json:"deliverytype"  xorm:"DELIVERYTYPE"`                              // 交割模式 - 1:X交割 2:X+P交割 3:X+C交割 4:X+P+C交割
+	XDELIVERYRATIO    int32   `json:"xdeliveryratio"  xorm:"XDELIVERYRATIO"`                          // 交易合约系数(m)
+	PPRICEMODE        int32   `json:"ppricemode"  xorm:"PPRICEMODE"`                                  // P合约价格方式 - 1:商品价  2:固定值
+	PDELIVERYPRICE    float64 `json:"pdeliveryprice"  xorm:"PDELIVERYPRICE"`                          // P合约价格(商品价时填写0,固定值时填写固定值)
+	PDELIVERYRATIO    int32   `json:"pdeliveryratio"  xorm:"PDELIVERYRATIO"`                          // P合约系数(n)
+	PGOODSID          int32   `json:"pgoodsid"  xorm:"PGOODSID" form:"pgoodsid"`                      // P合约ID
+	P2PRICEMODE       int32   `json:"p2pricemode"  xorm:"P2PRICEMODE"`                                // P2合约价格方式 - 1:商品价  2:固定值
+	P2DELIVERYPRICE   float64 `json:"p2deliveryprice"  xorm:"P2DELIVERYPRICE"`                        // P2合约价格(商品价时填写0,固定值时填写固定值)
+	P2DELIVERYRATIO   int32   `json:"p2deliveryratio"  xorm:"P2DELIVERYRATIO"`                        // P2合约系数(p)
+	P2GOODSID         int32   `json:"p2goodsid"  xorm:"P2GOODSID" form:"p2goodsid"`                   // P2合约ID
+	RRATIO            int32   `json:"rratio"  xorm:"RRATIO"`                                          // 兑换系数(R)
+
+	GOODSCODE         string `json:"goodscode"  xorm:"'GOODSCODE'"`                 // 商品代码
+	GOODSNAME         string `json:"goodsname"  xorm:"'GOODSNAME'"`                 // 商品名称
+	DELIVERYGOODSCODE string `json:"deliverygoodscode"  xorm:"'DELIVERYGOODSCODE'"` // 品种代码
+	DELIVERYGOODSNAME string `json:"deliverygoodsname"  xorm:"'DELIVERYGOODSNAME'"` // 品种名称
+	WRSTANDARDCODE    string `json:"wrstandardcode"  xorm:"'WRSTANDARDCODE'"`       // 品类代码
+	WRSTANDARDNAME    string `json:"wrstandardname"  xorm:"'WRSTANDARDNAME'"`       // 品类名称
+	BUYTMPNAME        string `json:"buytmpname"  xorm:"'BUYTMPNAME'"`               // 买履约模板名称
+	SELLTMPNAME       string `json:"selltmpname"  xorm:"'SELLTMPNAME'"`             // 卖履约模板名称
+}
+
+func (r *DeliveryRelation) calc() {
+
+}
+
+func (r *DeliveryRelation) buildSql() string {
+	var sqlId utils.SQLVal = "select t.goodsid," +
+		"       t.deliverymode," +
+		"       t.wrstandardid," +
+		"       t.deliverygoodsid," +
+		"       t.mindeliveryqty," +
+		"       t.rratio1," +
+		"       t.rratio2," +
+		"       t.deliverypricerule," +
+		"       t.begindate," +
+		"       t.enddate," +
+		"       t.buytemplateid," +
+		"       t.selltemplateid," +
+		"       t.deliverytype," +
+		"       t.xdeliveryratio," +
+		"       t.ppricemode," +
+		"       t.pdeliveryprice," +
+		"       t.pdeliveryratio," +
+		"       t.pgoodsid," +
+		"       t.p2pricemode," +
+		"       t.p2deliveryprice," +
+		"       t.p2deliveryratio," +
+		"       t.p2goodsid," +
+		"       t.rratio," +
+		"       g.goodscode," +
+		"       g.goodsname," +
+		"       dg.deliverygoodscode," +
+		"       dg.deliverygoodsname," +
+		"       w.wrstandardcode," +
+		"       w.wrstandardname," +
+		"       k1.templatename      buytmpname," +
+		"       k2.templatename      selltmpname" +
+		"  from deliveryrelation t" +
+		"  left join goods g" +
+		"    on t.goodsid = g.goodsid" +
+		"  left join deliverygoods dg" +
+		"    on t.deliverygoodsid = dg.deliverygoodsid" +
+		"  left join wrstandard w" +
+		"    on t.wrstandardid = w.wrstandardid" +
+		"  left join performanceplantemplate k1" +
+		"    on t.buytemplateid = k1.autoid" +
+		"  left join performanceplantemplate k2" +
+		"    on t.selltemplateid = k2.autoid" +
+		"  where 1=1"
+	sqlId.AndEx("t.GOODSID", r.GOODSID, r.GOODSID > 0)
+	sqlId.AndEx("t.wrstandardid", r.WRSTANDARDID, r.WRSTANDARDID > 0)
+	return sqlId.String()
+}
+
+// GetDataEx 获取交割关系
+func (r *DeliveryRelation) GetDataEx() (interface{}, error) {
+	sData := make([]DeliveryRelation, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
 	}
+	return sData, err
+}
+
+// DeliveryRelationDetail 交割关系明细
+type DeliveryRelationDetail struct {
+	GOODSID             int32   `json:"goodsid"  xorm:"GOODSID" form:"goodsid"`          // 交易合约ID
+	DGFACTORYITEMID     int64   `json:"dgfactoryitemid"  xorm:"DGFACTORYITEMID"`         // 选择项ID
+	DGFACTORYITEMTYPEID int64   `json:"dgfactoryitemtypeid"  xorm:"DGFACTORYITEMTYPEID"` // 要素项类型ID
+	PREMIUMVALUE        float64 `json:"premiumvalue"  xorm:"PREMIUMVALUE"`               // 升贴水值
 
-	return d, nil
+	ITEMTYPENAME       string `json:"itemtypename"  xorm:"'ITEMTYPENAME'"`             // 要素项名称
+	DGFACTORYITEMVALUE string `json:"dgfactoryitemvalue"  xorm:"'DGFACTORYITEMVALUE'"` // 要素项值
+
+}
+
+func (r *DeliveryRelationDetail) calc() {
+
+}
+
+func (r *DeliveryRelationDetail) buildSql() string {
+	var sqlId utils.SQLVal = "select t.goodsid," +
+		"       t.dgfactoryitemid," +
+		"       t.dgfactoryitemtypeid," +
+		"       t.premiumvalue," +
+		"       dt.itemtypename," +
+		"       di.dgfactoryitemvalue" +
+		"  from deliveryrelationdetail t" +
+		"  left join deliveryrelation s" +
+		"    on t.goodsid = s.goodsid" +
+		"  left join dgfactoryitem di" +
+		"    on t.dgfactoryitemid = di.dgfactoryitemid" +
+		"  left join dgfactoryitemtype dt" +
+		"    on t.dgfactoryitemtypeid = dt.dgfactoryitemtypeid" +
+		"   and dt.deliverygoodsid = s.deliverygoodsid" +
+		" where 1 = 1"
+	sqlId.AndEx("t.GOODSID", r.GOODSID, r.GOODSID > 0)
+	return sqlId.String()
+}
+
+// GetDataEx 获取交割关系明细
+func (r *DeliveryRelationDetail) GetDataEx() (interface{}, error) {
+	sData := make([]DeliveryRelationDetail, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, err
 }

+ 1 - 1
models/tradexx.go

@@ -120,7 +120,7 @@ func (r *TradePosition) buildSql() string {
 		"    left join loginaccount b" +
 		"      on a.loginid = b.loginid" +
 		"    left join useraccount u" +
-		"      on ta.userid = u.userid)" +
+		"      on ta.relateduserid = u.userid)" +
 		"select k.*, t1.*, t2.*" +
 		"  from (select t.accountid," +
 		"               t.goodsid," +

+ 12 - 0
models/wrTrade.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	"fmt"
 	"mtp2_if/db"
 	"time"
 )
@@ -227,3 +228,14 @@ func GetWareHouseinfos() ([]Warehouseinfo, error) {
 
 	return wareHouseinfos, nil
 }
+
+// GetDeliverGoods 获取交割商品
+func GetDeliverGoods() ([]Deliverygoods, error) {
+	engine := db.GetEngine()
+	d := make([]Deliverygoods, 0)
+	if err := engine.Where("IsValid=1").And("categoryid<>0").Find(&d); err != nil {
+		return nil, fmt.Errorf("query deleiverygoods fail")
+	}
+
+	return d, nil
+}

+ 112 - 1
models/wrTrade2.go

@@ -1054,7 +1054,7 @@ func (r *WrGoodsPerformanceStep) calc() {
 	r.STEPDAYSINFO = fmt.Sprintf("T+%v", r.STEPDAYS)
 }
 
-func (r *WrGoodsPerformanceStep) buildSql() string {
+func (r *WrGoodsPerformanceStep) buildSqlByWrstandard() string {
 	var sqlId utils.SQLVal = "with tmp as" +
 		" (select decode(%v, 1, t.performancetempid, t.performancetempid2) tempid" +
 		"    from marketspotgoodsconfig t" +
@@ -1073,6 +1073,24 @@ func (r *WrGoodsPerformanceStep) buildSql() string {
 	return sqlId.String()
 }
 
+func (r WrGoodsPerformanceStep) buildSqlByTmpId() string {
+	var sqlId utils.SQLVal = "select t.*, s.steptypename" +
+		"  from PerformanceStepTemplate t" +
+		" inner join PerformanceStepType s" +
+		"    on t.steptypeid = s.steptypeid" +
+		" where t.templateid=%v" +
+		" order by t.stepindex"
+	sqlId.FormatParam(r.TEMPLATEID)
+	return sqlId.String()
+}
+
+func (r *WrGoodsPerformanceStep) buildSql() string {
+	if r.TEMPLATEID != 0 {
+		return r.buildSqlByTmpId()
+	}
+	return r.buildSqlByWrstandard()
+}
+
 // GetDataEx 获取商品履约步骤
 func (r *WrGoodsPerformanceStep) GetData() ([]WrGoodsPerformanceStep, error) {
 	sData := make([]WrGoodsPerformanceStep, 0)
@@ -2522,3 +2540,96 @@ func (r *WrDeliveryDetail) GetDataEx() (interface{}, error) {
 	}
 	return sData, err
 }
+
+// WrBsGoodsInfo 合约交易买卖大厅详情
+type WrBsGoodsInfo struct {
+	GOODSID int32                    `json:"goodsid"  xorm:"GOODSID" form:"goodsid"` // 交易合约ID
+	LstItem []WrTypeItem             `json:"lstitem"`                                // 商品信息项
+	LstStep []WrGoodsPerformanceStep `json:"lststep"`                                // 履约规则
+
+	BUYORSELL int32 `json:"buyorsell" form:"buyorsell"` // 买卖方向 0-买 1-卖
+}
+
+// GetDataEx 获取描述
+func (r *WrBsGoodsInfo) GetDataEx() (interface{}, error) {
+	sData := make([]WrBsGoodsInfo, 0)
+	// 履约关系
+	mRelation := DeliveryRelation{GOODSID: r.GOODSID}
+	if d, err := mRelation.GetDataEx(); err == nil {
+		if sRelation, ok := d.([]DeliveryRelation); ok {
+			val := WrBsGoodsInfo{GOODSID: r.GOODSID,
+				LstItem: make([]WrTypeItem, 0),
+				LstStep: make([]WrGoodsPerformanceStep, 0)}
+			if len(sRelation) > 0 {
+				vR := sRelation[0]
+				// 履约关系详情(要素项)
+				mRDetail := DeliveryRelationDetail{GOODSID: r.GOODSID}
+				if d2, err := mRDetail.GetDataEx(); err == nil {
+					if sDetail, ok := d2.([]DeliveryRelationDetail); ok {
+						for i := range sDetail {
+							val.LstItem = append(val.LstItem,
+								WrTypeItem{NAME: sDetail[i].ITEMTYPENAME, VALUE: sDetail[i].DGFACTORYITEMVALUE})
+						}
+					}
+				}
+				// 履约计划模板步骤
+				tmpId := IFValue(r.BUYORSELL == 0, vR.BUYTEMPLATEID, vR.SELLTEMPLATEID).(int64)
+				mStep := WrGoodsPerformanceStep{TEMPLATEID: tmpId}
+				if d3, err := mStep.GetData(); err == nil {
+					val.LstStep = d3
+				}
+			}
+			sData = append(sData, val)
+		}
+	}
+	return sData, nil
+}
+
+// WRTRADE_ORDERDETAIL 合约交易买卖大厅
+type WrTradeOrderDetail struct {
+	ORDERID    string   `json:"orderid"  xorm:"'ORDERID'"`                      // 委托单号
+	GOODSID    int32    `json:"goodsid"  xorm:"'GOODSID'" form:"goodsid"`       // 商品id
+	BUYORSELL  int32    `json:"buyorsell"  xorm:"'BUYORSELL'" form:"buyorsell"` // 买卖方向 0-买 1-卖
+	ORDERPRICE SFLOAT64 `json:"orderprice"  xorm:"'ORDERPRICE'"`                // 委托价格
+	USERID     int64    `json:"userid"  xorm:"'USERID'"`                        // 用户id
+	USERNAME   string   `json:"username"  xorm:"'USERNAME'"`                    // 用户名称(已脱敏)
+	PageEx     `xorm:"extends"`
+}
+
+func (r *WrTradeOrderDetail) calc() {
+
+}
+
+func (r *WrTradeOrderDetail) buildSql() string {
+	var sqlId utils.SQLVal = "select t.orderid," +
+		"       t.buyorsell," +
+		"       t.orderprice," +
+		"       u.accountname username," +
+		"       t.orderstatus" +
+		"  from trade_orderdetail t" +
+		"  left join taaccount ta" +
+		"    on t.accountid = ta.accountid" +
+		"  left join useraccount u" +
+		"    on ta.relateduserid = u.userid" +
+		" where 1 = 1"
+	sqlId.And("t.GOODSID", r.GOODSID)
+	sqlId.And("t.BUYORSELL", r.BUYORSELL)
+
+	if r.BUYORSELL == 0 {
+		sqlId.Join(" order by t.orderprice desc, t.ordertime desc")
+	} else {
+		sqlId.Join(" order by t.orderprice, t.ordertime desc")
+	}
+	sqlId.Page(r.Page, r.PageSize)
+	return sqlId.String()
+}
+
+// GetDataEx 获取合约交易买卖大厅
+func (r *WrTradeOrderDetail) GetDataEx() (interface{}, error) {
+	sData := make([]WrTradeOrderDetail, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, err
+}

+ 2 - 0
routers/router.go

@@ -541,6 +541,8 @@ func InitRouter() *gin.Engine {
 		wrTrade2R.GET("QueryWrScfContractInterest", wrTrade2.QueryWrScfContractInterest)
 		wrTrade2R.GET("QueryWrOutInApply", wrTrade2.QueryWrOutInApply)
 		wrTrade2R.GET("QueryWrDeliveryDetail", wrTrade2.QueryWrDeliveryDetail)
+		wrTrade2R.GET("QueryWrBsGoodsInfo", wrTrade2.QueryWrBsGoodsInfo)
+		wrTrade2R.GET("QueryWrTradeOrderDetail", wrTrade2.QueryWrTradeOrderDetail)
 	}
 
 	return r