ソースを参照

增加查询“我的团队订单”接口

zou.yingbin 4 年 前
コミット
6b7c99d71f
9 ファイル変更548 行追加0 行削除
  1. 18 0
      controllers/qhj/qryQhj.go
  2. 143 0
      docs/docs.go
  3. 143 0
      docs/swagger.json
  4. 101 0
      docs/swagger.yaml
  5. 22 0
      global/app/ginUtils.go
  6. 7 0
      models/ermcpCommon.go
  7. 99 0
      models/qhj.go
  8. 1 0
      routers/router.go
  9. 14 0
      utils/sqlUtils.go

+ 18 - 0
controllers/qhj/qryQhj.go

@@ -463,3 +463,21 @@ func QueryMyTeam(c *gin.Context) {
 	m := models.QhjMyTeam{USERID: req.USERID}
 	a.DoGetDataI(&m)
 }
+
+// QueryTeamOrder
+// @Summary 查询团队订单(我的团队/团队订单)
+// @Produce json
+// @Security ApiKeyAuth
+// @Param page query int false "页码"
+// @Param pagesize query int false "每页条数"
+// @Param userid query int true "用户ID"
+// @Success 200 {array} models.QhjTeamOrder
+// @Failure 500 {object} app.Response
+// @Router /Qhj/QueryMyTeamOrder [get]
+// @Tags 大连千海金
+func QueryTeamOrder(c *gin.Context) {
+	a := app.GinUtils{Gin: app.Gin{C: c}}
+	m := models.QhjTeamOrder{}
+	a.DoBindReq(&m)
+	a.DoGetDataByPage(&m)
+}

+ 143 - 0
docs/docs.go

@@ -7514,6 +7514,60 @@ var doc = `{
                 }
             }
         },
+        "/Qhj/QueryMyTeamOrder": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "大连千海金"
+                ],
+                "summary": "查询团队订单(我的团队/团队订单)",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "页码",
+                        "name": "page",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "每页条数",
+                        "name": "pagesize",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "用户ID",
+                        "name": "userid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.QhjTeamOrder"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/Qhj/QueryParentAreaList": {
             "get": {
                 "security": [
@@ -26011,6 +26065,95 @@ var doc = `{
                 }
             }
         },
+        "models.QhjTeamOrder": {
+            "type": "object",
+            "properties": {
+                "accountid": {
+                    "description": "账户ID[报价币种]",
+                    "type": "integer"
+                },
+                "accountname": {
+                    "description": "账户名称",
+                    "type": "string"
+                },
+                "agreeunit": {
+                    "description": "合约乘数",
+                    "type": "number"
+                },
+                "buyorsell": {
+                    "description": "方向 - 0:买 1:卖",
+                    "type": "integer"
+                },
+                "decimalplace": {
+                    "description": "报价小数位",
+                    "type": "integer"
+                },
+                "enumdicname": {
+                    "description": "单位名称",
+                    "type": "string"
+                },
+                "goodscode": {
+                    "description": "商品代码(内部)",
+                    "type": "string"
+                },
+                "goodsid": {
+                    "description": "商品ID",
+                    "type": "integer"
+                },
+                "goodsname": {
+                    "description": "商品名称",
+                    "type": "string"
+                },
+                "goodunitid": {
+                    "description": "报价单位ID",
+                    "type": "integer"
+                },
+                "marketid": {
+                    "description": "市场ID",
+                    "type": "integer"
+                },
+                "marketname": {
+                    "description": "市场名称",
+                    "type": "string"
+                },
+                "qtydecimalplace": {
+                    "description": "成交量小数位",
+                    "type": "integer"
+                },
+                "refereeuserid": {
+                    "description": "推荐人ID",
+                    "type": "integer"
+                },
+                "tradeamount": {
+                    "description": "成交金额[账户币种,用于所有权]",
+                    "type": "number"
+                },
+                "tradedate": {
+                    "description": "交易日(yyyyMMdd)",
+                    "type": "string"
+                },
+                "trademode": {
+                    "description": "交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价",
+                    "type": "integer"
+                },
+                "tradeprice": {
+                    "description": "成交价格",
+                    "type": "number"
+                },
+                "tradeqty": {
+                    "description": "成交数量",
+                    "type": "number"
+                },
+                "tradetime": {
+                    "description": "成交时间",
+                    "type": "string"
+                },
+                "userid": {
+                    "description": "用户ID",
+                    "type": "integer"
+                }
+            }
+        },
         "models.QhjTradeGoodsPickup": {
             "type": "object",
             "properties": {

+ 143 - 0
docs/swagger.json

@@ -7498,6 +7498,60 @@
                 }
             }
         },
