Explorar o código

增加多个接口

Simon Zhou %!s(int64=5) %!d(string=hai) anos
pai
achega
7a0d351b12
Modificáronse 10 ficheiros con 1169 adicións e 29 borrados
  1. 1 0
      .gitignore
  2. 95 4
      controllers/order/order.go
  3. 65 9
      controllers/szdz/szdz.go
  4. 356 5
      docs/docs.go
  5. 356 5
      docs/swagger.json
  6. 256 5
      docs/swagger.yaml
  7. 2 0
      go.sum
  8. 14 0
      models/szdzModels.go
  9. 5 1
      routers/router.go
  10. 19 0
      utils/mathUtils.go

+ 1 - 0
.gitignore

@@ -5,3 +5,4 @@ __debug_bin
 mtp2_if
 /bin
 QueryService
+go.sum

+ 95 - 4
controllers/order/order.go

@@ -8,7 +8,9 @@ import (
 	"mtp2_if/global/e"
 	"mtp2_if/logger"
 	"mtp2_if/models"
+	"mtp2_if/utils"
 	"net/http"
+	"strconv"
 	"time"
 
 	"github.com/gin-gonic/gin"
@@ -47,6 +49,7 @@ type QueryTradePositionRsp struct {
 	CurTDPosition   uint64  `json:"curtdposition"  xorm:"'CURTDPOSITION'"`     // 期末今日头寸
 	FreTDPosition   uint64  `json:"fretdposition"  xorm:"'FRETDPOSITION'"`     // 冻结今日头寸
 	EnableQTY       uint64  `json:"enableqty"  xorm:"'ENABLEQTY'"`             // 可用量
+	AveragePrice    float64 `json:"averageprice" xorm:"AVERAGEPRICE"`          // 持仓均价
 }
 
 // QueryTradePosition 持仓汇总查询(合约市场)
@@ -128,7 +131,9 @@ func QueryTradePosition(c *gin.Context) {
 				tradePosition.CurTDPosition = v.Buycurtdposition
 				tradePosition.FreTDPosition = v.Buyfretdposition
 				tradePosition.EnableQTY = v.Buycurpositionqty - v.Buyfrozenqty - v.Buyotherfrozenqty
-
+				// 计算持仓均价
+				averagePrice := tradePosition.CurHolderAmount / float64(tradePosition.CurPositionQTY) / tradePosition.AgreeUnit
+				tradePosition.AveragePrice, _ = strconv.ParseFloat(utils.FormatFloat(averagePrice, int(v.Decimalplace)), 64)
 				rst = append(rst, tradePosition)
 			}
 		}
@@ -156,6 +161,9 @@ func QueryTradePosition(c *gin.Context) {
 				tradePosition.CurTDPosition = v.Sellcurtdposition
 				tradePosition.FreTDPosition = v.Sellfretdposition
 				tradePosition.EnableQTY = v.Sellcurpositionqty - v.Sellfrozenqty - v.Sellotherfrozenqty
+				// 计算持仓均价
+				averagePrice := tradePosition.CurHolderAmount / float64(tradePosition.CurPositionQTY) / tradePosition.AgreeUnit
+				tradePosition.AveragePrice, _ = strconv.ParseFloat(utils.FormatFloat(averagePrice, int(v.Decimalplace)), 64)
 
 				rst = append(rst, tradePosition)
 			}
@@ -216,15 +224,13 @@ type QueryTradeOrderDetailRsp struct {
 	Ordersrc            int64     `json:"ordersrc"  xorm:"'ORDERSRC'"`                          // 委托来源 -  1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结 7:商品强平 8:管理端商品退市强平 9:交易接口 10:交割服务商被动(受托竞价) 11:预埋触发
 	Clienttype          int64     `json:"clienttype"  xorm:"'CLIENTTYPE'"`                      // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
 	Operatorid          int64     `json:"operatorid"  xorm:"'OPERATORID'"`                      // 登录账号(LoginID)
-
 	// 关联字段
 	GoodsCode  string `json:"goodscode" xorm:"GOODSCODE"`      // 商品代码
 	GoodsName  string `json:"goodsname" xorm:"GOODSNAME"`      // 商品名称
 	Marketname string `json:"marketname"  xorm:"'MARKETNAME'"` // 市场名称
 	TradeMode  uint32 `json:"trademode"  xorm:"'TRADEMODE'"`   // 交易模式
-
 	// 计算字段
-	Enableqty int64 `json:"enableqty" xorm:"ENABLEQTY"` // 可用数量, 委托数量 - 成交数量 - 撤单数量
+	Enableqty int64 `json:"enableqty" xorm:"ENABLEQTY"` // 可用数量 = 委托数量 - 成交数量 - 撤单数量
 }
 
 // QueryTradeOrderDetail 委托单查询请求(合约市场)
@@ -280,3 +286,88 @@ func QueryTradeOrderDetail(c *gin.Context) {
 	logger.GetLogger().Infof("QueryTradeOrderDetail successed: %v", datas)
 	appG.Response(http.StatusOK, e.SUCCESS, datas)
 }
