浏览代码

修改“点选挂牌委托单据查询(摘牌大厅)”接口分页BUG

Simon Zhou 5 年之前
父节点
当前提交
79f72599a6
共有 2 个文件被更改,包括 80 次插入1 次删除
  1. 7 1
      controllers/szdz/szdz.go
  2. 73 0
      models/orderModels.go

+ 7 - 1
controllers/szdz/szdz.go

@@ -128,9 +128,15 @@ func QueryRecieptOrder(c *gin.Context) {
 		// 开始上标
 		start := req.Page * req.PageSize
 		// 结束下标
+		// a := []int{1,2,3,4,5}
+		// a[2:4] -> [3 4]
 		end := start + req.PageSize
 
-		if start <= len(datas) && end <= len(datas) {
+		if start <= len(datas) {
+			// 判断结束下标是否越界
+			if end > len(datas) {
+				end = len(datas)
+			}
 			datas = datas[start:end]
 		} else {
 			datas = make([]QueryRecieptOrderRsp, 0)

+ 73 - 0
models/orderModels.go

@@ -113,6 +113,79 @@ func (Tradeorderdetail) TableName() string {
 	return "TRADE_ORDERDETAIL"
 }
 
+// Histradeorderdetail 历史交易委托单表
+type Histradeorderdetail struct {
+	Orderid                 uint64    `json:"orderid"  xorm:"'ORDERID'" binding:"required"`              // 委托单号(100+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+	Tradedate               string    `json:"tradedate"  xorm:"'TRADEDATE'" binding:"required"`          // 交易日(yyyyMMdd)
+	Buildtype               uint32    `json:"buildtype"  xorm:"'BUILDTYPE'" binding:"required"`          // 委托单据类型 - 1:建仓 2:平仓 3:先平后建
+	Preorderid              uint64    `json:"preorderid"  xorm:"'PREORDERID'"`                           // 关联预埋单号(止盈止损单时填写)
+	Cancelorderid           uint64    `json:"cancelorderid"  xorm:"'CANCELORDERID'"`                     // 撤单单号(撤单时填写)
+	Relatedid               uint64    `json:"relatedid"  xorm:"'RELATEDID'"`                             // 关联单号(交割单)
+	Marketid                uint32    `json:"marketid"  xorm:"'MARKETID'" binding:"required"`            // 市场ID
+	Goodsid                 uint32    `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`              // 商品ID
+	Accountid               uint64    `json:"accountid"  xorm:"'ACCOUNTID'" binding:"required"`          // 账户ID[报价币种]
+	Memberuserid            uint64    `json:"memberuserid"  xorm:"'MEMBERUSERID'" binding:"required"`    // 所属会员UserID
+	Buyorsell               uint32    `json:"buyorsell"  xorm:"'BUYORSELL'" binding:"required"`          // 买卖 - 0:买 1:卖
+	Pricemode               uint32    `json:"pricemode"  xorm:"'PRICEMODE'" binding:"required"`          // 取价方式 - 1:市价 2: 限价
+	Orderprice              float64   `json:"orderprice"  xorm:"'ORDERPRICE'"`                           // 委托价格
+	Marketmaxsub            float64   `json:"marketmaxsub"  xorm:"'MARKETMAXSUB'"`                       // 市价最大偏移范围
+	Orderqty                uint64    `json:"orderqty"  xorm:"'ORDERQTY'" binding:"required"`            // 委托数量
+	Tradeqty                uint64    `json:"tradeqty"  xorm:"'TRADEQTY'"`                               // 成交数量
+	Cancelqty               uint64    `json:"cancelqty"  xorm:"'CANCELQTY'"`                             // 撤单数量
+	Openqty                 uint64    `json:"openqty"  xorm:"'OPENQTY'"`                                 // 开仓数量(先建后平操作,需要记录)
+	Closeqty                uint64    `json:"closeqty"  xorm:"'CLOSEQTY'"`                               // 平仓数量(先建后平操作 需要记录)
+	Opentradeqty            uint64    `json:"opentradeqty"  xorm:"'OPENTRADEQTY'"`                       // 开仓成交数量(先建后平操作,需要记录)
+	Closetradeqty           uint64    `json:"closetradeqty"  xorm:"'CLOSETRADEQTY'"`                     // 平仓成交数量(先建后平操作,需要记录)
+	Freezemargin            float64   `json:"freezemargin"  xorm:"'FREEZEMARGIN'"`                       // 冻结保证金(冻结交易金额)
+	Unfreezemargin          float64   `json:"unfreezemargin"  xorm:"'UNFREEZEMARGIN'"`                   // 解冻保证金
+	Freezecharge            float64   `json:"freezecharge"  xorm:"'FREEZECHARGE'"`                       // 冻结手续费
+	Unfreezecharge          float64   `json:"unfreezecharge"  xorm:"'UNFREEZECHARGE'"`                   // 解冻手续费
+	Openfreezecharge        float64   `json:"openfreezecharge"  xorm:"'OPENFREEZECHARGE'"`               // 开仓冻结手续费(先建后平操作,需要记录)
+	Closefreezecharge       float64   `json:"closefreezecharge"  xorm:"'CLOSEFREEZECHARGE'"`             // 平仓冻结手续费(先建后平操作,需要记录)
+	Openunfreezecharge      float64   `json:"openunfreezecharge"  xorm:"'OPENUNFREEZECHARGE'"`           // 开仓解冻手续费(先建后平操作,需要记录)
+	Closeunfreezecharge     float64   `json:"closeunfreezecharge"  xorm:"'CLOSEUNFREEZECHARGE'"`         // 平仓解冻手续费(先建后平操作,需要记录)
+	Validtype               uint32    `json:"validtype"  xorm:"'VALIDTYPE'" binding:"required"`          // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效 5指定时间有效
+	Validtime               time.Time `json:"validtime"  xorm:"'VALIDTIME'"`                             // 有效期限
+	Volumetype              uint32    `json:"volumetype"  xorm:"'VOLUMETYPE'"`                           // 当时间有效类型为 “立即执行否则取消 IOC” 时,需要此项 - 0:任意量  1:最小量(暂时不支持) 2:全部量
+	Operatetype             uint32    `json:"operatetype"  xorm:"'OPERATETYPE'" binding:"required"`      // 操作类型 - 1:正常下单 2:斩仓 3:转单 4:结算撤单 5:系统卖出(适用于先平后建的卖出) 6:行情源报价 7:(结算)到期强平 8:(结算)协议转让 9:系统对冲单 10:(结算)到期无效 11:交割协议转让 12:交割协议平仓 13:交割成交(所有权) 14:管理端强行平仓 15:管理端协议转让
+	Ordertime               time.Time `json:"ordertime"  xorm:"'ORDERTIME'" binding:"required"`          // 委托时间
+	Ordersrc                uint32    `json:"ordersrc"  xorm:"'ORDERSRC'"`                               // 委托来源 -  1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结 7:商品强平 8:管理端商品退市强平 9:交易接口 10:交割服务商被动(受托竞价) 11:预埋触发
+	Orderstatus             uint32    `json:"orderstatus"  xorm:"'ORDERSTATUS'"`                         // 委托状态 - 1: 委托请求 2:待冻结 3:委托成功 4: 委托失败 5:配对成功 6: 已撤销 7:部分成交 8:已成交 9:部成部撤 10:成交失败 11:已拒绝 12:经过摘牌(先摘后挂专用-先摘后挂已摘过) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用)
+	Operatorid              uint64    `json:"operatorid"  xorm:"'OPERATORID'"`                           // 登录账号(LoginID)
+	Updatetime              time.Time `json:"updatetime"  xorm:"'UPDATETIME'"`                           // 更新时间
+	Clientordertime         time.Time `json:"clientordertime"  xorm:"'CLIENTORDERTIME'"`                 // 客户端委托时间
+	Clientticket            string    `json:"clientticket"  xorm:"'CLIENTTICKET'"`                       // 客户端流水号
+	UUID                    string    `json:"uuid"  xorm:"'UUID'"`                                       // 发起端唯一id
+	Clienttype              uint32    `json:"clienttype"  xorm:"'CLIENTTYPE'"`                           // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
+	Retcode                 uint32    `json:"retcode"  xorm:"'RETCODE'"`                                 // 错误代码
+	Tradeproperty           uint32    `json:"tradeproperty"  xorm:"'TRADEPROPERTY'"`                     // 交易属性
+	Listingselecttype       uint32    `json:"listingselecttype"  xorm:"'LISTINGSELECTTYPE'"`             // 挂牌点选类型 - 1:挂牌 2:摘牌 3:先摘后挂
+	Delistingtype           uint32    `json:"delistingtype"  xorm:"'DELISTINGTYPE'"`                     // 摘牌类型 - 1:价格最优 2:点选成交
+	Marginalgorithm         uint32    `json:"marginalgorithm"  xorm:"'MARGINALGORITHM'"`                 // 保证金收取方式  1:比率  2:固定
+	Marginvalue             float64   `json:"marginvalue"  xorm:"'MARGINVALUE'"`                         // 即市保证金设置值
+	Openfeealgorithm        uint32    `json:"openfeealgorithm"  xorm:"'OPENFEEALGORITHM'"`               // 建仓手续费收取方式  1:比率  2:固定
+	Openmemberchargevalue   float64   `json:"openmemberchargevalue"  xorm:"'OPENMEMBERCHARGEVALUE'"`     // 建仓会员手续费设置值
+	Openexchagechargevalue  float64   `json:"openexchagechargevalue"  xorm:"'OPENEXCHAGECHARGEVALUE'"`   // 建仓交易所手续费设置值
+	Closefeealgorithm       uint32    `json:"closefeealgorithm"  xorm:"'CLOSEFEEALGORITHM'"`             // 平仓手续费收取方式 1:比率  2:固定
+	Closememberchargevalue  float64   `json:"closememberchargevalue"  xorm:"'CLOSEMEMBERCHARGEVALUE'"`   // 平仓会员手续费设置值
+	Closeexchagechargevalue float64   `json:"closeexchagechargevalue"  xorm:"'CLOSEEXCHAGECHARGEVALUE'"` // 平仓交易所手续费设置值
+	Optiontype              uint32    `json:"optiontype"  xorm:"'OPTIONTYPE'"`                           // 期权类型 - 1:认购(看涨) 2:认沽(看跌)
+	Premium                 float64   `json:"premium"  xorm:"'PREMIUM'"`                                 // 权利金
+	Ispreexercise           uint32    `json:"ispreexercise"  xorm:"'ISPREEXERCISE'"`                     // 是否预申报- 0:否 1:是
+	Preexerciseprice        float64   `json:"preexerciseprice"  xorm:"'PREEXERCISEPRICE'"`               // 预申报价格
+	Isconfirmexercise       uint32    `json:"isconfirmexercise"  xorm:"'ISCONFIRMEXERCISE'"`             // 是否确认行权- 0:否 1:是
+	Quoteid                 uint64    `json:"quoteid"  xorm:"'QUOTEID'"`                                 // 报价单ID
+	Gcaccountid             uint64    `json:"gcaccountid"  xorm:"'GCACCOUNTID'"`                         // 账户ID[合约币种]
+	Sessionid               uint64    `json:"sessionid"  xorm:"'SESSIONID'"`                             // 会话ID
+	Histradedate            string    `json:"histradedate"  xorm:"'HISTRADEDATE'" binding:"required"`    // 历史交易日
+	Isvaliddata             uint32    `json:"isvaliddata"  xorm:"'ISVALIDDATA'"`                         // 是否有效 - 0:无效 1:有效
+}
+
+// TableName is HIS_TRADE_ORDERDETAIL
+func (Histradeorderdetail) TableName() string {
+	return "HIS_TRADE_ORDERDETAIL"
+}
+
 // Tradequotedetailnew 报价商报价表 - 导历史
 type Tradequotedetailnew struct {
 	Quoterid             uint64    `json:"quoterid"  xorm:"'QUOTERID'" binding:"required"`      // 报价商ID