+        "/Qhj/QueryMyTeamOrder": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "大连千海金"
+                ],
+                "summary": "查询团队订单(我的团队/团队订单)",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "页码",
+                        "name": "page",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "每页条数",
+                        "name": "pagesize",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "用户ID",
+                        "name": "userid",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "type": "array",
+                            "items": {
+                                "$ref": "#/definitions/models.QhjTeamOrder"
+                            }
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/Qhj/QueryParentAreaList": {
             "get": {
                 "security": [
@@ -25995,6 +26049,95 @@
                 }
             }
         },
+        "models.QhjTeamOrder": {
+            "type": "object",
+            "properties": {
+                "accountid": {
+                    "description": "账户ID[报价币种]",
+                    "type": "integer"
+                },
+                "accountname": {
+                    "description": "账户名称",
+                    "type": "string"
+                },
+                "agreeunit": {
+                    "description": "合约乘数",
+                    "type": "number"
+                },
+                "buyorsell": {
+                    "description": "方向 - 0:买 1:卖",
+                    "type": "integer"
+                },
+                "decimalplace": {
+                    "description": "报价小数位",
+                    "type": "integer"
+                },
+                "enumdicname": {
+                    "description": "单位名称",
+                    "type": "string"
+                },
+                "goodscode": {
+                    "description": "商品代码(内部)",
+                    "type": "string"
+                },
+                "goodsid": {
+                    "description": "商品ID",
+                    "type": "integer"
+                },
+                "goodsname": {
+                    "description": "商品名称",
+                    "type": "string"
+                },
+                "goodunitid": {
+                    "description": "报价单位ID",
+                    "type": "integer"
+                },
+                "marketid": {
+                    "description": "市场ID",
+                    "type": "integer"
+                },
+                "marketname": {
+                    "description": "市场名称",
+                    "type": "string"
+                },
+                "qtydecimalplace": {
+                    "description": "成交量小数位",
+                    "type": "integer"
+                },
+                "refereeuserid": {
+                    "description": "推荐人ID",
+                    "type": "integer"
+                },
+                "tradeamount": {
+                    "description": "成交金额[账户币种,用于所有权]",
+                    "type": "number"
+                },
+                "tradedate": {
+                    "description": "交易日(yyyyMMdd)",
+                    "type": "string"
+                },
+                "trademode": {
+                    "description": "交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价",
+                    "type": "integer"
+                },
+                "tradeprice": {
+                    "description": "成交价格",
+                    "type": "number"
+                },
+                "tradeqty": {
+                    "description": "成交数量",
+                    "type": "number"
+                },
+                "tradetime": {
+                    "description": "成交时间",
+                    "type": "string"
+                },
+                "userid": {
+                    "description": "用户ID",
+                    "type": "integer"
+                }
+            }
+        },
         "models.QhjTradeGoodsPickup": {
             "type": "object",
             "properties": {

+ 101 - 0
docs/swagger.yaml

@@ -11505,6 +11505,73 @@ definitions:
         description: 用户名称
         type: string
     type: object
+  models.QhjTeamOrder:
+    properties:
+      accountid:
+        description: 账户ID[报价币种]
+        type: integer
+      accountname:
+        description: 账户名称
+        type: string
+      agreeunit:
+        description: 合约乘数
+        type: number
+      buyorsell:
+        description: 方向 - 0:买 1:卖
+        type: integer
+      decimalplace:
+        description: 报价小数位
+        type: integer
+      enumdicname:
+        description: 单位名称
+        type: string
+      goodscode:
+        description: 商品代码(内部)
+        type: string
+      goodsid:
+        description: 商品ID
+        type: integer
+      goodsname:
+        description: 商品名称
+        type: string
+      goodunitid:
+        description: 报价单位ID
+        type: integer
+      marketid:
+        description: 市场ID
+        type: integer
+      marketname:
+        description: 市场名称
+        type: string
+      qtydecimalplace:
+        description: 成交量小数位
+        type: integer
+      refereeuserid:
+        description: 推荐人ID
+        type: integer
+      tradeamount:
+        description: 成交金额[账户币种,用于所有权]
+        type: number
+      tradedate:
+        description: 交易日(yyyyMMdd)
+        type: string
+      trademode:
+        description: 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式
+          21:竞拍-大宗式 22:受托竞价
+        type: integer
+      tradeprice:
+        description: 成交价格
+        type: number
+      tradeqty:
+        description: 成交数量
+        type: number
+      tradetime:
+        description: 成交时间
+        type: string
+      userid:
+        description: 用户ID
+        type: integer
+    type: object
   models.QhjTradeGoodsPickup:
     properties:
       accountid:
@@ -19539,6 +19606,40 @@ paths:
       summary: 查询我的团队
       tags:
       - 大连千海金
+  /Qhj/QueryMyTeamOrder:
+    get:
+      parameters:
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 每页条数
+        in: query
+        name: pagesize
+        type: integer
+      - description: 用户ID
+        in: query
+        name: userid
+        required: true
+        type: integer
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            items:
+              $ref: '#/definitions/models.QhjTeamOrder'
+            type: array
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      security:
+      - ApiKeyAuth: []
+      summary: 查询团队订单(我的团队/团队订单)
+      tags:
+      - 大连千海金
   /Qhj/QueryParentAreaList:
     get:
       parameters:

+ 22 - 0
global/app/ginUtils.go

@@ -24,6 +24,12 @@ type IGetDataEx interface {
 	GetDataEx() (interface{}, error)
 }
 
+// IGetDataByPage 获取数据接口
+type IGetDataByPage interface {
+	// 返回值 数据, 错误号, 页码, 页大小, 总记录数
+	GetDataByPage() (interface{}, error, int, int, int)
+}
+
 // ICalc 数据处理接口
 type ICalc interface {
 	Calc()
@@ -107,6 +113,22 @@ func (r *GinUtils) DoGetDataI(iObj IGetDataEx) {
 	}
 }
 
+// DoGetDataByPage 获取数据
+func (r *GinUtils) DoGetDataByPage(iObj IGetDataByPage) {
+	// 如果在参数绑定阶段有错误, 则不执行数据获取
+	if r.err != nil {
+		return
+	}
+	var p PageInfo
+	if d, err, page, pageSize, total := iObj.GetDataByPage(); err == nil {
+		p.Page, p.PageSize, p.Total = page, pageSize, total
+		r.Gin.ResponseByPage(http.StatusOK, e.SUCCESS, d, p)
+	} else {
+		logger.GetLogger().Errorf("query fail, %v", err)
+		r.Gin.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+	}
+}
+
 // CheckParam 参数检查
 func (r *GinUtils) CheckParam(iObj ICheck) {
 	if r.err != nil {

+ 7 - 0
models/ermcpCommon.go

@@ -23,6 +23,13 @@ type IErmcp interface {
 	GetDataEx() (interface{}, error) // 获取数据接口
 }
 
+// PageEx 分页信息
+type PageEx struct {
+	Page     int `json:"-" form:"page"`     // 页码
+	PageSize int `json:"-" form:"pagesize"` // 每页大小
+	Total    int `json:"-"  xorm:"'TOTAL'"` // 总条数
+}
+
 // DecryptField 解密字段
 func DecryptField(oriStr string) string {
 	nLen := len(oriStr)

+ 99 - 0
models/qhj.go

@@ -1953,3 +1953,102 @@ func (r *QhjMyTeam) GetDataEx() (interface{}, error) {
 
 	return sDataEx, err
 }
+
+// QhjTeamOrder 团队订单
+type QhjTeamOrder struct {
+	BUYORSELL       int32   `json:"buyorsell"  xorm:"BUYORSELL" form:"buyorsell"`                   // 方向 - 0:买 1:卖
+	TRADEDATE       string  `json:"tradedate"  xorm:"TRADEDATE" form:"tradedate"`                   // 交易日(yyyyMMdd)
+	ACCOUNTID       int64   `json:"accountid"  xorm:"ACCOUNTID" form:"accountid"`                   // 账户ID[报价币种]
+	GOODSID         int32   `json:"goodsid"  xorm:"GOODSID" form:"goodsid"`                         // 商品ID
+	TRADETIME       string  `json:"tradetime"  xorm:"TRADETIME" form:"tradetime"`                   // 成交时间
+	TRADEPRICE      float64 `json:"tradeprice"  xorm:"TRADEPRICE" form:"tradeprice"`                // 成交价格
+	TRADEQTY        float64 `json:"tradeqty"  xorm:"TRADEQTY" form:"tradeqty"`                      // 成交数量
+	TRADEAMOUNT     float64 `json:"tradeamount"  xorm:"TRADEAMOUNT" form:"tradeamount"`             // 成交金额[账户币种,用于所有权]
+	MARKETID        int32   `json:"marketid"  xorm:"MARKETID" form:"marketid"`                      // 市场ID
+	ACCOUNTNAME     string  `json:"accountname"  xorm:"ACCOUNTNAME" form:"accountname"`             // 账户名称
+	REFEREEUSERID   int64   `json:"refereeuserid"  xorm:"REFEREEUSERID" form:"refereeuserid"`       // 推荐人ID
+	USERID          int64   `json:"userid"  xorm:"USERID" form:"userid"`                            // 用户ID
+	GOODSCODE       string  `json:"goodscode"  xorm:"GOODSCODE" form:"goodscode"`                   // 商品代码(内部)
+	GOODSNAME       string  `json:"goodsname"  xorm:"GOODSNAME" form:"goodsname"`                   // 商品名称
+	GOODUNITID      int32   `json:"goodunitid"  xorm:"GOODUNITID" form:"goodunitid"`                // 报价单位ID
+	AGREEUNIT       float64 `json:"agreeunit"  xorm:"AGREEUNIT" form:"agreeunit"`                   // 合约乘数
+	DECIMALPLACE    int32   `json:"decimalplace"  xorm:"DECIMALPLACE" form:"decimalplace"`          // 报价小数位
+	QTYDECIMALPLACE int32   `json:"qtydecimalplace"  xorm:"QTYDECIMALPLACE" form:"qtydecimalplace"` // 成交量小数位
+	MARKETNAME      string  `json:"marketname"  xorm:"MARKETNAME" form:"marketname"`                // 市场名称
+	TRADEMODE       int32   `json:"trademode"  xorm:"TRADEMODE" form:"trademode"`                   // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
+	ENUMDICNAME     string  `json:"enumdicname"  xorm:"'ENUMDICNAME'"`                              // 单位名称
+
+	PageEx `xorm:"extends"` // 页码信息
+}
+
+func (r *QhjTeamOrder) calc() {
+
+}
+
+func (r *QhjTeamOrder) buildSql() string {
+	var sqlId utils.SQLVal = "select t.accountid," +
+		"       t.goodsid," +
+		"       t.tradedate," +
+		"       t.tradeprice," +
+		"       t.tradeqty / power(10, nvl(g.qtydecimalplace, 0)) tradeqty," +
+		"       t.tradeamount," +
+		"       to_char(t.tradetime, 'yyyy-mm-dd hh24:mi:ss') tradetime," +
+		"       t.buyorsell," +
+		"       u.userid," +
+		"       u.accountname," +
+		"       u.refereeuserid," +
+		"       g.goodscode," +
+		"       g.goodsname," +
+		"       g.marketid," +
+		"       g.goodunitid," +
+		"       g.qtydecimalplace," +
+		"       g.decimalplace," +
+		"       g.agreeunit," +
+		"       m.marketname," +
+		"       m.trademode," +
+		"       e.enumdicname" +
+		"  from %v t" +
+		" inner join taaccount ta" +
+		"    on t.accountid = ta.accountid" +
+		" inner join useraccount u" +
+		"    on ta.relateduserid = u.userid" +
+		"  left join goods g" +
+		"    on t.goodsid = g.goodsid" +
+		"  left join market m" +
+		"    on g.marketid = m.marketid" +
+		"  left join enumdicitem e" +
+		"    on g.goodunitid = e.enumitemname" +
+		"   and e.enumdiccode = 'goodsunit'" +
+		" where 1 = 1"
+	sqlId.AndEx("u.refereeuserid", r.USERID, r.USERID > 0)
+	sqlCur := fmt.Sprintf(sqlId.String(), "trade_tradedetail")
+	sqlHis := fmt.Sprintf(sqlId.String(), "his_trade_tradedetail")
+	sqlHis += " and t.isvaliddata=1"
+	strSql := sqlCur + " union all " + sqlHis
+	strSql += " order by tradetime desc"
+	sqlId = utils.SQLVal(strSql)
+	sqlId.Page(r.Page, r.PageSize)
+	return sqlId.String()
+}
+
+// GetDataEx 获取团队订单
+func (r *QhjTeamOrder) GetDataEx() (interface{}, error) {
+	sData := make([]QhjTeamOrder, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, err
+}
+
+// GetDataByPage 获取团队订单
+func (r *QhjTeamOrder) GetDataByPage() (interface{}, error, int, int, int) {
+	sData := make([]QhjTeamOrder, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	total := 0
+	for i := range sData {
+		sData[i].calc()
+		total = sData[i].Total
+	}
+	return sData, err, r.Page, r.PageSize, total
+}

+ 1 - 0
routers/router.go

@@ -475,6 +475,7 @@ func InitRouter() *gin.Engine {
 		qhjR.GET("QueryParentAreaList", qhj.QueryParentAreaList)
 		qhjR.GET("QueryAreaFinanceConfig", qhj.QueryAreaFinanceConfig)
 		qhjR.GET("QueryMyTeam", qhj.QueryMyTeam)
+		qhjR.GET("QueryMyTeamOrder", qhj.QueryTeamOrder)
 	}
 
 	// *************************千海金(PCWeb)*****************************

+ 14 - 0
utils/sqlUtils.go

@@ -90,3 +90,17 @@ func (r *SQLVal) AndLike(fieldName string, val string) {
 		*r += SQLVal(fmt.Sprintf(" and %v like '%%%v%%'", fieldName, val))
 	}
 }
+
+// Page 分页查询 pageNum-页码 第几页, pageSize-每页大小
+func (r *SQLVal) Page(pageNum int, pageSize int) {
+	if pageNum <= 0 || pageSize <= 0 {
+		return
+	}
+	cntBegin := (pageNum-1)*pageSize + 1
+	cntEnd := pageNum * pageSize
+	strPage := "select * from (" +
+		"select rownum cnt, count(*) over () total, a.* from (%v) a" +
+		") where cnt >= %v and cnt <= %v"
+	strPage = fmt.Sprintf(strPage, r.String(), cntBegin, cntEnd)
+	*r = SQLVal(strPage)
+}