瀏覽代碼

Merge branch 'master' of 192.168.30.132:MTP2.0/MTP20_IF

zhou.xiaoning 4 年之前
父節點
當前提交
a5b68f5a96
共有 7 個文件被更改,包括 333 次插入18 次删除
  1. 19 0
      controllers/wrTrade2/qryWrTrade.go
  2. 78 0
      docs/docs.go
  3. 78 0
      docs/swagger.json
  4. 51 0
      docs/swagger.yaml
  5. 45 16
      models/delivery.go
  6. 61 2
      models/wrTrade2.go
  7. 1 0
      routers/router.go

+ 19 - 0
controllers/wrTrade2/qryWrTrade.go

@@ -466,3 +466,22 @@ func QueryWrTradeOrderDetail(c *gin.Context) {
 	a.DoBindReq(&m)
 	a.DoGetDataI(&m)
 }
+
+// QueryWrAverageTradePrice
+// @Summary 查询成交价(历史走势)
+// @Produce json
+// @Security ApiKeyAuth
+// @Param page query int false "页码"
+// @Param pagesize query int false "每页条数"
+// @Param haswr query int true "0:仓单预售 1:仓单贸易"
+// @Param wrfactortypeid query int true "仓单要素id"
+// @Success 200 {array} models.WrAverageTradePrice
+// @Failure 500 {object} app.Response
+// @Router /WrTrade2/QueryWrAverageTradePrice [get]
+// @Tags 仓单贸易v2
+func QueryWrAverageTradePrice(c *gin.Context) {
+	a := app.GinUtils{Gin: app.Gin{C: c}}
+	m := models.WrAverageTradePrice{}
+	a.DoBindReq(&m)
+	a.DoGetDataI(&m)
+}

+ 78 - 0
docs/docs.go

@@ -11364,6 +11364,67 @@ var doc = `{
                 }
             }
         },
+        "/WrTrade2/QueryWrAverageTradePrice": {
+            "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": "0:仓单预售 1:仓单贸易",
+                        "name": "haswr",
+                        "in": "query",
+                        "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "仓单要素id",
+                        "name": "wrfactortypeid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.WrAverageTradePrice"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/WrTrade2/QueryWrBsGoodsInfo": {
             "get": {
                 "security": [
@@ -30135,6 +30196,19 @@ var doc = `{
                 }
             }
         },