+
+// QueryTradeDetailReq 成交单查询请求参数
+type QueryTradeDetailReq struct {
+	AccountID string `form:"accountID" binding:"required"`
+	TradeID   int    `form:"tradeID"`
+	OrderID   int    `form:"orderID"`
+	TradeMode string `form:"tradeMode"`
+	BuildType int    `form:"buildType"`
+	TradeType string `form:"tradeType"`
+}
+
+// QueryTradeDetailRsp 成交单查询返回模型
+type QueryTradeDetailRsp struct {
+	// 成交单字段
+	models.Tradetradedetail `xorm:"extends"`
+	// 关联字段
+	GoodsCode  string `json:"goodscode" xorm:"GOODSCODE"`      // 商品代码
+	GoodsName  string `json:"goodsname" xorm:"GOODSNAME"`      // 商品名称
+	Marketname string `json:"marketname"  xorm:"'MARKETNAME'"` // 市场名称
+	TradeMode  uint32 `json:"trademode"  xorm:"'TRADEMODE'"`   // 交易模式
+	// 计算字段
+	Charge float64 `json:"charge" xorm:"CHARGE"` // 手续费
+}
+
+// QueryTradeDetail 成交单查询(合约市场)
+// @Summary 成交单查询(合约市场)
+// @Produce json
+// @Security ApiKeyAuth
+// @Param accountID query string true "资金账户 - 格式:1,2,3"
+// @Param tradeID query int false "成交单号"
+// @Param orderID query int false "委托单号"
+// @Param tradeMode query string false "交易模式 - 格式:1,2,3"
+// @Param buildType query int false "委托单据类型"
+// @Param tradeType query string false "成交类别 - 格式:1,2,3"
+// @Success 200 {object} QueryTradeDetailRsp
+// @Failure 500 {object} app.Response
+// @Router /Order/QueryTradeDetail [get]
+// @Tags 通用单据
+// 参考通用查询:SearchAllTransactionDetailOrder
+func QueryTradeDetail(c *gin.Context) {
+	appG := app.Gin{C: c}
+
+	// 获取请求参数
+	var req QueryTradeDetailReq
+	if err := appG.C.ShouldBindQuery(&req); err != nil {
+		logger.GetLogger().Errorf("QueryTradeDetail failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
+		return
+	}
+
+	datas := make([]QueryTradeDetailRsp, 0)
+	engine := db.GetEngine()
+	s := engine.Table("TRADE_TRADEDETAIL").
+		Join("LEFT", "GOODS", "GOODS.GOODSID = TRADE_TRADEDETAIL.GOODSID").
+		Join("LEFT", "MARKET", "MARKET.MARKETID = TRADE_TRADEDETAIL.MARKETID").
+		Select(`TRADE_TRADEDETAIL.*, CASE TRADE_TRADEDETAIL.BUILDTYPE WHEN 1 THEN TRADE_TRADEDETAIL.OPENCHARGE ELSE TRADE_TRADEDETAIL.CLOSECHARGE END as CHARGE,
+				GOODS.GOODSCODE, GOODS.GOODSNAME, MARKET.MARKETNAME, MARKET.TRADEMODE`).
+		Where(fmt.Sprintf("TRADE_TRADEDETAIL.ACCOUNTID in (%s)", req.AccountID)).
+		Desc("TRADE_TRADEDETAIL.TRADETIME")
+	if req.TradeID > 0 {
+		s = s.And("TRADE_TRADEDETAIL.TRADEID = ?", req.TradeID)
+	}
+	if req.OrderID > 0 {
+		s = s.And("TRADE_TRADEDETAIL.ORDERID = ?", req.OrderID)
+	}
+	if len(req.TradeMode) > 0 {
+		s = s.And(fmt.Sprintf("MARKET.TRADEMODE in (%s)", req.TradeMode))
+	}
+	if req.BuildType > 0 {
+		s = s.And("TRADE_TRADEDETAIL.BUILDTYPE = ?", req.BuildType)
+	}
+	if len(req.TradeType) > 0 {
+		s = s.And(fmt.Sprintf("TRADE_TRADEDETAIL.TRADETYPE in (%s)", req.TradeType))
+	}
+	if err := s.Find(&datas); err != nil {
+		// 查询失败
+		logger.GetLogger().Errorf("QueryTradeDetail failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+		return
+	}
+
+	// 查询成功
+	logger.GetLogger().Infof("QueryTradeDetail successed: %v", datas)
+	appG.Response(http.StatusOK, e.SUCCESS, datas)
+}

+ 65 - 9
controllers/szdz/szdz.go

@@ -42,7 +42,7 @@ type QueryRecieptOrderRsp struct {
 // @Success 200 {object} QueryRecieptOrderRsp
 // @Failure 500 {object} app.Response
 // @Router /SZDZ/QueryRecieptOrder [get]
-// @Tags 尚志大宗
+// @Tags 定制【尚志大宗
 func QueryRecieptOrder(c *gin.Context) {
 	appG := app.Gin{C: c}
 
@@ -130,7 +130,7 @@ type QueryGoodsPickupRsp struct {
 // @Success 200 {object} QueryGoodsPickupRsp
 // @Failure 500 {object} app.Response
 // @Router /SZDZ/QueryGoodsPickup [get]
-// @Tags 尚志大宗
+// @Tags 定制【尚志大宗
 func QueryGoodsPickup(c *gin.Context) {
 	appG := app.Gin{C: c}
 
@@ -146,7 +146,8 @@ func QueryGoodsPickup(c *gin.Context) {
 	engine := db.GetEngine()
 	s := engine.Join("INNER", "GOODS", "GOODS.GOODSID = SZDZ3_GOODSPICKUP.GOODSID").
 		Select("SZDZ3_GOODSPICKUP.*, GOODS.GOODSCODE, GOODS.GOODSNAME").
-		Where(fmt.Sprintf(`SZDZ3_GOODSPICKUP.ACCOUNTID in (%s)`, req.AccountID))
+		Where(fmt.Sprintf(`SZDZ3_GOODSPICKUP.ACCOUNTID in (%s)`, req.AccountID)).
+		Desc("SZDZ3_GOODSPICKUP.TAKEORDERID")
 	if req.TakeOrderStatus > 0 {
 		s = s.And("SZDZ3_GOODSPICKUP.TAKEORDERSTATUS = ?", req.TakeOrderStatus)
 	}
@@ -174,6 +175,7 @@ type QueryConvertLogRsp struct {
 	models.Szdz3convertlog `xorm:"extends"`
 	Goodscode              string `json:"goodscode"  xorm:"'GOODSCODE'"` // 商品代码
 	Goodsname              string `json:"goodsname"  xorm:"'GOODSNAME'"` // 商品名称
+	QTY                    string `json:"qty"`                           // 数量
 }
 
 // QueryConvertLog 交易系统转换流水查询
@@ -181,12 +183,12 @@ type QueryConvertLogRsp struct {
 // @Produce json
 // @Security ApiKeyAuth
 // @Param accountID query string true "资金账户 - 格式:1,2,3"
-// @Param StartDate query string false "开始时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss"
-// @Param EndDate query string false "结束时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss"
+// @Param startDate query string false "开始时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss"
+// @Param endDate query string false "结束时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss"
 // @Success 200 {object} QueryConvertLogRsp
 // @Failure 500 {object} app.Response
 // @Router /SZDZ/QueryConvertLog [get]
-// @Tags 尚志大宗
+// @Tags 定制【尚志大宗
 func QueryConvertLog(c *gin.Context) {
 	appG := app.Gin{C: c}
 
@@ -202,12 +204,13 @@ func QueryConvertLog(c *gin.Context) {
 	engine := db.GetEngine()
 	s := engine.Join("INNER", "GOODS", "GOODS.GOODSID = SZDZ3_CONVERTLOG.INNERGOODSID").
 		Select("SZDZ3_CONVERTLOG.*, GOODS.GOODSCODE, GOODS.GOODSNAME").
-		Where(fmt.Sprintf(`SZDZ3_CONVERTLOG.HandleStatus = 1 and SZDZ3_CONVERTLOG.ACCOUNTID in (%s)`, req.AccountID))
+		Where(fmt.Sprintf(`SZDZ3_CONVERTLOG.HandleStatus = 1 and SZDZ3_CONVERTLOG.ACCOUNTID in (%s)`, req.AccountID)).
+		Desc("SZDZ3_CONVERTLOG.LOGID")
 	if len(req.StartDate) > 0 {
-		s = s.And(fmt.Sprintf(`SZDZ3_CONVERTLOG.CREATETIME >= to_date(%s,'yyyy-MM-dd hh24:mi:ss'`, req.StartDate))
+		s = s.And(fmt.Sprintf(`SZDZ3_CONVERTLOG.CREATETIME >= to_date('%s','yyyy-MM-dd hh24:mi:ss')`, req.StartDate))
 	}
 	if len(req.EndDate) > 0 {
-		s = s.And(fmt.Sprintf(`SZDZ3_CONVERTLOG.CREATETIME <= to_date(%s,'yyyy-MM-dd hh24:mi:ss'`, req.EndDate))
+		s = s.And(fmt.Sprintf(`SZDZ3_CONVERTLOG.CREATETIME <= to_date('%s','yyyy-MM-dd hh24:mi:ss')`, req.EndDate))
 	}
 	if err := s.Find(&datas); err != nil {
 		// 查询失败
@@ -216,7 +219,60 @@ func QueryConvertLog(c *gin.Context) {
 		return
 	}
 
+	// 计算数量
+	for i, v := range datas {
+		queryConvertLog := &datas[i]
+		// 方向
+		direction := "-"
+		// 数量
+		qty := v.Outvalue
+		if v.Converttype == 1 || v.Converttype == 2 {
+			direction = "+"
+			qty = v.Invalue
+		}
+		queryConvertLog.QTY = fmt.Sprintf("%s%v", direction, qty)
+	}
+
 	// 查询成功返回
 	logger.GetLogger().Infof("QueryConvertLog successed: %v", datas)
 	appG.Response(http.StatusOK, e.SUCCESS, datas)
 }
+
+// SearchWhiteReq 搜索白名单请求参数
+type SearchWhiteReq struct {
+	UserID int `form:"userID" binding:"required"`
+}
+
+// SearchWhite 搜索白名单
+// @Summary 搜索白名单
+// @Produce json
+// @Security ApiKeyAuth
+// @Param userID query int true "用户ID"
+// @Success 200 {object} models.Szdz3searchwhitelist
+// @Failure 500 {object} app.Response
+// @Router /SZDZ/SearchWhite [get]
+// @Tags 定制【尚志大宗】
+func SearchWhite(c *gin.Context) {
+	appG := app.Gin{C: c}
+
+	// 获取请求参数
+	var req SearchWhiteReq
+	if err := appG.C.ShouldBindQuery(&req); err != nil {
+		logger.GetLogger().Errorf("SearchWhite failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
+		return
+	}
+
+	datas := make([]models.Szdz3searchwhitelist, 0)
+	engine := db.GetEngine()
+	if err := engine.Where("USERID = ?", req.UserID).Find(&datas); err != nil {
+		// 查询失败
+		logger.GetLogger().Errorf("SearchWhite failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+		return
+	}
+
+	// 查询成功返回
+	logger.GetLogger().Infof("SearchWhite successed: %v", datas)
+	appG.Response(http.StatusOK, e.SUCCESS, datas)
+}

+ 356 - 5
docs/docs.go

@@ -615,6 +615,75 @@ var doc = `{
                 }
             }
         },
+        "/Order/QueryTradeDetail": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "通用单据"
+                ],
+                "summary": "成交单查询(合约市场)",
+                "parameters": [
+                    {
+                        "type": "string",
+                        "description": "资金账户 - 格式:1,2,3",
+                        "name": "accountID",
+                        "in": "query",
+                        "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "成交单号",
+                        "name": "tradeID",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "委托单号",
+                        "name": "orderID",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
+                        "description": "交易模式 - 格式:1,2,3",
+                        "name": "tradeMode",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "委托单据类型",
+                        "name": "buildType",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
+                        "description": "成交类别 - 格式:1,2,3",
+                        "name": "tradeType",
+                        "in": "query"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/order.QueryTradeDetailRsp"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/Order/QueryTradeOrderDetail": {
             "get": {
                 "security": [
@@ -728,7 +797,7 @@ var doc = `{
                     "application/json"
                 ],
                 "tags": [
-                    "尚志大宗"
+                    "定制【尚志大宗"
                 ],
                 "summary": "交易系统转换流水查询",
                 "parameters": [
@@ -742,13 +811,13 @@ var doc = `{
                     {
                         "type": "string",
                         "description": "开始时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss",
-                        "name": "StartDate",
+                        "name": "startDate",
                         "in": "query"
                     },
                     {
                         "type": "string",
                         "description": "结束时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss",
-                        "name": "EndDate",
+                        "name": "endDate",
                         "in": "query"
                     }
                 ],
@@ -779,7 +848,7 @@ var doc = `{
                     "application/json"
                 ],
                 "tags": [
-                    "尚志大宗"
+                    "定制【尚志大宗"
                 ],
                 "summary": "商品提货单查询",
                 "parameters": [
@@ -824,7 +893,7 @@ var doc = `{
                     "application/json"
                 ],
                 "tags": [
-                    "尚志大宗"
+                    "定制【尚志大宗"
                 ],
                 "summary": "点选挂牌委托单据查询(摘牌大厅)",
                 "parameters": [
@@ -864,6 +933,45 @@ var doc = `{
                 }
             }
         },
+        "/SZDZ/SearchWhite": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "定制【尚志大宗】"
+                ],
+                "summary": "搜索白名单",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "用户ID",
+                        "name": "userID",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/models.Szdz3searchwhitelist"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/User/GetLoginID": {
             "get": {
                 "produces": [
@@ -2549,6 +2657,34 @@ var doc = `{
                 }
             }
         },
+        "models.Szdz3searchwhitelist": {
+            "type": "object",
+            "required": [
+                "userid"
+            ],
+            "properties": {
+                "createtime": {
+                    "description": "创建时间",
+                    "type": "string"
+                },
+                "creatorid": {
+                    "description": "创建人",
+                    "type": "integer"
+                },
+                "modifierid": {
+                    "description": "修改人",
+                    "type": "integer"
+                },
+                "modifytime": {
+                    "description": "修改时间",
+                    "type": "string"
+                },
+                "userid": {
+                    "description": "用户ID",
+                    "type": "integer"
+                }
+            }
+        },
         "models.Tablecolumnconfig": {
             "type": "object",
             "required": [
@@ -2613,6 +2749,213 @@ var doc = `{
                 }
             }
         },
+        "order.QueryTradeDetailRsp": {
+            "type": "object",
+            "required": [
+                "accountid",
+                "buyorsell",
+                "goodsid",
+                "marketid",
+                "memberuserid",
+                "orderid",
+                "tradeamount",
+                "tradedate",
+                "tradeid",
+                "tradeprice",
+                "tradeqty",
+                "tradetime"
+            ],
+            "properties": {
+                "accountid": {
+                    "description": "账户ID[报价币种]",
+                    "type": "integer"
+                },
+                "buildtype": {
+                    "description": "委托单据类型 1:建仓 2:平仓 3:先平后建",
+                    "type": "integer"
+                },
+                "buyorsell": {
+                    "description": "方向 - 0:买 1:卖",
+                    "type": "integer"
+                },
+                "charge": {
+                    "description": "计算字段",
+                    "type": "number"
+                },
+                "closecharge": {
+                    "description": "平仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)",
+                    "type": "number"
+                },
+                "closeexchagechargevalue": {
+                    "description": "平仓交易所手续费设置值",
+                    "type": "number"
+                },
+                "closefeealgorithm": {
+                    "description": "平仓手续费收取方式 1:比率  2:固定",
+                    "type": "integer"
+                },
+                "closememberchargevalue": {
+                    "description": "平仓会员手续费设置值",
+                    "type": "number"
+                },
+                "closepl": {
+                    "description": "平仓盈亏",
+                    "type": "number"
+                },
+                "closepl2": {
+                    "description": "平仓盈亏[逐笔]",
+                    "type": "number"
+                },
+                "closeqty": {
+                    "description": "平仓数量(先建后平操作 需要记录)",
+                    "type": "integer"
+                },
+                "creditamount": {
+                    "description": "授信金额",
+                    "type": "number"
+                },
+                "gcaccountid": {
+                    "description": "账户ID[合约币种]",
+                    "type": "integer"
+                },
+                "goodscode": {
+                    "description": "关联字段",
+                    "type": "string"
+                },
+                "goodsid": {
+                    "description": "商品ID",
+                    "type": "integer"
+                },
+                "goodsname": {
+                    "description": "商品名称",
+                    "type": "string"
+                },
+                "intclosepl": {
+                    "description": "整型盈亏(用于交易结算试算平衡-收益权)",
+                    "type": "integer"
+                },
+                "isconfirmexercise": {
+                    "description": "是否确认行权- 0:否 1:是",
+                    "type": "integer"
+                },
+                "ismain": {
+                    "description": "是否主单 - 0:不是 1:是",
+                    "type": "integer"
+                },
+                "ispreexercise": {
+                    "description": "是否预申报- 0:否 1:是",
+                    "type": "integer"
+                },
+                "isreckoned": {
+                    "description": "是否结算 - 0:未结算 1:已结算",
+                    "type": "integer"
+                },
+                "marketid": {
+                    "description": "市场ID",
+                    "type": "integer"
+                },
+                "marketname": {
+                    "description": "市场名称",
+                    "type": "string"
+                },
+                "matchaccountid": {
+                    "description": "对手账号id",
+                    "type": "integer"
+                },
+                "memberuserid": {
+                    "description": "会员id 个人投资者 需要填写",
+                    "type": "integer"
+                },
+                "opencharge": {
+                    "description": "建仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)",
+                    "type": "number"
+                },
+                "openexchagechargevalue": {
+                    "description": "建仓交易所手续费设置值",
+                    "type": "number"
+                },
+                "openfeealgorithm": {
+                    "description": "建仓手续费收取方式  1:比率  2:固定",
+                    "type": "integer"
+                },
+                "openmemberchargevalue": {
+                    "description": "建仓会员手续费设置值",
+                    "type": "number"
+                },
+                "openqty": {
+                    "description": "开仓数量(先建后平操作 需要记录)",
+                    "type": "integer"
+                },
+                "optiontype": {
+                    "description": "期权类型 - 1:认购(看涨) 2:认沽(看跌)",
+                    "type": "integer"
+                },
+                "orderid": {
+                    "description": "委托单号",
+                    "type": "integer"
+                },
+                "performanceplanid": {
+                    "description": "履约计划ID[期权]",
+                    "type": "integer"
+                },
+                "performancestatus": {
+                    "description": "履约状态[期权] - 0:无履约 1:未履约 2:履约中 3:履约完成",
+                    "type": "integer"
+                },
+                "preexerciseprice": {
+                    "description": "预申报价格",
+                    "type": "number"
+                },
+                "premium": {
+                    "description": "权利金 - [持仓单的权利金]",
+                    "type": "number"
+                },
+                "relatedouttradeid": {
+                    "description": "关联外部成交单ID",
+                    "type": "integer"
+                },
+                "status": {
+                    "description": "处理状态 - 1:待处理 2:已处理 3:处理失败",
+                    "type": "integer"
+                },
+                "tradeamount": {
+                    "description": "成交金额[账户币种,用于所有权]",
+                    "type": "number"
+                },
+                "tradedate": {
+                    "description": "交易日(yyyyMMdd)",
+                    "type": "string"
+                },
+                "tradeid": {
+                    "description": "成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)",
+                    "type": "integer"
+                },
+                "trademode": {
+                    "description": "交易模式",
+                    "type": "integer"
+                },
+                "tradeprice": {
+                    "description": "成交价格",
+                    "type": "number"
+                },
+                "tradeproperty": {
+                    "description": "交易属性",
+                    "type": "integer"
+                },
+                "tradeqty": {
+                    "description": "成交数量",
+                    "type": "integer"
+                },
+                "tradetime": {
+                    "description": "成交时间",
+                    "type": "string"
+                },
+                "tradetype": {
+                    "description": "成交类别 - 1:正常委托成交 2:定向做市成交(接单) 3:交割协议平仓成交 4:交割减仓成交 5:到期强平成交 6:风控斩仓成交 7:协议平仓(管理端)成交 8:仓单转持仓成交 9: 交割协议转让成交 10:受托竞价成交(接单) 11:协议转让成交 12:系统强行平仓 13:期权违约平仓 14:场外期权单向成交 15:冻结头寸解冻申请 16:冻结头寸商品配售 17:冻结头寸商品转让 18:冻结头寸商品回购 19:冻结头寸商品提货 20:冻结头寸结算解冻 21:转换外部商品 22:预售商品头寸转入 23:预售商品头寸转入注销 24:预售商品成交 25:预售商品卖家增加头寸 26:预售商品结束清理",
+                    "type": "integer"
+                }
+            }
+        },
         "order.QueryTradeOrderDetailRsp": {
             "type": "object",
             "required": [
@@ -2815,6 +3158,10 @@ var doc = `{
                     "description": "合约单位",
                     "type": "number"
                 },
+                "averageprice": {
+                    "description": "持仓均价",
+                    "type": "number"
+                },
                 "buyorsell": {
                     "description": "方向 - 0:买 1:卖",
                     "type": "integer"
@@ -2987,6 +3334,10 @@ var doc = `{
                     "description": "PD小数位",
                     "type": "integer"
                 },
+                "qty": {
+                    "description": "数量",
+                    "type": "string"
+                },
                 "remark": {
                     "description": "备注",
                     "type": "string"

+ 356 - 5
docs/swagger.json

@@ -599,6 +599,75 @@
                 }
             }
         },
+        "/Order/QueryTradeDetail": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "通用单据"
+                ],
+                "summary": "成交单查询(合约市场)",
+                "parameters": [
+                    {
+                        "type": "string",
+                        "description": "资金账户 - 格式:1,2,3",
+                        "name": "accountID",
+                        "in": "query",
+                        "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "成交单号",
+                        "name": "tradeID",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "委托单号",
+                        "name": "orderID",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
+                        "description": "交易模式 - 格式:1,2,3",
+                        "name": "tradeMode",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "委托单据类型",
+                        "name": "buildType",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
+                        "description": "成交类别 - 格式:1,2,3",
+                        "name": "tradeType",
+                        "in": "query"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/order.QueryTradeDetailRsp"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/Order/QueryTradeOrderDetail": {
             "get": {
                 "security": [
@@ -712,7 +781,7 @@
                     "application/json"
                 ],
                 "tags": [
-                    "尚志大宗"
+                    "定制【尚志大宗"
                 ],
                 "summary": "交易系统转换流水查询",
                 "parameters": [
@@ -726,13 +795,13 @@
                     {
                         "type": "string",
                         "description": "开始时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss",
-                        "name": "StartDate",
+                        "name": "startDate",
                         "in": "query"
                     },
                     {
                         "type": "string",
                         "description": "结束时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss",
-                        "name": "EndDate",
+                        "name": "endDate",
                         "in": "query"
                     }
                 ],
@@ -763,7 +832,7 @@
                     "application/json"
                 ],
                 "tags": [
-                    "尚志大宗"
+                    "定制【尚志大宗"
                 ],
                 "summary": "商品提货单查询",
                 "parameters": [
@@ -808,7 +877,7 @@
                     "application/json"
                 ],
                 "tags": [
-                    "尚志大宗"
+                    "定制【尚志大宗"
                 ],
                 "summary": "点选挂牌委托单据查询(摘牌大厅)",
                 "parameters": [
@@ -848,6 +917,45 @@
                 }
             }
         },
+        "/SZDZ/SearchWhite": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "定制【尚志大宗】"
+                ],
+                "summary": "搜索白名单",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "用户ID",
+                        "name": "userID",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/models.Szdz3searchwhitelist"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/User/GetLoginID": {
             "get": {
                 "produces": [
@@ -2533,6 +2641,34 @@
                 }
             }
         },
+        "models.Szdz3searchwhitelist": {
+            "type": "object",
+            "required": [
+                "userid"
+            ],
+            "properties": {
+                "createtime": {
+                    "description": "创建时间",
+                    "type": "string"
+                },
+                "creatorid": {
+                    "description": "创建人",
+                    "type": "integer"
+                },
+                "modifierid": {
+                    "description": "修改人",
+                    "type": "integer"
+                },
+                "modifytime": {
+                    "description": "修改时间",
+                    "type": "string"
+                },
+                "userid": {
+                    "description": "用户ID",
+                    "type": "integer"
+                }
+            }
+        },
         "models.Tablecolumnconfig": {
             "type": "object",
             "required": [
@@ -2597,6 +2733,213 @@
                 }
             }
         },
+        "order.QueryTradeDetailRsp": {
+            "type": "object",
+            "required": [
+                "accountid",
+                "buyorsell",
+                "goodsid",
+                "marketid",
+                "memberuserid",
+                "orderid",
+                "tradeamount",
+                "tradedate",
+                "tradeid",
+                "tradeprice",
+                "tradeqty",
+                "tradetime"
+            ],
+            "properties": {
+                "accountid": {
+                    "description": "账户ID[报价币种]",
+                    "type": "integer"
+                },
+                "buildtype": {
+                    "description": "委托单据类型 1:建仓 2:平仓 3:先平后建",
+                    "type": "integer"
+                },
+                "buyorsell": {
+                    "description": "方向 - 0:买 1:卖",
+                    "type": "integer"
+                },
+                "charge": {
+                    "description": "计算字段",
+                    "type": "number"
+                },
+                "closecharge": {
+                    "description": "平仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)",
+                    "type": "number"
+                },
+                "closeexchagechargevalue": {
+                    "description": "平仓交易所手续费设置值",
+                    "type": "number"
+                },
+                "closefeealgorithm": {
+                    "description": "平仓手续费收取方式 1:比率  2:固定",
+                    "type": "integer"
+                },
+                "closememberchargevalue": {
+                    "description": "平仓会员手续费设置值",
+                    "type": "number"
+                },
+                "closepl": {
+                    "description": "平仓盈亏",
+                    "type": "number"
+                },
+                "closepl2": {
+                    "description": "平仓盈亏[逐笔]",
+                    "type": "number"
+                },
+                "closeqty": {
+                    "description": "平仓数量(先建后平操作 需要记录)",
+                    "type": "integer"
+                },
+                "creditamount": {
+                    "description": "授信金额",
+                    "type": "number"
+                },
+                "gcaccountid": {
+                    "description": "账户ID[合约币种]",
+                    "type": "integer"
+                },
+                "goodscode": {
+                    "description": "关联字段",
+                    "type": "string"
+                },
+                "goodsid": {
+                    "description": "商品ID",
+                    "type": "integer"
+                },
+                "goodsname": {
+                    "description": "商品名称",
+                    "type": "string"
+                },
+                "intclosepl": {
+                    "description": "整型盈亏(用于交易结算试算平衡-收益权)",
+                    "type": "integer"
+                },
+                "isconfirmexercise": {
+                    "description": "是否确认行权- 0:否 1:是",
+                    "type": "integer"
+                },
+                "ismain": {
+                    "description": "是否主单 - 0:不是 1:是",
+                    "type": "integer"
+                },
+                "ispreexercise": {
+                    "description": "是否预申报- 0:否 1:是",
+                    "type": "integer"
+                },
+                "isreckoned": {
+                    "description": "是否结算 - 0:未结算 1:已结算",
+                    "type": "integer"
+                },
+                "marketid": {
+                    "description": "市场ID",
+                    "type": "integer"
+                },
+                "marketname": {
+                    "description": "市场名称",
+                    "type": "string"
+                },
+                "matchaccountid": {
+                    "description": "对手账号id",
+                    "type": "integer"
+                },
+                "memberuserid": {
+                    "description": "会员id 个人投资者 需要填写",
+                    "type": "integer"
+                },
+                "opencharge": {
+                    "description": "建仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)",
+                    "type": "number"
+                },
+                "openexchagechargevalue": {
+                    "description": "建仓交易所手续费设置值",
+                    "type": "number"
+                },
+                "openfeealgorithm": {
+                    "description": "建仓手续费收取方式  1:比率  2:固定",
+                    "type": "integer"
+                },
+                "openmemberchargevalue": {
+                    "description": "建仓会员手续费设置值",
+                    "type": "number"
+                },
+                "openqty": {
+                    "description": "开仓数量(先建后平操作 需要记录)",
+                    "type": "integer"
+                },
+                "optiontype": {
+                    "description": "期权类型 - 1:认购(看涨) 2:认沽(看跌)",
+                    "type": "integer"
+                },
+                "orderid": {
+                    "description": "委托单号",
+                    "type": "integer"
+                },
+                "performanceplanid": {
+                    "description": "履约计划ID[期权]",
+                    "type": "integer"
+                },
+                "performancestatus": {
+                    "description": "履约状态[期权] - 0:无履约 1:未履约 2:履约中 3:履约完成",
+                    "type": "integer"
+                },
+                "preexerciseprice": {
+                    "description": "预申报价格",
+                    "type": "number"
+                },
+                "premium": {
+                    "description": "权利金 - [持仓单的权利金]",
+                    "type": "number"
+                },
+                "relatedouttradeid": {
+                    "description": "关联外部成交单ID",
+                    "type": "integer"
+                },
+                "status": {
+                    "description": "处理状态 - 1:待处理 2:已处理 3:处理失败",
+                    "type": "integer"
+                },
+                "tradeamount": {
+                    "description": "成交金额[账户币种,用于所有权]",
+                    "type": "number"
+                },
+                "tradedate": {
+                    "description": "交易日(yyyyMMdd)",
+                    "type": "string"
+                },
+                "tradeid": {
+                    "description": "成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)",
+                    "type": "integer"
+                },
+                "trademode": {
+                    "description": "交易模式",
+                    "type": "integer"
+                },
+                "tradeprice": {
+                    "description": "成交价格",
+                    "type": "number"
+                },
+                "tradeproperty": {
+                    "description": "交易属性",
+                    "type": "integer"
+                },
+                "tradeqty": {
+                    "description": "成交数量",
+                    "type": "integer"
+                },
+                "tradetime": {
+                    "description": "成交时间",
+                    "type": "string"
+                },
+                "tradetype": {
+                    "description": "成交类别 - 1:正常委托成交 2:定向做市成交(接单) 3:交割协议平仓成交 4:交割减仓成交 5:到期强平成交 6:风控斩仓成交 7:协议平仓(管理端)成交 8:仓单转持仓成交 9: 交割协议转让成交 10:受托竞价成交(接单) 11:协议转让成交 12:系统强行平仓 13:期权违约平仓 14:场外期权单向成交 15:冻结头寸解冻申请 16:冻结头寸商品配售 17:冻结头寸商品转让 18:冻结头寸商品回购 19:冻结头寸商品提货 20:冻结头寸结算解冻 21:转换外部商品 22:预售商品头寸转入 23:预售商品头寸转入注销 24:预售商品成交 25:预售商品卖家增加头寸 26:预售商品结束清理",
+                    "type": "integer"
+                }
+            }
+        },
         "order.QueryTradeOrderDetailRsp": {
             "type": "object",
             "required": [
@@ -2799,6 +3142,10 @@
                     "description": "合约单位",
                     "type": "number"
                 },
+                "averageprice": {
+                    "description": "持仓均价",
+                    "type": "number"
+                },
                 "buyorsell": {
                     "description": "方向 - 0:买 1:卖",
                     "type": "integer"
@@ -2971,6 +3318,10 @@
                     "description": "PD小数位",
                     "type": "integer"
                 },
+                "qty": {
+                    "description": "数量",
+                    "type": "string"
+                },
                 "remark": {
                     "description": "备注",
                     "type": "string"

+ 256 - 5
docs/swagger.yaml

@@ -1179,6 +1179,26 @@ definitions:
     required:
     - spotcontractid
     type: object
+  models.Szdz3searchwhitelist:
+    properties:
+      createtime:
+        description: 创建时间
+        type: string
+      creatorid:
+        description: 创建人
+        type: integer
+      modifierid:
+        description: 修改人
+        type: integer
+      modifytime:
+        description: 修改时间
+        type: string
+      userid:
+        description: 用户ID
+        type: integer
+    required:
+    - userid
+    type: object
   models.Tablecolumnconfig:
     properties:
       aligntype:
@@ -1226,6 +1246,163 @@ definitions:
     required:
     - autoid
     type: object
+  order.QueryTradeDetailRsp:
+    properties:
+      accountid:
+        description: 账户ID[报价币种]
+        type: integer
+      buildtype:
+        description: 委托单据类型 1:建仓 2:平仓 3:先平后建
+        type: integer
+      buyorsell:
+        description: 方向 - 0:买 1:卖
+        type: integer
+      charge:
+        description: 计算字段
+        type: number
+      closecharge:
+        description: 平仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)
+        type: number
+      closeexchagechargevalue:
+        description: 平仓交易所手续费设置值
+        type: number
+      closefeealgorithm:
+        description: 平仓手续费收取方式 1:比率  2:固定
+        type: integer
+      closememberchargevalue:
+        description: 平仓会员手续费设置值
+        type: number
+      closepl:
+        description: 平仓盈亏
+        type: number
+      closepl2:
+        description: 平仓盈亏[逐笔]
+        type: number
+      closeqty:
+        description: 平仓数量(先建后平操作 需要记录)
+        type: integer
+      creditamount:
+        description: 授信金额
+        type: number
+      gcaccountid:
+        description: 账户ID[合约币种]
+        type: integer
+      goodscode:
+        description: 关联字段
+        type: string
+      goodsid:
+        description: 商品ID
+        type: integer
+      goodsname:
+        description: 商品名称
+        type: string
+      intclosepl:
+        description: 整型盈亏(用于交易结算试算平衡-收益权)
+        type: integer
+      isconfirmexercise:
+        description: 是否确认行权- 0:否 1:是
+        type: integer
+      ismain:
+        description: 是否主单 - 0:不是 1:是
+        type: integer
+      ispreexercise:
+        description: 是否预申报- 0:否 1:是
+        type: integer
+      isreckoned:
+        description: 是否结算 - 0:未结算 1:已结算
+        type: integer
+      marketid:
+        description: 市场ID
+        type: integer
+      marketname:
+        description: 市场名称
+        type: string
+      matchaccountid:
+        description: 对手账号id
+        type: integer
+      memberuserid:
+        description: 会员id 个人投资者 需要填写
+        type: integer
+      opencharge:
+        description: 建仓手续费(支付总手续费=(交易所比率+会员比率)*成交金额)
+        type: number
+      openexchagechargevalue:
+        description: 建仓交易所手续费设置值
+        type: number
+      openfeealgorithm:
+        description: 建仓手续费收取方式  1:比率  2:固定
+        type: integer
+      openmemberchargevalue:
+        description: 建仓会员手续费设置值
+        type: number
+      openqty:
+        description: 开仓数量(先建后平操作 需要记录)
+        type: integer
+      optiontype:
+        description: 期权类型 - 1:认购(看涨) 2:认沽(看跌)
+        type: integer
+      orderid:
+        description: 委托单号
+        type: integer
+      performanceplanid:
+        description: 履约计划ID[期权]
+        type: integer
+      performancestatus:
+        description: 履约状态[期权] - 0:无履约 1:未履约 2:履约中 3:履约完成
+        type: integer
+      preexerciseprice:
+        description: 预申报价格
+        type: number
+      premium:
+        description: 权利金 - [持仓单的权利金]
+        type: number
+      relatedouttradeid:
+        description: 关联外部成交单ID
+        type: integer
+      status:
+        description: 处理状态 - 1:待处理 2:已处理 3:处理失败
+        type: integer
+      tradeamount:
+        description: 成交金额[账户币种,用于所有权]
+        type: number
+      tradedate:
+        description: 交易日(yyyyMMdd)
+        type: string
+      tradeid:
+        description: 成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+        type: integer
+      trademode:
+        description: 交易模式
+        type: integer
+      tradeprice:
+        description: 成交价格
+        type: number
+      tradeproperty:
+        description: 交易属性
+        type: integer
+      tradeqty:
+        description: 成交数量
+        type: integer
+      tradetime:
+        description: 成交时间
+        type: string
+      tradetype:
+        description: '成交类别 - 1:正常委托成交 2:定向做市成交(接单) 3:交割协议平仓成交 4:交割减仓成交 5:到期强平成交 6:风控斩仓成交 7:协议平仓(管理端)成交 8:仓单转持仓成交 9: 交割协议转让成交 10:受托竞价成交(接单) 11:协议转让成交 12:系统强行平仓 13:期权违约平仓 14:场外期权单向成交 15:冻结头寸解冻申请 16:冻结头寸商品配售 17:冻结头寸商品转让 18:冻结头寸商品回购 19:冻结头寸商品提货 20:冻结头寸结算解冻 21:转换外部商品 22:预售商品头寸转入 23:预售商品头寸转入注销 24:预售商品成交 25:预售商品卖家增加头寸 26:预售商品结束清理'
+        type: integer
+    required:
+    - accountid
+    - buyorsell
+    - goodsid
+    - marketid
+    - memberuserid
+    - orderid
+    - tradeamount
+    - tradedate
+    - tradeid
+    - tradeprice
+    - tradeqty
+    - tradetime
+    type: object
   order.QueryTradeOrderDetailRsp:
     properties:
       accountid:
@@ -1379,6 +1556,9 @@ definitions:
       agreeunit:
         description: 合约单位
         type: number
+      averageprice:
+        description: 持仓均价
+        type: number
       buyorsell:
         description: 方向 - 0:买 1:卖
         type: integer
@@ -1505,6 +1685,9 @@ definitions:
       pddecimalplace:
         description: PD小数位
         type: integer
+      qty:
+        description: 数量
+        type: string
       remark:
         description: 备注
         type: string
@@ -2009,6 +2192,50 @@ paths:
       summary: 查询现货合同表信息(指定策略ID、未结束的)
       tags:
       - 风险管理
+  /Order/QueryTradeDetail:
+    get:
+      parameters:
+      - description: 资金账户 - 格式:1,2,3
+        in: query
+        name: accountID
+        required: true
+        type: string
+      - description: 成交单号
+        in: query
+        name: tradeID
+        type: integer
+      - description: 委托单号
+        in: query
+        name: orderID
+        type: integer
+      - description: 交易模式 - 格式:1,2,3
+        in: query
+        name: tradeMode
+        type: string
+      - description: 委托单据类型
+        in: query
+        name: buildType
+        type: integer
+      - description: 成交类别 - 格式:1,2,3
+        in: query
+        name: tradeType
+        type: string
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/order.QueryTradeDetailRsp'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      security:
+      - ApiKeyAuth: []
+      summary: 成交单查询(合约市场)
+      tags:
+      - 通用单据
   /Order/QueryTradeOrderDetail:
     get:
       parameters:
@@ -2083,11 +2310,11 @@ paths:
         type: string
       - description: 开始时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss
         in: query
-        name: StartDate
+        name: startDate
         type: string
       - description: 结束时间 - 闭区间,格式:yyyy-MM-dd HH:mm:ss
         in: query
-        name: EndDate
+        name: endDate
         type: string
       produces:
       - application/json
@@ -2104,7 +2331,7 @@ paths:
       - ApiKeyAuth: []
       summary: 交易系统转换流水查询
       tags:
-      - 尚志大宗
+      - 定制【尚志大宗
   /SZDZ/QueryGoodsPickup:
     get:
       parameters:
@@ -2132,7 +2359,7 @@ paths:
       - ApiKeyAuth: []
       summary: 商品提货单查询
       tags:
-      - 尚志大宗
+      - 定制【尚志大宗
   /SZDZ/QueryRecieptOrder:
     get:
       parameters:
@@ -2164,7 +2391,31 @@ paths:
       - ApiKeyAuth: []
       summary: 点选挂牌委托单据查询(摘牌大厅)
       tags:
-      - 尚志大宗
+      - 定制【尚志大宗】
+  /SZDZ/SearchWhite:
+    get:
+      parameters:
+      - description: 用户ID
+        in: query
+        name: userID
+        required: true
+        type: integer
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/models.Szdz3searchwhitelist'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      security:
+      - ApiKeyAuth: []
+      summary: 搜索白名单
+      tags:
+      - 定制【尚志大宗】
   /User/GetLoginID:
     get:
       parameters:

+ 2 - 0
go.sum

@@ -227,6 +227,8 @@ github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5H
 github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
+github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ=
+github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
 github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
 github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
 github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=

+ 14 - 0
models/szdzModels.go

@@ -63,3 +63,17 @@ type Szdz3convertlog struct {
 func (Szdz3convertlog) TableName() string {
 	return "SZDZ3_CONVERTLOG"
 }
+
+// Szdz3searchwhitelist 搜索白名单表
+type Szdz3searchwhitelist struct {
+	Userid     uint64    `json:"userid"  xorm:"'USERID'" binding:"required"` // 用户ID
+	Createtime time.Time `json:"createtime"  xorm:"'CREATETIME'"`            // 创建时间
+	Creatorid  uint64    `json:"creatorid"  xorm:"'CREATORID'"`              // 创建人
+	Modifierid uint64    `json:"modifierid"  xorm:"'MODIFIERID'"`            // 修改人
+	Modifytime time.Time `json:"modifytime"  xorm:"'MODIFYTIME'"`            // 修改时间
+}
+
+// TableName is SZDZ3_SEARCHWHITELIST
+func (Szdz3searchwhitelist) TableName() string {
+	return "SZDZ3_SEARCHWHITELIST"
+}

+ 5 - 1
routers/router.go

@@ -67,6 +67,8 @@ func InitRouter() *gin.Engine {
 		orderR.GET("/QueryTradePosition", order.QueryTradePosition)
 		// 委托单查询请求(合约市场)
 		orderR.GET("/QueryTradeOrderDetail", order.QueryTradeOrderDetail)
+		// 成交单查询(合约市场)
+		orderR.GET("/QueryTradeDetail", order.QueryTradeDetail)
 	}
 	// ************************ 仓单贸易 ************************
 	wrTradeR := apiR.Group("WRTrade")
@@ -111,7 +113,7 @@ func InitRouter() *gin.Engine {
 		// 查询现货合同表信息(指定策略ID、未结束的)
 		erms2R.GET("/QuerySpotContract", erms2.QuerySpotContract)
 	}
-	// ************************ 尚志大宗 ************************
+	// ************************ 定制【尚志大宗 ************************
 	szdzR := apiR.Group("SZDZ")
 	szdzR.Use(token.Auth())
 	{
@@ -121,6 +123,8 @@ func InitRouter() *gin.Engine {
 		szdzR.GET("/QueryGoodsPickup", szdz.QueryGoodsPickup)
 		// 交易系统转换流水查询
 		szdzR.GET("/QueryConvertLog", szdz.QueryConvertLog)
+		// 搜索白名单
+		szdzR.GET("/SearchWhite", szdz.SearchWhite)
 	}
 
 	return r

+ 19 - 0
utils/mathUtils.go

@@ -0,0 +1,19 @@
+package utils
+
+import (
+	"math"
+	"strconv"
+)
+
+// FormatFloat 保留指定小数位并返回字符串
+func FormatFloat(num float64, decimal int) string {
+	// 默认乘1
+	d := float64(1)
+	if decimal > 0 {
+		// 10的N次方
+		d = math.Pow10(decimal)
+	}
+	// math.trunc作用就是返回浮点数的整数部分
+	// 再除回去,小数点后无效的0也就不存在了
+	return strconv.FormatFloat(math.Trunc(num*d)/d, 'f', -1, 64)
+}