+        "models.WrAverageTradePrice": {
+            "type": "object",
+            "properties": {
+                "averageprice": {
+                    "description": "成交均价",
+                    "type": "number"
+                },
+                "tradedate": {
+                    "description": "交易日yyyymm",
+                    "type": "string"
+                }
+            }
+        },
         "models.WrBsGoodsInfo": {
             "type": "object",
             "properties": {
@@ -32569,6 +32643,10 @@ var doc = `{
                     "description": "委托价格",
                     "type": "number"
                 },
+                "orderqty": {
+                    "description": "委托数量",
+                    "type": "integer"
+                },
                 "userid": {
                     "description": "用户id",
                     "type": "integer"

+ 78 - 0
docs/swagger.json

@@ -11348,6 +11348,67 @@
                 }
             }
         },
+        "/WrTrade2/QueryWrAverageTradePrice": {
+            "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": "0:仓单预售 1:仓单贸易",
+                        "name": "haswr",
+                        "in": "query",
+                        "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "仓单要素id",
+                        "name": "wrfactortypeid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.WrAverageTradePrice"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/WrTrade2/QueryWrBsGoodsInfo": {
             "get": {
                 "security": [
@@ -30119,6 +30180,19 @@
                 }
             }
         },
+        "models.WrAverageTradePrice": {
+            "type": "object",
+            "properties": {
+                "averageprice": {
+                    "description": "成交均价",
+                    "type": "number"
+                },
+                "tradedate": {
+                    "description": "交易日yyyymm",
+                    "type": "string"
+                }
+            }
+        },
         "models.WrBsGoodsInfo": {
             "type": "object",
             "properties": {
@@ -32553,6 +32627,10 @@
                     "description": "委托价格",
                     "type": "number"
                 },
+                "orderqty": {
+                    "description": "委托数量",
+                    "type": "integer"
+                },
                 "userid": {
                     "description": "用户id",
                     "type": "integer"

+ 51 - 0
docs/swagger.yaml

@@ -13304,6 +13304,15 @@ definitions:
     - autoid
     - warehousecode
     type: object
+  models.WrAverageTradePrice:
+    properties:
+      averageprice:
+        description: 成交均价
+        type: number
+      tradedate:
+        description: 交易日yyyymm
+        type: string
+    type: object
   models.WrBsGoodsInfo:
     properties:
       buyorsell:
@@ -15122,6 +15131,9 @@ definitions:
       orderprice:
         description: 委托价格
         type: number
+      orderqty:
+        description: 委托数量
+        type: integer
       userid:
         description: 用户id
         type: integer
@@ -24276,6 +24288,45 @@ paths:
       summary: 查询履约信息
       tags:
       - 仓单贸易v2
+  /WrTrade2/QueryWrAverageTradePrice:
+    get:
+      parameters:
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 每页条数
+        in: query
+        name: pagesize
+        type: integer
+      - description: 0:仓单预售 1:仓单贸易
+        in: query
+        name: haswr
+        required: true
+        type: integer
+      - description: 仓单要素id
+        in: query
+        name: wrfactortypeid
+        required: true
+        type: integer
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            items:
+              $ref: '#/definitions/models.WrAverageTradePrice'
+            type: array
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      security:
+      - ApiKeyAuth: []
+      summary: 查询成交价(历史走势)
+      tags:
+      - 仓单贸易v2
   /WrTrade2/QueryWrBsGoodsInfo:
     get:
       description: 合约交易/买卖大厅/详情

+ 45 - 16
models/delivery.go

@@ -114,6 +114,7 @@ type DeliveryRelationDetail struct {
 	ITEMTYPENAME       string `json:"itemtypename"  xorm:"'ITEMTYPENAME'"`             // 要素项名称
 	DGFACTORYITEMVALUE string `json:"dgfactoryitemvalue"  xorm:"'DGFACTORYITEMVALUE'"` // 要素项值
 
+	WMCATFLAG int `json:"-"` // 合同相同项(如有多个仓库, 逗号隔开, 仓库1, 仓库2, 仓库3 ) 1-合并
 }
 
 func (r *DeliveryRelationDetail) calc() {
@@ -121,22 +122,50 @@ 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)
+	var sqlId utils.SQLVal
+	if r.WMCATFLAG == 1 {
+		sqlId = "select a.goodsid," +
+			"       a.dgfactoryitemtypeid," +
+			"       a.itemtypename," +
+			"       wm_concat(a.dgfactoryitemvalue) dgfactoryitemvalue" +
+			"  from (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" +
+			"           and t.GOODSID = %v" +
+			"         order by t.dgfactoryitemtypeid, di.dgfactoryitemvalue) a" +
+			" group by a.goodsid, a.dgfactoryitemtypeid, a.itemtypename"
+		sqlId.FormatParam(r.GOODSID)
+	} else {
+		sqlId = "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()
 }
 

+ 61 - 2
models/wrTrade2.go

@@ -752,6 +752,7 @@ type WrTradeDetail struct {
 
 func (r *WrTradeDetail) calc() {
 	r.Wr2FactorType.Calc()
+	r.MATCHUSERNAME = EncryptByStar(r.MATCHUSERNAME)
 }
 
 func (r *WrTradeDetail) buildSql() string {
@@ -2203,6 +2204,7 @@ type WrScfContract struct {
 
 func (r *WrScfContract) calc() {
 	r.LENDERUSERNAME = mtpcache.GetUserNameByUserId(r.LENDERUSERID)
+	r.LENDERUSERNAME = EncryptByStar(r.LENDERUSERNAME)
 	r.UNPAIDINTEREST.Set(r.TOTALINTEREST - r.CLOSEINTEREST)
 	r.UNPAIDINTEREST.Round(2)
 }
@@ -2562,8 +2564,12 @@ func (r *WrBsGoodsInfo) GetDataEx() (interface{}, error) {
 				LstStep: make([]WrGoodsPerformanceStep, 0)}
 			if len(sRelation) > 0 {
 				vR := sRelation[0]
+
+				val.LstItem = append(val.LstItem, WrTypeItem{NAME: "品种", VALUE: vR.DELIVERYGOODSNAME})
+				val.LstItem = append(val.LstItem, WrTypeItem{NAME: "商品", VALUE: vR.WRSTANDARDNAME})
+
 				// 履约关系详情(要素项)
-				mRDetail := DeliveryRelationDetail{GOODSID: r.GOODSID}
+				mRDetail := DeliveryRelationDetail{GOODSID: r.GOODSID, WMCATFLAG: 1}
 				if d2, err := mRDetail.GetDataEx(); err == nil {
 					if sDetail, ok := d2.([]DeliveryRelationDetail); ok {
 						for i := range sDetail {
@@ -2591,6 +2597,7 @@ type WrTradeOrderDetail struct {
 	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'"`                // 委托价格
+	ORDERQTY   int64    `json:"orderqty"  xorm:"'ORDERQTY'"`                    // 委托数量
 	USERID     int64    `json:"userid"  xorm:"'USERID'"`                        // 用户id
 	USERNAME   string   `json:"username"  xorm:"'USERNAME'"`                    // 用户名称(已脱敏)
 	PageEx     `xorm:"extends"`
@@ -2601,10 +2608,11 @@ func (r *WrTradeOrderDetail) calc() {
 }
 
 func (r *WrTradeOrderDetail) buildSql() string {
-	var sqlId utils.SQLVal = "select t.orderid," +
+	var sqlId utils.SQLVal = "select to_char(t.orderid) orderid," +
 		"       t.buyorsell," +
 		"       t.goodsid," +
 		"       t.orderprice," +
+		"       t.orderqty," +
 		"       u.userid," +
 		"       u.accountname username," +
 		"       t.orderstatus" +
@@ -2635,3 +2643,54 @@ func (r *WrTradeOrderDetail) GetDataEx() (interface{}, error) {
 	}
 	return sData, err
 }
+
+// WrAverageTradePrice 成交均价(历史走势)
+type WrAverageTradePrice struct {
+	TRADEDATE    string   `json:"tradedate"  xorm:"'TRADEDATE'"`       // 交易日yyyymm
+	TRADEAMOUNT  SFLOAT64 `json:"-"  xorm:"'TRADEAMOUNT'"`             // 总成交额
+	TRADEQTY     SFLOAT64 `json:"-"  xorm:"'TRADEQTY'"`                // 总成交量
+	AVERAGEPRICE SFLOAT64 `json:"averageprice"  xorm:"'AVERAGEPRICE'"` // 成交均价
+	PageEx       `xorm:"extends"`
+
+	WRFACTORTYPEID int64 `json:"-" form:"wrfactortypeid"` // 仓单要素id
+	HASWR          int32 `json:"-" form:"haswr"`          // 0-仓单预售 1-仓单贸易
+}
+
+func (r *WrAverageTradePrice) calc() {
+
+}
+
+func (r *WrAverageTradePrice) buildSql() string {
+	var sqlId utils.SQLVal = "select t.tradedate," +
+		"       sum(t.tradeamount) tradeamount," +
+		"       sum(t.tradeqty) tradeqty," +
+		"       round(sum(t.tradeamount) / sum(t.tradeqty), 2) as averagePrice" +
+		"  from his_wrtrade_tradedetail t" +
+		" where t.wrtradetype in (1, 2)" +
+		"   and t.haswr = %v" +
+		"   and t.wrfactortypeid = %v" +
+		" group by t.tradedate" +
+		" order by t.tradedate desc"
+	sqlId.FormatParam(r.HASWR, r.WRFACTORTYPEID)
+	sqlId.Page(r.Page, r.PageSize)
+	return sqlId.String()
+}
+
+// GetDataEx 获取成交均价(历史走势)
+func (r *WrAverageTradePrice) GetDataEx() (interface{}, error) {
+	sData := make([]WrAverageTradePrice, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	// 进行反序, sql是日期倒序查的, 反序后变为日期从小到大
+	if nLen := len(sData); nLen >= 2 {
+		i, j := 0, nLen-1
+		for i < j {
+			sData[i], sData[j] = sData[j], sData[i]
+			i++
+			j--
+		}
+	}
+	return sData, err
+}

+ 1 - 0
routers/router.go

@@ -543,6 +543,7 @@ func InitRouter() *gin.Engine {
 		wrTrade2R.GET("QueryWrDeliveryDetail", wrTrade2.QueryWrDeliveryDetail)
 		wrTrade2R.GET("QueryWrBsGoodsInfo", wrTrade2.QueryWrBsGoodsInfo)
 		wrTrade2R.GET("QueryWrTradeOrderDetail", wrTrade2.QueryWrTradeOrderDetail)
+		wrTrade2R.GET("QueryWrAverageTradePrice", wrTrade2.QueryWrAverageTradePrice)
 	}
 
 	return r